On 12/23/20 2:53 PM, Daniele Varrazzo wrote:
On Tue, 22 Dec 2020 at 22:36, Daniele Varrazzo
<[email protected]> wrote:

On Tue, 22 Dec 2020 at 05:39, Vladimir Ryabtsev <[email protected]> wrote:



Heads up about this: it's better than I thought!

I wrote a first implementation of the prepared statements cache using
the query as a key, but it's actually enough to use the (query, types)
tuple in order to tell apart statements that are executed with
different types. This way even the "SELECT %s" case won't be a
problem. Of course a statement executed with a mix of types will be
prepared later than `prepare_threshold`, but I think it's perfectly

Alright I was following you until you got to above. I'm not following why it would overshoot prepare_threshold?

acceptable: the case doesn't happen often and having the query
prepared after 10 times instead of 5 doesn't change much if it will be
executed hundreds of times or more.

What seems a feature-complete branch is available in [1]. The tests
[2] illustrate the main behaviour of the prepared statements system.

[1]: https://github.com/psycopg/psycopg3/tree/prepared-statements>.
[2]: 
https://github.com/psycopg/psycopg3/blob/prepared-statements/tests/test_prepared.py

Off to do some benchmarks now...

-- Daniele



--
Adrian Klaver
[email protected]


Reply via email to