1. 29 Mar, 2017 2 commits
  2. 28 Mar, 2017 11 commits
    • Alvaro Herrera's avatar
      Allow DSM segments to be created as pinned · 767bc028
      Alvaro Herrera authored
      dsm_create and dsm_attach assumed that a current resource owner was
      always in place.  Exploration with the API show that this is
      inconvenient: sometimes one must create a dummy resowner, create/attach
      the DSM, only to pin the mapping later, which is wasteful.  Change
      create/attach so that if there is no current resowner, the dsm is
      effectively pinned right from the start.
      
      Discussion: https://postgr.es/m/20170324232710.32acsfsvjqfgc6ud@alvherre.pgsql
      Reviewed by Thomas Munro.
      767bc028
    • Tom Lane's avatar
      Make new expression eval code reject references to dropped columns. · 2c4debbd
      Tom Lane authored
      Formerly, a Var referencing an already-dropped column was allowed and would
      always produce a NULL value.  However, that behavior was implemented in
      slot_getattr which the new expression code doesn't use; thus there is now a
      risk of returning theoretically-deleted data.  We had regression test cases
      that purported to exercise this, but they failed to expose any problem,
      apparently because plpgsql filters the dropped column and produces an
      output tuple that has a NULL there already.
      
      Ideally the DROP or ALTER attempt in these test cases would get rejected
      due to dependency checks; but until that happens, let's modify the behavior
      so that we fail the query during executor start.  This was already true for
      the related case of a column having changed type underneath us, and there's
      no obvious reason why we need to be laxer for dropped columns.
      
      In passing, adjust the error messages in CheckVarSlotCompatibility to
      include the composite type name.  In the cases shown in the regression
      tests this is always just "record", but it should be more useful in
      actual stale-plan cases, where the slot tupdesc would be a table's
      tupdesc directly.
      
      Discussion: https://postgr.es/m/16803.1490723570@sss.pgh.pa.us
      2c4debbd
    • Alvaro Herrera's avatar
      Remove direct uses of ItemPointer.{ip_blkid,ip_posid} · ce96ce60
      Alvaro Herrera authored
      There are no functional changes here; this simply encapsulates knowledge
      of the ItemPointerData struct so that a future patch can change things
      without more breakage.
      
      All direct users of ip_blkid and ip_posid are changed to use existing
      macros ItemPointerGetBlockNumber and ItemPointerGetOffsetNumber
      respectively.  For callers where that's inappropriate (because they
      Assert that the itempointer is is valid-looking), add
      ItemPointerGetBlockNumberNoCheck and ItemPointerGetOffsetNumberNoCheck,
      which lack the assertion but are otherwise identical.
      
      Author: Pavan Deolasee
      Discussion: https://postgr.es/m/CABOikdNnFon4cJiL=h1mZH3bgUeU+sWHuU4Yr8AB=j3A2p1GiA@mail.gmail.com
      ce96ce60
    • Simon Riggs's avatar
      Correct grammar in error message · a99f7702
      Simon Riggs authored
      "could not generate" rather than "could not generation"
      from commit 818fd4a6
      a99f7702
    • Peter Eisentraut's avatar
      Fix ssl tests · 967a4b01
      Peter Eisentraut authored
      facde2a9 introduced a typo during
      rebasing.
      967a4b01
    • Tom Lane's avatar
      Suppress implicit-conversion warnings seen with newer clang versions. · 8cfeaecf
      Tom Lane authored
      We were assigning values near 255 through "char *" pointers.  On machines
      where char is signed, that's not entirely kosher, and it's reasonable
      for compilers to warn about it.
      
      A better solution would be to change the pointer type to "unsigned char *",
      but that would be vastly more invasive.  For the moment, let's just apply
      this simple backpatchable solution.
      
      Aleksander Alekseev
      
      Discussion: https://postgr.es/m/20170220141239.GD12278@e733.localdomain
      Discussion: https://postgr.es/m/2839.1490714708@sss.pgh.pa.us
      8cfeaecf
    • Teodor Sigaev's avatar
      Altering default privileges on schemas · ab89e465
      Teodor Sigaev authored
      Extend ALTER DEFAULT PRIVILEGES command to schemas.
      
      Author: Matheus Oliveira
      Reviewed-by: Petr Jelínek, Ashutosh Sharma
      
      https://commitfest.postgresql.org/13/887/
      ab89e465
    • Peter Eisentraut's avatar
      dblink: Fix error reporting · 85163641
      Peter Eisentraut authored
      The conname variable was not initialized in some code paths, resulting
      in error reports referring to the "unnamed" connection rather than the
      correct connection name.
      
      Author: Rushabh Lathia <rushabh.lathia@gmail.com>
      85163641
    • Simon Riggs's avatar
      Cleanup slots during drop database · ff539da3
      Simon Riggs authored
      Automatically drop all logical replication slots associated with a
      database when the database is dropped. Previously we threw an ERROR
      if a slot existed. Now we throw ERROR only if a slot is active in
      the database being dropped.
      
      Craig Ringer
      ff539da3
    • Peter Eisentraut's avatar
      Fix Perl code which had broken the Windows build · 4d33a7f2
      Peter Eisentraut authored
      The previous change wanted to avoid modifying $_ in grep, but the code
      just made the change in a local variable and then lost it.  Rewrite the
      code using a separate map and grep, which is clearer anyway.
      
      Author: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
      4d33a7f2
    • Tom Lane's avatar
      Show ignored constants as "$N" rather than "?" in pg_stat_statements. · a6f22e83
      Tom Lane authored
      The trouble with the original choice here is that "?" is a valid (and
      indeed used) operator name, so that you could end up with ambiguous
      statement texts like "SELECT ? ? ?".  With this patch, you instead
      see "SELECT $1 ? $2", which seems significantly more readable.
      The numbers used for this purpose begin after the last actual $N parameter
      in the particular query.  The conflict with external parameters has its own
      potential for confusion of course, but it was agreed to be an improvement
      over the previous behavior.
      
      Lukas Fittl
      
      Discussion: https://postgr.es/m/CAP53PkxeaCuwYmF-A4J5z2-qk5fYFo5_NH3gpXGJJBxv1DMwEw@mail.gmail.com
      a6f22e83
  3. 27 Mar, 2017 22 commits
  4. 26 Mar, 2017 5 commits
    • Tom Lane's avatar
      Improve performance of ExecEvalWholeRowVar. · 2f0903ea
      Tom Lane authored
      In commit b8d7f053, we needed to fix ExecEvalWholeRowVar to not change
      the state of the slot it's copying.  The initial quick hack at that
      required two rounds of tuple construction, which is not very nice.
      To fix, add another primitive to tuptoaster.c that does precisely what
      we need.  (I initially tried to do this by refactoring one of the
      existing functions into two pieces; but it looked like that might hurt
      performance for the existing case, and the amount of code that could
      be shared is not very large, so I gave up on that.)
      
      Discussion: https://postgr.es/m/26088.1490315792@sss.pgh.pa.us
      2f0903ea
    • Peter Eisentraut's avatar
      Fix cpluspluscheck warning · 895f9370
      Peter Eisentraut authored
      Structure tag cannot be the same as a typedef that is a pointer to that
      struct.
      895f9370
    • Tom Lane's avatar
      Use ExecPrepareExpr in place of ExecPrepareCheck where appropriate. · 9b95f2fa
      Tom Lane authored
      Change one more place where ExecInitCheck/ExecPrepareCheck's insistence
      on getting implicit-AND-format quals wasn't really helpful, because the
      caller had to do make_ands_implicit() for no reason that it cared about.
      Using ExecPrepareExpr directly simplifies the code and saves cycles.
      
      The only remaining use of these functions is to process
      resultRelInfo->ri_PartitionCheck quals.  However, implicit-AND format
      does seem to be what we want for that, so leave it alone.
      9b95f2fa
    • Tom Lane's avatar
      Fix typos in logical replication support for initial data copy. · 5459cfd3
      Tom Lane authored
      Fix an incorrect assert condition (noted by Coverity), and spell the new
      name of the function correctly.  Typos introduced in commit 7c4f5240.
      
      Michael Paquier
      5459cfd3
    • Tom Lane's avatar
      Fix unportable disregard of alignment requirements in RADIUS code. · 4c051c41
      Tom Lane authored
      The compiler is entitled to store a char[] local variable with no
      particular alignment requirement.  Our RADIUS code cavalierly took such
      a local variable and cast its address to a struct type that does have
      alignment requirements.  On an alignment-picky machine this would lead
      to bus errors.  To fix, declare the local variable honestly, and then
      cast its address to char * for use in the I/O calls.
      
      Given the lack of field complaints, there must be very few if any
      people affected; but nonetheless this is a clear portability issue,
      so back-patch to all supported branches.
      
      Noted while looking at a Coverity complaint in the same code.
      4c051c41