From 20241a4c5477d0443c37ccef674c15cfdda37f9e Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Tue, 25 Jun 2002 01:54:19 +0000 Subject: [PATCH] 1) Add support for GB18030. 2) Fix a bug about the handling of large objects. --- src/interfaces/odbc/execute.c | 2 +- src/interfaces/odbc/multibyte.c | 20 ++++++++++++++++++++ src/interfaces/odbc/multibyte.h | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/interfaces/odbc/execute.c b/src/interfaces/odbc/execute.c index 164debbf4d..598c2a2f61 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 e7a617bb81..17863a9ef5 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 47a57b0ade..bd85747c0d 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 -- 2.50.0