summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDong-hee Na <donghee.na@python.org>2020-12-18 15:41:33 (GMT)
committerGitHub <noreply@github.com>2020-12-18 15:41:33 (GMT)
commit2179349d8cf45b1202775547df384b1fde31630a (patch)
tree1ab43f471f40d7f9556d23a59462b414accf28cd
parent1ba82bbc50a52f40ad05f3c4aaf2e159e0ce126d (diff)
downloadcpython-2179349d8cf45b1202775547df384b1fde31630a.zip
cpython-2179349d8cf45b1202775547df384b1fde31630a.tar.gz
cpython-2179349d8cf45b1202775547df384b1fde31630a.tar.bz2
bpo-40956: Fix sqlite3 AC code (GH-23837)
-rw-r--r--Modules/_sqlite/clinic/connection.c.h30
-rw-r--r--Modules/_sqlite/connection.c11
2 files changed, 32 insertions, 9 deletions
diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h
index 6b0ff4d..7e3c9a9 100644
--- a/Modules/_sqlite/clinic/connection.c.h
+++ b/Modules/_sqlite/clinic/connection.c.h
@@ -264,7 +264,7 @@ exit:
}
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 @@ exit:
#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 1c8f37e..75aec74 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;