aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1998-04-27 17:10:50 +0000
committerMarc G. Fournier <scrappy@hub.org>1998-04-27 17:10:50 +0000
commitf554af0a9fdbe0e9636fce36d6c809e81ce1539c (patch)
tree3cd60fe19a94c78e774ac3b70ef3d729f7896f20 /src/include
parent2cbcf461028dee105f69328e4589f08a4f59db91 (diff)
downloadpostgresql-f554af0a9fdbe0e9636fce36d6c809e81ce1539c.tar.gz
postgresql-f554af0a9fdbe0e9636fce36d6c809e81ce1539c.zip
From: t-ishii@sra.co.jp
Hi, here are patches I promised (against 6.3.2): * character_length(), position(), substring() are now aware of multi-byte characters * add octet_length() * add --with-mb option to configure * new regression tests for EUC_KR (contributed by "Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr>) * add some test cases to the EUC_JP regression test * fix problem in regress/regress.sh in case of System V * fix toupper(), tolower() to handle 8bit chars note that: o patches for both configure.in and configure are included. maybe the one for configure is not necessary. o pg_proc.h was modified to add octet_length(). I used OIDs (1374-1379) for that. Please let me know if these numbers are not appropriate.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/catalog/pg_proc.h19
-rw-r--r--src/include/regex/pg_wchar.h5
-rw-r--r--src/include/utils/builtins.h5
3 files changed, 24 insertions, 5 deletions
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index cf0826b69ba..335139cdbeb 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_proc.h,v 1.53 1998/04/27 04:08:07 momjian Exp $
+ * $Id: pg_proc.h,v 1.54 1998/04/27 17:08:41 scrappy Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@@ -201,6 +201,8 @@ DATA(insert OID = 1257 ( textlen PGUID 11 f t f 1 f 23 "25" 100 0 1 0 foo
DESCR("length");
DATA(insert OID = 1258 ( textcat PGUID 11 f t f 2 f 25 "25 25" 100 0 1 0 foo bar ));
DESCR("concat");
+DATA(insert OID = 1377 ( textoctetlen PGUID 11 f t f 1 f 23 "25" 100 0 1 0 foo bar ));
+DESCR("octet length");
DATA(insert OID = 84 ( boolne PGUID 11 f t f 2 f 16 "16 16" 100 0 0 100 foo bar ));
DESCR("not equal");
@@ -1444,7 +1446,11 @@ DESCR("does not match regex., case-insensitive");
DATA(insert OID = 1251 ( bpcharlen PGUID 11 f t f 1 f 23 "1042" 100 0 0 100 foo bar ));
DESCR("octet length");
+DATA(insert OID = 1378 ( bpcharoctetlen PGUID 11 f t f 1 f 23 "1042" 100 0 0 100 foo bar ));
+DESCR("octet length");
DATA(insert OID = 1253 ( varcharlen PGUID 11 f t f 1 f 23 "1043" 100 0 0 100 foo bar ));
+DESCR("character length");
+DATA(insert OID = 1379 ( varcharoctetlen PGUID 11 f t f 1 f 23 "1043" 100 0 0 100 foo bar ));
DESCR("octet length");
DATA(insert OID = 1263 ( text_timespan PGUID 11 f t f 1 f 1186 "25" 100 0 0 100 foo bar ));
@@ -1550,10 +1556,17 @@ DESCR("convert");
DATA(insert OID = 1370 ( timestamp PGUID 14 f t f 1 f 1296 "1184" 100 0 0 100 "select datetime_stamp($1)" - ));
DESCR("convert");
DATA(insert OID = 1371 ( length PGUID 14 f t f 1 f 23 "25" 100 0 0 100 "select textlen($1)" - ));
-DESCR("octet length");
+DESCR("character length");
DATA(insert OID = 1372 ( length PGUID 14 f t f 1 f 23 "1042" 100 0 0 100 "select bpcharlen($1)" - ));
-DESCR("octet length");
+DESCR("character length");
DATA(insert OID = 1373 ( length PGUID 14 f t f 1 f 23 "1043" 100 0 0 100 "select varcharlen($1)" - ));
+DESCR("character length");
+
+DATA(insert OID = 1374 ( octet_length PGUID 14 f t f 1 f 23 "25" 100 0 0 100 "select textoctetlen($1)" - ));
+DESCR("octet length");
+DATA(insert OID = 1375 ( octet_length PGUID 14 f t f 1 f 23 "1042" 100 0 0 100 "select bpcharoctetlen($1)" - ));
+DESCR("octet length");
+DATA(insert OID = 1376 ( octet_length PGUID 14 f t f 1 f 23 "1043" 100 0 0 100 "select varcharoctetlen($1)" - ));
DESCR("octet length");
DATA(insert OID = 1380 ( date_part PGUID 14 f t f 2 f 701 "25 1184" 100 0 0 100 "select datetime_part($1, $2)" - ));
diff --git a/src/include/regex/pg_wchar.h b/src/include/regex/pg_wchar.h
index 616f76cfec5..b135df82f12 100644
--- a/src/include/regex/pg_wchar.h
+++ b/src/include/regex/pg_wchar.h
@@ -1,4 +1,4 @@
-/* $Id: pg_wchar.h,v 1.1 1998/03/15 07:38:47 scrappy Exp $ */
+/* $Id: pg_wchar.h,v 1.2 1998/04/27 17:09:12 scrappy Exp $ */
#ifndef PG_WCHAR_H
#define PG_WCHAR_H
@@ -39,6 +39,9 @@ extern int pg_char_and_wchar_strcmp(const char *, const pg_wchar *);
extern int pg_wchar_strncmp(const pg_wchar *, const pg_wchar *, size_t);
extern int pg_char_and_wchar_strncmp(const char *, const pg_wchar *, size_t);
extern size_t pg_wchar_strlen(const pg_wchar *);
+extern int pg_mblen(const unsigned char *);
+extern int pg_mbstrlen(const unsigned char *);
+extern int pg_mbstrlen_with_len(const unsigned char *, int);
#endif
#endif
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index 44def35ef78..9e83ba12e60 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: builtins.h,v 1.40 1998/04/26 04:09:25 momjian Exp $
+ * $Id: builtins.h,v 1.41 1998/04/27 17:09:28 scrappy Exp $
*
* NOTES
* This should normally only be included by fmgr.h.
@@ -400,6 +400,7 @@ extern bool bpchargt(char *arg1, char *arg2);
extern bool bpcharge(char *arg1, char *arg2);
extern int32 bpcharcmp(char *arg1, char *arg2);
extern int32 bpcharlen(char *arg);
+extern int32 bpcharoctetlen(char *arg);
extern uint32 hashbpchar(struct varlena * key);
extern char *varcharin(char *s, int dummy, int16 atttypmod);
@@ -412,6 +413,7 @@ extern bool varchargt(char *arg1, char *arg2);
extern bool varcharge(char *arg1, char *arg2);
extern int32 varcharcmp(char *arg1, char *arg2);
extern int32 varcharlen(char *arg);
+extern int32 varcharoctetlen(char *arg);
extern uint32 hashvarchar(struct varlena * key);
/* varlena.c */
@@ -425,6 +427,7 @@ extern bool text_le(text *arg1, text *arg2);
extern bool text_gt(text *arg1, text *arg2);
extern bool text_ge(text *arg1, text *arg2);
extern int32 textlen(text *arg);
+extern int32 textoctetlen(text *arg);
extern int32 textpos(text *arg1, text *arg2);
extern text *text_substr(text *string, int32 m, int32 n);