1. 19 Apr, 2021 4 commits
  2. 18 Apr, 2021 2 commits
  3. 17 Apr, 2021 3 commits
    • Peter Eisentraut's avatar
      f7c09706
    • Peter Eisentraut's avatar
      Use correct format placeholder for block numbers · f59b58e2
      Peter Eisentraut authored
      Should be %u rather than %d.
      f59b58e2
    • Tom Lane's avatar
      Rethink extraction of collation dependencies. · f24b1569
      Tom Lane authored
      As it stands, find_expr_references_walker() pays attention to leaf-node
      collation fields while ignoring the input collations of actual function
      and operator nodes.  That seems exactly backwards from a semantic
      standpoint, and it leads to reporting dependencies on collations that
      really have nothing to do with the expression's behavior.
      
      Hence, rewrite to look at function input collations instead.  This
      isn't completely perfect either; it fails to account for the behavior
      of record_eq and its siblings.  (The previous coding at least gave an
      approximation of that, though I think it could be fooled pretty easily
      into considering the columns of irrelevant composite types.)  We may
      be able to improve on this later, but for now this should satisfy the
      buildfarm members that didn't like ef387bed.
      
      In passing fix some oversights in GetTypeCollations(), and get
      rid of its duplicative de-duplications.  (I'm worried that it's
      still potentially O(N^2) or worse, but this makes it a little
      better.)
      
      Discussion: https://postgr.es/m/3564817.1618420687@sss.pgh.pa.us
      f24b1569
  4. 16 Apr, 2021 11 commits
  5. 15 Apr, 2021 10 commits
  6. 14 Apr, 2021 6 commits
  7. 13 Apr, 2021 4 commits
    • Tomas Vondra's avatar
      Initialize t_self and t_tableOid in statext_expressions_load · 20661c15
      Tomas Vondra authored
      The function is building a fake heap tuple, but left some of the header
      fields (tid and table OID) uninitialized. Per Coverity report.
      
      Reported-by: Ranier Vilela
      Discussion: https://postgr.es/m/CAEudQApj6h8tZ0-eP5Af5PKc5NG1YUc7=SdN_99YoHS51fKa0Q@mail.gmail.com
      20661c15
    • Peter Geoghegan's avatar
      Don't truncate heap when VACUUM's failsafe is in effect. · 60f1f09f
      Peter Geoghegan authored
      It seems like a good idea to bypass heap truncation when the wraparound
      failsafe mechanism (which was added in commit 1e55e7d1) is in effect.
      
      Deliberately don't bypass heap truncation in the INDEX_CLEANUP=off case,
      even though it is similar to the failsafe case.  There is already a
      separate reloption (and related VACUUM parameter) for that.
      Reported-By: default avatarMasahiko Sawada <sawada.mshk@gmail.com>
      Discussion: https://postgr.es/m/CAD21AoDWRh6oTN5T8wa+cpZUVpHXET8BJ8Da7WHVHpwkPP6KLg@mail.gmail.com
      60f1f09f
    • Tom Lane's avatar
      Allow table-qualified variable names in ON CONFLICT ... WHERE. · 6c0373ab
      Tom Lane authored
      Previously you could only use unqualified variable names here.
      While that's not a functional deficiency, since only the target
      table can be referenced, it's a surprising inconsistency with the
      rules for partial-index predicates, on which this syntax is
      supposedly modeled.
      
      The fix for that is no harder than passing addToRelNameSpace = true
      to addNSItemToQuery.  However, it's really pretty bogus for
      transformOnConflictArbiter and transformOnConflictClause to be
      messing with the namespace item for the target table at all.
      It's not theirs to manage, it results in duplicative creations of
      namespace items, and transformOnConflictClause wasn't even doing
      it quite correctly (that coding resulted in two nsitems for the
      target table, since it hadn't cleaned out the existing one).
      Hence, make transformInsertStmt responsible for setting up the
      target nsitem once for both these clauses and RETURNING.
      
      Also, arrange for ON CONFLICT ... UPDATE's "excluded" pseudo-relation
      to be added to the rangetable before we run transformOnConflictArbiter.
      This produces a more helpful HINT if someone writes "excluded.col"
      in the arbiter expression.
      
      Per bug #16958 from Lukas Eder.  Although I agree this is a bug,
      the consequences are hardly severe, so no back-patch.
      
      Discussion: https://postgr.es/m/16958-963f638020de271c@postgresql.org
      6c0373ab
    • Robert Haas's avatar
      docs: Update TOAST storage docs for configurable compression. · e8c435a8
      Robert Haas authored
      Mention that there are multiple TOAST compression methods and that the
      compression method used is stored in a TOAST pointer along with the
      other information that was stored there previously. Add a reference to
      the documentation for default_toast_compression, where the supported
      methods are listed, instead of duplicating that here.
      
      I haven't tried to preserve the text claiming that pglz is "fairly
      simple and very fast." I have no view on the veracity of the former
      claim, but LZ4 seems to be faster (and to compress better) so it
      seems better not to muddy the waters by talking about compression
      speed as a strong point of PGLZ.
      
      Patch by me, reviewed by Justin Pryzby.
      
      Discussion: http://postgr.es/m/CA+Tgmoaw_YBwQhOS_hhEPPwFhfAnu+VCLs18EfGr9gQw1z4H-w@mail.gmail.com
      e8c435a8