1. 25 Oct, 2013 5 commits
    • Tom Lane's avatar
      Suppress -0 in the C field of lines computed by line_construct_pts(). · 43fe90f6
      Tom Lane authored
      It's not entirely clear why some PPC machines are generating -0 here, since
      the underlying computation should be exactly 0 - 0.  Perhaps there's some
      wider-than-nominal-precision calculations happening?  Anyway, the best way
      to avoid platform-dependent results seems to be to explicitly reset -0 to
      regular zero.
      43fe90f6
    • Tom Lane's avatar
      Revert "Tweak "line" test to avoid negative zeros on some platforms" · 1f7a4791
      Tom Lane authored
      This reverts commit a0a546f0.
      It seems better to tweak the code to suppress -0 results during
      line_construct_pts(), which I'll do in the next commit.
      1f7a4791
    • Peter Eisentraut's avatar
    • Tom Lane's avatar
      Ignore SIGSYS during initdb. · 5e1e47c7
      Tom Lane authored
      This prevents the recently-added probe for shm_open() from crashing
      on platforms that are impolite enough to deliver a signal rather than
      returning ENOSYS for an unimplemented kernel call.  At least on the
      one known example (HPUX 10.20), ignoring SIGSYS does result in the
      desired behavior of getting an ENOSYS error return instead.
      
      Per discussion, we might later wish to do this in the backend as well,
      but for now it seems sufficient to do it in initdb.
      5e1e47c7
    • Tom Lane's avatar
      Use improved vsnprintf calling logic in more places. · 3147acd6
      Tom Lane authored
      When we are using a C99-compliant vsnprintf implementation (which should be
      most places, these days) it is worth the trouble to make use of its report
      of how large the buffer needs to be to succeed.  This patch adjusts
      stringinfo.c and some miscellaneous usages in pg_dump to do that, relying
      on the logic recently added in libpgcommon's psprintf.c.  Since these
      places want to know the number of bytes written once we succeed, modify the
      API of pvsnprintf() to report that.
      
      There remains near-duplicate logic in pqexpbuffer.c, but since that code
      is in libpq, psprintf.c's approach of exit()-on-error isn't appropriate
      for use there.  Also note that I didn't bother touching the multitude
      of places that call (v)snprintf without any attempt to provide a resizable
      buffer.
      
      Release-note-worthy incompatibility: the API of appendStringInfoVA()
      changed.  If there's any third-party code that's calling that directly,
      it will need tweaking along the same lines as in this patch.
      
      David Rowley and Tom Lane
      3147acd6
  2. 24 Oct, 2013 5 commits
    • Heikki Linnakangas's avatar
      Increase the number of different values used when seeding random(). · 98c50656
      Heikki Linnakangas authored
      When a backend process is forked, we initialize the system's random number
      generator with srandom(). The seed used is derived from the backend's pid
      and the timestamp. However, we only used the microseconds part of the
      timestamp, and it was XORed with the pid, so the total range of different
      seed values chosen was 0-999999. That's quite limited.
      
      Change the code to also use the seconds part of the timestamp in the seed,
      and shift the microseconds so that all 32 bits of the seed are used.
      
      Honza Horak
      98c50656
    • Heikki Linnakangas's avatar
      Improve documentation of random() function. · 75fdcec1
      Heikki Linnakangas authored
      Move random() and setseed() to a separate table, to have them grouped
      together. Also add a notice that random() is not cryptographically secure.
      
      Original patch by Honza Horak, although I didn't use his version.
      75fdcec1
    • Heikki Linnakangas's avatar
      Plug memory leak when reloading config file. · 138184ad
      Heikki Linnakangas authored
      The absolute path to config file was not pfreed. There are probably more
      small leaks here and there in the config file reload code and assign hooks,
      and in practice no-one reloads the config files frequently enough for it to
      be a problem, but this one is trivial enough that might as well fix it.
      
      Backpatch to 9.3 where the leak was introduced.
      138184ad
    • Heikki Linnakangas's avatar
      bb598456
    • Heikki Linnakangas's avatar
      Fix typos in comments. · 4d6d425a
      Heikki Linnakangas authored
      4d6d425a
  3. 23 Oct, 2013 3 commits
    • Robert Haas's avatar
      Simplify tab completion rules for views and foreign tables. · 5c4dd2cd
      Robert Haas authored
      Since an increasing number of views and foreign tables are now able
      to be updated, complete with any table, view, or foreign table in
      the relevant contexts.  This avoids the need to use a complex
      query that may be both confusing to end-users and nonperformant
      to construct the list of possible completions.
      
      Dean Rasheed, persuant to a complaint from Bernd Helme and a
      suggestion from Peter Eisentraut
      5c4dd2cd
    • Heikki Linnakangas's avatar
      Fix two bugs in setting the vm bit of empty pages. · 83eb5400
      Heikki Linnakangas authored
      Use a critical section when setting the all-visible flag on an empty page,
      and WAL-logging it. log_newpage_buffer() contains an assertion that it
      must be called inside a critical section, and it's the right thing to do
      when modifying a buffer anyway.
      
      Also, the page should be marked dirty before calling log_newpage_buffer(),
      per the comment in log_newpage_buffer() and src/backend/access/transam/README.
      
      Patch by Andres Freund, in response to my report. Backpatch to 9.2, like
      the patch that introduced these bugs (a6370fd9).
      83eb5400
    • Tom Lane's avatar
      Suppress a couple of compiler warnings seen with older gcc versions. · 5f1ab461
      Tom Lane authored
      To wit,
      bgworker.c: In function `RegisterDynamicBackgroundWorker':
      bgworker.c:761: warning: `generation' might be used uninitialized in this function
      dsm_impl.c: In function `dsm_impl_op':
      dsm_impl.c:197: warning: control reaches end of non-void function
      
      Neither of these represent actual bugs, but we may as well tweak the code
      so that more compilers can tell that.  This won't change the generated code
      on compilers that do recognize that the cases are unreachable.
      5f1ab461
  4. 22 Oct, 2013 5 commits
    • Tom Lane's avatar
      Replace pg_asprintf() with psprintf(). · 2c66f992
      Tom Lane authored
      This eliminates an awkward coding pattern that's also unnecessarily
      inconsistent with backend coding.  psprintf() is now the thing to
      use everywhere.
      2c66f992
    • Tom Lane's avatar
      Get rid of use of asprintf() in favor of a more portable implementation. · 09a89cb5
      Tom Lane authored
      asprintf(), aside from not being particularly portable, has a fundamentally
      badly-designed API; the psprintf() function that was added in passing in
      the previous patch has a much better API choice.  Moreover, the NetBSD
      implementation that was borrowed for the previous patch doesn't work with
      non-C99-compliant vsnprintf, which is something we still have to cope with
      on some platforms; and it depends on va_copy which isn't all that portable
      either.  Get rid of that code in favor of an implementation similar to what
      we've used for many years in stringinfo.c.  Also, move it into libpgcommon
      since it's not really libpgport material.
      
      I think this patch will be enough to turn the buildfarm green again, but
      there's still cosmetic work left to do, namely get rid of pg_asprintf()
      in favor of using psprintf().  That will come in a followon patch.
      09a89cb5
    • Peter Eisentraut's avatar
      586a8fc7
    • Heikki Linnakangas's avatar
      Adjust cube.out expected output for new test queries. · 36f4c784
      Heikki Linnakangas authored
      Previous commit modified the test case, but I didn't update cube.out
      expected output file in previous commit because it was not needed by the
      platforms I have easy access to. Buildfarm animal 'dugong', running
      "Debian 4.0 icc 10.1.011 ia64", has now gone red because of that, so update
      it now.
      
      Also adjust cube_3.out. According to git history, it was added to support
      64-bit MinGW. There is no such animal in the buildfarm, so I'm doing this
      blindly, but it was added quite recently so maybe someone still cares.
      36f4c784
    • Tom Lane's avatar
      Fix blatantly broken record_image_cmp() logic for pass-by-value fields. · 28858811
      Tom Lane authored
      Doesn't anybody here pay attention to compiler warnings?
      28858811
  5. 21 Oct, 2013 3 commits
    • Heikki Linnakangas's avatar
      Extend cube on-disk format to pack points more tightly. · 08612f45
      Heikki Linnakangas authored
      If the lower left and upper right corners of a cube are the same, set a
      flag in the cube header, and only store one copy of the coordinates. That
      cuts the on-disk size into half for the common case that the cube datatype
      is used to represent points rather than boxes.
      
      The new format is backwards-compatible with the old one, so pg_upgrade
      still works. However, to get the space savings, the data needs to be
      rewritten. A simple VACUUM FULL or REINDEX is not enough, as the old
      Datums will just be moved to the new heap/index as is. A pg_dump and
      reload, or something similar like casting to text and back, will do the
      trick.
      
      This patch deliberately doesn't update all the alternative expected output
      files, as I don't have access to machines that produce those outputs. I'm
      not sure if they are still relevant, but if they are, the buildfarm will
      tell us and produce the diff required to fix it. If none of the buildfarm
      animals need them, they should be removed altogether.
      
      Patch by Stas Kelvich.
      08612f45
    • Peter Eisentraut's avatar
      doc: Improve setup for documentation building with FOP · a5963efa
      Peter Eisentraut authored
      Add a makefile rule for building PDFs with FOP.  Two new build targets
      in doc/src/sgml are postgres-A4-fop.pdf and postgres-US-fop.pdf.
      
      Run .fo output through xmllint for reformatting, so that errors are
      easier to find.  (The default output has hardly any line breaks, so you
      might be looking for an error in column 20000.)
      
      Set some XSLT parameters to optimize for building with FOP.
      
      Remove some redundant or somewhat useless chapterinfo/author
      information, because it renders strangely with the FO stylesheet.
      Reviewed-by: default avatarÁlvaro Herrera <alvherre@2ndquadrant.com>
      a5963efa
    • Noah Misch's avatar
      Consistently use unsigned arithmetic for alignment calculations. · 709170b7
      Noah Misch authored
      This avoids an assumption about the signed number representation.  It is
      anticipated to have no functional changes on supported configurations;
      many two's complement assumptions remain elsewhere.
      
      Per a suggestion from Andres Freund.
      709170b7
  6. 19 Oct, 2013 4 commits
  7. 18 Oct, 2013 8 commits
  8. 17 Oct, 2013 3 commits
    • Robert Haas's avatar
      Remove spinlock support for SINIX, Sun3, and NS32K. · 81051a86
      Robert Haas authored
      All of these platforms are very much obsolete.
      
      As far as I can determine, the last version of SINIX, later renamed
      Reliant, occurred some time between 2002 and 2005.
      
      The last release of SunOS that would run on a sun3 was released in
      November of 1991; the last release of OpenBSD which supported that
      platform was in 2001.  The highest clock speed of any processor in
      the family was 25MHz.
      
      The NS32K (national semiconductor 320xx) architecture was retired
      in 1990.
      
      Support can be re-added if a maintainer emerges for any of these
      platforms, but it seems unlikely.
      
      Reviewed by Andres Freund.
      81051a86
    • Andrew Dunstan's avatar
      Return valid json when converting an empty hstore. · bbe4deac
      Andrew Dunstan authored
      Oskari Saarenmaa.
      bbe4deac
    • Alvaro Herrera's avatar
      Silence compiler warning when SSL not in use · 86029b31
      Alvaro Herrera authored
      Per Jaime Casanova and Vik Fearing
      86029b31
  9. 16 Oct, 2013 4 commits