1. 04 Apr, 2003 1 commit
  2. 03 Apr, 2003 7 commits
  3. 02 Apr, 2003 6 commits
  4. 01 Apr, 2003 3 commits
  5. 31 Mar, 2003 4 commits
  6. 30 Mar, 2003 4 commits
  7. 29 Mar, 2003 3 commits
  8. 28 Mar, 2003 4 commits
  9. 27 Mar, 2003 8 commits
    • Tom Lane's avatar
      Fix bogus coding of SET DEFAULT ri triggers ... or at least make it less · 1bd159e4
      Tom Lane authored
      bogus than it was.  Per bug report from Adrian Pop.
      1bd159e4
    • Bruce Momjian's avatar
      Add <stdlib> to add calloc() prototype. · 15b9e2c5
      Bruce Momjian authored
      15b9e2c5
    • Bruce Momjian's avatar
      6f2d02d3
    • Bruce Momjian's avatar
      It may not be obvious to you, but the plpython regression tests · 9b59ddfb
      Bruce Momjian authored
      include output that vary depending on the python build one is
      running. Basically, the order of keys in a dictionary is
      non-deterministic, and that part of the test fails for me regularly.
      
      I rewrote the test to work around this problem, and include a patch
      file with that change and the change to the expected otuput as well.
      
      Mike Meyer
      9b59ddfb
    • Bruce Momjian's avatar
      New \d format: · c75d6548
      Bruce Momjian authored
      Example:
      
      test=# \d test
           Table "public.test"
       Column |  Type   | Modifiers
      --------+---------+-----------
       a      | integer | not null
      Indexes:
          "test_pkey" PRIMARY KEY btree (a)
      Check Constraints:
          "$2" CHECK (a > 1)
      Foreign Key Constraints:
          "$1" FOREIGN KEY (a) REFERENCES parent(b)
      Rules:
          myrule AS ON INSERT TO test DO INSTEAD NOTHING
      Triggers:
          "asdf asdf" AFTER INSERT OR DELETE ON test FOR EACH STATEMENT EXECUTE
      PROCEDURE update_pg_pwd_and_pg_group(),
          mytrigger AFTER INSERT OR DELETE ON test FOR EACH ROW EXECUTE PROCEDURE
      update_pg_pwd_and_pg_group()
      
      I have minimised the double quoting of identifiers as much as I could
      easily, and I will submit another patch when I have time to work on it that
      will use a 'fmtId' function to determine it exactly.
      
      I think it's a significant improvement in legibility...
      
      Obviously the table example above is slightly degenerate in that not many
      tables in production have heaps of (non-constraint) triggers and rules.
      
      Christopher Kings-Lynne
      c75d6548
    • Bruce Momjian's avatar
      Add new file. · 5e8499d9
      Bruce Momjian authored
      5e8499d9
    • Bruce Momjian's avatar
      Add new files. · 4b0b8dad
      Bruce Momjian authored
      4b0b8dad
    • Bruce Momjian's avatar
      This patch implements holdable cursors, following the proposal · 54f7338f
      Bruce Momjian authored
      (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