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