From 14a1a10bffc363000586f68dc8aeeb4c3f4e6954 Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Thu, 20 Sep 2018 14:10:49 +0300 Subject: [PATCH] bpo-32215: Fix performance regression in sqlite3 (GH-8511) (cherry picked from commit 8d1e190fc507a9e304f6817e761e9f628a23cbd8) Co-authored-by: Berker Peksag --- .../next/Library/2018-07-28-12-08-53.bpo-32215.EU68SY.rst | 2 ++ Modules/_sqlite/statement.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2018-07-28-12-08-53.bpo-32215.EU68SY.rst diff --git a/Misc/NEWS.d/next/Library/2018-07-28-12-08-53.bpo-32215.EU68SY.rst b/Misc/NEWS.d/next/Library/2018-07-28-12-08-53.bpo-32215.EU68SY.rst new file mode 100644 index 00000000000000..c097cf7310dfb3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-07-28-12-08-53.bpo-32215.EU68SY.rst @@ -0,0 +1,2 @@ +Fix performance regression in :mod:`sqlite3` when a DML statement appeared +in a different line than the rest of the SQL query. diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index 087375be9b63d8..de265963b084b9 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -85,10 +85,10 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con continue; } - self->is_dml = (PyOS_strnicmp(p, "insert ", 7) == 0) - || (PyOS_strnicmp(p, "update ", 7) == 0) - || (PyOS_strnicmp(p, "delete ", 7) == 0) - || (PyOS_strnicmp(p, "replace ", 8) == 0); + self->is_dml = (PyOS_strnicmp(p, "insert", 6) == 0) + || (PyOS_strnicmp(p, "update", 6) == 0) + || (PyOS_strnicmp(p, "delete", 6) == 0) + || (PyOS_strnicmp(p, "replace", 7) == 0); break; }