[Python-checkins] bpo-40956: Fix sqlite3 AC code (GH-23837)

corona10 webhook-mailer at python.org
Fri Dec 18 10:41:41 EST 2020


https://github.com/python/cpython/commit/2179349d8cf45b1202775547df384b1fde31630a
commit: 2179349d8cf45b1202775547df384b1fde31630a
branch: master
author: Dong-hee Na <donghee.na at python.org>
committer: corona10 <donghee.na92 at gmail.com>
date: 2020-12-19T00:41:33+09:00
summary:

bpo-40956: Fix sqlite3 AC code (GH-23837)

files:
M Modules/_sqlite/clinic/connection.c.h
M Modules/_sqlite/connection.c

diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h
index 6b0ff4de4299e..7e3c9a9e61b19 100644
--- a/Modules/_sqlite/clinic/connection.c.h
+++ b/Modules/_sqlite/clinic/connection.c.h
@@ -264,7 +264,7 @@ pysqlite_connection_set_progress_handler(pysqlite_Connection *self, PyObject *co
 }
 
 PyDoc_STRVAR(pysqlite_connection_set_trace_callback__doc__,
-"set_trace_callback($self, trace_callback, /)\n"
+"set_trace_callback($self, /, trace_callback)\n"
 "--\n"
 "\n"
 "Sets a trace callback called for each SQL statement (passed as unicode).\n"
@@ -272,7 +272,31 @@ PyDoc_STRVAR(pysqlite_connection_set_trace_callback__doc__,
 "Non-standard.");
 
 #define PYSQLITE_CONNECTION_SET_TRACE_CALLBACK_METHODDEF    \
-    {"set_trace_callback", (PyCFunction)pysqlite_connection_set_trace_callback, METH_O, pysqlite_connection_set_trace_callback__doc__},
+    {"set_trace_callback", (PyCFunction)(void(*)(void))pysqlite_connection_set_trace_callback, METH_FASTCALL|METH_KEYWORDS, pysqlite_connection_set_trace_callback__doc__},
+
+static PyObject *
+pysqlite_connection_set_trace_callback_impl(pysqlite_Connection *self,
+                                            PyObject *trace_callback);
+
+static PyObject *
+pysqlite_connection_set_trace_callback(pysqlite_Connection *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
+{
+    PyObject *return_value = NULL;
+    static const char * const _keywords[] = {"trace_callback", NULL};
+    static _PyArg_Parser _parser = {NULL, _keywords, "set_trace_callback", 0};
+    PyObject *argsbuf[1];
+    PyObject *trace_callback;
+
+    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf);
+    if (!args) {
+        goto exit;
+    }
+    trace_callback = args[0];
+    return_value = pysqlite_connection_set_trace_callback_impl(self, trace_callback);
+
+exit:
+    return return_value;
+}
 
 #if !defined(SQLITE_OMIT_LOAD_EXTENSION)
 
@@ -487,4 +511,4 @@ pysqlite_connection_exit(pysqlite_Connection *self, PyObject *const *args, Py_ss
 #ifndef PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF
     #define PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF
 #endif /* !defined(PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF) */
-/*[clinic end generated code: output=e14085c0abc0a407 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=eb14a52e4c682f3b input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 1c8f37e16480d..75aec74e0aaa9 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -1083,7 +1083,6 @@ pysqlite_connection_set_progress_handler_impl(pysqlite_Connection *self,
 _sqlite3.Connection.set_trace_callback as pysqlite_connection_set_trace_callback
 
     trace_callback: object
-    /
 
 Sets a trace callback called for each SQL statement (passed as unicode).
 
@@ -1091,9 +1090,9 @@ Non-standard.
 [clinic start generated code]*/
 
 static PyObject *
-pysqlite_connection_set_trace_callback(pysqlite_Connection *self,
-                                       PyObject *trace_callback)
-/*[clinic end generated code: output=efd1bf439e81696c input=05a4a14360e0e034]*/
+pysqlite_connection_set_trace_callback_impl(pysqlite_Connection *self,
+                                            PyObject *trace_callback)
+/*[clinic end generated code: output=fb0e307b9924d454 input=56d60fd38d763679]*/
 {
     if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
         return NULL;
@@ -1130,7 +1129,7 @@ pysqlite_connection_set_trace_callback(pysqlite_Connection *self,
 /*[clinic input]
 _sqlite3.Connection.enable_load_extension as pysqlite_connection_enable_load_extension
 
-    enable as onoff: int
+    enable as onoff: bool(accept={int})
     /
 
 Enable dynamic loading of SQLite extension modules. Non-standard.
@@ -1139,7 +1138,7 @@ Enable dynamic loading of SQLite extension modules. Non-standard.
 static PyObject *
 pysqlite_connection_enable_load_extension_impl(pysqlite_Connection *self,
                                                int onoff)
-/*[clinic end generated code: output=9cac37190d388baf input=7df2986f1602d6bd]*/
+/*[clinic end generated code: output=9cac37190d388baf input=5c0da5b121121cbc]*/
 {
     int rc;
 



More information about the Python-checkins mailing list