/usr/ports/databases/py-MySQL
Sergey Smitienko
hunter at comsys.com.ua
Mon Dec 27 04:10:58 PST 2004
Make py-MySQL compile and work with mysql-4-client libraries installed.
btw, I'm not sure, but I guess py-MySQL must be linked against
libmysqlclient_r.so.12 (not included in the patch).
ldd /usr/local/lib/python2.2/site-packages/MySQLmodule.so:
libmysqlclient.so.12 =>
/usr/local/lib/mysql/libmysqlclient.so.12 (0x4811d000)
--- work/MySQLmodule-1.4/MySQLmodule.c Mon Dec 27 15:05:56 2004
+++ MySQLmodule.c Mon Dec 27 15:04:12 2004
@@ -512,7 +512,8 @@
DBH->dbh_use_result = 0;
DBH->handle = &DBH->connection;
DBH->sth = NULL;
- if (!(mysql_connect(DBH->handle, dbhost, dbuser, dbpass))) {
+ mysql_init(DBH->handle);
+ if (!(mysql_real_connect(DBH->handle, dbhost, dbuser, dbpass, NULL,
0, NULL, 0l))) {
if (mysql_error(DBH->handle)[0] != 0) {
PyErr_SetString(MySQLError,mysql_error(DBH->handle));
} else {
@@ -735,12 +736,20 @@
PyObject *args;
{
char *dbname;
-
+ char query[512];
+ int rc;
if (!PyArg_ParseTuple(args, "s:create", &dbname)) return NULL;
if (self->sth && clear_channel(self->sth)) return NULL;
Py_XDECREF(self->sth);
self->sth = NULL;
- if (mysql_create_db(self->handle, dbname)) {
+
+ rc = snprintf(query, sizeof(query), "CREATE DATABASE %s", dbname);
+ if (rc > sizeof(query)-1) {
+ PyErr_SetString(MySQLError,"Database name too long");
+ return NULL;
+ }
+
+ if (mysql_query(self->handle, query)) {
PyErr_SetString(MySQLError, mysql_error(self->handle));
return NULL;
}
@@ -867,12 +876,21 @@
PyObject *args;
{
char *dbname;
+ char query[512];
+ int rc;
if (!PyArg_ParseTuple(args, "s:drop", &dbname)) return NULL;
if (self->sth && clear_channel(self->sth)) return NULL;
Py_XDECREF(self->sth);
self->sth = NULL;
- if (mysql_drop_db(self->handle, dbname)) {
+
+ rc = snprintf(query, sizeof(query), "DROP DATABASE %s", dbname);
+ if (rc > sizeof(query)-1) {
+ PyErr_SetString(MySQLError,"Database name too long");
+ return NULL;
+ }
+
+ if (mysql_query(self->handle, dbname)) {
PyErr_SetString(MySQLError, mysql_error(self->handle));
return NULL;
}
More information about the freebsd-ports
mailing list