Commit Graph

101 Commits

Author SHA1 Message Date
Tom Lane
4213e5f0db Add note that LIMIT without ORDER BY can produce outright nondeterministic
results.  Necessary due to introduction of syncscan patch.
2007-06-08 20:26:18 +00:00
Neil Conway
79ba540b78 Various fixes for the SGML docs. Consistently use spaces before/after
parentheses in syntax descriptions. Consistently use the present tense
when describing the basic purpose of each "DROP" command. Add a few
more hyperlinks.
2007-05-15 19:13:55 +00:00
Bruce Momjian
8b4ff8b6a1 Wording cleanup for error messages. Also change can't -> cannot.
Standard English uses "may", "can", and "might" in different ways:

        may - permission, "You may borrow my rake."

        can - ability, "I can lift that log."

        might - possibility, "It might rain today."

Unfortunately, in conversational English, their use is often mixed, as
in, "You may use this variable to do X", when in fact, "can" is a better
choice.  Similarly, "It may crash" is better stated, "It might crash".
2007-02-01 19:10:30 +00:00
Bruce Momjian
09a9f10e7f Consistenly use colons before '<programlisting>' blocks, where
appropriate.
2007-02-01 00:28:19 +00:00
Bruce Momjian
e81c138e18 Update reference documentation on may/can/might:
Standard English uses "may", "can", and "might" in different ways:

        may - permission, "You may borrow my rake."

        can - ability, "I can lift that log."

        might - possibility, "It might rain today."

Unfortunately, in conversational English, their use is often mixed, as
in, "You may use this variable to do X", when in fact, "can" is a better
choice.  Similarly, "It may crash" is better stated, "It might crash".
2007-01-31 23:26:05 +00:00
Tom Lane
1e0bf9041e Marginal tweaks in the documentation for ORDER BY; in particular point
out the common error that ORDER BY x, y DESC does not mean the same as
ORDER BY x DESC, y DESC.
2007-01-09 16:59:20 +00:00
Tom Lane
4431758229 Support ORDER BY ... NULLS FIRST/LAST, and add ASC/DESC/NULLS FIRST/NULLS LAST
per-column options for btree indexes.  The planner's support for this is still
pretty rudimentary; it does not yet know how to plan mergejoins with
nondefault ordering options.  The documentation is pretty rudimentary, too.
I'll work on improving that stuff later.

Note incompatible change from prior behavior: ORDER BY ... USING will now be
rejected if the operator is not a less-than or greater-than member of some
btree opclass.  This prevents less-than-sane behavior if an operator that
doesn't actually define a proper sort ordering is selected.
2007-01-09 02:14:16 +00:00
Tom Lane
c184470be3 Document the recently-understood hazard that a rollback can release row-level
locks that logically should not be released, because when a subtransaction
overwrites XMAX all knowledge of the previous lock state is lost.  It seems
unlikely that we will be able to fix this before 8.3...
2006-12-01 20:49:53 +00:00
Tom Lane
b5b1eb80b7 Documentation for VALUES lists. Joe Conway and Tom Lane 2006-09-18 19:54:01 +00:00
Bruce Momjian
32cebaecff Remove emacs info from footer of SGML files. 2006-09-16 00:30:20 +00:00
Tom Lane
986085a7f0 Improve the representation of FOR UPDATE/FOR SHARE so that we can
support both FOR UPDATE and FOR SHARE in one command, as well as both
NOWAIT and normal WAIT behavior.  The more general code is actually
simpler and cleaner.
2006-04-30 18:30:40 +00:00
Tom Lane
b524cb36ac Make an editorial pass over the reference pages. 2005-11-01 21:09:51 +00:00
Tom Lane
2a4fad1a0e Add NOWAIT option to SELECT FOR UPDATE/SHARE.
Original patch by Hans-Juergen Schoenig, revisions by Karel Zak
and Tom Lane.
2005-08-01 20:31:16 +00:00
Neil Conway
c3f1b0f4dd This doc patch replaces all inappropriate references to SQL:1999 when it
is used as if it were the latest (and/or still valid) SQL standard.
SQL:2003 is used in its place. Patch from Simon Riggs.
2005-07-14 06:17:36 +00:00
Bruce Momjian
545828a754 Documentation adjustments.
Vladimir Chukharev
2005-05-08 03:08:05 +00:00
Tom Lane
bedb78d386 Implement sharable row-level locks, and use them for foreign key references
to eliminate unnecessary deadlocks.  This commit adds SELECT ... FOR SHARE
paralleling SELECT ... FOR UPDATE.  The implementation uses a new SLRU
data structure (managed much like pg_subtrans) to represent multiple-
transaction-ID sets.  When more than one transaction is holding a shared
lock on a particular row, we create a MultiXactId representing that set
of transactions and store its ID in the row's XMAX.  This scheme allows
an effectively unlimited number of row locks, just as we did before,
while not costing any extra overhead except when a shared lock actually
has to be shared.   Still TODO: use the regular lock manager to control
the grant order when multiple backends are waiting for a row lock.

Alvaro Herrera and Tom Lane.
2005-04-28 21:47:18 +00:00
Bruce Momjian
6f61ddd40d Typo fix. Alvaro. 2005-04-22 15:32:58 +00:00
Bruce Momjian
d76f279a55 Remove pre-7.3 mention that FOR UPDATE can be before LIMIT.
Document that FOR UPDATE and LIMIT together can return fewer rows that
LIMIT specifies, and why.
2005-04-22 04:20:44 +00:00
Neil Conway
eb4b7a0b77 Change the default setting of "add_missing_from" to false. This has been
the long-term plan for this behavior for quite some time, but it is only
possible now that DELETE has a USING clause so that the user can join
other tables in a DELETE statement without relying on this behavior.
2005-04-08 00:59:59 +00:00
Tom Lane
595ed2a855 Make the behavior of HAVING without GROUP BY conform to the SQL spec.
Formerly, if such a clause contained no aggregate functions we mistakenly
treated it as equivalent to WHERE.  Per spec it must cause the query to
be treated as a grouped query of a single group, the same as appearance
of aggregate functions would do.  Also, the HAVING filter must execute
after aggregate function computation even if it itself contains no
aggregate functions.
2005-03-10 23:21:26 +00:00
Bruce Momjian
754b5e1c42 More < and > changes to ampersands.
8.0.X and HEAD.
2005-01-22 23:22:19 +00:00
Tom Lane
a7abae4954 Fix subsection ordering (DISTINCT should be described before LIMIT). 2005-01-04 08:59:45 +00:00
Tom Lane
cc093bc3ad More minor updates and copy-editing. 2005-01-04 03:58:16 +00:00
Peter Eisentraut
49cbef7947 Update of conformance information to SQL:2003
by Troels Arvin, Simon Riggs, Elein Mustain

Make spelling of SQL standard names uniform.
2004-11-27 21:27:08 +00:00
Neil Conway
8295c27c89 Add documentation for the new "dollar quoting" feature, and update existing
examples to use dollar quoting when appropriate. Original patch from David
Fetter, additional work and editorializing by Neil Conway.
2004-05-16 23:22:08 +00:00
Neil Conway
80ec228389 Refer to GUC variables using <xref> tags rather than <varname> tags,
where appropriate. Add "id" and "xreflabel" tags to the descriptions
of the GUC variables to facilitate this. Also make a few minor docs
cleanups.
2004-03-09 16:57:47 +00:00
Neil Conway
c934cf1e96 Add a few more cross-references where appropriate, add more text about
the FROM clause and an example to the UPDATE reference page, and make
a few other SGML tweaks.
2004-03-03 22:22:24 +00:00
Neil Conway
81e9455150 This patch fixes a few more uppercase GUC vars. I also removed an
example from the RESET reference page because it seemed completely
redundant.
2003-12-14 00:15:03 +00:00
PostgreSQL Daemon
969685ad44 $Header: -> $PostgreSQL Changes ... 2003-11-29 19:52:15 +00:00
Tom Lane
bb06cbdb2c Copy-editing. 2003-11-04 00:34:45 +00:00
Peter Eisentraut
8442a92e5a Spell checking, consistent terminology. 2003-11-01 01:56:29 +00:00
Bruce Momjian
2a5b6a7c9b This patch fixes a few missed GUC variables that were still upper case,
makes a few more small improvements to runtime.sgml, and makes some SGML
conventions more consistent.

Neil Conway
2003-09-11 21:42:20 +00:00
Peter Eisentraut
c326d8f4f2 Add/edit index entries. 2003-08-31 17:32:24 +00:00
Tom Lane
4215947986 Update documentation to reflect the fact that ORDER BY, GROUP BY, etc
are now driven by the default btree opclass, rather than assuming that
particular operator names have the needed semantics.
2003-08-17 22:09:00 +00:00
Peter Eisentraut
d1b4327d02 Last round of reference page editing. 2003-05-04 02:23:16 +00:00
Peter Eisentraut
5e5c5cd31a Merge documentation into one book. (Build with "make html".) Replace
vague cross-references with real links.
2003-03-25 16:15:44 +00:00
Bruce Momjian
0fe77d7283 The documentation for SELECT is incorrect in a sense: the syntax for a
join is defined as:

from_item [ NATURAL ] join_type from_item
    [ ON join_condition | USING ( join_column_list ) ]

However, if the join_type is an INNER or OUTER join, an ON, USING, or
NATURAL clause *must* be specified (it's not optional, as that segment
of the docs suggest).

I'm not exactly sure what the best way to fix this is, so I've attached
a patch adding a FIXME comment to the relevant section of the SGML. If
anyone has any ideas on the proper way to outline join syntax, please
speak up.

Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
2003-03-20 19:00:01 +00:00
Bruce Momjian
be2b660ecd This patch includes a lot of minor cleanups to the SGML documentation,
including:

- replacing all the appropriate usages of <citetitle>PostgreSQL
...</citetitle> with &cite-user;, &cite-admin;, and so on

- fix an omission in the EXECUTE documentation

- add some more text to the EXPLAIN documentation

- improve the PL/PgSQL RETURN NEXT documentation (more work to do here)

- minor markup fixes


Neil Conway
2003-01-19 00:13:31 +00:00
Tom Lane
6b704bf501 Add note about sort order of character datatypes being locale-dependent,
per suggestion from Nicolaus Erichsen.
2002-10-24 21:19:15 +00:00
Tom Lane
fb9bc342ff Improve discussion of FOR UPDATE. 2002-10-18 18:26:22 +00:00
Peter Eisentraut
bc49968764 Add more appropriate markup. 2002-09-21 18:32:54 +00:00
Bruce Momjian
f7e089b3fa Back out password packet length check.
Improve wording of pre-7.3 syntax mention.
2002-08-30 16:00:41 +00:00
Bruce Momjian
cafebdd4d8 Add comment on old sytax for SELECT FOR UPDATE/LIMIT and COPY. 2002-08-30 03:18:23 +00:00
Tom Lane
64505ed58b Code review for standalone composite types, query-specified composite
types, SRFs.  Not happy with memory management yet, but I'll commit these
other changes.
2002-08-29 00:17:06 +00:00
Bruce Momjian
6077db92c2 Allow FOR UPDATE to appear after LIMIT/OFFSET to match MySQL syntax and as
a more logical ordering.
2002-08-28 14:35:37 +00:00
Bruce Momjian
88bd306832 > Neil Conway <nconway@klamath.dyndns.org> writes:
> > This patch improves the documentation of the UPDATE and ALTER TABLE
> > commands to elaborate on the effect of specifying an "ONLY" clause.
>
> Unfortunately this is still only half the truth ... see the
> SQL_INHERITANCE configuration variable.

Okay, I've attached an updated patch with more information on
SQL_INHERITANCE and inheritance behavior in prior releases.

Neil Conway
2002-08-15 02:59:18 +00:00
Bruce Momjian
9218689b69 Attached are two patches to implement and document anonymous composite
types for Table Functions, as previously proposed on HACKERS. Here is a
brief explanation:

1. Creates a new pg_type typtype: 'p' for pseudo type (currently either
     'b' for base or 'c' for catalog, i.e. a class).

2. Creates new builtin type of typtype='p' named RECORD. This is the
     first of potentially several pseudo types.

3. Modify FROM clause grammer to accept:
     SELECT * FROM my_func() AS m(colname1 type1, colname2 type1, ...)
     where m is the table alias, colname1, etc are the column names, and
     type1, etc are the column types.

4. When typtype == 'p' and the function return type is RECORD, a list
     of column defs is required, and when typtype != 'p', it is
disallowed.

5. A check was added to ensure that the tupdesc provide via the parser
     and the actual return tupdesc match in number and type of
attributes.

When creating a function you can do:
     CREATE FUNCTION foo(text) RETURNS setof RECORD ...

When using it you can do:
     SELECT * from foo(sqlstmt) AS (f1 int, f2 text, f3 timestamp)
       or
     SELECT * from foo(sqlstmt) AS f(f1 int, f2 text, f3 timestamp)
       or
     SELECT * from foo(sqlstmt) f(f1 int, f2 text, f3 timestamp)

Included in the patches are adjustments to the regression test sql and
expected files, and documentation.

p.s.
     This potentially solves (or at least improves) the issue of builtin
     Table Functions. They can be bootstrapped as returning RECORD, and
     we can wrap system views around them with properly specified column
     defs. For example:

     CREATE VIEW pg_settings AS
       SELECT s.name, s.setting
       FROM show_all_settings()AS s(name text, setting text);

     Then we can also add the UPDATE RULE that I previously posted to
     pg_settings, and have pg_settings act like a virtual table, allowing
     settings to be queried and set.


Joe Conway
2002-08-04 19:48:11 +00:00
Tom Lane
0c1fe3d2b9 Update SQL-command reference pages for schema features. 2002-04-23 02:07:16 +00:00
Peter Eisentraut
e6774dc355 Don't mark up as acronym that which is not an acronym. 2002-03-27 19:19:23 +00:00
Peter Eisentraut
b6ea172ace Spell checking and markup additions 2002-03-22 19:20:45 +00:00