32 Commits

Author SHA1 Message Date
Tom Lane
d4019b7cd3 Remove a bunch of content-free Diagnostics sections, as per previous
discussion.  (Still have some work to do editing the remainder.)
2003-09-09 18:28:53 +00:00
Peter Eisentraut
c326d8f4f2 Add/edit index entries. 2003-08-31 17:32:24 +00:00
Peter Eisentraut
693aad413b Change warnings for non-existing or pre-existing cursors to errors. 2003-08-24 21:02:43 +00:00
Peter Eisentraut
d1b4327d02 Last round of reference page editing. 2003-05-04 02:23:16 +00:00
Bruce Momjian
54f7338fa1 This patch implements holdable cursors, following the proposal
(materialization into a tuple store) discussed on pgsql-hackers earlier.
I've updated the documentation and the regression tests.

Notes on the implementation:

- I needed to change the tuple store API slightly -- it assumes that it
won't be used to hold data across transaction boundaries, so the temp
files that it uses for on-disk storage are automatically reclaimed at
end-of-transaction. I added a flag to tuplestore_begin_heap() to control
this behavior. Is changing the tuple store API in this fashion OK?

- in order to store executor results in a tuple store, I added a new
CommandDest. This works well for the most part, with one exception: the
current DestFunction API doesn't provide enough information to allow the
Executor to store results into an arbitrary tuple store (where the
particular tuple store to use is chosen by the call site of
ExecutorRun). To workaround this, I've temporarily hacked up a solution
that works, but is not ideal: since the receiveTuple DestFunction is
passed the portal name, we can use that to lookup the Portal data
structure for the cursor and then use that to get at the tuple store the
Portal is using. This unnecessarily ties the Portal code with the
tupleReceiver code, but it works...

The proper fix for this is probably to change the DestFunction API --
Tom suggested passing the full QueryDesc to the receiveTuple function.
In that case, callers of ExecutorRun could "subclass" QueryDesc to add
any additional fields that their particular CommandDest needed to get
access to. This approach would work, but I'd like to think about it for
a little bit longer before deciding which route to go. In the mean time,
the code works fine, so I don't think a fix is urgent.

- (semi-related) I added a NO SCROLL keyword to DECLARE CURSOR, and
adjusted the behavior of SCROLL in accordance with the discussion on
-hackers.

- (unrelated) Cleaned up some SGML markup in sql.sgml, copy.sgml

Neil Conway
2003-03-27 16:51:29 +00:00
Tom Lane
6261c75014 Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n options
for FETCH and MOVE.
2003-03-11 19:40:24 +00:00
Tom Lane
aa83bc04e0 Restructure parsetree representation of DECLARE CURSOR: now it's a
utility statement (DeclareCursorStmt) with a SELECT query dangling from
it, rather than a SELECT query with a few unusual fields in it.  Add
code to determine whether a planned query can safely be run backwards.
If DECLARE CURSOR specifies SCROLL, ensure that the plan can be run
backwards by adding a Materialize plan node if it can't.  Without SCROLL,
you get an error if you try to fetch backwards from a cursor that can't
handle it.  (There is still some discussion about what the exact
behavior should be, but this is necessary infrastructure in any case.)
Along the way, make EXPLAIN DECLARE CURSOR work.
2003-03-10 03:53:52 +00:00
Bruce Momjian
bf4bf092e5 Revert doc change so we mention moving past the last row of a cursor. 2003-02-04 11:23:58 +00:00
Bruce Momjian
802a4d4111 Change MOVE LAST to MOVE ALL.
Standard says FETCH LAST is after last row, and we don't do that.
2003-02-03 14:04:24 +00:00
Tom Lane
061168d38f Code review for FETCH/MOVE 0 changes. Improve documentation, do the
right thing with the destination when FETCH 0 can't return a row,
don't try to stuff LONG_MAX into an int value.
2003-01-08 00:22:27 +00:00
Bruce Momjian
33f0108df8 Cause FETCH 1 to return the current cursor row, or zero if at
beginning/end of cursor.

Have MOVE return 0/1 depending on cursor position.

Matches SQL spec.

Pass cursor counter from parser as a long rather than int.

Doc updates.
2002-12-30 15:31:51 +00:00
Thomas G. Lockhart
c05f29e895 Augment the date/time examples in the User's Guide to reflect the newer
capabilities of specifying time zones as intervals per SQL9x.
Put refentrytitle contents on the same line as the tag.
 Otherwise, leading whitespace is propagated into the product, which
 (at least) messes up the ToC layout.
Remove (some) docinfo tags containing dates. Best to omit if the dates
 are not accurate; maybe use CVS dates instead or leave them out.
2002-04-21 19:02:39 +00:00
Bruce Momjian
3c0d21a28e Update reference pages for new INFO, NOTICE, WARNING elog() levels. 2002-03-06 06:48:05 +00:00
Bruce Momjian
e3e41a648d Small spacing cleanup. 2002-02-21 22:42:04 +00:00
Bruce Momjian
3a95427d42 Wrap some SQL syntax examples so \h shows them better. 2002-02-21 22:39:36 +00:00
Thomas G. Lockhart
03a321d214 Use PostgreSQL consistantly throughout docs. Before, usage was split evenly
between Postgres and PostgreSQL.
2001-12-08 03:24:40 +00:00
Peter Eisentraut
351a0c1736 Replace ASCII-quotes with proper markup. 2001-09-13 15:55:24 +00:00
Peter Eisentraut
89a1ea4207 Put some kind of grammatical uniformity in the <refpurpose> lines. 2001-09-03 12:57:50 +00:00
Peter Eisentraut
dccfd74935 Refine some things to create better looking man pages. 2000-12-25 23:15:27 +00:00
Bruce Momjian
b32685a999 Add proofreader's changes to docs.
Fix misspelling of disbursion to dispersion.
2000-10-05 19:48:34 +00:00
Bruce Momjian
4140085adb spell cleanups 2000-07-22 04:30:27 +00:00
Bruce Momjian
ec37ea1cc1 Cleanups 2000-07-22 02:39:10 +00:00
Bruce Momjian
eead0e77a4 Update SGML for FETCH and url's. 2000-05-11 17:32:33 +00:00
Bruce Momjian
ca6c98dbe1 Remove from FETCH manual page:
Once  all  rows  are  fetched,  every  other  fetch access
       returns no rows.
2000-04-04 19:29:18 +00:00
Peter Eisentraut
4579e68db2 Updated user's guide to match new psql's output format
Fixed bug in createdb/alternative location
2000-03-26 18:32:30 +00:00
Thomas G. Lockhart
a27512e634 Complete merge of all old man page information.
ecpg reference page still needs formatting.
1999-07-22 15:09:15 +00:00
Thomas G. Lockhart
a4ac2f458e Fix markup for docbook2man man page generation.
No big deal; fixed lots of other markup at the same time.
Bigest change: make sure there is no whitespace
 in front of <term> contents.
This will probably help the other output types too.
1999-07-06 17:16:42 +00:00
Thomas G. Lockhart
a75f2d21a8 Clean up to ensure tag completion as required by the newest versions
of Norm's Modular Style Sheets and jade/docbook.
From Vince Vielhaber <vev@michvhf.com>.
1998-12-29 02:24:47 +00:00
Thomas G. Lockhart
3d83e28b2b Minor cleanup in markup, especially in the Output section. 1998-10-30 19:34:40 +00:00
Thomas G. Lockhart
f8b6b5f14f Cleanup markup and minor editing to prepare for first release. 1998-09-25 13:42:46 +00:00
Thomas G. Lockhart
95af0cb9bb Fix Postgres to support SQL92 syntax. Old syntax still works too. 1998-09-07 15:56:20 +00:00
Thomas G. Lockhart
7d1e32b51c Add new reference pages adapted from Jose'. 1998-09-05 06:02:57 +00:00