blob: 2becf87c26a7ae21f81d1902e557a02f3cbe248e [file]
>>
>>--test the exposure of UCS2 and disabling of UNICODE
>>--as a character set name.
>>
>>--positive
>>--Table columns can be created to be associated with character set UCS2.
>>create table t002(c char(10) character set UCS2);
--- SQL operation complete.
>>
>>--INVOKE and SHOWDDL work for tables with columns associated with UCS2.
>>invoke t002;
-- Definition of Trafodion table TRAFODION.SCH.T002
-- Definition current Tue Sep 20 12:51:23 2016
(
SYSKEY LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
, C CHAR(10) CHARACTER SET UCS2 COLLATE
DEFAULT DEFAULT NULL
)
--- SQL operation complete.
>>showddl t002;
CREATE TABLE TRAFODION.SCH.T002
(
C CHAR(10) CHARACTER SET UCS2 COLLATE
DEFAULT DEFAULT NULL
)
ATTRIBUTES ALIGNED FORMAT
;
--- SQL operation complete.
>>
>>--negative
>>--Table columns can not be created to be assocated with UNICODE.
>>create table t003(c char(10) character set UNICODE);
*** ERROR[15001] A syntax error occurred at or before:
create table t003(c char(10) character set UNICODE);
^ (50 characters from start of SQL statement)
*** ERROR[8822] The statement was not prepared.
>>
>>
>>?section dml
>>
>>--positive
>>insert into t002 values(_ucs2'qwer');
--- 1 row(s) inserted.
>>update t002 set c = _UCS2'xxxx' where c = _UCS2'qwer';
--- 1 row(s) updated.
>>delete from t002 where c = _UCS2'asdf';
--- 0 row(s) deleted.
>>select _UCS2'ucs2', _ISO88591'iso88591', c from t002;
(EXPR) (EXPR) C
-------- -------- --------------------
ucs2 iso88591 xxxx
--- 1 row(s) selected.
>>
>>--negative
>>insert into t002 values(_UNICODE'asdf');
*** ERROR[3127] An invalid character was found in identifier _UNICODE.
*** ERROR[15001] A syntax error occurred at or before:
insert into t002 values(_UNICODE'asdf');
^ (31 characters from start of SQL statement)
*** ERROR[8822] The statement was not prepared.
>>
>>--VARNCHAR disallowed
>>create table t004(c varnchar(10));
*** ERROR[15001] A syntax error occurred at or before:
create table t004(c varnchar(10));
^ (28 characters from start of SQL statement)
*** ERROR[8822] The statement was not prepared.
>>
>>
>>-------------------------------
>>--test translation name changes
>>-------------------------------
>>
>>create table t001(c char(10));
--- SQL operation complete.
>>insert into t001 values(x'4e');
--- 1 row(s) inserted.
>>
>>?section dml
>>--New valid name. Case insensitive
>>select translate(_kanji'asdf' using KANJITOISO88591) from (values(1))x;
*** ERROR[3010] Character set KANJI is not yet supported.
*** ERROR[15001] A syntax error occurred at or before:
select translate(_kanji'asdf' using KANJITOISO88591) from (values(1))x;
^ (23 characters from start of SQL statement)
*** ERROR[8822] The statement was not prepared.
>>select translate(_ksc5601'1234' using KSC5601TOISO88591) from (values(1))x;
*** ERROR[3010] Character set KSC5601 is not yet supported.
*** ERROR[15001] A syntax error occurred at or before:
select translate(_ksc5601'1234' using KSC5601TOISO88591) from (values(1))x;
^ (25 characters from start of SQL statement)
*** ERROR[8822] The statement was not prepared.
>>select translate(_UCS2'asdf' using UCS2TOISO88591) from (values(1))x;
(EXPR)
------
asdf
--- 1 row(s) selected.
>>insert into t002
+> select translate(c using iso88591ToUCS2) from t001
+> where c = x'4e';
--- 1 row(s) inserted.
>>
>>--old name not allowed
>>insert into t001 values(translate(_UCS2'qwer' using UToL1));
*** ERROR[4105] Translation name is not recognized.
*** ERROR[8822] The statement was not prepared.
>>insert into t001 values(translate(_UCS2'ewrt' using UNICODE_TO_ISO88591));
*** ERROR[4105] Translation name is not recognized.
*** ERROR[8822] The statement was not prepared.
>>insert into t002 values(translate('asdf' using ISO88591TOUCS2));
--- 1 row(s) inserted.
>>insert into t002 values(translate('qwer' using L1ToU));
*** ERROR[4105] Translation name is not recognized.
*** ERROR[8822] The statement was not prepared.
>>insert into t002 values(translate('ewrt' using ISO88591_TO_UNICODE));
*** ERROR[4105] Translation name is not recognized.
*** ERROR[8822] The statement was not prepared.
>>
>>-------------------------------
>>--test TERMINAL_CHARSETS
>>-------------------------------
>>
>>set terminal_charset iso88591;
>>
>>-- the following should fail
>>set terminal_charset iso88592;
*** ERROR[15990] Character set name for SQLCI attribute TERMINAL_CHARSET is not valid.
>>set terminal_charset ucs2;
*** ERROR[2038] Character set ucs2 is not supported for SQLCI attribute TERMINAL_CHARSET.
>>set terminal_charset sjis;
>>set terminal_charset x0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789;
*** ERROR[15990] Character set name for SQLCI attribute TERMINAL_CHARSET is not valid.
>>
>>-- the default is ucs2. this is a no-op.
>>control query default national_charset 'ucs2';
--- SQL operation complete.
>>
>>--test CQD NATIONAL_CHARSET (should fail)
>>-------------------------------
>>control query default national_charset 'ios88591';
*** ERROR[4130] NATIONAL_CHARSET is a read-only DEFAULTS attribute and cannot be updated.
*** ERROR[8822] The statement was not prepared.
>>
>>-- an invalid sqlci command, exercise the single-byte version of StoreSyntaxError()
>>bad_sqlci_cmd 1;
*** ERROR[15001] A syntax error occurred at or before:
bad_sqlci_cmd 1;
^ (15 characters from start of SQL statement)
>>
>>?section clnup
>>drop table t001;
--- SQL operation complete.
>>drop table t002;
--- SQL operation complete.
>>
>>log;