{"with-property",'M',0,0,"Dump schema with properties.",3},
{"without-property",'N',0,0,"Dump schema without properties.",3},
{"start-time",'S',"START_TIME",0,"Start time to dump. Either Epoch or ISO8601/RFC3339 format is acceptable. Epoch precision millisecond. ISO8601 format example: 2017-10-01T18:00:00.000+0800 or 2017-10-0100:00:00.000+0800 or '2017-10-01 00:00:00.000+0800'",3},
{"end-time",'E',"END_TIME",0,"End time to dump. Either Epoch or ISO8601/RFC3339 format is acceptable. Epoch precision millisecond. ISO8601 format example: 2017-10-01T18:00:00.000+0800 or 2017-10-0100:00:00.000+0800 or '2017-10-01 00:00:00.000+0800'",3},
{"data-batch",'N',"DATA_BATCH",0,"Number of data point per insert statement. Default is 1.",3},
{"data-batch",'B',"DATA_BATCH",0,"Number of data point per insert statement. Default is 1.",3},
{"max-sql-len",'L',"SQL_LEN",0,"Max length of one sql. Default is 65480.",3},
{"table-batch",'t',"TABLE_BATCH",0,"Number of table dumpout into one output file. Default is 1.",3},
{"thread_num",'T',"THREAD_NUM",0,"Number of thread for dump in file. Default is 5.",3},
data=r'! # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~'
data=r'! # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~'
tdLog.info("insert Basic Latin %d length data: %s"%(len(data),data))
tdSql.execute("insert into tb values (now, '%s')"%data)
tdSql.query("select * from tb")
tdSql.checkRows(3)
data=data.replace('\\\\','\\')
tdSql.checkData(2,1,data)
# tdSql.execute("insert into tb values(now, 'abc')")