diff --git a/tests/system-test/2-query/cast.py b/tests/system-test/2-query/cast.py index fd4a60d3992777c0b59585772ceab6297ca54e64..e77672546ee5283f04d677befd66d5aa0fbaf9c4 100644 --- a/tests/system-test/2-query/cast.py +++ b/tests/system-test/2-query/cast.py @@ -1,6 +1,6 @@ import taos import sys -from datetime import datetime, timezone, timedelta +import datetime from util.log import * from util.sql import * @@ -66,9 +66,9 @@ class TDTestCase: ) tdSql.query("select c1 from ct4") - data_ct4 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + data_ct4_c1 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] tdSql.query("select c1 from t1") - data_t1 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + data_t1_c1 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] # tdLog.printNoPrefix("==========step1: cast int to int, expect no changes") @@ -83,11 +83,11 @@ class TDTestCase: tdLog.printNoPrefix("==========step2: cast int to bigint, expect no changes") tdSql.query("select cast(c1 as bigint) as b from ct4") - for i in range(len(data_ct4)): - tdSql.checkData( i, 0, data_ct4[i]) + for i in range(len(data_ct4_c1)): + tdSql.checkData( i, 0, data_ct4_c1[i]) tdSql.query("select cast(c1 as bigint) as b from t1") - for i in range(len(data_t1)): - tdSql.checkData( i, 0, data_t1[i]) + for i in range(len(data_t1_c1)): + tdSql.checkData( i, 0, data_t1_c1[i]) # tdLog.printNoPrefix("==========step3: cast int to float, expect no changes") @@ -110,37 +110,436 @@ class TDTestCase: tdLog.printNoPrefix("==========step5: cast int to binary, expect changes to str(int) ") tdSql.query("select cast(c1 as binary(32)) as b from ct4") - for i in range(len(data_ct4)): - tdSql.checkData( i, 0, str(data_ct4[i]) ) + for i in range(len(data_ct4_c1)): + tdSql.checkData( i, 0, str(data_ct4_c1[i]) ) tdSql.query("select cast(c1 as binary(32)) as b from t1") - for i in range(len(data_t1)): - tdSql.checkData( i, 0, str(data_t1[i]) ) + for i in range(len(data_t1_c1)): + tdSql.checkData( i, 0, str(data_t1_c1[i]) ) tdLog.printNoPrefix("==========step6: cast int to nchar, expect changes to str(int) ") tdSql.query("select cast(c1 as nchar(32)) as b from ct4") - for i in range(len(data_ct4)): - tdSql.checkData( i, 0, str(data_ct4[i]) ) + for i in range(len(data_ct4_c1)): + tdSql.checkData( i, 0, str(data_ct4_c1[i]) ) tdSql.query("select cast(c1 as nchar(32)) as b from t1") - for i in range(len(data_t1)): - tdSql.checkData( i, 0, str(data_t1[i]) ) + for i in range(len(data_t1_c1)): + tdSql.checkData( i, 0, str(data_t1_c1[i]) ) tdLog.printNoPrefix("==========step7: cast int to timestamp, expect changes to timestamp ") tdSql.query("select cast(c1 as timestamp) as b from ct4") - for i in range(len(data_ct4)): - if data_ct4[i] is None: + for i in range(len(data_ct4_c1)): + if data_ct4_c1[i] is None: tdSql.checkData( i, 0 , None ) else: - print("==========") - # date_data = datetime.datetime.utcfromtimestamp(data_ct4[i]/1000).strftime("%Y-%m-%d %H:%M:%S.%f") - # date_data = datetime.datetime.utcfromtimestamp(data_ct4[i]/1000).replace(tzinfo=datetime.timezone.utcoffset) - date_data = datetime.utcfromtimestamp(8/1000).replace(tzinfo=timezone.utc).astimezone(timezone(timedelta(hours=8))) - print(date_data) + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c1[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") tdSql.checkData( i, 0, date_data) + tdSql.query("select cast(c1 as timestamp) as b from t1") - for i in range(len(data_t1)): - tdSql.checkData( i, 0, data_t1[i]) + for i in range(len(data_t1_c1)): + if data_ct4_c1[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c1[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + + tdLog.printNoPrefix("==========step8: cast bigint to bigint, expect no changes") + tdSql.query("select c2 from ct4") + data_ct4_c2 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c2 from t1") + data_t1_c2 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdSql.query("select cast(c2 as bigint) as b from ct4") + for i in range(len(data_ct4_c2)): + tdSql.checkData( i, 0, data_ct4_c2[i]) + tdSql.query("select cast(c2 as bigint) as b from t1") + for i in range(len(data_t1_c2)): + tdSql.checkData( i, 0, data_t1_c2[i]) + + + tdLog.printNoPrefix("==========step9: cast bigint to binary, expect changes to str(int) ") + + tdSql.query("select cast(c2 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c2)): + tdSql.checkData( i, 0, str(data_ct4_c2[i]) ) + tdSql.query("select cast(c2 as binary(32)) as b from t1") + for i in range(len(data_t1_c2)): + tdSql.checkData( i, 0, str(data_t1_c2[i]) ) + + tdLog.printNoPrefix("==========step10: cast bigint to nchar, expect changes to str(int) ") + + tdSql.query("select cast(c2 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c2)): + tdSql.checkData( i, 0, str(data_ct4_c2[i]) ) + tdSql.query("select cast(c2 as nchar(32)) as b from t1") + for i in range(len(data_t1_c2)): + tdSql.checkData( i, 0, str(data_t1_c2[i]) ) + + tdLog.printNoPrefix("==========step11: cast bigint to timestamp, expect changes to timestamp ") + + tdSql.query("select cast(c2 as timestamp) as b from ct4") + for i in range(len(data_ct4_c2)): + if data_ct4_c2[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c2[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + tdSql.query("select cast(c2 as timestamp) as b from t1") + for i in range(len(data_t1_c2)): + if data_t1_c2[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_t1_c2[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + + tdLog.printNoPrefix("==========step12: cast smallint to bigint, expect no changes") + tdSql.query("select c3 from ct4") + data_ct4_c3 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c3 from t1") + data_t1_c3 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdSql.query("select cast(c3 as bigint) as b from ct4") + for i in range(len(data_ct4_c3)): + tdSql.checkData( i, 0, data_ct4_c3[i]) + tdSql.query("select cast(c3 as bigint) as b from t1") + for i in range(len(data_t1_c3)): + tdSql.checkData( i, 0, data_t1_c3[i]) + + + tdLog.printNoPrefix("==========step13: cast smallint to binary, expect changes to str(int) ") + + tdSql.query("select cast(c3 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c3)): + tdSql.checkData( i, 0, str(data_ct4_c3[i]) ) + tdSql.query("select cast(c3 as binary(32)) as b from t1") + for i in range(len(data_t1_c3)): + tdSql.checkData( i, 0, str(data_t1_c3[i]) ) + + tdLog.printNoPrefix("==========step14: cast smallint to nchar, expect changes to str(int) ") + + tdSql.query("select cast(c3 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c3)): + tdSql.checkData( i, 0, str(data_ct4_c3[i]) ) + tdSql.query("select cast(c3 as nchar(32)) as b from t1") + for i in range(len(data_t1_c3)): + tdSql.checkData( i, 0, str(data_t1_c3[i]) ) + + tdLog.printNoPrefix("==========step15: cast smallint to timestamp, expect changes to timestamp ") + + tdSql.query("select cast(c3 as timestamp) as b from ct4") + for i in range(len(data_ct4_c3)): + if data_ct4_c3[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c3[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + tdSql.query("select cast(c3 as timestamp) as b from t1") + for i in range(len(data_t1_c3)): + if data_ct4_c3[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c3[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + + tdLog.printNoPrefix("==========step16: cast smallint to bigint, expect no changes") + tdSql.query("select c4 from ct4") + data_ct4_c4 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c4 from t1") + data_t1_c4 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdSql.query("select cast(c4 as bigint) as b from ct4") + for i in range(len(data_ct4_c4)): + tdSql.checkData( i, 0, data_ct4_c4[i]) + tdSql.query("select cast(c4 as bigint) as b from t1") + for i in range(len(data_t1_c4)): + tdSql.checkData( i, 0, data_t1_c4[i]) + + + tdLog.printNoPrefix("==========step17: cast smallint to binary, expect changes to str(int) ") + + tdSql.query("select cast(c4 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c4)): + tdSql.checkData( i, 0, str(data_ct4_c4[i]) ) + tdSql.query("select cast(c4 as binary(32)) as b from t1") + for i in range(len(data_t1_c4)): + tdSql.checkData( i, 0, str(data_t1_c4[i]) ) + + tdLog.printNoPrefix("==========step18: cast smallint to nchar, expect changes to str(int) ") + + tdSql.query("select cast(c4 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c4)): + tdSql.checkData( i, 0, str(data_ct4_c4[i]) ) + tdSql.query("select cast(c4 as nchar(32)) as b from t1") + for i in range(len(data_t1_c4)): + tdSql.checkData( i, 0, str(data_t1_c4[i]) ) + + tdLog.printNoPrefix("==========step19: cast smallint to timestamp, expect changes to timestamp ") + + tdSql.query("select cast(c4 as timestamp) as b from ct4") + for i in range(len(data_ct4_c4)): + if data_ct4_c4[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c4[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + tdSql.query("select cast(c4 as timestamp) as b from t1") + for i in range(len(data_t1_c4)): + if data_ct4_c4[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(data_ct4_c4[i]/1000) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + + tdLog.printNoPrefix("==========step20: cast float to bigint, expect no changes") + tdSql.query("select c5 from ct4") + data_ct4_c5 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c5 from t1") + data_t1_c5 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdSql.query("select cast(c5 as bigint) as b from ct4") + for i in range(len(data_ct4_c5)): + tdSql.checkData( i, 0, data_ct4_c5[i]) + tdSql.query("select cast(c5 as bigint) as b from t1") + for i in range(len(data_t1_c5)): + tdSql.checkData( i, 0, data_t1_c5[i]) + + tdLog.printNoPrefix("==========step21: cast float to binary, expect changes to str(int) ") + tdSql.query("select cast(c5 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c5)): + tdSql.checkData( i, 0, str(data_ct4_c5[i]) ) + tdSql.query("select cast(c5 as binary(32)) as b from t1") + for i in range(len(data_t1_c5)): + tdSql.checkData( i, 0, str(data_t1_c5[i]) ) + + tdLog.printNoPrefix("==========step22: cast float to nchar, expect changes to str(int) ") + tdSql.query("select cast(c5 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c5)): + tdSql.checkData( i, 0, str(data_ct4_c5[i]) ) + tdSql.query("select cast(c5 as nchar(32)) as b from t1") + for i in range(len(data_t1_c5)): + tdSql.checkData( i, 0, str(data_t1_c5[i]) ) + + tdLog.printNoPrefix("==========step23: cast float to timestamp, expect changes to timestamp ") + tdSql.query("select cast(c5 as timestamp) as b from ct4") + for i in range(len(data_ct4_c5)): + if data_ct4_c5[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(int(data_ct4_c5[i]/1000)) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + tdSql.query("select cast(c5 as timestamp) as b from t1") + for i in range(len(data_t1_c5)): + if data_t1_c5[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(int(data_t1_c5[i]/1000)) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + tdLog.printNoPrefix("==========step24: cast double to bigint, expect no changes") + tdSql.query("select c6 from ct4") + data_ct4_c6 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c6 from t1") + data_t1_c6 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdSql.query("select cast(c6 as bigint) as b from ct4") + for i in range(len(data_ct4_c6)): + tdSql.checkData( i, 0, data_ct4_c6[i]) + tdSql.query("select cast(c6 as bigint) as b from t1") + for i in range(len(data_t1_c6)): + tdSql.checkData( i, 0, data_t1_c6[i]) + + tdLog.printNoPrefix("==========step25: cast double to binary, expect changes to str(int) ") + tdSql.query("select cast(c6 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c6)): + tdSql.checkData( i, 0, str(data_ct4_c6[i]) ) + tdSql.query("select cast(c6 as binary(32)) as b from t1") + for i in range(len(data_t1_c6)): + tdSql.checkData( i, 0, str(data_t1_c6[i]) ) + + tdLog.printNoPrefix("==========step26: cast double to nchar, expect changes to str(int) ") + tdSql.query("select cast(c6 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c6)): + tdSql.checkData( i, 0, str(data_ct4_c6[i]) ) + tdSql.query("select cast(c6 as nchar(32)) as b from t1") + for i in range(len(data_t1_c6)): + tdSql.checkData( i, 0, str(data_t1_c6[i]) ) + + tdLog.printNoPrefix("==========step27: cast double to timestamp, expect changes to timestamp ") + tdSql.query("select cast(c6 as timestamp) as b from ct4") + for i in range(len(data_ct4_c6)): + if data_ct4_c6[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(int(data_ct4_c6[i]/1000)) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + tdSql.query("select cast(c6 as timestamp) as b from t1") + for i in range(len(data_t1_c6)): + if data_t1_c6[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(int(data_t1_c6[i]/1000)) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + tdLog.printNoPrefix("==========step28: cast bool to bigint, expect no changes") + tdSql.query("select c7 from ct4") + data_ct4_c7 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c7 from t1") + data_t1_c7 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdSql.query("select cast(c7 as bigint) as b from ct4") + for i in range(len(data_ct4_c7)): + tdSql.checkData( i, 0, data_ct4_c7[i]) + tdSql.query("select cast(c7 as bigint) as b from t1") + for i in range(len(data_t1_c7)): + tdSql.checkData( i, 0, data_t1_c7[i]) + + tdLog.printNoPrefix("==========step29: cast bool to binary, expect changes to str(int) ") + tdSql.query("select cast(c7 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c7)): + tdSql.checkData( i, 0, str(data_ct4_c7[i]) ) + tdSql.query("select cast(c7 as binary(32)) as b from t1") + for i in range(len(data_t1_c7)): + tdSql.checkData( i, 0, str(data_t1_c7[i]) ) + + tdLog.printNoPrefix("==========step30: cast bool to nchar, expect changes to str(int) ") + tdSql.query("select cast(c7 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c7)): + tdSql.checkData( i, 0, str(data_ct4_c7[i]) ) + tdSql.query("select cast(c7 as nchar(32)) as b from t1") + for i in range(len(data_t1_c7)): + tdSql.checkData( i, 0, str(data_t1_c7[i]) ) + + tdLog.printNoPrefix("==========step31: cast bool to timestamp, expect changes to timestamp ") + tdSql.query("select cast(c7 as timestamp) as b from ct4") + for i in range(len(data_ct4_c7)): + if data_ct4_c7[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(int(data_ct4_c7[i]/1000)) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + tdSql.query("select cast(c7 as timestamp) as b from t1") + for i in range(len(data_t1_c7)): + if data_t1_c7[i] is None: + tdSql.checkData( i, 0 , None ) + else: + utc_zone = datetime.timezone.utc + utc_8 = datetime.timezone(datetime.timedelta(hours=8)) + date_init_stamp = datetime.datetime.utcfromtimestamp(int(data_t1_c7[i]/1000)) + date_data = date_init_stamp.replace(tzinfo=utc_zone).astimezone(utc_8).strftime("%Y-%m-%d %H:%M:%S.%f") + tdSql.checkData( i, 0, date_data) + + + tdSql.query("select c8 from ct4") + data_ct4_c8 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c8 from t1") + data_t1_c8 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdLog.printNoPrefix("==========step32: cast binary to binary, expect no changes ") + tdSql.query("select cast(c8 as binary(32)) as b from ct4") + for i in range(len(data_ct4_c8)): + tdSql.checkData( i, 0, data_ct4_c8[i] ) + tdSql.query("select cast(c8 as binary(32)) as b from t1") + for i in range(len(data_t1_c8)): + tdSql.checkData( i, 0, data_t1_c8[i] ) + + tdLog.printNoPrefix("==========step33: cast binary to binary, expect truncate ") + tdSql.query("select cast(c8 as binary(2)) as b from ct4") + for i in range(len(data_ct4_c8)): + tdSql.checkData( i, 0, data_ct4_c8[i][:2] ) + tdSql.query("select cast(c8 as binary(2)) as b from t1") + for i in range(len(data_t1_c8)): + tdSql.checkData( i, 0, data_t1_c8[i][:2] ) + + tdLog.printNoPrefix("==========step34: cast binary to nchar, expect changes to str(int) ") + tdSql.query("select cast(c8 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c8)): + tdSql.checkData( i, 0, data_ct4_c8[i] ) + tdSql.query("select cast(c8 as nchar(32)) as b from t1") + for i in range(len(data_t1_c8)): + tdSql.checkData( i, 0, data_t1_c8[i] ) + + + tdSql.query("select c9 from ct4") + data_ct4_c9 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c9 from t1") + data_t1_c9 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + "c10 timestamp" + + tdLog.printNoPrefix("==========step35: cast nchar to nchar, expect no changes ") + tdSql.query("select cast(c9 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c9)): + tdSql.checkData( i, 0, data_ct4_c9[i]) + tdSql.query("select cast(c9 as nchar(32)) as b from t1") + for i in range(len(data_t1_c9)): + tdSql.checkData( i, 0, data_t1_c9[i] ) + + tdLog.printNoPrefix("==========step36: cast nchar to nchar, expect truncate ") + tdSql.query("select cast(c9 as nchar(2)) as b from ct4") + for i in range(len(data_ct4_c9)): + tdSql.checkData( i, 0, data_ct4_c9[i][:2] ) + tdSql.query("select cast(c9 as nchar(2)) as b from t1") + for i in range(len(data_t1_c9)): + tdSql.checkData( i, 0, data_t1_c9[i][:2] ) + + tdSql.query("select c9 from ct4") + data_ct4_c10 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + tdSql.query("select c9 from t1") + data_t1_c10 = [tdSql.getData(i,0) for i in range(tdSql.queryRows)] + + tdLog.printNoPrefix("==========step37: cast timestamp to nchar, expect no changes ") + tdSql.query("select cast(c9 as nchar(32)) as b from ct4") + for i in range(len(data_ct4_c10)): + tdSql.checkData( i, 0, data_ct4_c10[i]) + tdSql.query("select cast(c9 as nchar(32)) as b from t1") + for i in range(len(data_t1_c10)): + tdSql.checkData( i, 0, data_t1_c10[i] ) + tdSql.error("select cast(c1 as int) as b from ct4") tdSql.error("select cast(c1 as bool) as b from ct4") @@ -160,10 +559,10 @@ class TDTestCase: tdSql.error("select cast(c7 as double) as b from ct4") tdSql.error("select cast(c8 as tinyint unsigned) as b from ct4") - tdSql.error("select cast(c8 as timestamp ) as b from ct4") + tdSql.query("select cast(c8 as timestamp ) as b from ct4") + tdSql.query("select cast(c9 as timestamp ) as b from ct4") tdSql.error("select cast(c9 as binary(64) ) as b from ct4") - tdSql.error("select cast(c9 as timestamp ) as b from ct4") tdSql.error("select cast(c10 as binary(64) ) as b from ct4") tdSql.error("select cast(c10 as nchar(64) ) as b from ct4")