execute(query="select * from foo", limit=5) * execute(plan=plan, values=(foo, bar), limit=5) */
| 162 | * execute(plan=plan, values=(foo, bar), limit=5) |
| 163 | */ |
| 164 | PyObject * |
| 165 | PLy_spi_execute(PyObject *self, PyObject *args) |
| 166 | { |
| 167 | char *query; |
| 168 | PyObject *plan; |
| 169 | PyObject *list = NULL; |
| 170 | long limit = 0; |
| 171 | PyObject *ret; |
| 172 | PLy_enter_python_intepreter = false; |
| 173 | |
| 174 | if (PyArg_ParseTuple(args, "s|l", &query, &limit)) |
| 175 | { |
| 176 | ret = PLy_spi_execute_query(query, (int64)limit); |
| 177 | PLy_enter_python_intepreter = true; |
| 178 | return ret; |
| 179 | } |
| 180 | |
| 181 | PyErr_Clear(); |
| 182 | |
| 183 | if (PyArg_ParseTuple(args, "O|Ol", &plan, &list, &limit) && |
| 184 | is_PLyPlanObject(plan)) |
| 185 | { |
| 186 | ret = PLy_spi_execute_plan(plan, list, (int64)limit); |
| 187 | PLy_enter_python_intepreter = true; |
| 188 | return ret; |
| 189 | } |
| 190 | |
| 191 | PLy_exception_set(PLy_exc_error, "plpy.execute expected a query or a plan"); |
| 192 | PLy_enter_python_intepreter = true; |
| 193 | return NULL; |
| 194 | } |
| 195 | |
| 196 | PyObject * |
| 197 | PLy_spi_execute_plan(PyObject *ob, PyObject *list, int64 limit) |
nothing calls this directly
no test coverage detected