Branch data Line data Source code
1 : : /* module.h - definitions for the module 2 : : * 3 : : * Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de> 4 : : * 5 : : * This file is part of pysqlite. 6 : : * 7 : : * This software is provided 'as-is', without any express or implied 8 : : * warranty. In no event will the authors be held liable for any damages 9 : : * arising from the use of this software. 10 : : * 11 : : * Permission is granted to anyone to use this software for any purpose, 12 : : * including commercial applications, and to alter it and redistribute it 13 : : * freely, subject to the following restrictions: 14 : : * 15 : : * 1. The origin of this software must not be misrepresented; you must not 16 : : * claim that you wrote the original software. If you use this software 17 : : * in a product, an acknowledgment in the product documentation would be 18 : : * appreciated but is not required. 19 : : * 2. Altered source versions must be plainly marked as such, and must not be 20 : : * misrepresented as being the original software. 21 : : * 3. This notice may not be removed or altered from any source distribution. 22 : : */ 23 : : 24 : : #ifndef PYSQLITE_MODULE_H 25 : : #define PYSQLITE_MODULE_H 26 : : #define PY_SSIZE_T_CLEAN 27 : : #include "Python.h" 28 : : 29 : : #define LEGACY_TRANSACTION_CONTROL -1 30 : : 31 : : #define PYSQLITE_VERSION "2.6.0" 32 : : #define MODULE_NAME "sqlite3" 33 : : 34 : : typedef struct { 35 : : PyObject *DataError; 36 : : PyObject *DatabaseError; 37 : : PyObject *Error; 38 : : PyObject *IntegrityError; 39 : : PyObject *InterfaceError; 40 : : PyObject *InternalError; 41 : : PyObject *NotSupportedError; 42 : : PyObject *OperationalError; 43 : : PyObject *ProgrammingError; 44 : : PyObject *Warning; 45 : : 46 : : 47 : : /* A dictionary, mapping column types (INTEGER, VARCHAR, etc.) to converter 48 : : * functions, that convert the SQL value to the appropriate Python value. 49 : : * The key is uppercase. 50 : : */ 51 : : PyObject *converters; 52 : : 53 : : PyObject *lru_cache; 54 : : PyObject *psyco_adapters; // The adapters registry 55 : : int BaseTypeAdapted; 56 : : int enable_callback_tracebacks; 57 : : 58 : : PyTypeObject *BlobType; 59 : : PyTypeObject *ConnectionType; 60 : : PyTypeObject *CursorType; 61 : : PyTypeObject *PrepareProtocolType; 62 : : PyTypeObject *RowType; 63 : : PyTypeObject *StatementType; 64 : : 65 : : /* Pointers to interned strings */ 66 : : PyObject *str___adapt__; 67 : : PyObject *str___conform__; 68 : : PyObject *str_executescript; 69 : : PyObject *str_finalize; 70 : : PyObject *str_inverse; 71 : : PyObject *str_step; 72 : : PyObject *str_upper; 73 : : PyObject *str_value; 74 : : } pysqlite_state; 75 : : 76 : : extern pysqlite_state pysqlite_global_state; 77 : : 78 : : static inline pysqlite_state * 79 : 20 : pysqlite_get_state(PyObject *module) 80 : : { 81 : 20 : pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module); 82 : : assert(state != NULL); 83 : 20 : return state; 84 : : } 85 : : 86 : : extern struct PyModuleDef _sqlite3module; 87 : : static inline pysqlite_state * 88 : 0 : pysqlite_get_state_by_type(PyTypeObject *tp) 89 : : { 90 : 0 : PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module); 91 : : assert(module != NULL); 92 : 0 : return pysqlite_get_state(module); 93 : : } 94 : : 95 : : extern const char *pysqlite_error_name(int rc); 96 : : 97 : : #define PARSE_DECLTYPES 1 98 : : #define PARSE_COLNAMES 2 99 : : #endif