From 609026bb6b9cc05f9aa0e5a4ad7e06b5a352e969 Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Sun, 15 Mar 1998 07:53:03 +0000 Subject: [PATCH] From: t-ishii@sra.co.jp Included are patches intended for allowing PostgreSQL to handle multi-byte charachter sets such as EUC(Extende Unix Code), Unicode and Mule internal code. With the MB patch you can use multi-byte character sets in regexp and LIKE. The encoding system chosen is determined at the compile time. To enable the MB extension, you need to define a variable "MB" in Makefile.global or in Makefile.custom. For further information please take a look at README.mb under doc directory. (Note that unlike "jp patch" I do not use modified GNU regexp any more. I changed Henry Spencer's regexp coming with PostgreSQL.) --- src/test/regress/expected/euc_cn.out | 55 +++++++++++++ src/test/regress/expected/euc_jp.out | 55 +++++++++++++ src/test/regress/expected/mule_internal.out | 85 +++++++++++++++++++++ src/test/regress/sql/euc_cn.sql | 15 ++++ src/test/regress/sql/euc_jp.sql | 15 ++++ src/test/regress/sql/mule_internal.sql | 21 +++++ 6 files changed, 246 insertions(+) create mode 100644 src/test/regress/expected/euc_cn.out create mode 100644 src/test/regress/expected/euc_jp.out create mode 100644 src/test/regress/expected/mule_internal.out create mode 100644 src/test/regress/sql/euc_cn.sql create mode 100644 src/test/regress/sql/euc_jp.sql create mode 100644 src/test/regress/sql/mule_internal.sql diff --git a/src/test/regress/expected/euc_cn.out b/src/test/regress/expected/euc_cn.out new file mode 100644 index 0000000000..d927b28d20 --- /dev/null +++ b/src/test/regress/expected/euc_cn.out @@ -0,0 +1,55 @@ +QUERY: drop table ¼ÆËã»úÊõÓï; +ERROR: Relation ¼ÆËã»úÊõÓï Does Not Exist! +QUERY: create table ¼ÆËã»úÊõÓï(ÊõÓï text, ·ÖÀàºÅ varchar, ±¸×¢1A char(16)); +QUERY: create index ¼ÆËã»úÊõÓïindex1 on ¼ÆËã»úÊõÓï using btree(ÊõÓï); +QUERY: create index ¼ÆËã»úÊõÓïindex2 on ¼ÆËã»úÊõÓï using btree(·ÖÀàºÅ); +QUERY: insert into ¼ÆËã»úÊõÓï values('µçÄÔÏÔʾÆÁ','»úA01ÉÏ'); +QUERY: insert into ¼ÆËã»úÊõÓï values('µçÄÔͼÐÎ','·ÖB01ÖÐ'); +QUERY: insert into ¼ÆËã»úÊõÓï values('µçÄÔ³ÌÐòÔ±','ÈËZ01ÏÂ'); +QUERY: vacuum ¼ÆËã»úÊõÓï; +QUERY: select * from ¼ÆËã»úÊõÓï; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔÏÔʾÆÁ|»úA01ÉÏ| +µçÄÔͼÐÎ |·ÖB01ÖÐ| +µçÄÔ³ÌÐòÔ±|ÈËZ01ÏÂ| +(3 rows) + +QUERY: select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ = 'ÈËZ01ÏÂ'; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔ³ÌÐòÔ±|ÈËZ01ÏÂ| +(1 row) + +QUERY: select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ ~* 'ÈËz01ÏÂ'; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔ³ÌÐòÔ±|ÈËZ01ÏÂ| +(1 row) + +QUERY: select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ like '_Z01_'; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔ³ÌÐòÔ±|ÈËZ01ÏÂ| +(1 row) + +QUERY: select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ like '_Z%'; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔ³ÌÐòÔ±|ÈËZ01ÏÂ| +(1 row) + +QUERY: select * from ¼ÆËã»úÊõÓï where ÊõÓï ~ 'µçÄÔ[ÏÔͼ]'; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔÏÔʾÆÁ|»úA01ÉÏ| +µçÄÔͼÐÎ |·ÖB01ÖÐ| +(2 rows) + +QUERY: select * from ¼ÆËã»úÊõÓï where ÊõÓï ~* 'µçÄÔ[ÏÔͼ]'; +ÊõÓï |·ÖÀàºÅ |±¸×¢1a +----------+-------+------ +µçÄÔÏÔʾÆÁ|»úA01ÉÏ| +µçÄÔͼÐÎ |·ÖB01ÖÐ| +(2 rows) + diff --git a/src/test/regress/expected/euc_jp.out b/src/test/regress/expected/euc_jp.out new file mode 100644 index 0000000000..c710392738 --- /dev/null +++ b/src/test/regress/expected/euc_jp.out @@ -0,0 +1,55 @@ +QUERY: drop table ·×»»µ¡ÍѸì; +ERROR: Relation ·×»»µ¡ÍѸì Does Not Exist! +QUERY: create table ·×»»µ¡ÍѸì (ÍѸì text, ʬÎॳ¡¼¥É varchar, È÷¹Í1A¤À¤è char(16)); +QUERY: create index ·×»»µ¡ÍѸìindex1 on ·×»»µ¡ÍѸì using btree (ÍѸì); +QUERY: create index ·×»»µ¡ÍѸìindex2 on ·×»»µ¡ÍѸì using hash (ʬÎॳ¡¼¥É); +QUERY: insert into ·×»»µ¡ÍѸì values('¥³¥ó¥Ô¥å¡¼¥¿¥Ç¥£¥¹¥×¥ì¥¤','µ¡A01¾å'); +QUERY: insert into ·×»»µ¡ÍѸì values('¥³¥ó¥Ô¥å¡¼¥¿¥°¥é¥Õ¥£¥Ã¥¯¥¹','ʬB10Ãæ'); +QUERY: insert into ·×»»µ¡ÍѸì values('¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼','¿ÍZ01²¼'); +QUERY: vacuum ·×»»µ¡ÍѸì; +QUERY: select * from ·×»»µ¡ÍѸì; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +--------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥Ç¥£¥¹¥×¥ì¥¤ |µ¡A01¾å | +¥³¥ó¥Ô¥å¡¼¥¿¥°¥é¥Õ¥£¥Ã¥¯¥¹|ʬB10Ãæ | +¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼ |¿ÍZ01²¼ | +(3 rows) + +QUERY: select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É = '¿ÍZ01²¼'; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼|¿ÍZ01²¼ | +(1 row) + +QUERY: select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É ~* '¿Íz01²¼'; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼|¿ÍZ01²¼ | +(1 row) + +QUERY: select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É like '_Z01_'; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼|¿ÍZ01²¼ | +(1 row) + +QUERY: select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É like '_Z%'; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼|¿ÍZ01²¼ | +(1 row) + +QUERY: select * from ·×»»µ¡ÍѸì where ÍѸì ~ '¥³¥ó¥Ô¥å¡¼¥¿[¥Ç¥°]'; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +--------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥Ç¥£¥¹¥×¥ì¥¤ |µ¡A01¾å | +¥³¥ó¥Ô¥å¡¼¥¿¥°¥é¥Õ¥£¥Ã¥¯¥¹|ʬB10Ãæ | +(2 rows) + +QUERY: select * from ·×»»µ¡ÍѸì where ÍѸì ~* '¥³¥ó¥Ô¥å¡¼¥¿[¥Ç¥°]'; +ÍѸì |ʬÎॳ¡¼¥É|È÷¹Í1a¤À¤è +--------------------------+----------+---------- +¥³¥ó¥Ô¥å¡¼¥¿¥Ç¥£¥¹¥×¥ì¥¤ |µ¡A01¾å | +¥³¥ó¥Ô¥å¡¼¥¿¥°¥é¥Õ¥£¥Ã¥¯¥¹|ʬB10Ãæ | +(2 rows) + diff --git a/src/test/regress/expected/mule_internal.out b/src/test/regress/expected/mule_internal.out new file mode 100644 index 0000000000..c797072e3d --- /dev/null +++ b/src/test/regress/expected/mule_internal.out @@ -0,0 +1,85 @@ +QUERY: drop table ’·×’»»’µ¡’ÍÑ’¸ì; +ERROR: Relation ’·×’»»’µ¡’ÍÑ’¸ì Does Not Exist! +QUERY: create table ’·×’»»’µ¡’ÍÑ’¸ì (’ÍÑ’¸ì text, ’ʬ’Îà’¥³’¡¼’¥É varchar, ’È÷’¹Í1A’¤À’¤è char(16)); +QUERY: create index ’·×’»»’µ¡’ÍÑ’¸ìindex1 on ’·×’»»’µ¡’ÍÑ’¸ì using btree (’ÍÑ’¸ì); +QUERY: create index ’·×’»»’µ¡’ÍÑ’¸ìindex2 on ’·×’»»’µ¡’ÍÑ’¸ì using hash (’ʬ’Îà’¥³’¡¼’¥É); +QUERY: insert into ’·×’»»’µ¡’ÍÑ’¸ì values('’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥Ç’¥£’¥¹’¥×’¥ì’¥¤','’µ¡A01’¾å'); +QUERY: insert into ’·×’»»’µ¡’ÍÑ’¸ì values('’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥°’¥é’¥Õ’¥£’¥Ã’¥¯’¥¹','’ʬB10’Ãæ'); +QUERY: insert into ’·×’»»’µ¡’ÍÑ’¸ì values('’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼','’¿ÍZ01’²¼'); +QUERY: insert into ’·×’»»’µ¡’ÍÑ’¸ì values('‘µç‘ÄÔ‘Ïԑʾ‘ÆÁ','‘»úA01‘ÉÏ'); +QUERY: insert into ’·×’»»’µ¡’ÍÑ’¸ì values('‘µç‘Äԑͼ‘ÐÎ','‘·ÖB01‘ÖÐ'); +QUERY: insert into ’·×’»»’µ¡’ÍÑ’¸ì values('‘µç‘ÄÔ‘³Ì‘Ðò‘Ô±','‘ÈËZ01‘ÏÂ'); +QUERY: vacuum ’·×’»»’µ¡’ÍÑ’¸ì; +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +---------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥Ç’¥£’¥¹’¥×’¥ì’¥¤ |’µ¡A01’¾å | +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥°’¥é’¥Õ’¥£’¥Ã’¥¯’¥¹|’ʬB10’Ãæ | +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼ |’¿ÍZ01’²¼ | +‘µç‘ÄÔ‘Ïԑʾ‘ÆÁ |‘»úA01‘ÉÏ | +‘µç‘Äԑͼ‘ÐÎ |‘·ÖB01‘ÖÐ | +‘µç‘ÄÔ‘³Ì‘Ðò‘Ô± |‘ÈËZ01‘Ï | +(6 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É = '’¿ÍZ01’²¼'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼|’¿ÍZ01’²¼ | +(1 row) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É ~ 'Z01'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼|’¿ÍZ01’²¼ | +‘µç‘ÄÔ‘³Ì‘Ðò‘Ô± |‘ÈËZ01‘Ï | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É ~* 'z01'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼|’¿ÍZ01’²¼ | +‘µç‘ÄÔ‘³Ì‘Ðò‘Ô± |‘ÈËZ01‘Ï | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É like '_Z01_'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼|’¿ÍZ01’²¼ | +‘µç‘ÄÔ‘³Ì‘Ðò‘Ô± |‘ÈËZ01‘Ï | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É like '_Z%'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼|’¿ÍZ01’²¼ | +‘µç‘ÄÔ‘³Ì‘Ðò‘Ô± |‘ÈËZ01‘Ï | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~ '’¥³’¥ó’¥Ô’¥å’¡¼’¥¿[’¥Ç’¥°]'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +---------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥Ç’¥£’¥¹’¥×’¥ì’¥¤ |’µ¡A01’¾å | +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥°’¥é’¥Õ’¥£’¥Ã’¥¯’¥¹|’ʬB10’Ãæ | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~* '’¥³’¥ó’¥Ô’¥å’¡¼’¥¿[’¥Ç’¥°]'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +---------------------------------------+---------------+-------------- +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥Ç’¥£’¥¹’¥×’¥ì’¥¤ |’µ¡A01’¾å | +’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥°’¥é’¥Õ’¥£’¥Ã’¥¯’¥¹|’ʬB10’Ãæ | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~ '‘µç‘ÄÔ[‘Ïԑͼ]'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +---------------+---------------+-------------- +‘µç‘ÄÔ‘Ïԑʾ‘ÆÁ|‘»úA01‘ÉÏ | +‘µç‘Äԑͼ‘ÐÎ |‘·ÖB01‘ÖÐ | +(2 rows) + +QUERY: select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~* '‘µç‘ÄÔ[‘Ïԑͼ]'; +’ÍÑ’¸ì |’ʬ’Îà’¥³’¡¼’¥É|’È÷’¹Í1a’¤À’¤è +---------------+---------------+-------------- +‘µç‘ÄÔ‘Ïԑʾ‘ÆÁ|‘»úA01‘ÉÏ | +‘µç‘Äԑͼ‘ÐÎ |‘·ÖB01‘ÖÐ | +(2 rows) + diff --git a/src/test/regress/sql/euc_cn.sql b/src/test/regress/sql/euc_cn.sql new file mode 100644 index 0000000000..461c0c864f --- /dev/null +++ b/src/test/regress/sql/euc_cn.sql @@ -0,0 +1,15 @@ +drop table ¼ÆËã»úÊõÓï; +create table ¼ÆËã»úÊõÓï(ÊõÓï text, ·ÖÀàºÅ varchar, ±¸×¢1A char(16)); +create index ¼ÆËã»úÊõÓïindex1 on ¼ÆËã»úÊõÓï using btree(ÊõÓï); +create index ¼ÆËã»úÊõÓïindex2 on ¼ÆËã»úÊõÓï using btree(·ÖÀàºÅ); +insert into ¼ÆËã»úÊõÓï values('µçÄÔÏÔʾÆÁ','»úA01ÉÏ'); +insert into ¼ÆËã»úÊõÓï values('µçÄÔͼÐÎ','·ÖB01ÖÐ'); +insert into ¼ÆËã»úÊõÓï values('µçÄÔ³ÌÐòÔ±','ÈËZ01ÏÂ'); +vacuum ¼ÆËã»úÊõÓï; +select * from ¼ÆËã»úÊõÓï; +select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ = 'ÈËZ01ÏÂ'; +select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ ~* 'ÈËz01ÏÂ'; +select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ like '_Z01_'; +select * from ¼ÆËã»úÊõÓï where ·ÖÀàºÅ like '_Z%'; +select * from ¼ÆËã»úÊõÓï where ÊõÓï ~ 'µçÄÔ[ÏÔͼ]'; +select * from ¼ÆËã»úÊõÓï where ÊõÓï ~* 'µçÄÔ[ÏÔͼ]'; diff --git a/src/test/regress/sql/euc_jp.sql b/src/test/regress/sql/euc_jp.sql new file mode 100644 index 0000000000..8cba58055d --- /dev/null +++ b/src/test/regress/sql/euc_jp.sql @@ -0,0 +1,15 @@ +drop table ·×»»µ¡ÍѸì; +create table ·×»»µ¡ÍѸì (ÍѸì text, ʬÎॳ¡¼¥É varchar, È÷¹Í1A¤À¤è char(16)); +create index ·×»»µ¡ÍѸìindex1 on ·×»»µ¡ÍѸì using btree (ÍѸì); +create index ·×»»µ¡ÍѸìindex2 on ·×»»µ¡ÍѸì using hash (ʬÎॳ¡¼¥É); +insert into ·×»»µ¡ÍѸì values('¥³¥ó¥Ô¥å¡¼¥¿¥Ç¥£¥¹¥×¥ì¥¤','µ¡A01¾å'); +insert into ·×»»µ¡ÍѸì values('¥³¥ó¥Ô¥å¡¼¥¿¥°¥é¥Õ¥£¥Ã¥¯¥¹','ʬB10Ãæ'); +insert into ·×»»µ¡ÍѸì values('¥³¥ó¥Ô¥å¡¼¥¿¥×¥í¥°¥é¥Þ¡¼','¿ÍZ01²¼'); +vacuum ·×»»µ¡ÍѸì; +select * from ·×»»µ¡ÍѸì; +select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É = '¿ÍZ01²¼'; +select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É ~* '¿Íz01²¼'; +select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É like '_Z01_'; +select * from ·×»»µ¡ÍѸì where ʬÎॳ¡¼¥É like '_Z%'; +select * from ·×»»µ¡ÍѸì where ÍѸì ~ '¥³¥ó¥Ô¥å¡¼¥¿[¥Ç¥°]'; +select * from ·×»»µ¡ÍѸì where ÍѸì ~* '¥³¥ó¥Ô¥å¡¼¥¿[¥Ç¥°]'; diff --git a/src/test/regress/sql/mule_internal.sql b/src/test/regress/sql/mule_internal.sql new file mode 100644 index 0000000000..6d07906ff7 --- /dev/null +++ b/src/test/regress/sql/mule_internal.sql @@ -0,0 +1,21 @@ +drop table ’·×’»»’µ¡’ÍÑ’¸ì; +create table ’·×’»»’µ¡’ÍÑ’¸ì (’ÍÑ’¸ì text, ’ʬ’Îà’¥³’¡¼’¥É varchar, ’È÷’¹Í1A’¤À’¤è char(16)); +create index ’·×’»»’µ¡’ÍÑ’¸ìindex1 on ’·×’»»’µ¡’ÍÑ’¸ì using btree (’ÍÑ’¸ì); +create index ’·×’»»’µ¡’ÍÑ’¸ìindex2 on ’·×’»»’µ¡’ÍÑ’¸ì using hash (’ʬ’Îà’¥³’¡¼’¥É); +insert into ’·×’»»’µ¡’ÍÑ’¸ì values('’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥Ç’¥£’¥¹’¥×’¥ì’¥¤','’µ¡A01’¾å'); +insert into ’·×’»»’µ¡’ÍÑ’¸ì values('’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥°’¥é’¥Õ’¥£’¥Ã’¥¯’¥¹','’ʬB10’Ãæ'); +insert into ’·×’»»’µ¡’ÍÑ’¸ì values('’¥³’¥ó’¥Ô’¥å’¡¼’¥¿’¥×’¥í’¥°’¥é’¥Þ’¡¼','’¿ÍZ01’²¼'); +insert into ’·×’»»’µ¡’ÍÑ’¸ì values('‘µç‘ÄÔ‘Ïԑʾ‘ÆÁ','‘»úA01‘ÉÏ'); +insert into ’·×’»»’µ¡’ÍÑ’¸ì values('‘µç‘Äԑͼ‘ÐÎ','‘·ÖB01‘ÖÐ'); +insert into ’·×’»»’µ¡’ÍÑ’¸ì values('‘µç‘ÄÔ‘³Ì‘Ðò‘Ô±','‘ÈËZ01‘ÏÂ'); +vacuum ’·×’»»’µ¡’ÍÑ’¸ì; +select * from ’·×’»»’µ¡’ÍÑ’¸ì; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É = '’¿ÍZ01’²¼'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É ~ 'Z01'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É ~* 'z01'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É like '_Z01_'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ʬ’Îà’¥³’¡¼’¥É like '_Z%'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~ '’¥³’¥ó’¥Ô’¥å’¡¼’¥¿[’¥Ç’¥°]'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~* '’¥³’¥ó’¥Ô’¥å’¡¼’¥¿[’¥Ç’¥°]'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~ '‘µç‘ÄÔ[‘Ïԑͼ]'; +select * from ’·×’»»’µ¡’ÍÑ’¸ì where ’ÍÑ’¸ì ~* '‘µç‘ÄÔ[‘Ïԑͼ]';