1. 05 Nov, 2018 2 commits
  2. 04 Nov, 2018 4 commits
  3. 03 Nov, 2018 6 commits
    • Andres Freund's avatar
      Prevent generating EEOP_AGG_STRICT_INPUT_CHECK operations when nargs == 0. · 793beab3
      Andres Freund authored
      This only became a problem with 4c640f4f, which didn't synchronize
      the value agg_strict_input_check.nargs is set to, with the guard
      condition for emitting the operation.
      
      Besides such instructions being unnecessary overhead, currently the
      LLVM JIT provider doesn't support them. It seems more sensible to
      avoid generating such instruction than supporting them. Add assertions
      to make it easier to debug a potential further occurance.
      
      Discussion: https://postgr.es/m/2a505161-2727-2473-7c46-591ed108ac52@email.cz
      Backpatch: 11-, like 4c640f4f.
      793beab3
    • Andres Freund's avatar
      Fix STRICT check for strict aggregates with NULL ORDER BY columns. · 4c640f4f
      Andres Freund authored
      I (Andres) broke this unintentionally in 69c3936a, by checking
      strictness for all input expressions computed for an aggregate, rather
      than just the input for the aggregate transition function.
      
      Reported-By: Ondřej Bouda
      Bisected-By: Tom Lane
      Diagnosed-By: Andrew Gierth
      Discussion: https://postgr.es/m/2a505161-2727-2473-7c46-591ed108ac52@email.cz
      Backpatch: 11-, like 69c3936a
      4c640f4f
    • Tom Lane's avatar
      Make ts_locale.c's character-type functions cope with UTF-16. · 981dc2ba
      Tom Lane authored
      On Windows, in UTF8 database encoding, what char2wchar() produces is
      UTF16 not UTF32, ie, characters above U+FFFF will be represented by
      surrogate pairs.  t_isdigit() and siblings did not account for this
      and failed to provide a large enough result buffer.  That in turn
      led to bogus "invalid multibyte character for locale" errors, because
      contrary to what you might think from char2wchar()'s documentation,
      its Windows code path doesn't cope sanely with buffer overflow.
      
      The solution for t_isdigit() and siblings is pretty clear: provide
      a 3-wchar_t result buffer not 2.
      
      char2wchar() also needs some work to provide more consistent, and more
      accurately documented, buffer overrun behavior.  But that's a bigger job
      and it doesn't actually have any immediate payoff, so leave it for later.
      
      Per bug #15476 from Kenji Uno, who deserves credit for identifying the
      cause of the problem.  Back-patch to all active branches.
      
      Discussion: https://postgr.es/m/15476-4314f480acf0f114@postgresql.org
      981dc2ba
    • Alvaro Herrera's avatar
      Fix tablespace handling for partitioned indexes · dfa60814
      Alvaro Herrera authored
      When creating partitioned indexes, the tablespace was not being saved
      for the parent index. This meant that subsequently created partitions
      would not use the right tablespace for their indexes.
      
      ALTER INDEX SET TABLESPACE and ALTER INDEX ALL IN TABLESPACE raised
      errors when tried; fix them too.  This requires bespoke code for
      ATExecCmd() that applies to the special case when the tablespace move is
      just a catalog change.
      
      Discussion: https://postgr.es/m/20181102003138.uxpaca6qfxzskepi@alvherre.pgsql
      dfa60814
    • Stephen Frost's avatar
      Remove extra word from create sub docs · ceadcbe8
      Stephen Frost authored
      Improve the documentation in the CREATE SUBSCRIPTION command a bit by
      removing an extraneous word and spelling out 'information'.
      ceadcbe8
    • Tom Lane's avatar
      First-draft release notes for 11.1. · 65a82a76
      Tom Lane authored
      As usual, the release notes for other branches will be made by cutting
      these down, but put them up for community review first.  Note that a
      fair percentage of the entries apply only to prior branches because
      their issue was already fixed in 11.0.
      65a82a76
  4. 02 Nov, 2018 7 commits
  5. 01 Nov, 2018 5 commits
  6. 31 Oct, 2018 5 commits
    • Andres Freund's avatar
      Disallow starting server with insufficient wal_level for existing slot. · 691d79a0
      Andres Freund authored
      Previously it was possible to create a slot, change wal_level, and
      restart, even if the new wal_level was insufficient for the
      slot. That's a problem for both logical and physical slots, because
      the necessary WAL records are not generated.
      
      This removes a few tests in newer versions that, somewhat
      inexplicably, whether restarting with a too low wal_level worked (a
      buggy behaviour!).
      
      Reported-By: Joshua D. Drake
      Author: Andres Freund
      Discussion: https://postgr.es/m/20181029191304.lbsmhshkyymhw22w@alap3.anarazel.de
      Backpatch: 9.4-, where replication slots where introduced
      691d79a0
    • Tom Lane's avatar
      Fix memory leak in repeated SPGIST index scans. · 696b0c5f
      Tom Lane authored
      spgendscan neglected to pfree all the memory allocated by spgbeginscan.
      It's possible to get away with that in most normal queries, since the
      memory is allocated in the executor's per-query context which is about
      to get deleted anyway; but it causes severe memory leakage during
      creation or filling of large exclusion-constraint indexes.
      
      Also, document that amendscan is supposed to free what ambeginscan
      allocates.  The docs' lack of clarity on that point probably caused this
      bug to begin with.  (There is discussion of changing that API spec going
      forward, but I don't think it'd be appropriate for the back branches.)
      
      Per report from Bruno Wolff.  It's been like this since the beginning,
      so back-patch to all active branches.
      
      In HEAD, also fix an independent leak caused by commit 2a636834
      (allocating memory during spgrescan instead of spgbeginscan, which
      might be all right if it got cleaned up, but it didn't).  And do a bit
      of code beautification on that commit, too.
      
      Discussion: https://postgr.es/m/20181024012314.GA27428@wolff.to
      696b0c5f
    • Andres Freund's avatar
      Fix typo in xlog.c. · c4ab62f9
      Andres Freund authored
      Author: Daniel Gustafsson
      Discussion: https://postgr.es/m/A6817958-949E-4A5B-895D-FA421B6640C2@yesql.se
      c4ab62f9
    • Tom Lane's avatar
      Sync our copy of the timezone library with IANA release tzcode2018g. · 10bfda06
      Tom Lane authored
      This patch absorbs an upstream fix to "zic" for a recently-introduced
      bug that made it output data that some 32-bit clients couldn't read.
      Given the current source data, the bug only manifests in zones with
      leap seconds, which we don't generate, so that there's no actual
      change in our installed timezone data files from this.  Still, in
      case somebody uses our copy of "zic" to do something else, it seems
      best to apply the fix promptly.
      
      Also, update the README's notes about converting upstream code to
      our conventions.
      10bfda06
    • Tom Lane's avatar
      Update time zone data files to tzdata release 2018g. · 5c2e0ca5
      Tom Lane authored
      DST law changes in Morocco (with, effectively, zero notice).
      Historical corrections for Hawaii.
      5c2e0ca5
  7. 30 Oct, 2018 4 commits
    • Tom Lane's avatar
      Fix interaction of CASE and ArrayCoerceExpr. · 14a158f9
      Tom Lane authored
      An array-type coercion appearing within a CASE that has a constant
      (after const-folding) test expression was mangled by the planner, causing
      all the elements of the resulting array to be equal to the coerced value
      of the CASE's test expression.  This is my oversight in commit c12d570f:
      that changed ArrayCoerceExpr to use a subexpression involving a
      CaseTestExpr, and I didn't notice that eval_const_expressions needed an
      adjustment to keep from folding such a CaseTestExpr to a constant when
      it's inside a suitable CASE.
      
      This is another in what's getting to be a depressingly long line of bugs
      associated with misidentification of the referent of a CaseTestExpr.
      We're overdue to redesign that mechanism; but any such fix is unlikely
      to be back-patchable into v11.  As a stopgap, fix eval_const_expressions
      to do what it must here.  Also add a bunch of comments pointing out the
      restrictions and assumptions that are needed to make this work at all.
      
      Also fix a related oversight: contain_context_dependent_node() was not
      aware of the relationship of ArrayCoerceExpr to CaseTestExpr.  That was
      somewhat fail-soft, in that the outcome of a wrong answer would be to
      prevent optimizations that could have been made, but let's fix it while
      we're at it.
      
      Per bug #15471 from Matt Williams.  Back-patch to v11 where the faulty
      logic came in.
      
      Discussion: https://postgr.es/m/15471-1117f49271989bad@postgresql.org
      14a158f9
    • Peter Eisentraut's avatar
      pg_rewind: Remove unused macro · c2c7c263
      Peter Eisentraut authored
      This has never been used while pg_rewind was in the tree (possibly
      once copied from pg_upgrade).
      c2c7c263
    • Michael Paquier's avatar
      Consolidate cross-option checks in pg_restore · c34bca9e
      Michael Paquier authored
      This moves one check for conflicting options from the archive restore
      code to the main function where other similar checks are performed.
      Also reword the error message to be consistent with other messages.
      
      The only option combination impacted is --create specified with
      --single-transaction, and informing the caller at an early step saves
      from opening the archive worked on.  A TAP test is added for this
      combination.
      
      Author: Daniel Gustafsson
      Reviewed-by: Fabien Coelho
      Discussion: https://postgr.es/m/616808BD-4B59-4E6C-97A9-7317F62D5570@yesql.se
      c34bca9e
    • Michael Paquier's avatar
      Add pg_partition_tree to display information about partitions · d5eec4ee
      Michael Paquier authored
      This new function is useful to display a full tree of partitions with a
      partitioned table given in output, and avoids the need of any complex
      WITH RECURSIVE query when looking at partition trees which are
      deep multiple levels.
      
      It returns a set of records, one for each partition, containing the
      partition's name, its immediate parent's name, a boolean value telling
      if the relation is a leaf in the tree and an integer telling its level
      in the partition tree with given table considered as root, beginning at
      zero for the root, and incrementing by one each time the scan goes one
      level down.
      
      Author: Amit Langote
      Reviewed-by: Jesper Pedersen, Michael Paquier, Robert Haas
      Discussion: https://postgr.es/m/8d00e51a-9a51-ad02-d53e-ba6bf50b2e52@lab.ntt.co.jp
      d5eec4ee
  8. 29 Oct, 2018 4 commits
  9. 28 Oct, 2018 2 commits
  10. 26 Oct, 2018 1 commit