sleep 3000
sql connect
sql create database if not exists db
sql use db

#### test the value of all data types in four cases: static create table, insert column value, synamic create table, alter tag value

######## case 0: bool
print ========== bool 
sql create table mt_bool (ts timestamp, c bool) tags (tagname bool)

## case 00: static create table for test tag values
sql create table st_bool_0  using mt_bool tags (null)
sql describe st_bool_0
if $data23 != NULL then
  print ==1== expect: NULL, actually: $data23
  return -1
endi
sql create table st_bool_1  using mt_bool tags (NULL)
sql describe st_bool_1
if $data23 != NULL then
  print ==2== expect: NULL, actually: $data23
  return -1
endi
sql create table st_bool_2  using mt_bool tags ('null')
sql describe st_bool_2
if $data23 != NULL then
  print ==3== expect: NULL, actually: $data23
  return -1
endi
sql create table st_bool_3  using mt_bool tags ('NULL')
sql describe st_bool_3
if $data23 != NULL then
  print ==4== expect: NULL, actually: $data23
  return -1
endi
sql create table st_bool_4  using mt_bool tags ("null")
sql describe st_bool_4
if $data23 != NULL then
  print ==5== expect: NULL, actually: $data23
  return -1
endi
sql create table st_bool_5  using mt_bool tags ("NULL")
sql describe st_bool_5
if $data23 != NULL then
  print ==6== expect: NULL, actually: $data23
  return -1
endi
sql create table st_bool_6  using mt_bool tags ("true")
sql describe st_bool_6
if $data23 != true then
  print ==7== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_7  using mt_bool tags ('true')
sql describe st_bool_7
if $data23 != true then
  print ==8== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_8  using mt_bool tags (true)
sql describe st_bool_8
if $data23 != true then
  print ==9== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_9  using mt_bool tags ("false")
sql describe st_bool_9
if $data23 != false then
  print ==10== expect: false, actually: $data23
  return -1
endi
sql create table st_bool_10 using mt_bool tags ('false')
sql describe st_bool_10
if $data23 != false then
  print ==11== expect: false, actually: $data23
  return -1
endi
sql create table st_bool_11 using mt_bool tags (false)
sql describe st_bool_11
if $data23 != false then
  print ==12== expect: false, actually: $data23
  return -1
endi
sql create table st_bool_12 using mt_bool tags (0)
sql describe st_bool_12
if $data23 != false then
  print ==13== expect: false, actually: $data23
  return -1
endi
sql create table st_bool_13 using mt_bool tags (1)
sql describe st_bool_13
if $data23 != true then
  print ==14== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_14 using mt_bool tags (6.9)
sql describe st_bool_14
if $data23 != true then
  print ==15== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_15 using mt_bool tags (-3)
sql describe st_bool_15
if $data23 != true then
  print ==16== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_15_0 using mt_bool tags (+300)
sql describe st_bool_15_0
if $data23 != true then
  print ==16== expect: true, actually: $data23
  return -1
endi
sql create table st_bool_15_1 using mt_bool tags (-8.03)
sql describe st_bool_15_1
if $data23 != true then
  print ==16== expect: true, actually: $data23
  return -1
endi

## case 01: insert values  for test column values
sql insert into st_bool_0  values (now, null)
sql select * from st_bool_0
if $rows != 1 then
  return -1
endi
if $data01 != null then
  print ==17== expect: NULL, actually: $data01
  return -1
endi 
sql insert into st_bool_1  values (now, NULL)
sql select * from st_bool_1
if $rows != 1 then
  return -1
endi
if $data01 != null then
  print ==18== expect: NULL, actually: $data01
  return -1
endi  
sql insert into st_bool_2  values (now, 'null')
sql select * from st_bool_2
if $rows != 1 then
  return -1
endi
if $data01 != null then
  print ==19== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_3  values (now, 'NULL')
sql select * from st_bool_3
if $rows != 1 then
  return -1
endi
if $data01 != null then
  print ==20== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_4  values (now, "null")
sql select * from st_bool_4
if $rows != 1 then
  return -1
endi
if $data01 != null then
  print ==21== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_5  values (now, "NULL")
sql select * from st_bool_5
if $rows != 1 then
  return -1
endi
if $data01 != null then
  print ==22== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_6  values (now, "true")
sql select * from st_bool_6
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==23== expect: true, actually: $data01
  return -1
endi 
sql insert into st_bool_7  values (now, 'true')
sql select * from st_bool_7
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==24== expect: true, actually: $data01
  return -1
endi  
sql insert into st_bool_8  values (now, true) 
sql select * from st_bool_8
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==25== expect: true, actually: $data01
  return -1
endi   
sql insert into st_bool_9  values (now, "false")
sql select * from st_bool_9
if $rows != 1 then
  return -1
endi
if $data01 != 0 then
  print ==26== expect: false, actually: $data01
  return -1
endi 
sql insert into st_bool_10 values (now, 'false')
sql select * from st_bool_10
if $rows != 1 then
  return -1
endi
if $data01 != 0 then
  print ==27== expect: false, actually: $data01
  return -1
endi 
sql insert into st_bool_11 values (now, false)  
sql select * from st_bool_11
if $rows != 1 then
  return -1
endi
if $data01 != 0 then
  print ==28== expect: false, actually: $data01
  return -1
endi 
sql insert into st_bool_12 values (now, 0)
sql select * from st_bool_12
if $rows != 1 then
  return -1
endi
if $data01 != 0 then
  print ==29== expect: false, actually: $data01
  return -1
endi       
sql insert into st_bool_13 values (now, 1)
sql select * from st_bool_13
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==30== expect: true, actually: $data01
  return -1
endi       
sql insert into st_bool_14 values (now, 6.9)
sql select * from st_bool_14
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==31== expect: true, actually: $data01
  return -1
endi     
sql insert into st_bool_15 values (now, -3) 
sql select * from st_bool_15
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==32== expect: true, actually: $data01
  return -1
endi     
sql insert into st_bool_15_0 values (now, +300) 
sql select * from st_bool_15_0
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==32== expect: true, actually: $data01
  return -1
endi  
sql insert into st_bool_15_1 values (now, -3.15) 
sql select * from st_bool_15_1
if $rows != 1 then
  return -1
endi
if $data01 != 1 then
  print ==32== expect: true, actually: $data01
  return -1
endi 

## case 02: dynamic create table for test tag values
sql insert into st_bool_16 using mt_bool tags (null)   values (now, null)
sql describe st_bool_16
if $data23 != NULL then
  print ==33== expect: NULL, actually: $data23
  return -1
endi
sql select * from st_bool_16
if $data01 != null then
  print ==34== expect: NULL, actually: $data01
  return -1
endi
    
sql insert into st_bool_17 using mt_bool tags (NULL)   values (now, NULL)
sql describe st_bool_17
if $data23 != NULL then
  print ==35== expect: NULL, actually: $data23
  return -1
endi
sql select * from st_bool_17
if $data01 != null then
  print ==36== expect: NULL, actually: $data01
  return -1
endi  
sql insert into st_bool_18 using mt_bool tags ('null') values (now, 'null')
sql describe st_bool_18
if $data23 != NULL then
  print ==37== expect: NULL, actually: $data23
  return -1
endi
sql select * from st_bool_18
if $data01 != null then
  print ==38== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_19 using mt_bool tags ('NULL') values (now, 'NULL')
sql describe st_bool_19
if $data23 != NULL then
  print ==39== expect: NULL, actually: $data23
  return -1
endi
sql select * from st_bool_19
if $data01 != null then
  print ==40== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_20 using mt_bool tags ("null") values (now, "null")
sql describe st_bool_20
if $data23 != NULL then
  print ==41== expect: NULL, actually: $data23
  return -1
endi
sql select * from st_bool_20
if $data01 != null then
  print ==42== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_21 using mt_bool tags ("NULL") values (now, "NULL")
sql describe st_bool_21
if $data23 != NULL then
  print ==43== expect: NULL, actually: $data23
  return -1
endi
sql select * from st_bool_21
if $data01 != null then
  print ==44== expect: NULL, actually: $data01
  return -1
endi
sql insert into st_bool_22 using mt_bool tags ("true")  values (now, "true")
sql describe st_bool_22
if $data23 != true then
  print ==45== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_22
if $data01 != 1 then
  print ==46== expect: true, actually: $data01
  return -1
endi 
sql insert into st_bool_23 using mt_bool tags ('true')  values (now, 'true')
sql describe st_bool_23
if $data23 != true then
  print ==47== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_23
if $data01 != 1 then
  print ==48== expect: true, actually: $data01
  return -1
endi  
sql insert into st_bool_24 using mt_bool tags (true)    values (now, true)
sql describe st_bool_24
if $data23 != true then
  print ==49== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_24
if $data01 != 1 then
  print ==50== expect: true, actually: $data01
  return -1
endi    
sql insert into st_bool_25 using mt_bool tags ("false") values (now, "false")
sql describe st_bool_25
if $data23 != false then
  print ==51== expect: false, actually: $data23
  return -1
endi
sql select * from st_bool_25
if $data01 != 0 then
  print ==52== expect: false, actually: $data01
  return -1
endi 
sql insert into st_bool_26 using mt_bool tags ('false') values (now, 'false')
sql describe st_bool_26
if $data23 != false then
  print ==53== expect: false, actually: $data23
  return -1
endi
sql select * from st_bool_26
if $data01 != 0 then
  print ==54== expect: false, actually: $data01
  return -1
endi 
sql insert into st_bool_27 using mt_bool tags (false)   values (now, false)
sql describe st_bool_27
if $data23 != false then
  print ==55== expect: false, actually: $data23
  return -1
endi
sql select * from st_bool_27
if $data01 != 0 then
  print ==56== expect: false, actually: $data01
  return -1
endi   
sql insert into st_bool_28 using mt_bool tags (0)       values (now, 0)
sql describe st_bool_28
if $data23 != false then
  print ==57== expect: false, actually: $data23
  return -1
endi
sql select * from st_bool_28
if $data01 != 0 then
  print ==58== expect: false, actually: $data01
  return -1
endi       
sql insert into st_bool_29 using mt_bool tags (1)       values (now, 1) 
sql describe st_bool_29
if $data23 != true then
  print ==59== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_29
if $data01 != 1 then
  print ==60== expect: true, actually: $data01
  return -1
endi         
sql insert into st_bool_30 using mt_bool tags (6.9)     values (now, 6.9)
sql describe st_bool_30
if $data23 != true then
  print ==61== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_30
if $data01 != 1 then
  print ==62== expect: true, actually: $data01
  return -1
endi        
sql insert into st_bool_31 using mt_bool tags (-3)      values (now, -3)
sql describe st_bool_31
if $data23 != true then
  print ==63== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_31
if $data01 != 1 then
  print ==64== expect: true, actually: $data01
  return -1
endi         
sql insert into st_bool_32 using mt_bool tags (+300)      values (now, +300)
sql describe st_bool_32
if $data23 != true then
  print ==63== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_32
if $data01 != 1 then
  print ==64== expect: true, actually: $data01
  return -1
endi    
sql insert into st_bool_33 using mt_bool tags (+30.890)      values (now, +30.890)
sql describe st_bool_33
if $data23 != true then
  print ==63== expect: true, actually: $data23
  return -1
endi
sql select * from st_bool_33
if $data01 != 1 then
  print ==64== expect: true, actually: $data01
  return -1
endi   






## case 03: alter tag values
sql alter table st_bool_0 set tag tagname=true
sql describe st_bool_0
if $data23 != true then
  return -1
endi 
sql alter table st_bool_0 set tag tagname=NULL
sql describe st_bool_0
if $data23 != NULL then
  return -1
endi 
sql alter table st_bool_0 set tag tagname=false
sql describe st_bool_0
if $data23 != false then
  return -1
endi
sql alter table st_bool_0 set tag tagname=null
sql describe st_bool_0
if $data23 != NULL then
  return -1
endi
sql alter table st_bool_0 set tag tagname='true'
sql describe st_bool_0
if $data23 != true then
  return -1
endi
sql alter table st_bool_0 set tag tagname='null'
sql describe st_bool_0
if $data23 != NULL then
  return -1
endi
sql alter table st_bool_0 set tag tagname='false'
sql describe st_bool_0
if $data23 != false then
  return -1
endi
sql alter table st_bool_0 set tag tagname='NULL'
sql describe st_bool_0
if $data23 != NULL then
  return -1
endi
sql alter table st_bool_0 set tag tagname="true"
sql describe st_bool_0
if $data23 != true then
  return -1
endi
sql alter table st_bool_0 set tag tagname="null"
sql describe st_bool_0
if $data23 != NULL then
  return -1
endi
sql alter table st_bool_0 set tag tagname="false"
sql describe st_bool_0
if $data23 != false then
  return -1
endi
sql alter table st_bool_0 set tag tagname="NULL"
sql describe st_bool_0
if $data23 != NULL then
  return -1
endi
sql alter table st_bool_0 set tag tagname=1
sql describe st_bool_0
if $data23 != true then
  return -1
endi
sql alter table st_bool_0 set tag tagname=0
sql describe st_bool_0
if $data23 != false then
  return -1
endi
sql alter table st_bool_0 set tag tagname=6.9
sql describe st_bool_0
if $data23 != true then
  return -1
endi
sql alter table st_bool_0 set tag tagname=-3
sql describe st_bool_0
if $data23 != true then
  return -1
endi

# case 04: illegal input
sql_error create table st_bool_e0 using mt_bool tags (123abc)
sql_error create table st_bool_e1 using mt_bool tags ("123abc")
sql_error create table st_bool_e2 using mt_bool tags ("123")
sql_error create table st_bool_e3 using mt_bool tags (abc)
sql_error create table st_bool_e4 using mt_bool tags ("abc")
sql_error create table st_bool_e5 using mt_bool tags (" ")
sql_error create table st_bool_e6 using mt_bool tags ('')

sql create table st_bool_e0 using mt_bool tags (true)
sql create table st_bool_e1 using mt_bool tags (true)
sql create table st_bool_e2 using mt_bool tags (true)
sql create table st_bool_e3 using mt_bool tags (true)
sql create table st_bool_e4 using mt_bool tags (true)
sql create table st_bool_e5 using mt_bool tags (true)
sql create table st_bool_e6 using mt_bool tags (true)

sql_error insert into st_bool_e0 values (now, 123abc)
sql_error insert into st_bool_e1 values (now, "123abc")
sql_error insert into st_bool_e2 values (now, "123")
sql_error insert into st_bool_e3 values (now, abc)
sql_error insert into st_bool_e4 values (now, "abc")
sql_error insert into st_bool_e5 values (now, " ")
sql_error insert into st_bool_e6 values (now, '')

sql_error insert into st_bool_e10 using mt_bool tags (123abc)   values (now, 1)
sql_error insert into st_bool_e11 using mt_bool tags ("123abc") values (now, 1)
sql_error insert into st_bool_e12 using mt_bool tags ("123")    values (now, 1)
sql_error insert into st_bool_e13 using mt_bool tags (abc)      values (now, 1)
sql_error insert into st_bool_e14 using mt_bool tags ("abc")    values (now, 1)
sql_error insert into st_bool_e15 using mt_bool tags (" ")      values (now, 1)
sql_error insert into st_bool_e16 using mt_bool tags ('')       values (now, 1)

sql_error insert into st_bool_e17 using mt_bool tags (1) values (now, 123abc)  
sql_error insert into st_bool_e18 using mt_bool tags (1) values (now, "123abc")
sql_error insert into st_bool_e19 using mt_bool tags (1) values (now, "123")   
sql_error insert into st_bool_e20 using mt_bool tags (1) values (now, abc)     
sql_error insert into st_bool_e21 using mt_bool tags (1) values (now, "abc")   
sql_error insert into st_bool_e22 using mt_bool tags (1) values (now, " ")     
sql_error insert into st_bool_e23 using mt_bool tags (1) values (now, '')      

sql insert into st_bool_e10 using mt_bool tags (1) values (now, 1)
sql insert into st_bool_e11 using mt_bool tags (1) values (now, 1)
sql insert into st_bool_e12 using mt_bool tags (1) values (now, 1)
sql insert into st_bool_e13 using mt_bool tags (1) values (now, 1)
sql insert into st_bool_e14 using mt_bool tags (1) values (now, 1)
sql insert into st_bool_e15 using mt_bool tags (1) values (now, 1)
sql insert into st_bool_e16 using mt_bool tags (1) values (now, 1)

sql_error alter table st_bool_e10 set tag tagname=123abc  
sql_error alter table st_bool_e11 set tag tagname="123abc"
sql_error alter table st_bool_e12 set tag tagname="123"  
sql_error alter table st_bool_e13 set tag tagname=abc     
sql_error alter table st_bool_e14 set tag tagname="abc"   
sql_error alter table st_bool_e15 set tag tagname=" "     
sql_error alter table st_bool_e16 set tag tagname=''      

