(root)/
Python-3.11.7/
Modules/
_sqlite/
module.h
       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 PYSQLITE_VERSION "2.6.0"
      30  #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  {
      79      pysqlite_state *state = (pysqlite_state *)PyModule_GetState(module);
      80      assert(state != NULL);
      81      return state;
      82  }
      83  
      84  extern struct PyModuleDef _sqlite3module;
      85  static inline pysqlite_state *
      86  pysqlite_get_state_by_type(PyTypeObject *tp)
      87  {
      88      PyObject *module = PyType_GetModuleByDef(tp, &_sqlite3module);
      89      assert(module != NULL);
      90      return pysqlite_get_state(module);
      91  }
      92  
      93  extern const char *pysqlite_error_name(int rc);
      94  
      95  #define PARSE_DECLTYPES 1
      96  #define PARSE_COLNAMES 2
      97  #endif