Skip to content
Snippets Groups Projects
  1. Feb 24, 2010
    • Tom Lane's avatar
      Allow zero-dimensional (ie, empty) arrays in contrib/ltree operations. · 29d2f86a
      Tom Lane authored
      The main motivation for changing this is bug #4921, in which it's pointed out
      that it's no longer safe to apply ltree operations to the result of
      ARRAY(SELECT ...) if the sub-select might return no rows.  Before 8.3,
      the ARRAY() construct would return NULL, which might or might not be helpful
      but at least it wouldn't result in an error.  Now it returns an empty array
      which results in a failure for no good reason, since the ltree operations
      are all perfectly capable of dealing with zero-element arrays.
      
      As far as I can find, these ltree functions are the only places where zero
      array dimensionality is rejected unnecessarily.
      
      Back-patch to 8.3 to prevent behavioral regression of queries that worked
      in older releases.
      29d2f86a
  2. Jun 11, 2009
  3. Jun 30, 2008
  4. May 17, 2008
    • Andrew Dunstan's avatar
      Add $PostgreSQL$ markers to a lot of files that were missing them. · 53972b46
      Andrew Dunstan authored
      This particular batch was just for *.c and *.h file.
      
      The changes were made with the following 2 commands:
      
      find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o  \( -name '*.[ch]'  \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | while read file ; do head -n 1 < $file | grep -q '^/\*' && echo $file; done | xargs -l sed -i -e '1s/^\// /' -e '1i/*\n * $PostgreSQL:$ \n *'
      
      find . \( \( -name 'libstemmer' -o -name 'expected' -o -name 'ppport.h' \) -prune \) -o  \( -name '*.[ch]'  \) \( -exec grep -q '\$PostgreSQL' {} \; -o -print \) | xargs -l sed -i -e '1i/*\n * $PostgreSQL:$ \n */'
      53972b46
  5. May 12, 2008
    • Alvaro Herrera's avatar
      Restructure some header files a bit, in particular heapam.h, by removing some · f8c4d7db
      Alvaro Herrera authored
      unnecessary #include lines in it.  Also, move some tuple routine prototypes and
      macros to htup.h, which allows removal of heapam.h inclusion from some .c
      files.
      
      For this to work, a new header file access/sysattr.h needed to be created,
      initially containing attribute numbers of system columns, for pg_dump usage.
      
      While at it, make contrib ltree, intarray and hstore header files more
      consistent with our header style.
      f8c4d7db
  6. Apr 14, 2008
    • Tom Lane's avatar
      Push index operator lossiness determination down to GIST/GIN opclass · 9b5c8d45
      Tom Lane authored
      "consistent" functions, and remove pg_amop.opreqcheck, as per recent
      discussion.  The main immediate benefit of this is that we no longer need
      8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery
      searches on GIN indexes.  In future it should be possible to optimize some
      other queries better than is done now, by detecting at runtime whether the
      index match is exact or not.
      
      Tom Lane, after an idea of Heikki's, and with some help from Teodor.
      9b5c8d45
  7. Apr 12, 2008
    • Tom Lane's avatar
      Fix several datatype input functions that were allowing unused bytes in their · c846f7ca
      Tom Lane authored
      results to contain uninitialized, unpredictable values.  While this was okay
      as far as the datatypes themselves were concerned, it's a problem for the
      parser because occurrences of the "same" literal might not be recognized as
      equal by datumIsEqual (and hence not by equal()).  It seems sufficient to fix
      this in the input functions since the only critical use of equal() is in the
      parser's comparisons of ORDER BY and DISTINCT expressions.
      Per a trouble report from Marc Cousin.
      
      Patch all the way back.  Interestingly, array_in did not have the bug before
      8.2, which may explain why the issue went unnoticed for so long.
      c846f7ca
  8. Mar 25, 2008
    • Tom Lane's avatar
      Simplify and standardize conversions between TEXT datums and ordinary C · 220db7cc
      Tom Lane authored
      strings.  This patch introduces four support functions cstring_to_text,
      cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and
      two macros CStringGetTextDatum and TextDatumGetCString.  A number of
      existing macros that provided variants on these themes were removed.
      
      Most of the places that need to make such conversions now require just one
      function or macro call, in place of the multiple notational layers that used
      to be needed.  There are no longer any direct calls of textout or textin,
      and we got most of the places that were using handmade conversions via
      memcpy (there may be a few still lurking, though).
      
      This commit doesn't make any serious effort to eliminate transient memory
      leaks caused by detoasting toasted text objects before they reach
      text_to_cstring.  We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few
      places where it was easy, but much more could be done.
      
      Brendan Jurd and Tom Lane
      220db7cc
  9. Mar 09, 2008
    • Tom Lane's avatar
      Change patternsel() so that instead of switching from a pure · f4230d29
      Tom Lane authored
      pattern-examination heuristic method to purely histogram-driven selectivity at
      histogram size 100, we compute both estimates and use a weighted average.
      The weight put on the heuristic estimate decreases linearly with histogram
      size, dropping to zero for 100 or more histogram entries.
      Likewise in ltreeparentsel().  After a patch by Greg Stark, though I
      reorganized the logic a bit to give the caller of histogram_selectivity()
      more control.
      f4230d29
  10. Nov 16, 2007
  11. Nov 15, 2007
  12. Nov 13, 2007
  13. Nov 11, 2007
  14. Sep 30, 2007
  15. Jul 16, 2007
  16. Jun 27, 2007
  17. Feb 28, 2007
    • Tom Lane's avatar
      Fix up several contrib modules that were using varlena datatypes in not-so-obvious · 9f652d43
      Tom Lane authored
      ways.  I'm not totally sure that I caught everything, but at least now they pass
      their regression tests with VARSIZE/SET_VARSIZE defined to reverse byte order.
      9f652d43
    • Tom Lane's avatar
      Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). · 234a02b2
      Tom Lane authored
      Get rid of VARATT_SIZE and VARATT_DATA, which were simply redundant with
      VARSIZE and VARDATA, and as a consequence almost no code was using the
      longer names.  Rename the length fields of struct varlena and various
      derived structures to catch anyplace that was accessing them directly;
      and clean up various places so caught.  In itself this patch doesn't
      change any behavior at all, but it is necessary infrastructure if we hope
      to play any games with the representation of varlena headers.
      Greg Stark and Tom Lane
      234a02b2
  18. Feb 09, 2007
  19. Oct 04, 2006
  20. Sep 22, 2006
    • Tom Lane's avatar
      Fix bugs in plpgsql and ecpg caused by assuming that isspace() would only · beca984e
      Tom Lane authored
      return true for exactly the characters treated as whitespace by their flex
      scanners.  Per report from Victor Snezhko and subsequent investigation.
      
      Also fix a passel of unsafe usages of <ctype.h> functions, that is, ye olde
      char-vs-unsigned-char issue.  I won't miss <ctype.h> when we are finally
      able to stop using it.
      beca984e
  21. Sep 20, 2006
    • Tom Lane's avatar
      Change patternsel (LIKE/regex selectivity estimation) so that if there · bfd1ffa9
      Tom Lane authored
      is a large enough histogram, it will use the number of matches in the
      histogram to derive a selectivity estimate, rather than the admittedly
      pretty bogus heuristics involving examining the pattern contents.  I set
      'large enough' at 100, but perhaps we should change that later.  Also
      apply the same technique in contrib/ltree's <@ and @> estimator.  Per
      discussion with Stefan Kaltenbrunner and Matteo Beccati.
      bfd1ffa9
  22. Sep 11, 2006
  23. Aug 08, 2006
  24. Aug 07, 2006
  25. Jul 11, 2006
  26. Jun 28, 2006
    • Teodor Sigaev's avatar
      Changes · 1f7ef548
      Teodor Sigaev authored
      * new split algorithm (as proposed in http://archives.postgresql.org/pgsql-hackers/2006-06/msg00254.php)
        * possible call pickSplit() for second and below columns
        * add spl_(l|r)datum_exists to GIST_SPLITVEC -
          pickSplit should check its values to use already defined
          spl_(l|r)datum for splitting. pickSplit should set
          spl_(l|r)datum_exists to 'false' (if they was 'true') to
          signal to caller about using spl_(l|r)datum.
        * support for old pickSplit(): not very optimal
          but correct split
      * remove 'bytes' field from GISTENTRY: in any case size of
        value is defined by it's type.
      * split GIST_SPLITVEC to two structures: one for using in picksplit
        and second - for internal use.
      * some code refactoring
      * support of subsplit to rtree opclasses
      
      TODO: add support of subsplit to contrib modules
      1f7ef548
  27. May 31, 2006
  28. Apr 27, 2006
  29. Apr 26, 2006
  30. Mar 13, 2006
    • Neil Conway's avatar
      Fix a number of syntax errors in contrib modules' uninstall scripts. · 48fb6967
      Neil Conway authored
      Most of the changes add the mandatory USING clause to DROP OPERATOR
      CLASS statements.  DROP TYPE is now DROP TYPE CASCADE; without
      CASCADE a DROP TYPE fails due to the circular dependency on the
      type's I/O functions.  The DROP FUNCTION statements for the I/O
      functions have been removed, as DROP TYPE CASCADE removes them
      automatically. Patch from Michael Fuhr.
      48fb6967
  31. Mar 11, 2006
Loading