Update of /cvsroot/refdb/refdb/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10081
Modified Files:
Tag: Release_0_9_5_stable
dbfncs.c dbfncs.h refdbda.c
Log Message:
added support for MySQL char encodings
Index: dbfncs.c
===================================================================
RCS file: /cvsroot/refdb/refdb/src/dbfncs.c,v
retrieving revision 1.15.2.3
retrieving revision 1.15.2.4
diff -u -U2 -r1.15.2.3 -r1.15.2.4
--- dbfncs.c 10 Feb 2005 20:38:14 -0000 1.15.2.3
+++ dbfncs.c 12 Feb 2005 01:50:01 -0000 1.15.2.4
@@ -61,5 +61,5 @@
strcpy(ptr_caps->transaction, "f");
strcpy(ptr_caps->localhost, "localhost");
- strcpy(ptr_caps->encoding, "f");
+ strcpy(ptr_caps->encoding, "CHARACTER SET");
strcpy(ptr_caps->groups, "f");
strcpy(ptr_caps->admin_systable, "mysql.user");
@@ -76,5 +76,5 @@
strcpy(ptr_caps->transaction, "t");
strcpy(ptr_caps->localhost, "");
- strcpy(ptr_caps->encoding, "t");
+ strcpy(ptr_caps->encoding, "WITH ENCODING =");
strcpy(ptr_caps->groups, "t");
strcpy(ptr_caps->admin_systable, "pg_shadow");
@@ -91,5 +91,5 @@
strcpy(ptr_caps->transaction, "t");
strcpy(ptr_caps->localhost, "NA");
- strcpy(ptr_caps->encoding, "f");
+ strcpy(ptr_caps->encoding, "");
strcpy(ptr_caps->groups, "NA");
strcpy(ptr_caps->admin_systable, "NA");
Index: dbfncs.h
===================================================================
RCS file: /cvsroot/refdb/refdb/src/dbfncs.h,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -U2 -r1.6 -r1.6.2.1
--- dbfncs.h 25 Oct 2003 23:50:51 -0000 1.6
+++ dbfncs.h 12 Feb 2005 01:50:01 -0000 1.6.2.1
@@ -29,5 +29,5 @@
char localhost[10]; /* the string used to access the db engine on
localhost */
- char encoding[2]; /* if t, db engine supports different char encodings */
+ char encoding[16]; /* command fragment to request char encodings */
char groups[3]; /* if t, db engine uses groups to manage users */
char admin_systable[11]; /* a table that only the admin may access */
Index: refdbda.c
===================================================================
RCS file: /cvsroot/refdb/refdb/src/refdbda.c,v
retrieving revision 1.41.2.4
retrieving revision 1.41.2.5
diff -u -U2 -r1.41.2.4 -r1.41.2.5
--- refdbda.c 11 Feb 2005 22:25:24 -0000 1.41.2.4
+++ refdbda.c 12 Feb 2005 01:50:01 -0000 1.41.2.5
@@ -892,8 +892,12 @@
if (strcmp(drivername, "sqlite")) {
+ const char* encoding_string;
+
+ encoding_string = my_dbi_conn_get_cap(conn, "encoding");
+
/* assemble sql command */
- if (!strcmp(my_dbi_conn_get_cap(conn, "encoding"), "t")) {
+ if (*encoding_string) {
if (db_encoding && *db_encoding) {
- sprintf(sql_command, "CREATE DATABASE %s WITH ENCODING = '%s'", dbname, db_encoding);
+ sprintf(sql_command, "CREATE DATABASE %s %s '%s'", dbname, encoding_string, db_encoding);
}
else { /* use default encoding of db server */
@@ -902,5 +906,5 @@
}
else {
- /* mysql does not support database-based encodings (yet) */
+ /* db engine does not support database-based encodings */
sprintf(sql_command, "CREATE DATABASE %s", dbname);
}
@@ -1082,5 +1086,5 @@
dbires = dbi_conn_query(conn, sql_command);
- if (error) {
+ if (dbi_conn_error_flag(conn)) {
tiwrite(ptr_clrequest->fd, "DROP GROUP failed\n", TERM_NO);
dbi_conn_close(conn);
|