Skip to content
Snippets Groups Projects
  1. Oct 13, 2013
  2. Jun 10, 2012
  3. Oct 12, 2011
    • Tom Lane's avatar
      Throw a useful error message if an extension script file is fed to psql. · 458857cc
      Tom Lane authored
      We have seen one too many reports of people trying to use 9.1 extension
      files in the old-fashioned way of sourcing them in psql.  Not only does
      that usually not work (due to failure to substitute for MODULE_PATHNAME
      and/or @extschema@), but if it did work they'd get a collection of loose
      objects not an extension.  To prevent this, insert an \echo ... \quit
      line that prints a suitable error message into each extension script file,
      and teach commands/extension.c to ignore lines starting with \echo.
      That should not only prevent any adverse consequences of loading a script
      file the wrong way, but make it crystal clear to users that they need to
      do it differently now.
      
      Tom Lane, following an idea of Andrew Dunstan's.  Back-patch into 9.1
      ... there is not going to be much value in this if we wait till 9.2.
      458857cc
  4. Sep 16, 2011
    • Tom Lane's avatar
      Redesign the plancache mechanism for more flexibility and efficiency. · e6faf910
      Tom Lane authored
      Rewrite plancache.c so that a "cached plan" (which is rather a misnomer
      at this point) can support generation of custom, parameter-value-dependent
      plans, and can make an intelligent choice between using custom plans and
      the traditional generic-plan approach.  The specific choice algorithm
      implemented here can probably be improved in future, but this commit is
      all about getting the mechanism in place, not the policy.
      
      In addition, restructure the API to greatly reduce the amount of extraneous
      data copying needed.  The main compromise needed to make that possible was
      to split the initial creation of a CachedPlanSource into two steps.  It's
      worth noting in particular that SPI_saveplan is now deprecated in favor of
      SPI_keepplan, which accomplishes the same end result with zero data
      copying, and no need to then spend even more cycles throwing away the
      original SPIPlan.  The risk of long-term memory leaks while manipulating
      SPIPlans has also been greatly reduced.  Most of this improvement is based
      on use of the recently-added MemoryContextSetParent primitive.
      e6faf910
  5. Sep 09, 2011
    • Tom Lane's avatar
      Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. · a7801b62
      Tom Lane authored
      As per my recent proposal, this refactors things so that these typedefs and
      macros are available in a header that can be included in frontend-ish code.
      I also changed various headers that were undesirably including
      utils/timestamp.h to include datatype/timestamp.h instead.  Unsurprisingly,
      this showed that half the system was getting utils/timestamp.h by way of
      xlog.h.
      
      No actual code changes here, just header refactoring.
      a7801b62
  6. Jul 04, 2011
  7. May 31, 2011
  8. Apr 10, 2011
  9. Feb 14, 2011
    • Tom Lane's avatar
      Avoid use of CREATE OR REPLACE FUNCTION in extension installation files. · 029fac22
      Tom Lane authored
      It was never terribly consistent to use OR REPLACE (because of the lack of
      comparable functionality for data types, operators, etc), and
      experimentation shows that it's now positively pernicious in the extension
      world.  We really want a failure to occur if there are any conflicts, else
      it's unclear what the extension-ownership state of the conflicted object
      ought to be.  Most of the time, CREATE EXTENSION will fail anyway because
      of conflicts on other object types, but an extension defining only
      functions can succeed, with bad results.
      029fac22
    • Tom Lane's avatar
      Convert contrib modules to use the extension facility. · 629b3af2
      Tom Lane authored
      This isn't fully tested as yet, in particular I'm not sure that the
      "foo--unpackaged--1.0.sql" scripts are OK.  But it's time to get some
      buildfarm cycles on it.
      
      sepgsql is not converted to an extension, mainly because it seems to
      require a very nonstandard installation process.
      
      Dimitri Fontaine and Tom Lane
      629b3af2
  10. Nov 23, 2010
  11. Nov 04, 2010
  12. Oct 08, 2010
    • Tom Lane's avatar
      Fix sloppy usage of TRIGGER_FIRED_BEFORE/TRIGGER_FIRED_AFTER. · caaf2e84
      Tom Lane authored
      Various places were testing TRIGGER_FIRED_BEFORE() where what they really
      meant was !TRIGGER_FIRED_AFTER(), or vice versa.  This needs to be cleaned
      up because there are about to be more than two possible states.
      
      We might want to note this in the 9.1 release notes as something for
      trigger authors to double-check.
      
      For consistency's sake I also changed some places that assumed that
      TRIGGER_FIRED_FOR_ROW and TRIGGER_FIRED_FOR_STATEMENT are necessarily
      mutually exclusive; that's not in immediate danger of breaking, but
      it's still sloppier than it should be.
      
      Extracted from Dean Rasheed's patch for triggers on views.  I'm committing
      this separately since it's an identifiable separate issue, and is the
      only reason for the patch to touch most of these particular files.
      caaf2e84
  13. Sep 22, 2010
  14. Sep 20, 2010
  15. Aug 19, 2010
  16. Jul 06, 2010
    • Tom Lane's avatar
      Fix a few single-file (MODULES, not MODULE_big) contrib makefiles that were · f9e9da66
      Tom Lane authored
      supposing that they should set SHLIB_LINK rather than LDFLAGS_SL.  Since these
      don't go through Makefile.shlib that was a no-op on most platforms.  Also
      regularize the few platform-specific Makefiles that did pay attention to
      SHLIB_LINK: it seems that the real value of that is to pull in BE_DLLLIBS,
      so do that instead.  Per buildfarm failures on cygwin.
      f9e9da66
  17. Jun 11, 2009
  18. Jan 07, 2009
  19. 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
  20. 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
  21. Dec 03, 2007
  22. Nov 13, 2007
  23. Jun 27, 2007
  24. Mar 16, 2007
    • Tom Lane's avatar
      Make use of plancache module for SPI plans. In particular, since plpgsql · 95f6d2d2
      Tom Lane authored
      uses SPI plans, this finally fixes the ancient gotcha that you can't
      drop and recreate a temp table used by a plpgsql function.
      
      Along the way, clean up SPI's API a little bit by declaring SPI plan
      pointers as "SPIPlanPtr" instead of "void *".  This is cosmetic but
      helps to forestall simple programming mistakes.  (I have changed some
      but not all of the callers to match; there are still some "void *"'s
      in contrib and the PL's.  This is intentional so that we can see if
      anyone's compiler complains about it.)
      95f6d2d2
  25. Feb 01, 2007
    • Bruce Momjian's avatar
      Wording cleanup for error messages. Also change can't -> cannot. · 8b4ff8b6
      Bruce Momjian authored
      Standard English uses "may", "can", and "might" in different ways:
      
              may - permission, "You may borrow my rake."
      
              can - ability, "I can lift that log."
      
              might - possibility, "It might rain today."
      
      Unfortunately, in conversational English, their use is often mixed, as
      in, "You may use this variable to do X", when in fact, "can" is a better
      choice.  Similarly, "It may crash" is better stated, "It might crash".
      8b4ff8b6
  26. Jul 11, 2006
  27. May 31, 2006
  28. Mar 11, 2006
  29. Feb 27, 2006
  30. Oct 15, 2005
  31. Sep 27, 2005
  32. Jun 30, 2005
    • Tom Lane's avatar
      Clean up the rather historically encumbered interface to now() and · b5f7cff8
      Tom Lane authored
      current time: provide a GetCurrentTimestamp() function that returns
      current time in the form of a TimestampTz, instead of separate time_t
      and microseconds fields.  This is what all the callers really want
      anyway, and it eliminates low-level dependencies on AbsoluteTime,
      which is a deprecated datatype that will have to disappear eventually.
      b5f7cff8
  33. Nov 17, 2004
  34. Oct 07, 2004
  35. Aug 29, 2004
  36. Aug 20, 2004
    • Bruce Momjian's avatar
      > Please find enclose a submission to fix these problems. · ee85595d
      Bruce Momjian authored
      >
      > The patch adds missing the "libpgport.a" file to the installation under
      > "install-all-headers". It is needed by some contribs. I install the
      > library in "pkglibdir", but I was wondering whether it should be "libdir"?
      > I was wondering also whether it would make sense to have a "libpgport.so"?
      >
      > It fixes various macros which are used by contrib makefiles, especially
      > libpq_*dir and LDFLAGS when used under PGXS. It seems to me that they are
      > needed to
      >
      > It adds the ability to test and use PGXS with contribs, with "make
      > USE_PGXS=1". Without the macro, this is exactly as before, there should be
      > no difference, esp. wrt the vpath feature that seemed broken by previous
      > submission. So it should not harm anybody, and it is useful at least to me.
      >
      > It fixes some inconsistencies in various contrib makefiles
      > (useless override, ":=" instead of "=").
      
      Fabien COELHO
      ee85595d
  37. May 07, 2004
    • Tom Lane's avatar
      Solve the 'Turkish problem' with undesirable locale behavior for case · 0bd61548
      Tom Lane authored
      conversion of basic ASCII letters.  Remove all uses of strcasecmp and
      strncasecmp in favor of new functions pg_strcasecmp and pg_strncasecmp;
      remove most but not all direct uses of toupper and tolower in favor of
      pg_toupper and pg_tolower.  These functions use the same notions of
      case folding already developed for identifier case conversion.  I left
      the straight locale-based folding in place for situations where we are
      just manipulating user data and not trying to match it to built-in
      strings --- for example, the SQL upper() function is still locale
      dependent.  Perhaps this will prove not to be what's wanted, but at
      the moment we can initdb and pass regression tests in Turkish locale.
      0bd61548
  38. Nov 29, 2003
    • PostgreSQL Daemon's avatar
      · 969685ad
      PostgreSQL Daemon authored
      $Header: -> $PostgreSQL Changes ...
      969685ad
Loading