pgsql pipeline mode#13225
Open
degtyaryov wants to merge 11 commits into
Open
Conversation
Adding pg_send_flush_request. Fix freeze after next execute pg_send_* on PQgetResult in _php_pgsql_link_has_results. Set nonblocking for pipelining mode. No flush client buffer in pg_send_* for pipelining mode.
Fix pgsql_arginfo.h
Fix freeze pg_cancel_query. In pipeline mode it should be possible to receive part of the results. (cherry picked from commit 72f3efe36d2824b4e3fb25b5ef4a58311d094aaf)
Prevent freeze pg_get_result when not sent sync message in pipelining mode. Fix freeze pg_close for connection in pipelining mode. Fix freeze on rollback transactions for persistent connection in pipelining mode. Fix freeze on shutdown. (cherry picked from commit 1a775ceac9673f6131c8a42b46d0b9d657636067)
Fix freeze pg_query/pg_query_params/pg_prepare/pg_execute
This reverts commit 1e66e6a
devnexen
reviewed
Jan 23, 2024
| } | ||
| if (leftover) { | ||
| php_error_docref(NULL, E_NOTICE, "Found results on this connection. Use pg_get_result() to get these results first"); | ||
| #ifdef LIBPQ_HAS_PIPELINING |
Member
There was a problem hiding this comment.
A macro or a inline for this whole "repeated all over" block might be nice.
Contributor
Author
There was a problem hiding this comment.
I just added to the existing code.
It also seemed to me that there were a lot of repeating blocks.
But, I don't plan to optimize other people's code.
Member
There was a problem hiding this comment.
it is not so much about optimising but more about factoring, if we update again we won t need to do it more than once.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello.
I previously made a pool request #12731
For obvious reasons, this code could not be included in the release PHP-8.3 #12735
I haven't changed anything in the code since then. I moved the code to a separate branch.
I've been using the code in production for over a month, but without using pipeline mode.
I've been using pipeline mode in production for 2 weeks now.
So far I haven't found any problems!
I used pipeline mode:
Merged to master branch.