Coverage Report

Created: 2022-07-08 00:21

/Users/erlendaasland/src/cpython.git/Modules/_sqlite/module.h
Line
Count
Source (jump to first uncovered line)
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
1
#define PYSQLITE_VERSION "2.6.0"
30
14
#define MODULE_NAME "sqlite3"
31
32
typedef struct {
33
    PyObject *DataError;
34
    PyObject *DatabaseError;
35
    PyObject *Error;
36
    PyObject *IntegrityError;
37
    PyObject *InterfaceError;
38
    PyObject *InternalError;
39
    PyObject *NotSupportedError;
40
    PyObject *OperationalError;
41
    PyObject *ProgrammingError;
42
    PyObject *Warning;
43
44
45
    /* A dictionary, mapping column types (INTEGER, VARCHAR, etc.) to converter
46
     * functions, that convert the SQL value to the appropriate Python value.
47
     * The key is uppercase.
48
     */
49
    PyObject *converters;
50
51
    PyObject *lru_cache;
52
    PyObject *psyco_adapters;  // The adapters registry
53
    int BaseTypeAdapted;
54
    int enable_callback_tracebacks;
55
56
    PyTypeObject *BlobType;
57
    PyTypeObject *ConnectionType;
58
    PyTypeObject *CursorType;
59
    PyTypeObject *PrepareProtocolType;
60
    PyTypeObject *RowType;
61
    PyTypeObject *StatementType;
62
63
    /* Pointers to interned strings */
64
    PyObject *str___adapt__;
65
    PyObject *str___conform__;
66
    PyObject *str_executescript;
67
    PyObject *str_finalize;
68
    PyObject *str_inverse;
69
    PyObject *str_step;
70
    PyObject *str_upper;
71
    PyObject *str_value;
72
} pysqlite_state;
73
74
extern pysqlite_state pysqlite_global_state;
75
76
static inline pysqlite_state *
77
pysqlite_get_state(PyObject *module)
78
5.07k
{
79
5.07k
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
5.07k
    assert(state != NULL);
81
0
    return state;
82
5.07k
}
blob.c:pysqlite_get_state
Line
Count
Source
78
1
{
79
1
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
1
    assert(state != NULL);
81
0
    return state;
82
1
}
connection.c:pysqlite_get_state
Line
Count
Source
78
1.80k
{
79
1.80k
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
1.80k
    assert(state != NULL);
81
0
    return state;
82
1.80k
}
cursor.c:pysqlite_get_state
Line
Count
Source
78
2.60k
{
79
2.60k
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
2.60k
    assert(state != NULL);
81
0
    return state;
82
2.60k
}
microprotocols.c:pysqlite_get_state
Line
Count
Source
78
1
{
79
1
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
1
    assert(state != NULL);
81
0
    return state;
82
1
}
module.c:pysqlite_get_state
Line
Count
Source
78
617
{
79
617
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
617
    assert(state != NULL);
81
0
    return state;
82
617
}
prepare_protocol.c:pysqlite_get_state
Line
Count
Source
78
1
{
79
1
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
1
    assert(state != NULL);
81
0
    return state;
82
1
}
row.c:pysqlite_get_state
Line
Count
Source
78
48
{
79
48
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
48
    assert(state != NULL);
81
0
    return state;
82
48
}
statement.c:pysqlite_get_state
Line
Count
Source
78
1
{
79
1
    pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
80
1
    assert(state != NULL);
81
0
    return state;
82
1
}
Unexecuted instantiation: util.c:pysqlite_get_state
83
84
extern struct PyModuleDef _sqlite3module;
85
static inline pysqlite_state *
86
pysqlite_get_state_by_type(PyTypeObject *tp)
87
3.66k
{
88
3.66k
    PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module);
89
3.66k
    assert(module != NULL);
90
0
    return pysqlite_get_state(module);
91
3.66k
}
Unexecuted instantiation: blob.c:pysqlite_get_state_by_type
connection.c:pysqlite_get_state_by_type
Line
Count
Source
87
1.01k
{
88
1.01k
    PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module);
89
1.01k
    assert(module != NULL);
90
0
    return pysqlite_get_state(module);
91
1.01k
}
cursor.c:pysqlite_get_state_by_type
Line
Count
Source
87
2.60k
{
88
2.60k
    PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module);
89
2.60k
    assert(module != NULL);
90
0
    return pysqlite_get_state(module);
91
2.60k
}
Unexecuted instantiation: microprotocols.c:pysqlite_get_state_by_type
Unexecuted instantiation: module.c:pysqlite_get_state_by_type
Unexecuted instantiation: prepare_protocol.c:pysqlite_get_state_by_type
row.c:pysqlite_get_state_by_type
Line
Count
Source
87
47
{
88
47
    PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module);
89
47
    assert(module != NULL);
90
0
    return pysqlite_get_state(module);
91
47
}
Unexecuted instantiation: statement.c:pysqlite_get_state_by_type
Unexecuted instantiation: util.c:pysqlite_get_state_by_type
92
93
extern const char *pysqlite_error_name(int rc);
94
95
26
#define PARSE_DECLTYPES 1
96
1.01k
#define PARSE_COLNAMES 2
97
#endif