Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
allendowney
GitHub Repository: allendowney/cpython
Path: blob/main/Modules/_sqlite/module.h
12 views
1
/* module.h - definitions for the module
2
*
3
* Copyright (C) 2004-2010 Gerhard Häring <[email protected]>
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
#include "Python.h"
27
28
#define LEGACY_TRANSACTION_CONTROL -1
29
30
#define PYSQLITE_VERSION "2.6.0"
31
#define MODULE_NAME "sqlite3"
32
33
typedef struct {
34
PyObject *DataError;
35
PyObject *DatabaseError;
36
PyObject *Error;
37
PyObject *IntegrityError;
38
PyObject *InterfaceError;
39
PyObject *InternalError;
40
PyObject *NotSupportedError;
41
PyObject *OperationalError;
42
PyObject *ProgrammingError;
43
PyObject *Warning;
44
45
46
/* A dictionary, mapping column types (INTEGER, VARCHAR, etc.) to converter
47
* functions, that convert the SQL value to the appropriate Python value.
48
* The key is uppercase.
49
*/
50
PyObject *converters;
51
52
PyObject *lru_cache;
53
PyObject *psyco_adapters; // The adapters registry
54
int BaseTypeAdapted;
55
int enable_callback_tracebacks;
56
57
PyTypeObject *BlobType;
58
PyTypeObject *ConnectionType;
59
PyTypeObject *CursorType;
60
PyTypeObject *PrepareProtocolType;
61
PyTypeObject *RowType;
62
PyTypeObject *StatementType;
63
64
/* Pointers to interned strings */
65
PyObject *str___adapt__;
66
PyObject *str___conform__;
67
PyObject *str_executescript;
68
PyObject *str_finalize;
69
PyObject *str_inverse;
70
PyObject *str_step;
71
PyObject *str_upper;
72
PyObject *str_value;
73
} pysqlite_state;
74
75
extern pysqlite_state pysqlite_global_state;
76
77
static inline pysqlite_state *
78
pysqlite_get_state(PyObject *module)
79
{
80
pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
81
assert(state != NULL);
82
return state;
83
}
84
85
extern struct PyModuleDef _sqlite3module;
86
static inline pysqlite_state *
87
pysqlite_get_state_by_type(PyTypeObject *tp)
88
{
89
PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module);
90
assert(module != NULL);
91
return pysqlite_get_state(module);
92
}
93
94
extern const char *pysqlite_error_name(int rc);
95
96
#define PARSE_DECLTYPES 1
97
#define PARSE_COLNAMES 2
98
#endif
99
100