-
-
Notifications
You must be signed in to change notification settings - Fork 439
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ltree, lquery and ltxtquery support #875
Conversation
@sfackler appreciate a review if you have time, open to any changes. |
@sfackler I think everything should be sorted. Added more tests around the protocol parsers. Let me know if you see anything else glaring. Thanks! |
Looking forward to see this! |
Hey @sfackler I think since I haven't contributed before I need some assistance kicking off another build. Thanks for your help! |
35214dc
to
6fae655
Compare
Ok @sfackler, sorry about that delay. I didn't know about the Confirmed the latest build is working on my fork: https://github.com/halfmatthalfcat/rust-postgres/actions/runs/1996247393 I rebased as well so we should be ready to go on this. |
Hey @sfackler can we kick the tires on this one more time? |
Kicked - sorry for the delay. I really with github would auto-build once you've been approved a single time or something... :( |
This adds Postgres ltree, lquery and ltxtquery support to rust-postgres. For the uninitiated, ltree ("label tree") is a Postgres datatype that follows a dot-notated search path for a given row. Lquery and ltxtquery allow users to search for rows that match an ltree. There are many query operators to help traverse the tree in a given query.
There is some commentary in #389 on why we are not adding
Inner
s for the three datatypes. In summary, becauseltree
is an extension (one that ships with Postgres), it's Oids are not static like many other datatypes. This renders theInner
loading by Oid unusable and thus we must match on theType
name, like we do forcitext
.Long term motivations for this are to incorporate these changes into quaint and then eventually into Prisma.
Fixes #389