Skip to content

Releases: pganalyze/libpg_query

15-4.0.0

13 Dec 17:08
1ada550
Compare
Choose a tag to compare
  • Update to Postgres 15.1
  • Add support for MERGE statements
  • Add support for ALTER TABLE ALL IN TABLESPACE ... statements
  • Add support for publication objects
    • CREATE PUBLICATION foo FOR TABLES IN SCHEMA CURRENT_SCHEMA
  • Deparser now attempts to deparse COPY statements first using the old Postgres 8.4-style syntax (e.g. COPY foo FROM STDIN FREEZE CSV).
❯ shasum -a 256 libpg_query-15-4.0.0.*
1d8a9057b34faed5fa272c6fad8fc706d494b5a877cbe2b582f546660329883d  libpg_query-15-4.0.0.tar.gz
63f88c157db79a58e2b01b0adbd7eecf5181f84f8995a00de21d59d4359831a4  libpg_query-15-4.0.0.zip

14-3.0.0

12 Dec 20:06
Compare
Choose a tag to compare

Special thanks to @wolfgangwalther and @tlisanti for most of the work done on this release.

  • Update to Postgres 14.6
  • Drop support for ? parameter syntax
  • Update fingerprint.json to include newly added tests, regenerate tests
$ shasum -a 256 libpg_query-14-3.0.0.*
59c5cd6d41e36e3f5c9d1179b40190c5429045e211a29527e8500f93a9a75f78  libpg_query-14-3.0.0.tar.gz
dbc7f12526db9cd5f5e1f614992ad41aa93a57172e3d5fccd766fa79307fb0f5  libpg_query-14-3.0.0.zip

13-2.2.0

03 Nov 00:23
Compare
Choose a tag to compare
  • Update to Postgres 13.8 patch release #156
  • Backport Xcode 14.1 build fix from upcoming 13.9 release #156
  • Fingerprinting version 3.1 #155
    • Fixes issue with "SELECT DISTINCT" having the same fingerprint as "SELECT"
      (fingerprints for "SELECT DISTINCT" will change with this revision)
    • Group additional DDL statements together that otherwise generate a lot of
      unique fingerprints (ListenStmt, UnlistenStmt, NotifyStmt, CreateFunctionStmt,
      FunctionParameter and DoStmt)
  • Normalize additional DDL statements #155
    • Normalizes arguments to CreateFunctionStmt, DoStmt,
      CreateSubscriptionStmt, AlterSubscriptionStmt, CreateUserMapping and
      AlterUserMapping.
    • Note that this is different from pg_stat_statements itself, which does
      not normalize utility statements at all today.
$ shasum -a 256 libpg_query-13-2.2.0.* 
07916be1a2b780dee6feed936aaa04ccee2a3afde8570a6920c3a839c87539c6  libpg_query-13-2.2.0.tar.gz
6aa05d5ca983be6e2c797bf53e629f33c7fc229e6afda496235e43efd6296232  libpg_query-13-2.2.0.zip

13-2.1.2

28 Jun 23:41
4b30b03
Compare
Choose a tag to compare
  • Add support for analyzing PL/pgSQL code inside DO blocks #142
  • Fix memory leak in pg_query_fingerprint error handling #141
$ shasum -a 256 libpg_query-13-2.1.2.*
101a7851ee065d824fe06e300b78355a79bd5411864de707761282a0c57a0a97  libpg_query-13-2.1.2.tar.gz
fe4462e3e8dc41f4c5610d3d2d2c821adccc9228f1c9ec5834277c5139e0d668  libpg_query-13-2.1.2.zip

13-2.1.1

03 May 23:30
7eb584d
Compare
Choose a tag to compare
  • PL/pgSQL parser
    • Add support for Assert #135
    • Add support for SET, COMMIT, ROLLBACK and CALL #130
  • Add support for parsing more operators that include a ? character (special cased to support old pg_stat_statements query texts)
    • ltree extension #136
    • promscale extension #133
  • Deparser improvements
    • Prefix errors with "deparse", and remove some asserts #131
    • Fix potential segfault when passing invalid protobuf (RawStmt without Stmt) #128
$ shasum -a 256 libpg_query-13-2.1.1.*
a9011e14868762bc894e5c02172efde4e70f4f868fbffcc490b15ca351f31b06  libpg_query-13-2.1.1.tar.gz
7e1b9d0b79b394e60dba0f8b87f7e4788dd945c15179c49b6207b3ee47ca943b  libpg_query-13-2.1.1.zip

13-2.1.0

12 Oct 21:22
Compare
Choose a tag to compare
  • Normalize: add funcname error object #121
  • Normalize: Match GROUP BY against target list and re-use param refs #124
  • PL/pgSQL: Setup namespace items for parameters, support RECORD types #123
    • This significantly improves parsing for PL/pgSQL functions, to the extent
      that most functions should now parse successfully
$ shasum -a 256 libpg_query-13-2.1.0.*
a01329ae5bac19b10b8ddf8012bd663a20f85f180d6d7b900c1a1ca8444d19a5  libpg_query-13-2.1.0.tar.gz
16e2804a5f1cbedec3ae74bef49c9b61d7728e61a1b472da41fac1e506785d73  libpg_query-13-2.1.0.zip

13-2.0.7

16 Jul 09:23
802caf2
Compare
Choose a tag to compare
  • Normalize: Don't modify constants in TypeName typmods/arrayBounds fields (#118)
    • This matches how pg_stat_statement behaves, and avoids causing parsing
      errors on the normalized statement
  • Don't fail builds on systems that have strchrnul support (FreeBSD)
$ shasum -a 256 libpg_query-13-2.0.7.*
ea08b32619b37cb2beb2dd07e1121a4a1e7372d71d0edfa935e5a30ebc490821  libpg_query-13-2.0.7.tar.gz
4c82dfe22fa0bbfb3ddbafe14e363067223fa6ba460b9a5a43e78057778deaee  libpg_query-13-2.0.7.zip

13-2.0.6

29 Jun 18:41
a248206
Compare
Choose a tag to compare
  • Normalize: Don't touch "ORDER BY 1" expressions, keep original text #115
    • This avoids obscuring the semantic meaning of integers in the ORDER BY
      clause, which is to reference a particular column in the target list.
$ shasum -a 256 libpg_query-13-2.0.6.*
61f384ac949bd7404efe6bcc37a8a6fca79030e59c02659f108ee1db45e93414  libpg_query-13-2.0.6.tar.gz
d1d03d61c8251f5b8b7d81f60ba1141ff5efc577cd2a74d92ce894170a84dbd4  libpg_query-13-2.0.6.zip

13-2.0.5

24 Jun 21:43
Compare
Choose a tag to compare
  • Update to Postgres 13.3 patch release #114
  • Add optional Makefile target to build as shared library #100
  • Normalize: Don't touch "GROUP BY 1" type statements, keep original text #113
    • This avoids obscuring the semantic meaning of integers in the GROUP BY
      clause, which is to reference a particular column in the target list.
  • Fingerprint: Cache list item hashes to fingerprint complex queries faster #112
    • This was exhibiting quite bad runtime behaviour before, causing both an
      explosion in memory, as well as very high CPU runtime for complex queries.
    • The new approach ensures we don't calculate the hashes for a particular
      list more than once, which ensures that we roughly have quadratic runtime
      instead of exponential runtime.
  • Deparser: Emit the RangeVar catalogname if present #105
  • Fix crash in pg_scan function when encountering backslash escapes #109
  • Integrate oss-fuzz fuzzer #106
$ shasum -a 256 libpg_query-13-2.0.5.*
65e99d0a813666a365612bada17430bbc40b01a1aacf2836309f9de0570bb52d  libpg_query-13-2.0.5.tar.gz
7883440bb891e7f2cf04b7cf25585994575d1c025db6b6adae72cb68a7dc2cd0  libpg_query-13-2.0.5.zip

13-2.0.4

05 Apr 22:06
Compare
Choose a tag to compare
  • Deparser: Fix crash in CopyStmt with HEADER or FREEZE inside WITH parens
    • The parse tree does not contain an explicit argument in those cases,
      but does when specified in the legacy mode without the wrapping WITH.
    • With this change we only output the "1" argument when the original tree
      also had this, to ensure parse tree comparisons match. Note the intent
      here is technically the same, which is to enable these options.
$ shasum -a 256 libpg_query-13-2.0.4.*
a67ef3e3b6c9cb1297f362888d6660dac165d3b020f78d23afe4293b8ceaf190  libpg_query-13-2.0.4.tar.gz
783b72123f23538db5cf45ab979284025dbdffbac60304602a0c124e4dba53ed  libpg_query-13-2.0.4.zip