17db96d56Sopenharmony_ci/* module.h - definitions for the module 27db96d56Sopenharmony_ci * 37db96d56Sopenharmony_ci * Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de> 47db96d56Sopenharmony_ci * 57db96d56Sopenharmony_ci * This file is part of pysqlite. 67db96d56Sopenharmony_ci * 77db96d56Sopenharmony_ci * This software is provided 'as-is', without any express or implied 87db96d56Sopenharmony_ci * warranty. In no event will the authors be held liable for any damages 97db96d56Sopenharmony_ci * arising from the use of this software. 107db96d56Sopenharmony_ci * 117db96d56Sopenharmony_ci * Permission is granted to anyone to use this software for any purpose, 127db96d56Sopenharmony_ci * including commercial applications, and to alter it and redistribute it 137db96d56Sopenharmony_ci * freely, subject to the following restrictions: 147db96d56Sopenharmony_ci * 157db96d56Sopenharmony_ci * 1. The origin of this software must not be misrepresented; you must not 167db96d56Sopenharmony_ci * claim that you wrote the original software. If you use this software 177db96d56Sopenharmony_ci * in a product, an acknowledgment in the product documentation would be 187db96d56Sopenharmony_ci * appreciated but is not required. 197db96d56Sopenharmony_ci * 2. Altered source versions must be plainly marked as such, and must not be 207db96d56Sopenharmony_ci * misrepresented as being the original software. 217db96d56Sopenharmony_ci * 3. This notice may not be removed or altered from any source distribution. 227db96d56Sopenharmony_ci */ 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci#ifndef PYSQLITE_MODULE_H 257db96d56Sopenharmony_ci#define PYSQLITE_MODULE_H 267db96d56Sopenharmony_ci#define PY_SSIZE_T_CLEAN 277db96d56Sopenharmony_ci#include "Python.h" 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci#define PYSQLITE_VERSION "2.6.0" 307db96d56Sopenharmony_ci#define MODULE_NAME "sqlite3" 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_citypedef struct { 337db96d56Sopenharmony_ci PyObject *DataError; 347db96d56Sopenharmony_ci PyObject *DatabaseError; 357db96d56Sopenharmony_ci PyObject *Error; 367db96d56Sopenharmony_ci PyObject *IntegrityError; 377db96d56Sopenharmony_ci PyObject *InterfaceError; 387db96d56Sopenharmony_ci PyObject *InternalError; 397db96d56Sopenharmony_ci PyObject *NotSupportedError; 407db96d56Sopenharmony_ci PyObject *OperationalError; 417db96d56Sopenharmony_ci PyObject *ProgrammingError; 427db96d56Sopenharmony_ci PyObject *Warning; 437db96d56Sopenharmony_ci 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci /* A dictionary, mapping column types (INTEGER, VARCHAR, etc.) to converter 467db96d56Sopenharmony_ci * functions, that convert the SQL value to the appropriate Python value. 477db96d56Sopenharmony_ci * The key is uppercase. 487db96d56Sopenharmony_ci */ 497db96d56Sopenharmony_ci PyObject *converters; 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_ci PyObject *lru_cache; 527db96d56Sopenharmony_ci PyObject *psyco_adapters; // The adapters registry 537db96d56Sopenharmony_ci int BaseTypeAdapted; 547db96d56Sopenharmony_ci int enable_callback_tracebacks; 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci PyTypeObject *BlobType; 577db96d56Sopenharmony_ci PyTypeObject *ConnectionType; 587db96d56Sopenharmony_ci PyTypeObject *CursorType; 597db96d56Sopenharmony_ci PyTypeObject *PrepareProtocolType; 607db96d56Sopenharmony_ci PyTypeObject *RowType; 617db96d56Sopenharmony_ci PyTypeObject *StatementType; 627db96d56Sopenharmony_ci 637db96d56Sopenharmony_ci /* Pointers to interned strings */ 647db96d56Sopenharmony_ci PyObject *str___adapt__; 657db96d56Sopenharmony_ci PyObject *str___conform__; 667db96d56Sopenharmony_ci PyObject *str_executescript; 677db96d56Sopenharmony_ci PyObject *str_finalize; 687db96d56Sopenharmony_ci PyObject *str_inverse; 697db96d56Sopenharmony_ci PyObject *str_step; 707db96d56Sopenharmony_ci PyObject *str_upper; 717db96d56Sopenharmony_ci PyObject *str_value; 727db96d56Sopenharmony_ci} pysqlite_state; 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ciextern pysqlite_state pysqlite_global_state; 757db96d56Sopenharmony_ci 767db96d56Sopenharmony_cistatic inline pysqlite_state * 777db96d56Sopenharmony_cipysqlite_get_state(PyObject *module) 787db96d56Sopenharmony_ci{ 797db96d56Sopenharmony_ci pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module); 807db96d56Sopenharmony_ci assert(state != NULL); 817db96d56Sopenharmony_ci return state; 827db96d56Sopenharmony_ci} 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ciextern struct PyModuleDef _sqlite3module; 857db96d56Sopenharmony_cistatic inline pysqlite_state * 867db96d56Sopenharmony_cipysqlite_get_state_by_type(PyTypeObject *tp) 877db96d56Sopenharmony_ci{ 887db96d56Sopenharmony_ci PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module); 897db96d56Sopenharmony_ci assert(module != NULL); 907db96d56Sopenharmony_ci return pysqlite_get_state(module); 917db96d56Sopenharmony_ci} 927db96d56Sopenharmony_ci 937db96d56Sopenharmony_ciextern const char *pysqlite_error_name(int rc); 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci#define PARSE_DECLTYPES 1 967db96d56Sopenharmony_ci#define PARSE_COLNAMES 2 977db96d56Sopenharmony_ci#endif 98