launchql / pgsql-parser

PostgreSQL Query Parser for Node.js
MIT License
129 stars 23 forks source link

PG 14 upgrade #92

Open pyramation opened 1 year ago

pyramation commented 1 year ago

libpg-query@14.0.0

eljefedelrodeodeljefe commented 1 year ago

@pyramation do you have plans on integrating it? If you need help what would be a one-liner statement of what needs to be done?

pyramation commented 1 year ago

When I attempted this, the string type was changed — so some of the messages and node parsing needed to be updated. Would love to take a PR for this — and it would also allow for 15 to happen as well.

nith2001 commented 1 year ago

@pyramation Hello! Not sure what you were referring to by the string type, but does it related to the libpg-query-node repository needing to upgrade to V15? Relevant PR here.

pyramation commented 1 year ago

@pyramation Hello! Not sure what you were referring to by the string type, but does it related to the libpg-query-node repository needing to upgrade to V15? Relevant PR here.

yep, the output from libpq-query-node produces a different JSON structure than before for some of the primitive node types — which I believe was the raw string node. This one is particularly everywhere in the pgsql-parser deparser code. One idea for a first attempt is to preparse the output JSON so it conforms to the current codebase and current deparser, and later we can update the deparser.

nith2001 commented 1 year ago

Ahh, I see. So the idea would be to write some code in libpq-query-node to take the output from the original libpq-query code in Version 15, pre-parse it, and return that to pgsql-parser whenever it is called?

If so, that would definitely work, but would complications arise in other codebases where the libpq-query-node library is being used? Or does that not matter because the only way that would happen is for other codebases to update their version?

Edit: Also ngl, I've almost never worked in C++ so I feel like my learning curve would be a tad steep to try and help contribute to libpg-query-node. If there's anything I can do to help on the Javascript side of things on pgsql-parser like writing tests, I'd be down to help.