diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2017-01-06 02:11:57 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2017-01-08 19:33:31 +0000 |
commit | 9758d7cdc98f0d948581fb5630c33e98e4b52855 (patch) | |
tree | 08f603e35235f8c8fb8d0da022830138f952fddf /libpqpp/pq-command.cpp | |
parent | Fix bug where prepared statement cache wasn't cleared on connection reset lea... (diff) | |
download | libdbpp-postgresql-9758d7cdc98f0d948581fb5630c33e98e4b52855.tar.bz2 libdbpp-postgresql-9758d7cdc98f0d948581fb5630c33e98e4b52855.tar.xz libdbpp-postgresql-9758d7cdc98f0d948581fb5630c33e98e4b52855.zip |
Use SQL hash for prepared statement names, increases reuse and avoids random reuse
Diffstat (limited to 'libpqpp/pq-command.cpp')
-rw-r--r-- | libpqpp/pq-command.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libpqpp/pq-command.cpp b/libpqpp/pq-command.cpp index a6259df..5ff83f0 100644 --- a/libpqpp/pq-command.cpp +++ b/libpqpp/pq-command.cpp @@ -5,10 +5,11 @@ #include <compileTimeFormatter.h> #include <boost/date_time/posix_time/posix_time.hpp> -AdHocFormatter(PQCommondStatement, "pStatement_%?_%?"); -PQ::Command::Command(Connection * conn, const std::string & sql, unsigned int no) : +AdHocFormatter(PQCommondStatement, "pStatement_id%?"); +PQ::Command::Command(Connection * conn, const std::string & sql, const DB::CommandOptions * opts) : DB::Command(sql), - stmntName(PQCommondStatement::get(no, this)), + hash(opts && opts->hash ? *opts->hash : std::hash<std::string>()(sql)), + stmntName(PQCommondStatement::get(hash)), c(conn) { } |