Skip to content
Snippets Groups Projects
  1. Jan 14, 2013
    • Tom Lane's avatar
      Improve handling of ereport(ERROR) and elog(ERROR). · b853eb97
      Tom Lane authored
      In commit 71450d7f, we added code to inform
      suitably-intelligent compilers that ereport() doesn't return if the elevel
      is ERROR or higher.  This patch extends that to elog(), and also fixes a
      double-evaluation hazard that the previous commit created in ereport(),
      as well as reducing the emitted code size.
      
      The elog() improvement requires the compiler to support __VA_ARGS__, which
      should be available in just about anything nowadays since it's required by
      C99.  But our minimum language baseline is still C89, so add a configure
      test for that.
      
      The previous commit assumed that ereport's elevel could be evaluated twice,
      which isn't terribly safe --- there are already counterexamples in xlog.c.
      On compilers that have __builtin_constant_p, we can use that to protect the
      second test, since there's no possible optimization gain if the compiler
      doesn't know the value of elevel.  Otherwise, use a local variable inside
      the macros to prevent double evaluation.  The local-variable solution is
      inferior because (a) it leads to useless code being emitted when elevel
      isn't constant, and (b) it increases the optimization level needed for the
      compiler to recognize that subsequent code is unreachable.  But it seems
      better than not teaching non-gcc compilers about unreachability at all.
      
      Lastly, if the compiler has __builtin_unreachable(), we can use that
      instead of abort(), resulting in a noticeable code savings since no
      function call is actually emitted.  However, it seems wise to do this only
      in non-assert builds.  In an assert build, continue to use abort(), so that
      the behavior will be predictable and debuggable if the "impossible"
      happens.
      
      These changes involve making the ereport and elog macros emit do-while
      statement blocks not just expressions, which forces small changes in
      a few call sites.
      
      Andres Freund, Tom Lane, Heikki Linnakangas
      b853eb97
  2. Jan 09, 2013
  3. Jan 06, 2013
    • Tom Lane's avatar
      Fix plpython build on older versions of OS X. · 5aec9cca
      Tom Lane authored
      Pre-Lion versions of Apple's linker don't allow space between -F and its
      argument.  (Snow Leopard is nice enough to tell you that in so many words,
      but older versions just fail with very obscure link errors, as seen on
      buildfarm member locust for instance.)  Oversight in commit
      fc874507.
      5aec9cca
  4. Jan 05, 2013
    • Peter Eisentraut's avatar
      PL/Python: Make build on OS X more flexible · fc874507
      Peter Eisentraut authored
      The PL/Python build on OS X was previously hardcoded to use the system
      installation of Python, ignoring whatever was specified to configure.
      Except that it would use the header files from configure, which could
      lead to mismatches.  It was not possible to build against a custom
      Python installation.
      
      Now, we check in configure how the specified Python installation was
      built and use that, supporting framework and non-framework builds.
      fc874507
  5. Oct 09, 2012
    • Alvaro Herrera's avatar
      Rename USE_INLINE to PG_USE_INLINE · f46baf60
      Alvaro Herrera authored
      The former name was too likely to conflict with symbols from external
      headers; and, as seen in recent buildfarm failures in member spoonbill,
      it has now happened at least in plpython.
      f46baf60
  6. Sep 30, 2012
  7. Aug 30, 2012
    • Peter Eisentraut's avatar
      Also check for Python platform-specific include directory · 9cffb187
      Peter Eisentraut authored
      Python can be built to have two separate include directories: one for
      platform-independent files and one for platform-specific files.  So
      far, this has apparently never mattered for a PL/Python build.  But
      with the new multi-arch Python packages in Debian and Ubuntu, this is
      becoming the standard configuration on these platforms, so we must
      check these directories separately to be able to build there.
      
      Also add a bit of reporting in configure to be able to see better what
      is going on with this.
      9cffb187
  8. Aug 22, 2012
    • Peter Eisentraut's avatar
      Fix install-strip on Mac OS X · b748d8f2
      Peter Eisentraut authored
      There was a hack put into install-sh to call strip with the correct
      options on Mac OS X.  But that never worked, because configure
      disabled stripping on that platform altogether.  So remove that dead
      code, and while we're at it, update install-sh to the latest upstream
      source (from Automake).
      
      Instead, set up the right strip options in programs.m4, so this now
      actually works the way it was originally intended.
      b748d8f2
  9. May 15, 2012
    • Tom Lane's avatar
      Put back AC_REQUIRE([AC_STRUCT_TM]). · f667747b
      Tom Lane authored
      The BSD-ish members of the buildfarm all seem to think removing this
      was a bad idea.  It looks to me like it resulted in omitting the system
      header inclusion necessary to detect the fields of struct tm correctly.
      f667747b
  10. May 14, 2012
  11. May 08, 2012
  12. Mar 22, 2012
    • Tom Lane's avatar
      Fix configure's search for collateindex.pl. · f2386d71
      Tom Lane authored
      PGAC_PATH_COLLATEINDEX supposed that it could use AC_PATH_PROGS to search
      for collateindex.pl, but that macro will only accept files that are marked
      executable, and at least some DocBook installations don't mark the script
      executable (a case the docs Makefile was already prepared for).  Accept the
      script if it's present and readable in $DOCBOOKSTYLE/bin, and otherwise
      search the PATH as before.
      
      Having fixed that up, we don't need the fallback case that was in the docs
      Makefile, and instead can throw an understandable error if configure didn't
      find the script.  Per recent trouble report from John Lumby.
      f2386d71
  13. Feb 20, 2012
  14. Dec 10, 2011
  15. Nov 29, 2011
  16. Aug 18, 2011
    • Peter Eisentraut's avatar
      Improve detection of Python 3.2 installations · f8c2029e
      Peter Eisentraut authored
      Because of ABI tagging, the library version number might no longer be
      exactly the Python version number, so do extra lookups.  This affects
      installations without a shared library, such as ActiveState's
      installer.
      
      Also update the way to detect the location of the 'config' directory,
      which can also be versioned.
      
      Ashesh Vashi
      f8c2029e
  17. May 26, 2011
    • Tom Lane's avatar
      Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if possible. · 44404f39
      Tom Lane authored
      This is reported to be necessary on some versions of that OS.  In service
      of this, cause PGAC_PROG_CC_CFLAGS_OPT to reject switches that result in
      compiler warnings, since on yet other versions of that OS, the switch does
      nothing except provoke a warning.
      
      Report and patch by Ibrar Ahmed, further tweaking by me.
      44404f39
  18. May 19, 2011
  19. Feb 16, 2011
  20. Feb 08, 2011
    • Peter Eisentraut's avatar
      Per-column collation support · 414c5a2e
      Peter Eisentraut authored
      This adds collation support for columns and domains, a COLLATE clause
      to override it per expression, and B-tree index support.
      
      Peter Eisentraut
      reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch
      414c5a2e
  21. Jan 31, 2011
  22. Nov 23, 2010
  23. Oct 25, 2010
  24. Sep 29, 2010
  25. Sep 24, 2010
  26. Sep 23, 2010
  27. Sep 20, 2010
  28. Aug 26, 2010
    • Tom Lane's avatar
      Don't auto-create the subdirectories holding built documentation in a VPATH · 39ce62b1
      Tom Lane authored
      build tree.  If we actually build the docs in the VPATH tree, those dirs
      will get created then; but if they're present and empty, they capture the
      vpathsearch searches in "make install", preventing installation of prebuilt
      docs that might exist in the source tree.  Per bug #5595 from Dmtiriy Igrishin.
      Fix based on idea from Peter Eisentraut.
      39ce62b1
  29. Aug 19, 2010
  30. May 25, 2010
  31. May 12, 2010
  32. Mar 17, 2010
    • Peter Eisentraut's avatar
      Don't link PL/Python against LOCALMODLIBS · 7e8a60b7
      Peter Eisentraut authored
      This variable is apparently only for Python internally.  In newer releases
      of Python this variable pulls in more and more libraries that users are
      less likely to have, leading to potential build failures.
      7e8a60b7
  33. Feb 23, 2010
  34. Feb 22, 2010
  35. Feb 13, 2010
    • Tom Lane's avatar
      Support inlining various small performance-critical functions on non-GCC · e08ab7c3
      Tom Lane authored
      compilers, by applying a configure check to see if the compiler will accept
      an unreferenced "static inline foo ..." function without warnings.  It is
      believed that such warnings are the only reason not to declare inlined
      functions in headers, if the compiler understands "inline" at all.
      
      Kurt Harriman
      e08ab7c3
  36. Jan 07, 2010
  37. Dec 15, 2009
    • Peter Eisentraut's avatar
      Python 3 support in PL/Python · dd4cd55c
      Peter Eisentraut authored
      Behaves more or less unchanged compared to Python 2, but the new language
      variant is called plpython3u.  Documentation describing the naming scheme
      is included.
      dd4cd55c
  38. Oct 14, 2009
Loading