Skip to content
Snippets Groups Projects
  1. May 02, 2003
    • Tom Lane's avatar
      Portal and memory management infrastructure for extended query protocol. · de28dc9a
      Tom Lane authored
      Both plannable queries and utility commands are now always executed
      within Portals, which have been revamped so that they can handle the
      load (they used to be good only for single SELECT queries).  Restructure
      code to push command-completion-tag selection logic out of postgres.c,
      so that it won't have to be duplicated between simple and extended queries.
      initdb forced due to addition of a field to Query nodes.
      de28dc9a
  2. Mar 31, 2003
  3. Mar 28, 2003
  4. Mar 27, 2003
    • 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
  5. Mar 23, 2003
  6. Mar 20, 2003
    • Bruce Momjian's avatar
      please apply attached patch to current CVS. · e0d043b9
      Bruce Momjian authored
      btree_gist now supports int2 !
      Thanks Janko Richter for contribution.
      e0d043b9
    • Bruce Momjian's avatar
      I have updated my pg_autovacuum program (formerly pg_avd, the name · bd18c50b
      Bruce Momjian authored
      changed as per discussion on the patches list).
      
      This version should be a good bit better.  It addresses all the issues
      pointed out by Neil Conway. Vacuum and Analyze are now handled
      separately.  It now monitors for xid wraparound.  The number of database
      connections and queries has been significantly reduced compared the
      previous version.  I have moved it from bin to contrib.  More detail on
      the changes are in the TODO file.
      
      I have not tested the xid wraparound code as I have to let my AthlonXP
      1600 run select 1 in a tight loop for approx. two days in order to
      perform the required 500,000,000 xacts.
      
      Matthew T. O'Connor
      bd18c50b
    • Bruce Momjian's avatar
      Attached is an update to contrib/tablefunc. It implements a new hashed · 64d0b8b0
      Bruce Momjian authored
      version of crosstab. This fixes a major deficiency in real-world use of
      the original version. Easiest to undestand with an illustration:
      
      Data:
      -------------------------------------------------------------------
      select * from cth;
        id | rowid |        rowdt        |   attribute    |      val
      ----+-------+---------------------+----------------+---------------
         1 | test1 | 2003-03-01 00:00:00 | temperature    | 42
         2 | test1 | 2003-03-01 00:00:00 | test_result    | PASS
         3 | test1 | 2003-03-01 00:00:00 | volts          | 2.6987
         4 | test2 | 2003-03-02 00:00:00 | temperature    | 53
         5 | test2 | 2003-03-02 00:00:00 | test_result    | FAIL
         6 | test2 | 2003-03-02 00:00:00 | test_startdate | 01 March 2003
         7 | test2 | 2003-03-02 00:00:00 | volts          | 3.1234
      (7 rows)
      
      Original crosstab:
      -------------------------------------------------------------------
      SELECT * FROM crosstab(
         'SELECT rowid, attribute, val FROM cth ORDER BY 1,2',4)
      AS c(rowid text, temperature text, test_result text, test_startdate
      text, volts text);
        rowid | temperature | test_result | test_startdate | volts
      -------+-------------+-------------+----------------+--------
        test1 | 42          | PASS        | 2.6987         |
        test2 | 53          | FAIL        | 01 March 2003  | 3.1234
      (2 rows)
      
      Hashed crosstab:
      -------------------------------------------------------------------
      SELECT * FROM crosstab(
         'SELECT rowid, attribute, val FROM cth ORDER BY 1',
         'SELECT DISTINCT attribute FROM cth ORDER BY 1')
      AS c(rowid text, temperature int4, test_result text, test_startdate
      timestamp, volts float8);
        rowid | temperature | test_result |   test_startdate    | volts
      -------+-------------+-------------+---------------------+--------
        test1 |          42 | PASS        |                     | 2.6987
        test2 |          53 | FAIL        | 2003-03-01 00:00:00 | 3.1234
      (2 rows)
      
      Notice that the original crosstab slides data over to the left in the
      result tuple when it encounters missing data. In order to work around
      this you have to be make your source sql do all sorts of contortions
      (cartesian join of distinct rowid with distinct attribute; left join
      that back to the real source data). The new version avoids this by
      building a hash table using a second distinct attribute query.
      
      The new version also allows for "extra" columns (see the README) and
      allows the result columns to be coerced into differing datatypes if they
      are suitable (as shown above).
      
      In testing a "real-world" data set (69 distinct rowid's, 27 distinct
      categories/attributes, multiple missing data points) I saw about a
      5-fold improvement in execution time (from about 2200 ms old, to 440 ms
      new).
      
      I left the original version intact because: 1) BC, 2) it is probably
      slightly faster if you know that you have no missing attributes.
      
      README and regression test adjustments included. If there are no
      objections, please apply.
      
      Joe Conway
      64d0b8b0
    • Bruce Momjian's avatar
      Just some fixups to a couple contrib directories I was trying out. · ee303739
      Bruce Momjian authored
      . replace CREATE OR REPLACE AGGREGATE with a separate DROP and CREATE
      . add DROP for all CREATE OPERATORs
      . use IMMUTABLE and STRICT instead of WITH (isStrict)
      . add IMMUTABLE and STRICT to int_array_aggregate's accumulator function
      
      Gregory Stark
      ee303739
    • Bruce Momjian's avatar
      The attatched patch fixes a memory error with contrib/dbmirror/pending.c · 900fa3d0
      Bruce Momjian authored
      when running it with older(Pre 7.3.x) versions of Postgresql.
      
      Backpatched to 7.3.X.
      
      Steven Singer
      900fa3d0
  7. Mar 10, 2003
  8. Mar 09, 2003
    • Tom Lane's avatar
      Revise tuplestore and nodeMaterial so that we don't have to read the · aa60eecc
      Tom Lane authored
      entire contents of the subplan into the tuplestore before we can return
      any tuples.  Instead, the tuplestore holds what we've already read, and
      we fetch additional rows from the subplan as needed.  Random access to
      the previously-read rows works with the tuplestore, and doesn't affect
      the state of the partially-read subplan.  This is a step towards fixing
      the problems with cursors over complex queries --- we don't want to
      stick in Materialize nodes if they'll prevent quick startup for a cursor.
      aa60eecc
  9. Feb 19, 2003
    • Bruce Momjian's avatar
      Please apply patches for contrib/ltree. · 71e1f531
      Bruce Momjian authored
      ltree_73.patch.gz - for 7.3 :
              Fix ~ operation bug: eg '1.1.1' ~ '*.1'
      
      ltree_74.patch.gz - for current CVS
          Fix ~ operation bug: eg '1.1.1' ~ '*.1'
          Add ? operation
          Optimize index storage
      
      Last change needs drop/create all ltree indexes, so only for 7.4
      
      Teodor Sigaev
      71e1f531
    • Bruce Momjian's avatar
      We just released new version of contrib/btree_gist · 4efbbd73
      Bruce Momjian authored
      (7.3 and current CVS) with support of int8, float4, float8
      in addition to int4. Thanks Janko Richter for contribution.
      
      Oleg Bartunov
      4efbbd73
  10. Feb 13, 2003
    • Bruce Momjian's avatar
      The attached patches change earthdistance to use the new cube functions · 9ccaaf67
      Bruce Momjian authored
      in one of the earth functions so that latitude and longitude to
      cartesian coordinates conversion will be more accurrate. (Previously
      a text string was built to provide as input which limited the accuracy
      to the number of digits printed.)
      
      The new functions were included in a recent patch to contrib/cube that has not
      as yet been accepted as of yet.
      
      I also added check constraints to the domain 'earth' since they are now
      working in 7.4.
      
      Bruno Wolff III
      9ccaaf67
    • Bruce Momjian's avatar
      The attached patch provides cube with 4 functions for building cubes · 80b3513d
      Bruce Momjian authored
      directly from float8 values. (As opposed to converting the values to
      strings
      and then parsing the strings.)
      The functions are:
      cube(float8) returns cube
      cube(float8,float8) returns cube
      cube(cube,float8) returns cube
      cube(cube,float8,float8) returns cube
      
      Bruno Wolff III
      80b3513d
  11. Jan 31, 2003
    • Tom Lane's avatar
      Tweak bison build rules so that we get the same error messages from · 9d007987
      Tom Lane authored
      bison 1.875 and later as we did from earlier bison releases.  Eventually
      we will probably want to adopt the newer message spelling ... but not yet.
      Per recent discussion on pgpatches.
      Note: I didn't change the build rules for bootstrap, ecpg, or plpgsql
      grammars, since these do not affect regression test results.
      9d007987
  12. Jan 15, 2003
  13. Jan 09, 2003
  14. Jan 07, 2003
  15. Dec 31, 2002
  16. Dec 27, 2002
  17. Dec 13, 2002
  18. Dec 10, 2002
  19. Dec 09, 2002
    • Bruce Momjian's avatar
      I've simplified the Darwin/Mac OS X startup script I submitted earlier · b842726f
      Bruce Momjian authored
      in the year. This version has only the two files required by the Darwin
      startup bundle design. Plus the sh script now uses Darwin-standard
      functions to start up PostgreSQL, and it checks for the presence of a
      variable in /etc/hostconfig, as do other Darwin startup scripts.
      
      I suggest that a new directory be created,
      contrib/start-scripts/darwin, and that these two files be put into it.
      Folks who want to use the script can read the comments inside it to
      figure out how to use it.
      
      David Wheeler
      b842726f
  20. Dec 06, 2002
    • Bruce Momjian's avatar
      Thank you very much, you catch it :). This bug had a long life, because it · a2bd3e20
      Bruce Momjian authored
      exists if and only if locale of postmaster
      was a different from C (or ru_RU.KOI8-R).
      
      Please, apply patch for current CVS & 7.3.1
      
      Magnus Naeslund(f) wrote:
      > Ok, I nailed the bug, but i'm not sure what the correct fix is.
      > Attached tsearch_morph.diff that remedies this problem by avoiding it.
      > Also there's a debug aid patch if someone would like to know how i
      > finally found it out :)
      >
      > There problem in the lemmatize() function is that GETDICT(...) returned
      > a value not handled (BYLOCALE).
      > The value (-1) and later used as an index into the dicts[] array.
      > After that everything went berserk stack went crazy somehow so trapping
      > the fault sent me to the wrong place, and every time i read the value it
      > was positive ;)
      >
      > So now i just return the initial word passed to the lemmatize function,
      > because i don't know what to do with it.
      
      Magnus Naeslund
      a2bd3e20
    • Bruce Momjian's avatar
      Some time ago John Gray <jgray@azuli.co.uk> and myself worked out and · 87cba401
      Bruce Momjian authored
      tested a patch to contrib/xml where the existing code was causing
      postgres to crash when it encountered & entities in the XML. I've
      enclosed a patch that John came up with to correct this problem. It
      patches against 7.3 and will apply on 7.2x if the elog WARNING calls
      are changed to elog NOTICE.
      
      Michael Richards
      87cba401
  21. Dec 05, 2002
  22. Dec 03, 2002
  23. Dec 02, 2002
  24. Nov 27, 2002
  25. Nov 26, 2002
  26. Nov 23, 2002
Loading