Skip to content

Commit e9535b8

Browse files
author
Erlend E. Aasland
committed
Address review: fix execute() and executemany() specs
1 parent e8790dc commit e9535b8

File tree

2 files changed

+13
-17
lines changed

2 files changed

+13
-17
lines changed

Modules/_sqlite/clinic/cursor.c.h

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pysqlite_cursor_init(PyObject *self, PyObject *args, PyObject *kwargs)
3131
}
3232

3333
PyDoc_STRVAR(pysqlite_cursor_execute__doc__,
34-
"execute($self, sql, parameters=<unrepresentable>, /)\n"
34+
"execute($self, sql, parameters=(), /)\n"
3535
"--\n"
3636
"\n"
3737
"Executes a SQL statement.");
@@ -73,7 +73,7 @@ pysqlite_cursor_execute(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t
7373
}
7474

7575
PyDoc_STRVAR(pysqlite_cursor_executemany__doc__,
76-
"executemany($self, sql, parameters=<unrepresentable>, /)\n"
76+
"executemany($self, sql, seq_of_parameters, /)\n"
7777
"--\n"
7878
"\n"
7979
"Repeatedly executes a SQL statement.");
@@ -83,16 +83,16 @@ PyDoc_STRVAR(pysqlite_cursor_executemany__doc__,
8383

8484
static PyObject *
8585
pysqlite_cursor_executemany_impl(pysqlite_Cursor *self, PyObject *sql,
86-
PyObject *parameters);
86+
PyObject *seq_of_parameters);
8787

8888
static PyObject *
8989
pysqlite_cursor_executemany(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs)
9090
{
9191
PyObject *return_value = NULL;
9292
PyObject *sql;
93-
PyObject *parameters = NULL;
93+
PyObject *seq_of_parameters;
9494

95-
if (!_PyArg_CheckPositional("executemany", nargs, 1, 2)) {
95+
if (!_PyArg_CheckPositional("executemany", nargs, 2, 2)) {
9696
goto exit;
9797
}
9898
if (!PyUnicode_Check(args[0])) {
@@ -103,12 +103,8 @@ pysqlite_cursor_executemany(pysqlite_Cursor *self, PyObject *const *args, Py_ssi
103103
goto exit;
104104
}
105105
sql = args[0];
106-
if (nargs < 2) {
107-
goto skip_optional;
108-
}
109-
parameters = args[1];
110-
skip_optional:
111-
return_value = pysqlite_cursor_executemany_impl(self, sql, parameters);
106+
seq_of_parameters = args[1];
107+
return_value = pysqlite_cursor_executemany_impl(self, sql, seq_of_parameters);
112108

113109
exit:
114110
return return_value;
@@ -283,4 +279,4 @@ pysqlite_cursor_close(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored))
283279
{
284280
return pysqlite_cursor_close_impl(self);
285281
}
286-
/*[clinic end generated code: output=29b5b24ed34ba996 input=a9049054013a1b77]*/
282+
/*[clinic end generated code: output=84d4ba48a211657b input=a9049054013a1b77]*/

Modules/_sqlite/cursor.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation
613613
_sqlite3.Cursor.execute as pysqlite_cursor_execute
614614
615615
sql: unicode
616-
parameters: object = NULL
616+
parameters: object(c_default = 'NULL') = ()
617617
/
618618
619619
Executes a SQL statement.
@@ -622,7 +622,7 @@ Executes a SQL statement.
622622
static PyObject *
623623
pysqlite_cursor_execute_impl(pysqlite_Cursor *self, PyObject *sql,
624624
PyObject *parameters)
625-
/*[clinic end generated code: output=d81b4655c7c0bbad input=f146ded55ff8c7d4]*/
625+
/*[clinic end generated code: output=d81b4655c7c0bbad input=91d7bb36f127f597]*/
626626
{
627627
return _pysqlite_query_execute(self, 0, sql, parameters);
628628
}
@@ -631,16 +631,16 @@ pysqlite_cursor_execute_impl(pysqlite_Cursor *self, PyObject *sql,
631631
_sqlite3.Cursor.executemany as pysqlite_cursor_executemany
632632
633633
sql: unicode
634-
parameters: object = NULL
634+
seq_of_parameters: object
635635
/
636636
637637
Repeatedly executes a SQL statement.
638638
[clinic start generated code]*/
639639

640640
static PyObject *
641641
pysqlite_cursor_executemany_impl(pysqlite_Cursor *self, PyObject *sql,
642-
PyObject *parameters)
643-
/*[clinic end generated code: output=df8e2d0b7300aab6 input=fa99d0eb3dd5971e]*/
642+
PyObject *seq_of_parameters)
643+
/*[clinic end generated code: output=2c65a3c4733fb5d8 input=440707b7af87fba8]*/
644644
{
645645
return _pysqlite_query_execute(self, 1, sql, parameters);
646646
}

0 commit comments

Comments
 (0)