Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. Nov 16, 2007
  4. Nov 15, 2007
  5. Nov 13, 2007
  6. Nov 11, 2007
  7. Sep 30, 2007
  8. Sep 14, 2007
  9. Jun 27, 2007
  10. Apr 06, 2007
    • Tom Lane's avatar
      Support varlena fields with single-byte headers and unaligned storage. · 3e23b68d
      Tom Lane authored
      This commit breaks any code that assumes that the mere act of forming a tuple
      (without writing it to disk) does not "toast" any fields.  While all available
      regression tests pass, I'm not totally sure that we've fixed every nook and
      cranny, especially in contrib.
      
      Greg Stark with some help from Tom Lane
      3e23b68d
  11. 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
  12. Feb 07, 2007
  13. Jan 31, 2007
  14. Jan 26, 2007
    • Neil Conway's avatar
      Squelch some VC++ compiler warnings. Mark float literals with the "f" · 8ff2bcce
      Neil Conway authored
      suffix, to distinguish them from doubles. Make some function declarations
      and definitions use the "const" qualifier for arguments consistently.
      Ignore warning 4102 ("unreferenced label"), because such warnings
      are always emitted by bison-generated code. Patch from Magnus Hagander.
      8ff2bcce
  15. Dec 23, 2006
    • Tom Lane's avatar
      Restructure operator classes to allow improved handling of cross-data-type · a78fcfb5
      Tom Lane authored
      cases.  Operator classes now exist within "operator families".  While most
      families are equivalent to a single class, related classes can be grouped
      into one family to represent the fact that they are semantically compatible.
      Cross-type operators are now naturally adjunct parts of a family, without
      having to wedge them into a particular opclass as we had done originally.
      
      This commit restructures the catalogs and cleans up enough of the fallout so
      that everything still works at least as well as before, but most of the work
      needed to actually improve the planner's behavior will come later.  Also,
      there are not yet CREATE/DROP/ALTER OPERATOR FAMILY commands; the only way
      to create a new family right now is to allow CREATE OPERATOR CLASS to make
      one by default.  I owe some more documentation work, too.  But that can all
      be done in smaller pieces once this infrastructure is in place.
      a78fcfb5
  16. Oct 04, 2006
  17. Sep 10, 2006
  18. Jul 11, 2006
  19. 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
  20. May 31, 2006
  21. May 10, 2006
  22. May 03, 2006
  23. Apr 12, 2006
  24. Apr 03, 2006
  25. 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
  26. Mar 11, 2006
  27. Mar 01, 2006
    • Neil Conway's avatar
      This patch makes the error message strings throughout the backend · 8e5a10d4
      Neil Conway authored
      more compliant with the error message style guide. In particular,
      errdetail should begin with a capital letter and end with a period,
      whereas errmsg should not. I also fixed a few related issues in
      passing, such as fixing the repeated misspelling of "lexeme" in
      contrib/tsearch2 (per Tom's suggestion).
      8e5a10d4
  28. Feb 27, 2006
  29. Jan 20, 2006
    • Tom Lane's avatar
      Replace bitwise looping with bytewise looping in hemdistsign and · 33feb55c
      Tom Lane authored
      sizebitvec of tsearch2, as well as identical code in several other
      contrib modules.  This provided about a 20X speedup in building a
      large tsearch2 index ... didn't try to measure its effects for other
      operations.  Thanks to Stephan Vollmer for providing a test case.
      33feb55c
  30. Nov 22, 2005
  31. Nov 19, 2005
  32. Nov 17, 2005
    • Tom Lane's avatar
      Make SQL arrays support null elements. This commit fixes the core array · cecb6075
      Tom Lane authored
      functionality, but I still need to make another pass looking at places
      that incidentally use arrays (such as ACL manipulation) to make sure they
      are null-safe.  Contrib needs work too.
      I have not changed the behaviors that are still under discussion about
      array comparison and what to do with lower bounds.
      cecb6075
  33. Nov 14, 2005
Loading