1. 03 May, 2018 10 commits
    • Tom Lane's avatar
      Blindly try to fix MSVC build's use of genbki.pl and Gen_fmgrtab.pl. · bad51a49
      Tom Lane authored
      We need to use a stamp file to record the runs of these scripts, as
      is done on the Unix side.  I think I got it right, but can't test.
      
      While at it, extend this handmade dependency logic to also check the
      generating script files, as the makefiles do.
      
      Discussion: https://postgr.es/m/16925.1525376229@sss.pgh.pa.us
      bad51a49
    • Tom Lane's avatar
      Avoid overwriting unchanged output files in genbki.pl and Gen_fmgrtab.pl. · 1f1cd9b5
      Tom Lane authored
      If a particular output file already exists with the contents it should
      have, leave it alone, so that its mod timestamp is not advanced.
      
      In builds using --enable-depend, this can avoid the need to recompile .c
      files whose included files didn't actually change.  It's not clear whether
      it saves much of anything for users of ccache; but the cost of doing the
      file comparisons seems to be negligible, so we might as well do it.
      
      For developers using the MSVC toolchain, this will create a regression:
      msvc/Solution.pm will sometimes run genbki.pl or Gen_fmgrtab.pl
      unnecessarily.  I'll look into fixing that separately.
      
      Discussion: https://postgr.es/m/16925.1525376229@sss.pgh.pa.us
      1f1cd9b5
    • Tom Lane's avatar
      Rearrange makefile rules for running Gen_fmgrtab.pl. · 9bf28f96
      Tom Lane authored
      Make these rules look more like the ones associated with genbki.pl,
      to wit:
      
      * Use a stamp file to record when we last ran the script, instead of
      relying on the timestamps of the individual output files.
      
      * Take the knowledge out of backend/Makefile and put it in utils/Makefile
      where it belongs.  I moved down the handling of errcodes.h and probes.h
      too, although those continue to be built by separate processes.
      
      In itself, this is just much-needed cleanup with little practical effect.
      However, by decoupling these makefile rules from the timestamps of the
      generated header files, we open the door to not advancing those timestamps
      unnecessarily, which will be taken advantage of by the next commit.
      
      msvc/Solution.pm should be taught to do things similarly, but I'll leave
      that for another commit.
      
      Discussion: https://postgr.es/m/16925.1525376229@sss.pgh.pa.us
      9bf28f96
    • Peter Eisentraut's avatar
      Tweak tests to support Python 3.7 · fa03769e
      Peter Eisentraut authored
      Python 3.7 removes the trailing comma in the repr() of
      BaseException (see <https://bugs.python.org/issue30399>), leading to
      test output differences.  Work around that by composing the equivalent
      test output in a more manual way.
      fa03769e
    • Teodor Sigaev's avatar
      Add HOLD_INTERRUPTS section into FinishPreparedTransaction. · 8f9be261
      Teodor Sigaev authored
      If an interrupt arrives in the middle of FinishPreparedTransaction
      and any callback decide to call CHECK_FOR_INTERRUPTS (e.g.
      RemoveTwoPhaseFile can write a warning with ereport, which checks for
      interrupts) then it's possible to leave current GXact undeleted.
      
      Backpatch to all supported branches
      
      Stas Kelvich
      
      Discussion: ihttps://www.postgresql.org/message-id/3AD85097-A3F3-4EBA-99BD-C38EDF8D2949@postgrespro.ru
      8f9be261
    • Tom Lane's avatar
      Avoid portability issues in autoprewarm.c. · cddc4dc6
      Tom Lane authored
      autoprewarm.c mostly considered the number of blocks it might be dealing
      with as being int64.  This is unnecessary, because NBuffers is declared
      as int, and there's been no suggestion that we might widen it in the
      foreseeable future.  Moreover, using int64 is problematic because the
      code expected INT64_FORMAT to work with fscanf(), something we don't
      guarantee, and which indeed fails on some older buildfarm members.
      
      On top of that, the module randomly used uint32 rather than int64 variables
      to hold block counters in several places, so it would fail anyway if we
      ever did have NBuffers wider than that; and it also supposed that pg_qsort
      could sort an int64 number of elements, which is wrong on 32-bit machines
      (though no doubt a 32-bit machine couldn't actually have that many
      buffers).
      
      Hence, change all these variables to plain int.
      
      In passing, avoid shadowing one variable named i with another,
      and avoid casting away const in apw_compare_blockinfo.
      
      Discussion: https://postgr.es/m/7773.1525288909@sss.pgh.pa.us
      cddc4dc6
    • Teodor Sigaev's avatar
      Fix pg_dump support for pre-8.2 versions · ac7a7e32
      Teodor Sigaev authored
      Unify indnkeys/indnatts/indnkeyatts usage  for all version of query to get
      index information, remove indnkeys column  from query as unused.
      
      Author: Marina Polyakova
      Noticed by: Peter Eisentraut
      ac7a7e32
    • Tom Lane's avatar
      Further improve code for probing the availability of ARM CRC instructions. · a7a73875
      Tom Lane authored
      Andrew Gierth pointed out that commit 1c72ec6f would yield the wrong
      answer on big-endian ARM systems, because the data being CRC'd would be
      different.  To fix that, and avoid the rather unsightly hard-wired
      constant, simply compare the hardware and software implementations'
      results.
      
      While we're at it, also log the resulting decision at DEBUG1, and error
      out if the hw and sw results unexpectedly differ.  Also, since this
      file must compile for both frontend and backend, avoid incorrect
      dependencies on backend-only headers.
      
      In passing, add a comment to postmaster.c about when the CRC function
      pointer will get initialized.
      
      Thomas Munro, based on complaints from Andrew Gierth and Tom Lane
      
      Discussion: https://postgr.es/m/HE1PR0801MB1323D171938EABC04FFE7FA9E3110@HE1PR0801MB1323.eurprd08.prod.outlook.com
      a7a73875
    • Peter Eisentraut's avatar
      Fix SPI error cleanup and memory leak · 30c66e77
      Peter Eisentraut authored
      Since the SPI stack has been moved from TopTransactionContext to
      TopMemoryContext, setting _SPI_stack to NULL in AtEOXact_SPI() leaks
      memory.  In fact, we don't need to do that anymore: We just leave the
      allocated stack around for the next SPI use.
      
      Also, refactor the SPI cleanup so that it is run both at transaction end
      and when returning to the main loop on an exception.  The latter is
      necessary when a procedure calls a COMMIT or ROLLBACK command that
      itself causes an error.
      30c66e77
    • Robert Haas's avatar
      Remove now-unnecessary cast. · a365f52d
      Robert Haas authored
      Etsuro Fujita
      
      Discussion: http://postgr.es/m/5AE99BA7.9060001@lab.ntt.co.jp
      a365f52d
  2. 02 May, 2018 12 commits
  3. 01 May, 2018 12 commits
  4. 30 Apr, 2018 6 commits