blob: e3723ffbc2af0a6f42d7c1b3b8114fc4eca93cf9 [file] [log] [blame]
-- Test: TEST015 (Executor)
-- @@@ 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: BIGNUM support
-- Expected files: EXPECTED016
-- Table created:
-- Limitations:
-- To do:
-- Revision history:
?section cleanup
drop table t016t1 cascade;
drop table t016t2 cascade;
drop table t016t3 cascade;
drop table t016t4 cascade;
drop table t016t5 cascade;
drop table t016t6 cascade;
drop table temp cascade;
drop table t016t2t1 cascade;
drop table t016t2t2 cascade;
drop table t016err;
drop mvgroup mvg_016;
drop procedure rs016;
?section tests
#ifNT
control query default ARKCMP_FAKE_HW 'ON';
control query default DEF_NUM_SMP_CPUS '2';
control query default DEF_NUM_NODES_IN_ACTIVE_CLUSTERS '1';
#ifNT
log log016 clear;
-- DDL
create table t016t1 (a numeric(10) unsigned,
b numeric(18) unsigned not null,
c numeric(20) default 12345678901234567890,
d numeric(23) unsigned not null,
e numeric(34,0) not null,
f numeric(128) not null,
g numeric(10,2) unsigned not null,
h numeric(18,18) unsigned,
i numeric(25,20) not null,
j numeric(128,60) unsigned
default 12345678012345678901234567890.12345678901234567890,
k numeric(128,128),
l numeric(60,59)) no partition;
create table t016t2(a numeric(39,12) not null, b numeric(20,0) unsigned not null,
c numeric(21,21),
primary key(a,b))
#ifNT
#ifndef SEABASE_REGRESS
hash partition by (a,b)
(add location $$partition2$$, add location $$partition2$$, add location $$partition2$$)
#endif
#ifNT
attribute all mvs allowed
;
create table t3015 (a1 NUMERIC(19,0), a2 int);
-- MVs not support on seabase
#ifndef SEABASE_REGRESS
create MVGroup MVG_016;
-- MV with attribute no audit on refresh
create mv MV_no_audit_016
refresh on request
initialize on refresh
--MVAttributes no AuditOnRefresh
store by (a,b)
as
select a,b,sum(c) sumc
from T016t2
group by a,b;
ALTER MVGroup MVG_016 add MV_no_audit_016;
create mv MV_audit_016
refresh on request
initialize on refresh
store by (a,b)
as
select a,b,min(b) minb
from T016t2
group by a,b;
ALTER MVGroup MVG_016 add MV_audit_016;
create table t016t3(a numeric(39,12) not null, b numeric(20,0) unsigned not null,
primary key(a,b)) range partition by (a,b)
(add first key (12345678901234567890.12) location $$partition2$$,
add first key (22345678901234567890) location $$partition3$$
)
;
#endif
invoke t016t1;
showddl t016t1;
invoke t016t2;
showddl t016t2;
#ifndef SEABASE_REGRESS
invoke t016t3;
showddl t016t3;
#endif
----------------------------------------------------------------------------
-- DDL used to verify fix to SQ2535
create table t016_2535_2(c1 numeric(20,0) not null , c2 int, primary key (c1));
insert into t016_2535_2 values (1234567.1234556789, 1);
insert into t016_2535_2 values (1234568.234556789, 1);
create table t016_2535_3(c1 numeric(20,0) not null , c2 int not null,
primary key (c1, c2));
insert into t016_2535_3 values (1234567.1234556789, 1);
insert into t016_2535_3 values (1234567.1234556789, 2);
insert into t016_2535_3 values (1234568, 1);
insert into t016_2535_3 values (1234568, 2);
insert into t016_2535_3 values (1234569, 1);
-- DML
insert into t016t2 values (1234567890123456789012345.123456789012, 12345678901234567890, .1);
insert into t016t2 values (-1234567890123456789012345.123456789012, 12345678901234567890, .2);
insert into t016t2 values (2234567890123456789012345.123456789012, 12345678901234567890, .3);
insert into t016t2 values (-1234567890123456789012345.123456789012, 22345678901234567890, .000000000000000000001);
insert into t016t2 values (10, 20, .30);
insert into t016t2 values (11, 22, null);
insert into t3015 values(27380468,27380468);
select * from t016t2;
select a+b, a-b, a*b, a/b from t016t2;
select sum(a), sum(b), min(a), min(b), avg(a), avg(b) from t016t2;
select * from t016t2 where a = 1234567890123456789012345.123456789012;
select * from t016t2 where (a,b) = (-1234567890123456789012345.123456789012, 12345678901234567890);
select * from t016t2 where b < 22345678901234567890;
update t016t2 set c = 0.123456789012345678901 where a = 10;
update t016t2 set c = .20 where c is null;
select * from t016t2;
set param ?p 98765432109876543210.12345678901;
set param ?q 98765432109876543210;
set param ?r 0.012345678901234567891;
insert into t016t2 values (?p, ?q, ?r);
select * from t016t2;
create view t016v1 as select * from t016t1;
invoke t016v1;
select * from t016v1;
create view t016v2 (jj,kf) as select j*j, k*f from t016t1;
invoke t016v2;
select * from t016v2;
create table t016t2t1 as select * from t016t1;
invoke t016t2t1;
select * from t016t2t1;
create table t016t2t2 as select j*j jj, k*f kf from t016t1;
invoke t016t2t2;
select * from t016t2t2;
create view t016v3 as select * from t016t2;
select * from t016v3;
create index t016t1i1 on t016t1(a);
create index t016t1i2 on t016t1(c);
create index t016t1i3 on t016t1(k);
create index t016t2i1 on t016t2(a);
create index t016t2i2 on t016t2(b);
create index t016t2i3 on t016t2(c) no populate;
populate index t016t2i3 on t016t2;
-- SPJs not supported on Seabase
#ifndef SEABASE_REGRESS
-- SPJ returning rowsets
log;
sh sh java-compile.ksh TEST016.java 2>LOG016.SECONDARY | tee -a LOG016;
log LOG016;
create procedure rs016(tablename varchar(20))
external name 'TEST016.rs016'
external path $$REGRRUNDIR_Q$$
language java parameter style java
dynamic result sets 1 reads sql data;
grant all privileges on t016t2 to sql_user1;
call rs016('t016t2');
#endif
-- exact numerics
select
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 from (values(1)) x(a);
select
-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 from (values(1)) x(a);
select
1234567890123456789012345678901234567890123456789012345678901234567890.1234567890123456789012345678901234567890123456789012345678 from (values(1)) x(a);
select
-1234567890123456789012345678901234567890123456789012345678901234567890.1234567890123456789012345678901234567890123456789012345678 from (values(1)) x(a);
-- float numerics
select
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678e0 from (values(1)) x(a);
select
-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678e0 from (values(1)) x(a);
select
1234567890123456789012345678901234567890123456789012345678901234567890.1234567890123456789012345678901234567890123456789012345678e0 from (values(1)) x(a);
select
-1234567890123456789012345678901234567890123456789012345678901234567890.1234567890123456789012345678901234567890123456789012345678e0 from (values(1)) x(a);
-- Utilities
#ifndef SEABASE_REGRESS
refresh mvgroup mvg_016 outfile REFRESH.LOG;
log;
sh cat REFRESH.LOG | awk -f FILTER_TIME.AWK | sort >> LOG016;
log LOG016;
#endif
-- error cases
create table t016terr(a numeric(23,24)) no partition;
create table t016terr(a numeric(129,0)) no partition;
create table t016terr(a numeric(129)) no partition;
control query default cat_large_blocks_large_keys 'OFF';
create table t016err (a numeric(128,0) not null, b numeric(128,0) not null, c numeric(128,0) not null, d numeric(128,0) not null, e numeric(92) not null,
primary key(a,b,c,d,e));
-- error cases: exact numerics
select
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 from (values(1)) x(a);
select
-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 from (values(1)) x(a);
select
1234567890123456789012345678901234567890123456789012345678901234567890.12345678901234567890123456789012345678901234567890123456789 from (values(1)) x(a);
select
-1234567890123456789012345678901234567890123456789012345678901234567890.12345678901234567890123456789012345678901234567890123456789 from (values(1)) x(a);
cqd query_cache '0';
select * from t016_2535_2 where c1 = 1234567.1234556789;
select * from t016_2535_2 where c1 = 1234567.0;
select * from t016_2535_2 where c1 = 1234567;
select * from t016_2535_2 where c1 > 1234567.3;
select * from t016_2535_2 where c1 >= 1234567.0;
select * from t016_2535_2 where c1 < 1234567.0;
select * from t016_2535_2 where c1 <= 1234567.0;
select * from t016_2535_2 where c1 < 1234568.0;
select * from t016_2535_2 where c1 <= 1234568.0;
select * from t016_2535_2 where c1 < 1234568.9;
select * from t016_2535_2 where c1 <= 1234568.9;
select * from t016_2535_3 where (c1,c2) = (1234567.1234556789, 1);
select * from t016_2535_3 where (c1,c2) = (1234567.0, 1);
select * from t016_2535_3 where (c1,c2) = (1234567, 1);
select * from t016_2535_3 where (c1,c2) >= (1234567, 1);
select * from t016_2535_3 where (c1,c2) >= (1234567, 2);
select * from t016_2535_3 where (c1,c2) >= (1234567.76, 2);
select * from t016_2535_3 where (c1,c2) > (1234567, 1);
select * from t016_2535_3 where (c1,c2) > (1234567, 2);
select * from t016_2535_3 where (c1,c2) > (1234565.5, 2);
select * from t016_2535_3 where (c1,c2) > (1234568.3, 2);
select * from t016_2535_3 where (c1,c2) < (1234568.3, 2);
select * from t016_2535_3 where (c1,c2) <= (1234568.3, 2);
select * from t016_2535_3 where (c1,c2) <= (1234567.3, 0);
--JIRA TRAFODION-3015
select * from t3015 where a1='27380468';
drop table t016_2535_2;
drop table t016_2535_3;
drop table t3015;
log;
obey TEST016(cleanup);