17db96d56Sopenharmony_ci/*[clinic input]
27db96d56Sopenharmony_cipreserve
37db96d56Sopenharmony_ci[clinic start generated code]*/
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_cistatic int
67db96d56Sopenharmony_cipysqlite_cursor_init_impl(pysqlite_Cursor *self,
77db96d56Sopenharmony_ci                          pysqlite_Connection *connection);
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_cistatic int
107db96d56Sopenharmony_cipysqlite_cursor_init(PyObject *self, PyObject *args, PyObject *kwargs)
117db96d56Sopenharmony_ci{
127db96d56Sopenharmony_ci    int return_value = -1;
137db96d56Sopenharmony_ci    pysqlite_Connection *connection;
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci    if ((Py_IS_TYPE(self, clinic_state()->CursorType) ||
167db96d56Sopenharmony_ci         Py_TYPE(self)->tp_new == clinic_state()->CursorType->tp_new) &&
177db96d56Sopenharmony_ci        !_PyArg_NoKeywords("Cursor", kwargs)) {
187db96d56Sopenharmony_ci        goto exit;
197db96d56Sopenharmony_ci    }
207db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("Cursor", PyTuple_GET_SIZE(args), 1, 1)) {
217db96d56Sopenharmony_ci        goto exit;
227db96d56Sopenharmony_ci    }
237db96d56Sopenharmony_ci    if (!PyObject_TypeCheck(PyTuple_GET_ITEM(args, 0), clinic_state()->ConnectionType)) {
247db96d56Sopenharmony_ci        _PyArg_BadArgument("Cursor", "argument 1", (clinic_state()->ConnectionType)->tp_name, PyTuple_GET_ITEM(args, 0));
257db96d56Sopenharmony_ci        goto exit;
267db96d56Sopenharmony_ci    }
277db96d56Sopenharmony_ci    connection = (pysqlite_Connection *)PyTuple_GET_ITEM(args, 0);
287db96d56Sopenharmony_ci    return_value = pysqlite_cursor_init_impl((pysqlite_Cursor *)self, connection);
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ciexit:
317db96d56Sopenharmony_ci    return return_value;
327db96d56Sopenharmony_ci}
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_execute__doc__,
357db96d56Sopenharmony_ci"execute($self, sql, parameters=(), /)\n"
367db96d56Sopenharmony_ci"--\n"
377db96d56Sopenharmony_ci"\n"
387db96d56Sopenharmony_ci"Executes an SQL statement.");
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_EXECUTE_METHODDEF    \
417db96d56Sopenharmony_ci    {"execute", _PyCFunction_CAST(pysqlite_cursor_execute), METH_FASTCALL, pysqlite_cursor_execute__doc__},
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_cistatic PyObject *
447db96d56Sopenharmony_cipysqlite_cursor_execute_impl(pysqlite_Cursor *self, PyObject *sql,
457db96d56Sopenharmony_ci                             PyObject *parameters);
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_cistatic PyObject *
487db96d56Sopenharmony_cipysqlite_cursor_execute(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs)
497db96d56Sopenharmony_ci{
507db96d56Sopenharmony_ci    PyObject *return_value = NULL;
517db96d56Sopenharmony_ci    PyObject *sql;
527db96d56Sopenharmony_ci    PyObject *parameters = NULL;
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("execute", nargs, 1, 2)) {
557db96d56Sopenharmony_ci        goto exit;
567db96d56Sopenharmony_ci    }
577db96d56Sopenharmony_ci    if (!PyUnicode_Check(args[0])) {
587db96d56Sopenharmony_ci        _PyArg_BadArgument("execute", "argument 1", "str", args[0]);
597db96d56Sopenharmony_ci        goto exit;
607db96d56Sopenharmony_ci    }
617db96d56Sopenharmony_ci    if (PyUnicode_READY(args[0]) == -1) {
627db96d56Sopenharmony_ci        goto exit;
637db96d56Sopenharmony_ci    }
647db96d56Sopenharmony_ci    sql = args[0];
657db96d56Sopenharmony_ci    if (nargs < 2) {
667db96d56Sopenharmony_ci        goto skip_optional;
677db96d56Sopenharmony_ci    }
687db96d56Sopenharmony_ci    parameters = args[1];
697db96d56Sopenharmony_ciskip_optional:
707db96d56Sopenharmony_ci    return_value = pysqlite_cursor_execute_impl(self, sql, parameters);
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ciexit:
737db96d56Sopenharmony_ci    return return_value;
747db96d56Sopenharmony_ci}
757db96d56Sopenharmony_ci
767db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_executemany__doc__,
777db96d56Sopenharmony_ci"executemany($self, sql, seq_of_parameters, /)\n"
787db96d56Sopenharmony_ci"--\n"
797db96d56Sopenharmony_ci"\n"
807db96d56Sopenharmony_ci"Repeatedly executes an SQL statement.");
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_EXECUTEMANY_METHODDEF    \
837db96d56Sopenharmony_ci    {"executemany", _PyCFunction_CAST(pysqlite_cursor_executemany), METH_FASTCALL, pysqlite_cursor_executemany__doc__},
847db96d56Sopenharmony_ci
857db96d56Sopenharmony_cistatic PyObject *
867db96d56Sopenharmony_cipysqlite_cursor_executemany_impl(pysqlite_Cursor *self, PyObject *sql,
877db96d56Sopenharmony_ci                                 PyObject *seq_of_parameters);
887db96d56Sopenharmony_ci
897db96d56Sopenharmony_cistatic PyObject *
907db96d56Sopenharmony_cipysqlite_cursor_executemany(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs)
917db96d56Sopenharmony_ci{
927db96d56Sopenharmony_ci    PyObject *return_value = NULL;
937db96d56Sopenharmony_ci    PyObject *sql;
947db96d56Sopenharmony_ci    PyObject *seq_of_parameters;
957db96d56Sopenharmony_ci
967db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("executemany", nargs, 2, 2)) {
977db96d56Sopenharmony_ci        goto exit;
987db96d56Sopenharmony_ci    }
997db96d56Sopenharmony_ci    if (!PyUnicode_Check(args[0])) {
1007db96d56Sopenharmony_ci        _PyArg_BadArgument("executemany", "argument 1", "str", args[0]);
1017db96d56Sopenharmony_ci        goto exit;
1027db96d56Sopenharmony_ci    }
1037db96d56Sopenharmony_ci    if (PyUnicode_READY(args[0]) == -1) {
1047db96d56Sopenharmony_ci        goto exit;
1057db96d56Sopenharmony_ci    }
1067db96d56Sopenharmony_ci    sql = args[0];
1077db96d56Sopenharmony_ci    seq_of_parameters = args[1];
1087db96d56Sopenharmony_ci    return_value = pysqlite_cursor_executemany_impl(self, sql, seq_of_parameters);
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_ciexit:
1117db96d56Sopenharmony_ci    return return_value;
1127db96d56Sopenharmony_ci}
1137db96d56Sopenharmony_ci
1147db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_executescript__doc__,
1157db96d56Sopenharmony_ci"executescript($self, sql_script, /)\n"
1167db96d56Sopenharmony_ci"--\n"
1177db96d56Sopenharmony_ci"\n"
1187db96d56Sopenharmony_ci"Executes multiple SQL statements at once.");
1197db96d56Sopenharmony_ci
1207db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_EXECUTESCRIPT_METHODDEF    \
1217db96d56Sopenharmony_ci    {"executescript", (PyCFunction)pysqlite_cursor_executescript, METH_O, pysqlite_cursor_executescript__doc__},
1227db96d56Sopenharmony_ci
1237db96d56Sopenharmony_cistatic PyObject *
1247db96d56Sopenharmony_cipysqlite_cursor_executescript_impl(pysqlite_Cursor *self,
1257db96d56Sopenharmony_ci                                   const char *sql_script);
1267db96d56Sopenharmony_ci
1277db96d56Sopenharmony_cistatic PyObject *
1287db96d56Sopenharmony_cipysqlite_cursor_executescript(pysqlite_Cursor *self, PyObject *arg)
1297db96d56Sopenharmony_ci{
1307db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1317db96d56Sopenharmony_ci    const char *sql_script;
1327db96d56Sopenharmony_ci
1337db96d56Sopenharmony_ci    if (!PyUnicode_Check(arg)) {
1347db96d56Sopenharmony_ci        _PyArg_BadArgument("executescript", "argument", "str", arg);
1357db96d56Sopenharmony_ci        goto exit;
1367db96d56Sopenharmony_ci    }
1377db96d56Sopenharmony_ci    Py_ssize_t sql_script_length;
1387db96d56Sopenharmony_ci    sql_script = PyUnicode_AsUTF8AndSize(arg, &sql_script_length);
1397db96d56Sopenharmony_ci    if (sql_script == NULL) {
1407db96d56Sopenharmony_ci        goto exit;
1417db96d56Sopenharmony_ci    }
1427db96d56Sopenharmony_ci    if (strlen(sql_script) != (size_t)sql_script_length) {
1437db96d56Sopenharmony_ci        PyErr_SetString(PyExc_ValueError, "embedded null character");
1447db96d56Sopenharmony_ci        goto exit;
1457db96d56Sopenharmony_ci    }
1467db96d56Sopenharmony_ci    return_value = pysqlite_cursor_executescript_impl(self, sql_script);
1477db96d56Sopenharmony_ci
1487db96d56Sopenharmony_ciexit:
1497db96d56Sopenharmony_ci    return return_value;
1507db96d56Sopenharmony_ci}
1517db96d56Sopenharmony_ci
1527db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_fetchone__doc__,
1537db96d56Sopenharmony_ci"fetchone($self, /)\n"
1547db96d56Sopenharmony_ci"--\n"
1557db96d56Sopenharmony_ci"\n"
1567db96d56Sopenharmony_ci"Fetches one row from the resultset.");
1577db96d56Sopenharmony_ci
1587db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_FETCHONE_METHODDEF    \
1597db96d56Sopenharmony_ci    {"fetchone", (PyCFunction)pysqlite_cursor_fetchone, METH_NOARGS, pysqlite_cursor_fetchone__doc__},
1607db96d56Sopenharmony_ci
1617db96d56Sopenharmony_cistatic PyObject *
1627db96d56Sopenharmony_cipysqlite_cursor_fetchone_impl(pysqlite_Cursor *self);
1637db96d56Sopenharmony_ci
1647db96d56Sopenharmony_cistatic PyObject *
1657db96d56Sopenharmony_cipysqlite_cursor_fetchone(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored))
1667db96d56Sopenharmony_ci{
1677db96d56Sopenharmony_ci    return pysqlite_cursor_fetchone_impl(self);
1687db96d56Sopenharmony_ci}
1697db96d56Sopenharmony_ci
1707db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_fetchmany__doc__,
1717db96d56Sopenharmony_ci"fetchmany($self, /, size=1)\n"
1727db96d56Sopenharmony_ci"--\n"
1737db96d56Sopenharmony_ci"\n"
1747db96d56Sopenharmony_ci"Fetches several rows from the resultset.\n"
1757db96d56Sopenharmony_ci"\n"
1767db96d56Sopenharmony_ci"  size\n"
1777db96d56Sopenharmony_ci"    The default value is set by the Cursor.arraysize attribute.");
1787db96d56Sopenharmony_ci
1797db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_FETCHMANY_METHODDEF    \
1807db96d56Sopenharmony_ci    {"fetchmany", _PyCFunction_CAST(pysqlite_cursor_fetchmany), METH_FASTCALL|METH_KEYWORDS, pysqlite_cursor_fetchmany__doc__},
1817db96d56Sopenharmony_ci
1827db96d56Sopenharmony_cistatic PyObject *
1837db96d56Sopenharmony_cipysqlite_cursor_fetchmany_impl(pysqlite_Cursor *self, int maxrows);
1847db96d56Sopenharmony_ci
1857db96d56Sopenharmony_cistatic PyObject *
1867db96d56Sopenharmony_cipysqlite_cursor_fetchmany(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
1877db96d56Sopenharmony_ci{
1887db96d56Sopenharmony_ci    PyObject *return_value = NULL;
1897db96d56Sopenharmony_ci    static const char * const _keywords[] = {"size", NULL};
1907db96d56Sopenharmony_ci    static _PyArg_Parser _parser = {NULL, _keywords, "fetchmany", 0};
1917db96d56Sopenharmony_ci    PyObject *argsbuf[1];
1927db96d56Sopenharmony_ci    Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0;
1937db96d56Sopenharmony_ci    int maxrows = self->arraysize;
1947db96d56Sopenharmony_ci
1957db96d56Sopenharmony_ci    args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf);
1967db96d56Sopenharmony_ci    if (!args) {
1977db96d56Sopenharmony_ci        goto exit;
1987db96d56Sopenharmony_ci    }
1997db96d56Sopenharmony_ci    if (!noptargs) {
2007db96d56Sopenharmony_ci        goto skip_optional_pos;
2017db96d56Sopenharmony_ci    }
2027db96d56Sopenharmony_ci    maxrows = _PyLong_AsInt(args[0]);
2037db96d56Sopenharmony_ci    if (maxrows == -1 && PyErr_Occurred()) {
2047db96d56Sopenharmony_ci        goto exit;
2057db96d56Sopenharmony_ci    }
2067db96d56Sopenharmony_ciskip_optional_pos:
2077db96d56Sopenharmony_ci    return_value = pysqlite_cursor_fetchmany_impl(self, maxrows);
2087db96d56Sopenharmony_ci
2097db96d56Sopenharmony_ciexit:
2107db96d56Sopenharmony_ci    return return_value;
2117db96d56Sopenharmony_ci}
2127db96d56Sopenharmony_ci
2137db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_fetchall__doc__,
2147db96d56Sopenharmony_ci"fetchall($self, /)\n"
2157db96d56Sopenharmony_ci"--\n"
2167db96d56Sopenharmony_ci"\n"
2177db96d56Sopenharmony_ci"Fetches all rows from the resultset.");
2187db96d56Sopenharmony_ci
2197db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_FETCHALL_METHODDEF    \
2207db96d56Sopenharmony_ci    {"fetchall", (PyCFunction)pysqlite_cursor_fetchall, METH_NOARGS, pysqlite_cursor_fetchall__doc__},
2217db96d56Sopenharmony_ci
2227db96d56Sopenharmony_cistatic PyObject *
2237db96d56Sopenharmony_cipysqlite_cursor_fetchall_impl(pysqlite_Cursor *self);
2247db96d56Sopenharmony_ci
2257db96d56Sopenharmony_cistatic PyObject *
2267db96d56Sopenharmony_cipysqlite_cursor_fetchall(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored))
2277db96d56Sopenharmony_ci{
2287db96d56Sopenharmony_ci    return pysqlite_cursor_fetchall_impl(self);
2297db96d56Sopenharmony_ci}
2307db96d56Sopenharmony_ci
2317db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_setinputsizes__doc__,
2327db96d56Sopenharmony_ci"setinputsizes($self, sizes, /)\n"
2337db96d56Sopenharmony_ci"--\n"
2347db96d56Sopenharmony_ci"\n"
2357db96d56Sopenharmony_ci"Required by DB-API. Does nothing in sqlite3.");
2367db96d56Sopenharmony_ci
2377db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_SETINPUTSIZES_METHODDEF    \
2387db96d56Sopenharmony_ci    {"setinputsizes", (PyCFunction)pysqlite_cursor_setinputsizes, METH_O, pysqlite_cursor_setinputsizes__doc__},
2397db96d56Sopenharmony_ci
2407db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_setoutputsize__doc__,
2417db96d56Sopenharmony_ci"setoutputsize($self, size, column=None, /)\n"
2427db96d56Sopenharmony_ci"--\n"
2437db96d56Sopenharmony_ci"\n"
2447db96d56Sopenharmony_ci"Required by DB-API. Does nothing in sqlite3.");
2457db96d56Sopenharmony_ci
2467db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_SETOUTPUTSIZE_METHODDEF    \
2477db96d56Sopenharmony_ci    {"setoutputsize", _PyCFunction_CAST(pysqlite_cursor_setoutputsize), METH_FASTCALL, pysqlite_cursor_setoutputsize__doc__},
2487db96d56Sopenharmony_ci
2497db96d56Sopenharmony_cistatic PyObject *
2507db96d56Sopenharmony_cipysqlite_cursor_setoutputsize_impl(pysqlite_Cursor *self, PyObject *size,
2517db96d56Sopenharmony_ci                                   PyObject *column);
2527db96d56Sopenharmony_ci
2537db96d56Sopenharmony_cistatic PyObject *
2547db96d56Sopenharmony_cipysqlite_cursor_setoutputsize(pysqlite_Cursor *self, PyObject *const *args, Py_ssize_t nargs)
2557db96d56Sopenharmony_ci{
2567db96d56Sopenharmony_ci    PyObject *return_value = NULL;
2577db96d56Sopenharmony_ci    PyObject *size;
2587db96d56Sopenharmony_ci    PyObject *column = Py_None;
2597db96d56Sopenharmony_ci
2607db96d56Sopenharmony_ci    if (!_PyArg_CheckPositional("setoutputsize", nargs, 1, 2)) {
2617db96d56Sopenharmony_ci        goto exit;
2627db96d56Sopenharmony_ci    }
2637db96d56Sopenharmony_ci    size = args[0];
2647db96d56Sopenharmony_ci    if (nargs < 2) {
2657db96d56Sopenharmony_ci        goto skip_optional;
2667db96d56Sopenharmony_ci    }
2677db96d56Sopenharmony_ci    column = args[1];
2687db96d56Sopenharmony_ciskip_optional:
2697db96d56Sopenharmony_ci    return_value = pysqlite_cursor_setoutputsize_impl(self, size, column);
2707db96d56Sopenharmony_ci
2717db96d56Sopenharmony_ciexit:
2727db96d56Sopenharmony_ci    return return_value;
2737db96d56Sopenharmony_ci}
2747db96d56Sopenharmony_ci
2757db96d56Sopenharmony_ciPyDoc_STRVAR(pysqlite_cursor_close__doc__,
2767db96d56Sopenharmony_ci"close($self, /)\n"
2777db96d56Sopenharmony_ci"--\n"
2787db96d56Sopenharmony_ci"\n"
2797db96d56Sopenharmony_ci"Closes the cursor.");
2807db96d56Sopenharmony_ci
2817db96d56Sopenharmony_ci#define PYSQLITE_CURSOR_CLOSE_METHODDEF    \
2827db96d56Sopenharmony_ci    {"close", (PyCFunction)pysqlite_cursor_close, METH_NOARGS, pysqlite_cursor_close__doc__},
2837db96d56Sopenharmony_ci
2847db96d56Sopenharmony_cistatic PyObject *
2857db96d56Sopenharmony_cipysqlite_cursor_close_impl(pysqlite_Cursor *self);
2867db96d56Sopenharmony_ci
2877db96d56Sopenharmony_cistatic PyObject *
2887db96d56Sopenharmony_cipysqlite_cursor_close(pysqlite_Cursor *self, PyObject *Py_UNUSED(ignored))
2897db96d56Sopenharmony_ci{
2907db96d56Sopenharmony_ci    return pysqlite_cursor_close_impl(self);
2917db96d56Sopenharmony_ci}
2927db96d56Sopenharmony_ci/*[clinic end generated code: output=2b9c6a3ca8a8caff input=a9049054013a1b77]*/
293