Mercurial > p > mysql-python > mysqldb-2
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mysqlmod.h Fri Feb 27 19:14:09 2009 +0000 @@ -0,0 +1,93 @@ +#ifndef _MYSQL_PYTHON__MYSQL_H_ +#define _MYSQL_PYTHON__MYSQL_H_ + +#include <Python.h> + +#ifdef MS_WIN32 +#include <windows.h> +#endif /* MS_WIN32 */ + +#include "structmember.h" +#include "mysql.h" +#include "my_config.h" +#include "mysqld_error.h" +#include "errmsg.h" + +#define MyAlloc(s,t) (s *) t.tp_alloc(&t,0) +#define MyFree(ob) ob->ob_type->tp_free((PyObject *)ob) + +#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) +typedef int Py_ssize_t; +#define PY_SSIZE_T_MAX INT_MAX +#define PY_SSIZE_T_MIN INT_MIN +#endif + +typedef struct { + PyObject_HEAD + MYSQL connection; + int open; + PyObject *converter; +} _mysql_ConnectionObject; + +#define check_connection(c) if (!(c->open)) return _mysql_Exception(c) +#define result_connection(r) ((_mysql_ConnectionObject *)r->conn) +#define check_result_connection(r) check_connection(result_connection(r)) + +extern PyTypeObject _mysql_ConnectionObject_Type; + +typedef struct { + PyObject_HEAD + PyObject *conn; + MYSQL_RES *result; + int nfields; + int use; + PyObject *converter; +} _mysql_ResultObject; + +extern PyTypeObject _mysql_ResultObject_Type; + +typedef struct { + PyObject_HEAD + PyObject *result; + MYSQL_FIELD field; + unsigned int index; +} _mysql_FieldObject; + +extern PyTypeObject _mysql_FieldObject_Type; + +extern int _mysql_server_init_done; +#if MYSQL_VERSION_ID >= 40000 +#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;} } +#else +#define check_server_init(x) if (!_mysql_server_init_done) _mysql_server_init_done = 1 +#endif + +extern PyObject *_mysql_MySQLError; +extern PyObject *_mysql_Warning; +extern PyObject *_mysql_Error; +extern PyObject *_mysql_DatabaseError; +extern PyObject *_mysql_InterfaceError; +extern PyObject *_mysql_DataError; +extern PyObject *_mysql_OperationalError; +extern PyObject *_mysql_IntegrityError; +extern PyObject *_mysql_InternalError; +extern PyObject *_mysql_ProgrammingError; +extern PyObject *_mysql_NotSupportedError; +extern PyObject *_mysql_error_map; + +extern PyObject * +_mysql_Exception(_mysql_ConnectionObject *c); + +extern int +_mysql_ResultObject_Initialize( + _mysql_ResultObject *self, + PyObject *args, + PyObject *kwargs); + +extern int +_mysql_FieldObject_Initialize( + _mysql_FieldObject *self, + PyObject *args, + PyObject *kwargs); + +#endif