1. 11 Nov, 2019 7 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 1 commit
    • 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