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