| -- @@@ 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 @@@ |
| |
| -- Tests for tinyint, largeint unsigned, binary datatypes |
| |
| |
| obey TEST003(clean_up); |
| |
| log LOG003 clear; |
| |
| cqd traf_tinyint_support 'ON'; |
| cqd traf_tinyint_return_values 'ON'; |
| cqd traf_tinyint_input_params 'ON'; |
| |
| obey TEST003(setup_tiny); |
| obey TEST003(dml_tiny); |
| obey TEST003(hive_tiny); |
| obey TEST003(errors_tiny); |
| |
| cqd traf_tinyint_support 'ON'; |
| cqd traf_tinyint_return_values 'OFF'; |
| cqd traf_tinyint_input_params 'OFF'; |
| |
| obey TEST003(setup_tiny); |
| obey TEST003(dml_tiny); |
| obey TEST003(hive_tiny); |
| obey TEST003(errors_tiny); |
| |
| cqd traf_largeint_unsigned_io 'ON'; |
| cqd traf_create_signed_numeric_literal 'ON'; |
| obey TEST003(setup_lu); |
| obey TEST003(dml_lu); |
| obey TEST003(errors_lu); |
| |
| cqd traf_create_signed_numeric_literal 'OFF'; |
| obey TEST003(setup_lu); |
| obey TEST003(dml_lu); |
| obey TEST003(errors_lu); |
| |
| cqd traf_create_signed_numeric_literal 'ON'; |
| cqd traf_largeint_unsigned_io 'OFF'; |
| obey TEST003(setup_lu); |
| obey TEST003(dml_lu); |
| obey TEST003(errors_lu); |
| |
| cqd traf_boolean_io 'ON'; |
| obey TEST003(setup_bool); |
| obey TEST003(dml_bool); |
| obey TEST003(errors_bool); |
| obey TEST003(hive_bool); |
| |
| cqd traf_boolean_io 'OFF'; |
| obey TEST003(setup_bool); |
| obey TEST003(dml_bool_short); |
| |
| log; |
| exit; |
| |
| ?section setup_tiny |
| ----------------------------------------------------------- |
| -------------- TINYINT datatype --------------------------- |
| ----------------------------------------------------------- |
| |
| drop table if exists t003t1 cascade; |
| drop table if exists t003t1_like; |
| drop table if exists t003t1_as; |
| |
| create table t003t1(a tinyint not null primary key, b tinyint, |
| c tinyint unsigned default 10 not null, d tinyint unsigned); |
| invoke t003t1; |
| |
| create table t003t1_like like t003t1; |
| invoke t003t1_like; |
| |
| create table t003t1_as primary key (a) as select * from t003t1; |
| invoke t003t1_as; |
| |
| create view t003t1_view as select * from t003t1; |
| invoke t003t1_view; |
| |
| ?section dml_tiny |
| insert into t003t1 values (1, 2, 3, 4); |
| insert into t003t1 values (-1, -2, 255, 255); |
| insert into t003t1 values (-128, 127, 0, 0); |
| |
| select * from t003t1; |
| |
| insert into t003t1_as select * from t003t1; |
| select * from t003t1_as; |
| |
| select * from t003t1 where a = 1; |
| select * from t003t1 where a = -1; |
| select * from t003t1 where a < 1; |
| select * from t003t1 where a <= -1; |
| select * from t003t1 where a < 1000; |
| select * from t003t1 where a < 100000; |
| select * from t003t1 where a > -1000; |
| select * from t003t1 where a > -100000; |
| |
| select * from t003t1 where d = 4; |
| select * from t003t1 where d < -1; |
| select * from t003t1 where d < 1000; |
| select * from t003t1 where d > -1000; |
| |
| select a+10 from t003t1 where a = 1 or a = -1; |
| |
| select cast(100 as tinyint unsigned) from (values(1)) x(a); |
| select cast(-100 as tinyint) from (values(1)) x(a); |
| |
| select cast(a as char(10)), cast (b as varchar(11)) from t003t1; |
| |
| prepare s from insert into t003t1 values (?, ?, ?, ?); |
| execute s using -3, 10, 251, 0; |
| select * from t003t1; |
| |
| begin work; |
| delete from t003t1 where b = -2; |
| select * from t003t1; |
| rollback work; |
| |
| begin work; |
| update t003t1 set b = b + 1 where b <> 127; |
| select * from t003t1; |
| rollback work; |
| |
| ?section hive_tiny |
| process hive statement 'drop table ttiny'; |
| process hive statement 'create table ttiny(a tinyint, b tinyint)'; |
| sh echo "insert into ttiny values (1, -1);" > TEST003_junk; |
| sh regrhive.ksh -f TEST003_junk; |
| |
| invoke hive.hive.ttiny; |
| select * from hive.hive.ttiny; |
| insert into hive.hive.ttiny values (127, 10), (-128, -50); |
| select * from hive.hive.ttiny; |
| insert overwrite table hive.hive.ttiny select a, b from t003t1; |
| select * from hive.hive.ttiny; |
| |
| ?section errors_tiny |
| update t003t1 set b = b + 1; |
| select cast(1.0 as numeric(1,1) not null) from (values(1)) x(a); |
| |
| delete from t003t1; |
| |
| insert into t003t1 values (128, 2, 3, 4); |
| insert into t003t1 values (2, -129, 3, 4); |
| insert into t003t1 values (3, 4, 256, 4); |
| insert into t003t1 values (4, 4, 256, -4); |
| |
| select cast(-1 as tinyint unsigned) from (values(1)) x(a); |
| select cast(256 as tinyint unsigned) from (values(1)) x(a); |
| select cast(-129 as tinyint) from (values(1)) x(a); |
| select cast(128 as tinyint) from (values(1)) x(a); |
| |
| prepare s from insert into t003t1 values (?, ?, ?, ?); |
| execute s using 128, 2, 3, 4; |
| execute s using 4, 4, 256, -4; |
| |
| |
| ?section setup_lu |
| drop table if exists t003t2 cascade; |
| drop table if exists t003t2_like; |
| drop table if exists t003t2_as; |
| |
| create table t003t2(a largeint unsigned not null primary key, b largeint unsigned); |
| invoke t003t2; |
| |
| create table t003t2_like like t003t2; |
| invoke t003t2_like; |
| |
| create table t003t2_as primary key(a) as select * from t003t2; |
| invoke t003t2_as; |
| |
| create view t003t2_view as select * from t003t2; |
| invoke t003t2_view; |
| |
| ?section dml_lu |
| insert into t003t2 values (1, 2); |
| insert into t003t2 values (18446744073709551615, 18446744073709551615); |
| |
| select * from t003t2; |
| |
| insert into t003t2_as select * from t003t2; |
| select * from t003t2_as; |
| |
| select * from t003t2 where a = 1; |
| select * from t003t2 where a = -1; |
| select * from t003t2 where a < 1; |
| select * from t003t2 where a <= -1; |
| select * from t003t2 where a < 1000; |
| select * from t003t2 where a > -1000; |
| select * from t003t2 where a = 18446744073709551615; |
| |
| select * from t003t2 where b = 2; |
| select * from t003t2 where b < -1; |
| select * from t003t2 where b < 1000; |
| select * from t003t2 where b > -1000; |
| select * from t003t2 where b = 18446744073709551615; |
| |
| select a, cast(cast(a as varchar(40)) as largeint unsigned) from t003t2; |
| |
| select cast('-9223372036854775808' as largeint) from (values(1)) x(a); |
| select cast('-9223372036854775809' as largeint) from (values(1)) x(a); |
| |
| select a+10 from t003t2 where a = 1 or a = -1; |
| |
| select cast(100 as largeint unsigned) from (values(1)) x(a); |
| |
| select cast(a as char(21)), cast (b as varchar(22)) from t003t2; |
| |
| prepare s from insert into t003t2 values (?, ?); |
| execute s using 251, 0; |
| execute s using 11, 18446744073709551615; |
| select * from t003t2; |
| |
| begin work; |
| delete from t003t2 where b = 1; |
| select * from t003t2; |
| rollback work; |
| |
| begin work; |
| update t003t2 set b = b + 1 where b = 2; |
| select * from t003t2; |
| rollback work; |
| |
| ?section errors_lu |
| update t003t2 set b = b + 1; |
| |
| delete from t003t2; |
| |
| insert into t003t2 values (18446744073709551616, 2); |
| insert into t003t2 values (2, 18446744073709551616); |
| insert into t003t2 values (-1, 1); |
| |
| select cast(-1 as largeint unsigned) from (values(1)) x(a); |
| select cast(18446744073709551616 as largeint unsigned) from (values(1)) x(a); |
| |
| prepare s from insert into t003t2 values (?, ?); |
| execute s using 18446744073709551616, 2; |
| |
| |
| ?section setup_bool |
| ----------------------------------------------------------- |
| -------------- BOOLEAN datatype --------------------------- |
| ----------------------------------------------------------- |
| |
| drop table if exists t003t3 cascade; |
| drop table if exists t003t3_like; |
| drop table if exists t003t3_as; |
| |
| create table if not exists t003t3(a boolean not null primary key, b boolean) |
| attribute aligned format; |
| invoke t003t3; |
| |
| create table if not exists t003t3_like like t003t3; |
| invoke t003t3_like; |
| |
| create table if not exists t003t3_as primary key (a) as select * from t003t3; |
| invoke t003t3_as; |
| |
| create table if not exists t003t3_salt(a boolean not null primary key) |
| salt using 2 partitions; |
| invoke t003t3_salt; |
| |
| create view t003t3_view as select * from t003t3; |
| invoke t003t3_view; |
| |
| ?section dml_bool |
| insert into t003t3 values (true, true); |
| insert into t003t3 values (false, false); |
| |
| select * from t003t3; |
| |
| insert into t003t3_as select * from t003t3; |
| select * from t003t3_as; |
| |
| select * from t003t3 where a = true; |
| select * from t003t3 where a = false; |
| select * from t003t3 where b = true; |
| select * from t003t3 where b = false; |
| select * from t003t3 where a != true; |
| select * from t003t3 where a != false; |
| select * from t003t3 where b != true; |
| select * from t003t3 where b != false; |
| select * from t003t3 where a is null; |
| select * from t003t3 where b is not null; |
| |
| select * from t003t3 where a = true or a = false; |
| select * from t003t3 where b = true or b = false; |
| |
| select cast('true' as boolean) from (values(1)) x(a); |
| select cast(' faLse ' as boolean) from (values(1)) x(a); |
| |
| select cast(true as boolean not null) from (values(1)) x(a); |
| select cast(false as boolean) from (values(1)) x(a); |
| |
| select cast(a as char(10)), cast (b as varchar(11)) from t003t3; |
| |
| delete from t003t3; |
| prepare s from insert into t003t3 values (?, ?); |
| execute s using true, true; |
| execute s using 'false', ' falSE '; |
| select * from t003t3; |
| |
| select !a, !b from t003t3; |
| select * from t003t3 where !a = false; |
| update t003t3 set b = !b; |
| select * from t003t3; |
| |
| begin work; |
| delete from t003t3 where b = false; |
| select * from t003t3; |
| rollback work; |
| select * from t003t3; |
| |
| begin work; |
| update t003t3 set b = false where b != false; |
| select * from t003t3; |
| rollback work; |
| select * from t003t3; |
| |
| ?section hive_bool |
| process hive statement 'drop table tbool'; |
| process hive statement 'create table tbool(a boolean)'; |
| sh echo "insert into tbool values (true), (false), (NULL);" > TEST003_junk; |
| sh regrhive.ksh -f TEST003_junk; |
| |
| invoke hive.hive.tbool; |
| select * from hive.hive.tbool; |
| insert into hive.hive.tbool values (false), (true), (null); |
| select * from hive.hive.tbool; |
| insert overwrite table hive.hive.tbool select a from t003t3; |
| select * from hive.hive.tbool; |
| |
| ?section errors_bool |
| update t003t3 set b = b + 1; |
| |
| delete from t003t3; |
| |
| insert into t003t3 values ('true', false); |
| insert into t003t3 values (1, true); |
| |
| select cast(' truee' as boolean) from (values(1)) x(a); |
| |
| prepare s from insert into t003t3 values (?, ?); |
| execute s using 1, 2; |
| |
| ?section dml_bool_short |
| insert into t003t3 values (true, true); |
| insert into t003t3 values (false, false); |
| |
| select * from t003t3; |
| |
| delete from t003t3; |
| prepare s from insert into t003t3 values (cast(? as boolean), cast(? as boolean)); |
| execute s using true, true; |
| execute s using 'false', 'falSE'; |
| select * from t003t3; |
| |
| ?section clean_up |
| drop view t003t1_view; |
| drop table t003t1 cascade; |
| drop table t003t1_like; |
| drop table t003t1_as; |
| |
| drop view t003t2_view; |
| drop table t003t2 cascade; |
| drop table t003t2_like; |
| drop table t003t2_as; |
| |
| drop view t003t3_view; |
| drop table t003t3 cascade; |
| drop table t003t3_like; |
| drop table t003t3_as; |
| drop table t003t3_salt; |
| |
| |
| |