blob: b52e5e0a71830be646a8689bce8aeaaae9b3cf9b [file] [log] [blame]
-- Test: TEST050 (TBD. See below)
-- @@@ START COPYRIGHT @@@
--
-- Licensed to the Apache Software Foundation (ASF) under one
-- or more contributor license agreements. See the NOTICE file
-- distributed with this work for additional information
-- regarding copyright ownership. The ASF licenses this file
-- to you under the Apache License, Version 2.0 (the
-- "License"); you may not use this file except in compliance
-- with the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing,
-- software distributed under the License is distributed on an
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-- KIND, either express or implied. See the License for the
-- specific language governing permissions and limitations
-- under the License.
--
-- @@@ END COPYRIGHT @@@
--
-- Functionality: SQLCI (MXCI) section, error messages, constant binder
-- Expected files: EXPECTED050, EXPECTED050.MX
-- Table created: T050a
-- Limitations: Not run on MP tables
-- Revision history:
-- 01/28/02: - Copied from fullstack/TEST050
-- 03/19/03: split this test into two: one for MXCI (this one) and
-- one for MX Compiler (regress/modmgt/test050)
-- TEST050
--------------------------------------------------------------------
obey TEST050(ddb);
log LOG050 clear;
obey TEST050(cdb);
obey TEST050(tests);
log;
obey TEST050(ddb);
exit;
-- End of test main
--------------------------------------------------------------------
?section ddb
drop table T050a;
drop table T050b;
?section cdb
create table T050a(a char(5) default 'Low',
b char(5) upshift default 'Upp',
c char(5) upshift default null,
d int default 0,
e int default 0,
"f" int default 0);
insert into T050a values('aa','BB','cc', 1, 1, 1);
?section tests
obey TEST050 ( test_sqlci_section ) ;
obey TEST050(test_sqlci_errmsgs);
obey TEST050(test_binder_upper);
obey TEST050(test_olt_warnings);
?section
?section test_sqlci_section -- this should be ok!
-- this should be ok even with the funny spacing
error 0; -- INFO/success
error 100; -- WARN/no data
error 123; -- ERR/msg-not-fnd
error 3000; -- ERR/state fabricated from ZZZZZ
error 4001; -- ERR/42000
error 6007; -- WARN/01000
error 8402; -- ERR *and* WARN states (yes, both are valid)
error 15015; -- ERR/07001
error 0, get; -- INFO/success
error 100, get; -- WARN/no data
error 123, get; -- ERR/msg-not-fnd
error 3000, get; -- ERR/state fabricated from ZZZZZ
error 4001, get; -- ERR/42000
error 6007, get; -- WARN/01000
error 8402, get; -- ERR *and* WARN states (yes, both are valid)
error 15015, get; -- ERR/07001
?section test_sqlci_errmsgs
set list_count 1;
select * from T050a where d=?ee; -- 15016
set param ?ee e;
select * from T050a where d=?ee; -- 15015
set param ?ee 1;
select * from T050a where d=?ee; -- 1 row, LIST_COUNT reached
set param ?c=c; -- 15001
set param ?c c;
select * from T050a where b=?c; -- 0 rows
select * from T050a where c=?c; -- 0 rows
set param ?c 'aa';
select * from T050a where ?c=a; -- 1 rows, LIST_COUNT reached
set list_count;
select a,?x from T050a where b=?y; -- 15016 (twice)
select a,? from T050a where b=?; -- 15016 (twice)
execute aBc using 1,'a'; -- 15017
prepare x from select a,? from T050a where d=?d;
execute x; -- 15016 (twice)
execute x using 77; -- 15016
execute x using 77,1; -- 15016 15019
set param ?d foo;
show param;
execute x using 77; -- 15015
set param ?d 1;
execute x using 77; -- 1 row
set param ?d '1';
execute x using b; -- 1 row
execute x using 'b'; -- 1 row
execute x using ' b o''bab +() x'; -- 1 row
execute x using ' b o''bab +() x'; -- 15023
execute x using 'b o''bab' , z; -- 15019, 1 row
execute x using 'b o''bab' z; -- 15024
execute x using.; -- 15001
execute x using; -- 15020
execute x using ; -- 15020
execute x using,; -- 15019, 1 row (yucky syntax)
execute x using ,; -- 15019, 1 row (yucky syntax)
execute x using , ; -- 15019, 1 row (yucky syntax)
execute x using a, ; -- 15019, 1 row (yucky syntax)
execute x using 77,99; -- 15019, 1 row
execute x using 77,99,foo; -- 15019, 1 row
prepare A from table T050a;
execute a using p,q; -- 15019, 1 row
?section test_binder_upper
-- Genesis 10-970902-0878
select * from T050a where a="Lower"; -- 4001, 4104
select * from T050a where e="Lower"; -- 4001, 4104
select * from T050a where a=T050a."Lower"; -- 4003
select * from T050a,T050a x where x.e="f"; -- 4004, 4104
select * from T050a,T050a x where x.e='f'; -- 4034 or 4041 or like that
-- Genesis 10-980402-1556 + OLT add'l fix
insert into T050a default values;
insert into T050a values('zz','zz','zz', 1, 1, 1);
execute a; -- aa,BB,CC; Low,UPP,?; zz,ZZ,ZZ
-- Ansi 6.13 GR 2: char and varchar concats are different vis-a-vis length
update T050a set b=a, c=trim(lower(b))||trim(a); -- 1 warn 8402
execute a; -- aa,AA,BBAA; Low,LOW,UPPLO; zz,ZZ,ZZZZ
update T050a set b=a, c=lower(b)||a; -- 3 ERROR 8402
execute a; -- aa,AA,AA; Low,LOW,LOW; zz,ZZ,ZZ
update T050a set a='xx'||'yy';
execute a; -- xxyy,AA,AA; xxyy,LOW,LOW; xxyy,ZZ,ZZ
-- Genesis 10-980611-7115
select cast('Are you up for a party? Now?' as char(30) upshift) lit,
cast(a as char(6) upshift) lu,
cast(c as varchar(6) upshift) uu,
cast(e as char(6) upshift)i1,
cast("f" as char(6) upshift)i2
from T050a;
insert into T050a(b,c,"f")values(cast('bLoop' as char(6)upshift),
cast(129 as char(4)upshift),
12900);
select * from T050a where "f">100;
?section test_olt_warnings
-- Genesis 10-090626-2647 - warning diags in proj expr in UniqueOLT
create table T050b (a int not null, b varchar(100), primary key(a));
insert into T050b values (1,'abc');
select cast(rtrim(b) as char(1)) from T050b where a = 1;