comparison src/mysqlmod.h @ 55:e606fd52e866 MySQLdb

make things a little cleaner by moving to a src directory for the C code
author kylev
date Fri, 27 Feb 2009 19:14:09 +0000
parents _mysql.h@2b9a9814daab
children 98d968f5af11
comparison
equal deleted inserted replaced
54:6e31278d3433 55:e606fd52e866
1 #ifndef _MYSQL_PYTHON__MYSQL_H_
2 #define _MYSQL_PYTHON__MYSQL_H_
3
4 #include <Python.h>
5
6 #ifdef MS_WIN32
7 #include <windows.h>
8 #endif /* MS_WIN32 */
9
10 #include "structmember.h"
11 #include "mysql.h"
12 #include "my_config.h"
13 #include "mysqld_error.h"
14 #include "errmsg.h"
15
16 #define MyAlloc(s,t) (s *) t.tp_alloc(&t,0)
17 #define MyFree(ob) ob->ob_type->tp_free((PyObject *)ob)
18
19 #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
20 typedef int Py_ssize_t;
21 #define PY_SSIZE_T_MAX INT_MAX
22 #define PY_SSIZE_T_MIN INT_MIN
23 #endif
24
25 typedef struct {
26 PyObject_HEAD
27 MYSQL connection;
28 int open;
29 PyObject *converter;
30 } _mysql_ConnectionObject;
31
32 #define check_connection(c) if (!(c->open)) return _mysql_Exception(c)
33 #define result_connection(r) ((_mysql_ConnectionObject *)r->conn)
34 #define check_result_connection(r) check_connection(result_connection(r))
35
36 extern PyTypeObject _mysql_ConnectionObject_Type;
37
38 typedef struct {
39 PyObject_HEAD
40 PyObject *conn;
41 MYSQL_RES *result;
42 int nfields;
43 int use;
44 PyObject *converter;
45 } _mysql_ResultObject;
46
47 extern PyTypeObject _mysql_ResultObject_Type;
48
49 typedef struct {
50 PyObject_HEAD
51 PyObject *result;
52 MYSQL_FIELD field;
53 unsigned int index;
54 } _mysql_FieldObject;
55
56 extern PyTypeObject _mysql_FieldObject_Type;
57
58 extern int _mysql_server_init_done;
59 #if MYSQL_VERSION_ID >= 40000
60 #define check_server_init(x) if (!_mysql_server_init_done) { if (mysql_server_init(0, NULL, NULL)) { _mysql_Exception(NULL); return x; } else { _mysql_server_init_done = 1;} }
61 #else
62 #define check_server_init(x) if (!_mysql_server_init_done) _mysql_server_init_done = 1
63 #endif
64
65 extern PyObject *_mysql_MySQLError;
66 extern PyObject *_mysql_Warning;
67 extern PyObject *_mysql_Error;
68 extern PyObject *_mysql_DatabaseError;
69 extern PyObject *_mysql_InterfaceError;
70 extern PyObject *_mysql_DataError;
71 extern PyObject *_mysql_OperationalError;
72 extern PyObject *_mysql_IntegrityError;
73 extern PyObject *_mysql_InternalError;
74 extern PyObject *_mysql_ProgrammingError;
75 extern PyObject *_mysql_NotSupportedError;
76 extern PyObject *_mysql_error_map;
77
78 extern PyObject *
79 _mysql_Exception(_mysql_ConnectionObject *c);
80
81 extern int
82 _mysql_ResultObject_Initialize(
83 _mysql_ResultObject *self,
84 PyObject *args,
85 PyObject *kwargs);
86
87 extern int
88 _mysql_FieldObject_Initialize(
89 _mysql_FieldObject *self,
90 PyObject *args,
91 PyObject *kwargs);
92
93 #endif