From: Hiroshi Inoue Date: Tue, 25 Jun 2002 01:54:19 +0000 (+0000) Subject: 1) Add support for GB18030. X-Git-Tag: REL7_3~1296 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=20241a4c5477d0443c37ccef674c15cfdda37f9e;p=thirdparty%2Fpostgresql.git 1) Add support for GB18030. 2) Fix a bug about the handling of large objects. --- diff --git a/src/interfaces/odbc/execute.c b/src/interfaces/odbc/execute.c index 164debbf4d0..598c2a2f61a 100644 --- a/src/interfaces/odbc/execute.c +++ b/src/interfaces/odbc/execute.c @@ -777,7 +777,7 @@ PGAPI_ParamData( /* commit transaction if needed */ if (!ci->drivers.use_declarefetch && CC_is_in_autocommit(stmt->hdbc)) { - if (CC_commit(stmt->hdbc)) + if (!CC_commit(stmt->hdbc)) { stmt->errormsg = "Could not commit (in-line) a transaction"; stmt->errornumber = STMT_EXEC_ERROR; diff --git a/src/interfaces/odbc/multibyte.c b/src/interfaces/odbc/multibyte.c index e7a617bb812..17863a9ef5f 100644 --- a/src/interfaces/odbc/multibyte.c +++ b/src/interfaces/odbc/multibyte.c @@ -56,6 +56,7 @@ pg_CS CS_Table[] = { "GBK", GBK }, { "UHC", UHC }, { "WIN1250", WIN1250 }, + { "GB18030", GB18030 }, { "OTHER", OTHER } }; @@ -239,6 +240,25 @@ pg_CS_stat(int stat,unsigned int character,int characterset_code) stat = 0; } break; + /*Chinese GB18030 support.Added by Bill Huang */ + case GB18030: + { + if (stat < 2 && character > 0x80) + stat = 2; + else if (stat = 2) + if (character >= 0x30 && character <= 0x39) + stat = 3; + else + stat = 1; + else if (stat = 3) + if (character >= 0x30 && character <= 0x39) + stat = 1; + else + stat = 3; + else + stat = 0; + } + break; default: { stat = 0; diff --git a/src/interfaces/odbc/multibyte.h b/src/interfaces/odbc/multibyte.h index 47a57b0ade6..bd85747c0d5 100644 --- a/src/interfaces/odbc/multibyte.h +++ b/src/interfaces/odbc/multibyte.h @@ -41,6 +41,7 @@ #define GBK 30 /* GBK */ #define UHC 31 /* UHC */ #define WIN1250 32 /* windows-1250 */ +#define GB18030 33 /* GB18030 */ #define OTHER -1 #define MAX_CHARACTERSET_NAME 24