1. 05 Dec, 2002 1 commit
    • Tom Lane's avatar
      Phase 1 of read-only-plans project: cause executor state nodes to point · 1fd0c59e
      Tom Lane authored
      to plan nodes, not vice-versa.  All executor state nodes now inherit from
      struct PlanState.  Copying of plan trees has been simplified by not
      storing a list of SubPlans in Plan nodes (eliminating duplicate links).
      The executor still needs such a list, but it can build it during
      ExecutorStart since it has to scan the plan tree anyway.
      No initdb forced since no stored-on-disk structures changed, but you
      will need a full recompile because of node-numbering changes.
      1fd0c59e
  2. 13 Nov, 2002 1 commit
  3. 11 Nov, 2002 1 commit
  4. 10 Nov, 2002 1 commit
  5. 14 Oct, 2002 1 commit
  6. 04 Sep, 2002 1 commit
  7. 02 Sep, 2002 1 commit
    • Tom Lane's avatar
      Code review for HeapTupleHeader changes. Add version number to page headers · c7a165ad
      Tom Lane authored
      (overlaying low byte of page size) and add HEAP_HASOID bit to t_infomask,
      per earlier discussion.  Simplify scheme for overlaying fields in tuple
      header (no need for cmax to live in more than one place).  Don't try to
      clear infomask status bits in tqual.c --- not safe to do it there.  Don't
      try to force output table of a SELECT INTO to have OIDs, either.  Get rid
      of unnecessarily complex three-state scheme for TupleDesc.tdhasoids, which
      has already caused one recent failure.  Improve documentation.
      c7a165ad
  8. 20 Jul, 2002 1 commit
    • Bruce Momjian's avatar
      oid is needed, it is added at the end of the struct (after the null · b0f5086e
      Bruce Momjian authored
      bitmap, if present).
      
      Per Tom Lane's suggestion the information whether a tuple has an oid
      or not is carried in the tuple descriptor.  For debugging reasons
      tdhasoid is of type char, not bool.  There are predefined values for
      WITHOID, WITHOUTOID and UNDEFOID.
      
      This patch has been generated against a cvs snapshot from last week
      and I don't expect it to apply cleanly to current sources.  While I
      post it here for public review, I'm working on a new version against a
      current snapshot.  (There's been heavy activity recently; hope to
      catch up some day ...)
      
      This is a long patch;  if it is too hard to swallow, I can provide it
      in smaller pieces:
      
      Part 1:  Accessor macros
      Part 2:  tdhasoid in TupDesc
      Part 3:  Regression test
      Part 4:  Parameter withoid to heap_addheader
      Part 5:  Eliminate t_oid from HeapTupleHeader
      
      Part 2 is the most hairy part because of changes in the executor and
      even in the parser;  the other parts are straightforward.
      
      Up to part 4 the patched postmaster stays binary compatible to
      databases created with an unpatched version.  Part 5 is small (100
      lines) and finally breaks compatibility.
      
      Manfred Koizar
      b0f5086e
  9. 20 Jun, 2002 1 commit
  10. 21 May, 2002 1 commit
    • Tom Lane's avatar
      Remove global variable scanCommandId in favor of storing a command ID · 959e61e9
      Tom Lane authored
      in snapshots, per my proposal of a few days ago.  Also, tweak heapam.c
      routines (heap_insert, heap_update, heap_delete, heap_mark4update) to
      be passed the command ID to use, instead of doing GetCurrentCommandID.
      For catalog updates they'll still get passed current command ID, but
      for updates generated from the main executor they'll get passed the
      command ID saved in the snapshot the query is using.  This should fix
      some corner cases associated with functions and triggers that advance
      current command ID while an outer query is still in progress.
      959e61e9
  11. 15 Apr, 2002 1 commit
    • Tom Lane's avatar
      The contents of command.c, creatinh.c, define.c, remove.c and rename.c · 71dc300a
      Tom Lane authored
      have been divided according to the type of object manipulated - so ALTER
      TABLE code is in tablecmds.c, aggregate commands in aggregatecmds.c and
      so on.
      
      A few common support routines remain in define.c (prototypes in
      src/include/commands/defrem.h).
      
      No code has been changed except for includes to reflect the new files.
      The prototypes for aggregatecmds.c, functioncmds.c, operatorcmds.c,
      and typecmds.c remain in src/include/commands/defrem.h.
      
      From John Gray <jgray@azuli.co.uk>
      71dc300a
  12. 21 Mar, 2002 1 commit
    • Tom Lane's avatar
      First phase of SCHEMA changes, concentrating on fixing the grammar and · 95ef6a34
      Tom Lane authored
      the parsetree representation.  As yet we don't *do* anything with schema
      names, just drop 'em on the floor; but you can enter schema-compatible
      command syntax, and there's even a primitive CREATE SCHEMA command.
      No doc updates yet, except to note that you can now extract a field
      from a function-returning-row's result with (foo(...)).fieldname.
      95ef6a34
  13. 27 Feb, 2002 1 commit
    • Tom Lane's avatar
      Clean up BeginCommand and related routines. BeginCommand and EndCommand · 6779c55c
      Tom Lane authored
      are now both invoked once per received SQL command (raw parsetree) from
      pg_exec_query_string.  BeginCommand is actually just an empty routine
      at the moment --- all its former operations have been pushed into tuple
      receiver setup routines in printtup.c.  This makes for a clean distinction
      between BeginCommand/EndCommand (once per command) and the tuple receiver
      setup/teardown routines (once per ExecutorRun call), whereas the old code
      was quite ad hoc.  Along the way, clean up the calling conventions for
      ExecutorRun a little bit.
      6779c55c
  14. 26 Feb, 2002 1 commit
    • Tom Lane's avatar
      Restructure command-completion-report code so that there is just one · 56ee2ecb
      Tom Lane authored
      report for each received SQL command, regardless of rewriting activity.
      Also ensure that this report comes from the 'original' command, not the
      last command generated by rewrite; this fixes 7.2 breakage for INSERT
      commands that have actions added by rules.  Fernando Nasser and Tom Lane.
      56ee2ecb
  15. 14 Feb, 2002 1 commit
  16. 03 Jan, 2002 1 commit
  17. 21 Nov, 2001 1 commit
  18. 10 Nov, 2001 1 commit
  19. 05 Nov, 2001 1 commit
  20. 25 Oct, 2001 1 commit
  21. 23 Oct, 2001 1 commit
  22. 05 Oct, 2001 1 commit
    • Tom Lane's avatar
      Further cleanup of dynahash.c API, in pursuit of portability and · 8a52b893
      Tom Lane authored
      readability.  Bizarre '(long *) TRUE' return convention is gone,
      in favor of just raising an error internally in dynahash.c when
      we detect hashtable corruption.  HashTableWalk is gone, in favor
      of using hash_seq_search directly, since it had no hope of working
      with non-LONGALIGNable datatypes.  Simplify some other code that was
      made undesirably grotty by promixity to HashTableWalk.
      8a52b893
  23. 02 Aug, 2001 2 commits
  24. 01 Jun, 2001 1 commit
  25. 21 May, 2001 1 commit
    • Jan Wieck's avatar
      Enhancement of SPI to get access to portals · d27f363e
      Jan Wieck authored
      - New functions to create a portal using a prepared/saved
        SPI plan or lookup an existing portal by name.
      - Functions to fetch/move from/in portals. Results are placed
        in the usual SPI_processed and SPI_tuptable, so the entire
        set of utility functions can be used to gain attribute access.
      - Prepared/saved SPI plans now use their own memory context
        and SPI_freeplan(plan) can remove them.
      - Tuple result sets (SPI_tuptable) now uses it's own memory
        context and can be free'd by SPI_freetuptable(tuptab).
      
      Enhancement of PL/pgSQL
      
      - Uses generic named portals internally in FOR ... SELECT
        loops to avoid running out of memory on huge result sets.
      - Support for CURSOR and REFCURSOR syntax using the new SPI
        functionality. Cursors used internally only need no explicit
        transaction block. Refcursor variables can be used inside
        of explicit transaction block to pass cursors between main
        application and functions.
      
      
      Jan
      d27f363e
  26. 22 Mar, 2001 1 commit
  27. 19 Feb, 2001 1 commit
  28. 04 Jan, 2001 1 commit
  29. 01 Dec, 2000 1 commit
  30. 16 Nov, 2000 1 commit
  31. 26 Oct, 2000 1 commit
  32. 28 Jun, 2000 1 commit
    • Tom Lane's avatar
      First phase of memory management rewrite (see backend/utils/mmgr/README · 1aebc361
      Tom Lane authored
      for details).  It doesn't really do that much yet, since there are no
      short-term memory contexts in the executor, but the infrastructure is
      in place and long-term contexts are handled reasonably.  A few long-
      standing bugs have been fixed, such as 'VACUUM; anything' in a single
      query string crashing.  Also, out-of-memory is now considered a
      recoverable ERROR, not FATAL.
      Eliminate a large amount of crufty, now-dead code in and around
      memory management.
      Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and
      backend startup.
      1aebc361
  33. 30 May, 2000 1 commit
  34. 04 Apr, 2000 1 commit
    • Tom Lane's avatar
      Fix bug noted by Bruce: FETCH in an already-aborted transaction block · 708f82f1
      Tom Lane authored
      would crash, due to premature invocation of SetQuerySnapshot().  Clean
      up problems with handling of multiple queries by splitting
      pg_parse_and_plan into two routines.  The old code would not, for
      example, do the right thing with END; SELECT... submitted in one query
      string when it had been in transaction abort state, because it'd decide
      to skip planning the SELECT before it had executed the END.  New
      arrangement is simpler and doesn't force caller to plan if only
      parse+rewrite is needed.
      708f82f1
  35. 16 Dec, 1999 1 commit
  36. 10 Dec, 1999 1 commit
  37. 22 Nov, 1999 1 commit
  38. 07 Nov, 1999 1 commit
  39. 15 Jul, 1999 1 commit