[Refdb-cvs] CVS: refdb/src dbfncs.c,1.15.2.3,1.15.2.4 dbfncs.h,1.6,1.6.2.1 refdbda.c,1.41.2.4,1.41.2
Status: Beta
Brought to you by:
mhoenicka
From: Markus H. <mho...@us...> - 2005-02-12 01:50:10
|
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); |