summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi Inoue2002-06-25 01:54:19 +0000
committerHiroshi Inoue2002-06-25 01:54:19 +0000
commit20241a4c5477d0443c37ccef674c15cfdda37f9e (patch)
tree046663382e34b1c90b859be7c261b3bf852df5e3
parent0b584830f0efef400ef26da58e5c17f14cece3e7 (diff)
1) Add support for GB18030.
2) Fix a bug about the handling of large objects.
-rw-r--r--src/interfaces/odbc/execute.c2
-rw-r--r--src/interfaces/odbc/multibyte.c20
-rw-r--r--src/interfaces/odbc/multibyte.h1
3 files changed, 22 insertions, 1 deletions
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 <[email protected]> <[email protected]>*/
+ 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