1. 11 Nov, 2019 3 commits
  2. 09 Nov, 2019 6 commits
  3. 08 Nov, 2019 6 commits
  4. 07 Nov, 2019 9 commits
  5. 06 Nov, 2019 11 commits
  6. 05 Nov, 2019 5 commits
    • Andres Freund's avatar
      Make StringInfo available to frontend code. · 26aaf97b
      Andres Freund authored
      There's plenty places in frontend code that could benefit from a
      string buffer implementation. Some because it yields simpler and
      faster code, and some others because of the desire to share code
      between backend and frontend.
      
      While there is a string buffer implementation available to frontend
      code, libpq's PQExpBuffer, it is clunkier than stringinfo, it
      introduces a libpq dependency, doesn't allow for sharing between
      frontend and backend code, and has a higher API/ABI stability
      requirement due to being exposed via libpq.
      
      Therefore it seems best to just making StringInfo being usable by
      frontend code. There's not much to do for that, except for rewriting
      two subsequent elog/ereport calls into others types of error
      reporting, and deciding on a maximum string length.
      
      For the maximum string size I decided to privately define MaxAllocSize
      to the same value as used in the backend. It seems likely that we'll
      want to reconsider this for both backend and frontend code in the not
      too far away future.
      
      For now I've left stringinfo.h in lib/, rather than common/, to reduce
      the likelihood of unnecessary breakage. We could alternatively decide
      to provide a redirecting stringinfo.h in lib/, or just not provide
      compatibility.
      
      Author: Andres Freund
      Reviewed-By: Kyotaro Horiguchi, Daniel Gustafsson
      Discussion: https://postgr.es/m/20190920051857.2fhnvhvx4qdddviz@alap3.anarazel.de
      26aaf97b
    • Andres Freund's avatar
      Split all OBJS style lines in makefiles into one-line-per-entry style. · 01368e5d
      Andres Freund authored
      When maintaining or merging patches, one of the most common sources
      for conflicts are the list of objects in makefiles. Especially when
      the split across lines has been changed on both sides, which is
      somewhat common due to attempting to stay below 80 columns, those
      conflicts are unnecessarily laborious to resolve.
      
      By splitting, and alphabetically sorting, OBJS style lines into one
      object per line, conflicts should be less frequent, and easier to
      resolve when they still occur.
      
      Author: Andres Freund
      Discussion: https://postgr.es/m/20191029200901.vww4idgcxv74cwes@alap3.anarazel.de
      01368e5d
    • Tom Lane's avatar
      66c61c81
    • Tom Lane's avatar
      Avoid logging complaints about abandoned connections when using PAM. · 3affe76e
      Tom Lane authored
      For a long time (since commit aed378e8) we have had a policy to log
      nothing about a connection if the client disconnects when challenged
      for a password.  This is because libpq-using clients will typically
      do that, and then come back for a new connection attempt once they've
      collected a password from their user, so that logging the abandoned
      connection attempt will just result in log spam.  However, this did
      not work well for PAM authentication: the bottom-level function
      pam_passwd_conv_proc() was on board with it, but we logged messages
      at higher levels anyway, for lack of any reporting mechanism.
      Add a flag and tweak the logic so that the case is silent, as it is
      for other password-using auth mechanisms.
      
      Per complaint from Yoann La Cancellera.  It's been like this for awhile,
      so back-patch to all supported branches.
      
      Discussion: https://postgr.es/m/CACP=ajbrFFYUrLyJBLV8=q+eNCapa1xDEyvXhMoYrNphs-xqPw@mail.gmail.com
      3affe76e
    • Tom Lane's avatar
      Fix "unexpected relkind" error when denying permissions on toast tables. · a30531c5
      Tom Lane authored
      get_relkind_objtype, and hence get_object_type, failed when applied to a
      toast table.  This is not a good thing, because it prevents reporting of
      perfectly legitimate permissions errors.  (At present, these functions
      are in fact *only* used to determine the ObjectType argument for
      acl_error() calls.)  It seems best to have them fall back to returning
      OBJECT_TABLE in every case where they can't determine an object type
      for a pg_class entry, so do that.
      
      In passing, make some edits to alter.c to make it more obvious that
      those calls of get_object_type() are used only for error reporting.
      This might save a few cycles in the non-error code path, too.
      
      Back-patch to v11 where this issue originated.
      
      John Hsu, Michael Paquier, Tom Lane
      
      Discussion: https://postgr.es/m/C652D3DF-2B0C-4128-9420-FB5379F6B1E4@amazon.com
      a30531c5