~vcs-imports/python-mysqldb/old-svn-trunk

« back to all changes in this revision

Viewing changes to src/mysqlmod.h

  • Committer: kylev
  • Date: 2009-02-27 19:14:09 UTC
  • Revision ID: vcs-imports@canonical.com-20090227191409-o3ots3am74ftiisj
make things a little cleaner by moving to a src directory for the C code

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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