Skip to content
Snippets Groups Projects
  1. Jun 11, 2003
  2. Jun 10, 2003
  3. May 30, 2003
    • Tom Lane's avatar
      Ensure that in all flex lexers that are part of the backend, a · 5666462f
      Tom Lane authored
      yy_fatal_error() call results in elog(ERROR) not exit().  This was
      already fixed in the main lexer and plpgsql, but extend same technique
      to all the other dot-l files.  Also, on review of the possible calls
      to yy_fatal_error(), it seems safe to use elog(ERROR) not elog(FATAL).
      5666462f
  4. May 28, 2003
    • Tom Lane's avatar
      Replace functional-index facility with expressional indexes. Any column · fc8d970c
      Tom Lane authored
      of an index can now be a computed expression instead of a simple variable.
      Restrictions on expressions are the same as for predicates (only immutable
      functions, no sub-selects).  This fixes problems recently introduced with
      inlining SQL functions, because the inlining transformation is applied to
      both expression trees so the planner can still match them up.  Along the
      way, improve efficiency of handling index predicates (both predicates and
      index expressions are now cached by the relcache) and fix 7.3 oversight
      that didn't record dependencies of predicate expressions.
      fc8d970c
  5. May 27, 2003
  6. May 26, 2003
    • Tom Lane's avatar
      Cause CHAR(n) to TEXT or VARCHAR conversion to automatically strip trailing · f45df8c0
      Tom Lane authored
      blanks, in hopes of reducing the surprise factor for newbies.  Remove
      redundant operators for VARCHAR (it depends wholly on TEXT operations now).
      Clean up resolution of ambiguous operators/functions to avoid surprising
      choices for domains: domains are treated as equivalent to their base types
      and binary-coercibility is no longer considered a preference item when
      choosing among multiple operators/functions.  IsBinaryCoercible now correctly
      reflects the notion that you need *only* relabel the type to get from type
      A to type B: that is, a domain is binary-coercible to its base type, but
      not vice versa.  Various marginal cleanup, including merging the essentially
      duplicate resolution code in parse_func.c and parse_oper.c.  Improve opr_sanity
      regression test to understand about binary compatibility (using pg_cast),
      and fix a couple of small errors in the catalogs revealed thereby.
      Restructure "special operator" handling to fetch operators via index opclasses
      rather than hardwiring assumptions about names (cleans up the pattern_ops
      stuff a little).
      f45df8c0
  7. May 19, 2003
  8. May 16, 2003
  9. May 14, 2003
  10. 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
  11. Mar 31, 2003
  12. Mar 28, 2003
  13. 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
  14. Mar 23, 2003
  15. 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
  16. Mar 10, 2003
  17. 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
  18. 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
  19. 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
  20. 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
  21. Jan 15, 2003
  22. Jan 09, 2003
  23. Jan 07, 2003
  24. Dec 31, 2002
  25. Dec 27, 2002
Loading