1-- 2-- ### Cast handling for default and insert values 3-- 4 5drop if exists table tstr; 6drop if exists table tint; 7drop if exists table ttiny; 8drop if exists table tsmall; 9drop if exists table tlong; 10drop if exists table tdecimal; 11drop if exists table tfloat; 12drop if exists table tdouble; 13drop if exists table tbigint; 14drop if exists table tdatetime; 15drop if exists table tfixed; 16drop if exists table tbool; 17 18drop if exists table tdef1; 19drop if exists table tdef2; 20drop if exists table tdef3; 21 22create table tstr ( a string(30)); 23insert into tstr values ( 1 ); 24insert into tstr values ( (long)1 ); 25insert into tstr values ( '1' ); 26insert into tstr values ( true ); 27insert into tstr values ( sysdate ); 28insert into tstr values ( (bigint)1 ); 29insert into tstr values ( 1.0 ); 30insert into tstr values ( (double)1.0 ); 31insert into tstr values ( (decimal)1.0 ); 32insert into tstr values ( (fixed)1.0 ); 33insert into tstr values ( (smallint)1 ); 34insert into tstr values ( (tinyint)1 ); 35 36select * from tstr; 37 38create table tint ( a int); 39insert into tint values ( 1 ); 40insert into tint values ( (long)1 ); 41insert into tint values ( '1' ); 42insert into tint values ( true ); 43insert into tint values ( sysdate ); 44insert into tint values ( (bigint)1 ); 45insert into tint values ( 1.0 ); 46insert into tint values ( (double)1.0 ); 47insert into tint values ( (decimal)1.0 ); 48insert into tint values ( (fixed)1.0 ); 49insert into tint values ( (smallint)1 ); 50insert into tint values ( (tinyint)1 ); 51 52select * from tint; 53 54create table tlong ( a long); 55insert into tlong values ( 1 ); 56insert into tlong values ( (long)1 ); 57insert into tlong values ( '1' ); 58insert into tlong values ( true ); 59insert into tlong values ( sysdate ); 60insert into tlong values ( (bigint)1 ); 61insert into tlong values ( 1.0 ); 62insert into tlong values ( (double)1.0 ); 63insert into tlong values ( (decimal)1.0 ); 64insert into tlong values ( (fixed)1.0 ); 65insert into tlong values ( (smallint)1 ); 66insert into tlong values ( (tinyint)1 ); 67 68select * from tlong; 69 70create table tdecimal ( a decimal(15)); 71insert into tdecimal values ( 1 ); 72insert into tdecimal values ( (long)1 ); 73insert into tdecimal values ( '1' ); 74insert into tdecimal values ( true ); 75insert into tdecimal values ( sysdate ); 76insert into tdecimal values ( (bigint)1 ); 77insert into tdecimal values ( 1.0 ); 78insert into tdecimal values ( (double)1.0 ); 79insert into tdecimal values ( (decimal)1.0 ); 80insert into tdecimal values ( (fixed)1.0 ); 81insert into tdecimal values ( (smallint)1 ); 82insert into tdecimal values ( (tinyint)1 ); 83 84select * from tdecimal; 85 86create table tsmall ( a smallint); 87insert into tsmall values ( 1 ); 88insert into tsmall values ( (long)1 ); 89insert into tsmall values ( '1' ); 90insert into tsmall values ( true ); 91insert into tsmall values ( (bigint)1 ); 92insert into tsmall values ( 1.0 ); 93insert into tsmall values ( (double)1.0 ); 94insert into tsmall values ( (decimal)1.0 ); 95insert into tsmall values ( (fixed)1.0 ); 96insert into tsmall values ( (tinyint)1 ); 97 98select * from tsmall; 99 100create table ttiny ( a tinyint); 101insert into ttiny values ( 1 ); 102insert into ttiny values ( (long)1 ); 103insert into ttiny values ( '1' ); 104insert into ttiny values ( true ); 105insert into ttiny values ( (bigint)1 ); 106insert into ttiny values ( 1.0 ); 107insert into ttiny values ( (double)1.0 ); 108insert into ttiny values ( (decimal)1.0 ); 109insert into ttiny values ( (fixed)1.0 ); 110insert into ttiny values ( (smallint)1 ); 111 112select * from ttiny; 113 114create table tdatetime ( a datetime); 115insert into tdatetime values ( 1476634567 ); 116insert into tdatetime values ( (long)1476634567 ); 117insert into tdatetime values ( '03.07.2016 15:59:00' ); 118insert into tdatetime values ( (bigint)1476634567 ); 119insert into tdatetime values ( 1476634567.0 ); 120insert into tdatetime values ( (double)1476634567.0 ); 121insert into tdatetime values ( (decimal)1476634567.0 ); 122 123select * from tdatetime; 124 125create table tbigint ( a bigint(10)); 126insert into tbigint values ( 1 ); 127insert into tbigint values ( (long)1 ); 128insert into tbigint values ( '1' ); 129insert into tbigint values ( true ); 130insert into tbigint values ( (bigint)1 ); 131insert into tbigint values ( 1.0 ); 132insert into tbigint values ( (double)1.0 ); 133insert into tbigint values ( (decimal)1.0 ); 134insert into tbigint values ( (fixed)1.0 ); 135insert into tbigint values ( (smallint)1 ); 136 137create table tfixed ( a fixed(7)); 138insert into tfixed values ( 1 ); 139insert into tfixed values ( (long)1 ); 140insert into tfixed values ( '1.0756' ); 141insert into tfixed values ( true ); 142insert into tfixed values ( 1.8976 ); 143insert into tfixed values ( (double)1.0 ); 144insert into tfixed values ( (decimal)1.0345 ); 145insert into tfixed values ( (fixed)1.0000000 ); 146insert into tfixed values ( (smallint)1 ); 147 148select * from tfixed; 149 150create table tbool ( a bool); 151insert into tbool values ( 1 ); 152insert into tbool values ( (long)1 ); 153insert into tbool values ( 'true' ); 154insert into tbool values ( true ); 155insert into tbool values ( 1.8976 ); 156insert into tbool values ( (double)1.0 ); 157insert into tbool values ( (decimal)1.0345 ); 158insert into tbool values ( (fixed)1.00000 ); 159insert into tbool values ( (smallint)1 ); 160 161select * from tbool; 162 163create table tfloat ( a double); 164insert into tfloat values ( 1 ); 165insert into tfloat values ( (long)1 ); 166insert into tfloat values ( '1.0' ); 167insert into tfloat values ( true ); 168insert into tfloat values ( (bigint)1 ); 169insert into tfloat values ( 1.0 ); 170insert into tfloat values ( (double)1.0 ); 171insert into tfloat values ( (decimal)1.0 ); 172insert into tfloat values ( (fixed)1.0 ); 173insert into tfloat values ( (smallint)1 ); 174insert into tfloat values ( (tinyint)1 ); 175 176select * from tfloat; 177 178create table tdouble ( a double); 179insert into tdouble values ( 1 ); 180insert into tdouble values ( (long)1 ); 181insert into tdouble values ( '1.0' ); 182insert into tdouble values ( true ); 183insert into tdouble values ( (bigint)1 ); 184insert into tdouble values ( 1.0 ); 185insert into tdouble values ( (double)1.0 ); 186insert into tdouble values ( (decimal)1.0 ); 187insert into tdouble values ( (fixed)1.0 ); 188insert into tdouble values ( (smallint)1 ); 189insert into tdouble values ( (tinyint)1 ); 190 191select * from tdouble; 192 193 194-- default checks 195 196create table tdef1 ( a int, b fixed(2) default 3.257867 not null); 197desc table tdef1; 198insert into tdef1 ( a ) values ( 3 ); 199select * from tdef1; 200 201create table tdef2 ( a int, b fixed(2) default 56 not null); 202desc table tdef2; 203 204insert into tdef2 ( a ) values ( 1 ); 205insert into tdef2 ( a, b ) values ( 2, (fixed)44.98 ); 206insert into tdef2 ( a, b ) values ( 3, 44 ); 207 208create table tdef3 ( a int, b float default 7.99 not null); 209desc table tdef3; 210 211insert into tdef3 ( a ) values ( 1 ); 212insert into tdef3 ( a, b ) values ( 2, 44.98 ); 213insert into tdef3 ( a, b ) values ( 3, 44 ); 214 215