Skip to content
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 text protocol based query method (#14) #1079

Closed

Conversation

tomhoule
Copy link

@tomhoule tomhoule commented Nov 7, 2023

No description provided.

kelvich and others added 12 commits October 13, 2023 09:26
Add query_raw_txt client method

It takes all the extended protocol params as text and passes them to
postgres to sort out types. With that we can avoid situations when
postgres derived different type compared to what was passed in arguments.
There is also propare_typed method, but since we receive data in text
format anyway it makes more sense to avoid dealing with types in params.

This way we also can save on roundtrip and send Parse+Bind+Describe+Execute
right away without waiting for params description before Bind.

Use text protocol for responses -- that allows to grab
postgres-provided serializations for types.

Catch command tag.

Expose row buffer size and add `max_backend_message_size` option to
prevent handling and storing in memory large messages from the backend.

Co-authored-by: Arthur Petukhovsky <[email protected]>
Previous coding only allowed passing vector of text values as params,
but that does not allow to distinguish between nulls and 4-byte
strings with "null" written in them. Change query_raw_txt params
argument to accept Vec<Option<String>> instead.
As we are trying to match client-side behaviour with node-postgres we
need to return this fields as well because node-postgres returns them.
* refactor query_raw_txt to use a pre-prepared statement

* expose ready_status on RowStream
Enable transactional pool mode configuration
fix(pool): Skip all type info queries, we run in text mode
@tomhoule tomhoule closed this Nov 7, 2023
@tomhoule tomhoule deleted the single-roundtrip-prepare-execute branch November 7, 2023 12:10
@tomhoule tomhoule restored the single-roundtrip-prepare-execute branch November 7, 2023 12:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants