1. 07 8月, 2003 1 次提交
  2. 04 8月, 2003 2 次提交
  3. 09 5月, 2003 1 次提交
    • T
      Update 3.0 protocol support to match recent agreements about how to · c0a8c3ac
      Tom Lane 提交于
      handle multiple 'formats' for data I/O.  Restructure CommandDest and
      DestReceiver stuff one more time (it's finally starting to look a bit
      clean though).  Code now matches latest 3.0 protocol document as far
      as message formats go --- but there is no support for binary I/O yet.
      c0a8c3ac
  4. 07 5月, 2003 1 次提交
    • T
      Restructure command destination handling so that we pass around · 79913910
      Tom Lane 提交于
      DestReceiver pointers instead of just CommandDest values.  The DestReceiver
      is made at the point where the destination is selected, rather than
      deep inside the executor.  This cleans up the original kluge implementation
      of tstoreReceiver.c, and makes it easy to support retrieving results
      from utility statements inside portals.  Thus, you can now do fun things
      like Bind and Execute a FETCH or EXPLAIN command, and it'll all work
      as expected (e.g., you can Describe the portal, or use Execute's count
      parameter to suspend the output partway through).  Implementation involves
      stuffing the utility command's output into a Tuplestore, which would be
      kind of annoying for huge output sets, but should be quite acceptable
      for typical uses of utility commands.
      79913910
  5. 06 5月, 2003 1 次提交
    • T
      Implement feature of new FE/BE protocol whereby RowDescription identifies · 2cf57c8f
      Tom Lane 提交于
      the column by table OID and column number, if it's a simple column
      reference.  Along the way, get rid of reskey/reskeyop fields in Resdoms.
      Turns out that representation was not convenient for either the planner
      or the executor; we can make the planner deliver exactly what the
      executor wants with no more effort.
      initdb forced due to change in stored rule representation.
      2cf57c8f
  6. 05 5月, 2003 1 次提交
  7. 19 4月, 2003 1 次提交
  8. 28 3月, 2003 1 次提交
    • B
      This patch implements holdable cursors, following the proposal · 54f7338f
      Bruce Momjian 提交于
      (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
      54f7338f
  9. 05 9月, 2002 1 次提交
  10. 21 6月, 2002 1 次提交
  11. 28 2月, 2002 1 次提交
    • T
      Clean up BeginCommand and related routines. BeginCommand and EndCommand · 6779c55c
      Tom Lane 提交于
      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
  12. 27 2月, 2002 1 次提交
    • T
      Restructure command-completion-report code so that there is just one · 56ee2ecb
      Tom Lane 提交于
      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
  13. 06 11月, 2001 1 次提交
  14. 28 10月, 2001 1 次提交
  15. 25 10月, 2001 1 次提交
  16. 25 1月, 2001 1 次提交
  17. 08 7月, 2000 1 次提交
  18. 26 1月, 2000 1 次提交
    • B
      Add: · 5c25d602
      Bruce Momjian 提交于
        * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
      
      to all files copyright Regents of Berkeley.  Man, that's a lot of files.
      5c25d602
  19. 16 7月, 1999 1 次提交
  20. 15 7月, 1999 1 次提交
  21. 26 5月, 1999 2 次提交
  22. 14 2月, 1999 1 次提交
  23. 27 1月, 1999 1 次提交
  24. 01 9月, 1998 2 次提交
  25. 07 5月, 1998 1 次提交
    • B
      What I've done: · edbd5139
      Bruce Momjian 提交于
      1. Rewritten libpq to allow asynchronous clients.
      
      2. Implemented client side of cancel protocol in library,
         and patched psql.c to send a cancel request upon SIGINT.  The
         backend doesn't notice it yet :-(
      
      3. Implemented 'Z' protocol message addition and renaming of
         copy in/out start messages.  These are implemented conditionally,
         ie, the client protocol version is checked; so the code should
         still work with 1.0 clients.
      
      4. Revised protocol and libpq sgml documents (don't have an SGML
         compiler, though, so there may be some markup glitches here).
      
      
      What remains to be done:
      
      1. Implement addition of atttypmod field to RowDescriptor messages.
         The client-side code is there but ifdef'd out.  I have no idea
         what to change on the backend side.  The field should be sent
         only if protocol >= 2.0, of course.
      
      2. Implement backend response to cancel requests received as OOB
         messages.  (This prolly need not be conditional on protocol
         version; just do it if you get SIGURG.)
      
      3. Update libpq.3.  (I'm hoping this can be generated mechanically
         from libpq.sgml... if not, will do it by hand.)  Is there any
         other doco to fix?
      
      4. Update non-libpq interfaces as necessary.  I patched libpgtcl
         so that it would compile, but haven't tested it.  Dunno what
         needs to be done with the other interfaces.
      
      Have at it!
      
      Tom Lane
      edbd5139
  26. 26 2月, 1998 1 次提交
  27. 25 1月, 1998 1 次提交
  28. 09 9月, 1997 1 次提交
  29. 08 9月, 1997 1 次提交
  30. 07 9月, 1997 1 次提交
  31. 29 8月, 1997 1 次提交
  32. 27 8月, 1997 1 次提交
  33. 20 8月, 1997 1 次提交
  34. 08 1月, 1997 1 次提交
  35. 10 11月, 1996 1 次提交
  36. 04 11月, 1996 1 次提交
  37. 03 11月, 1996 1 次提交