@ -4406,6 +4406,654 @@ static void SpecifyColumnBatchCase_autoCreateTbl(TAOS *taos) {
}
/*=======================*/
/*
char * taos_stmt_errstr ( TAOS_STMT * stmt ) 用 于 在 其 他 stmt API 返 回 错 误 ( 返 回 错 误 码 或 空 指 针 ) 时 获 取 错 误 信 息 , 返 回 的 错 误 信 息 可 能 是 以 下 3 种 的 一 个 :
1. 当 stmt或sqlobj为空时的terrno对于的错误消息 ;
2. ( 可 有 的 ) 详 细 错 误 消 息 ;
3. 返 回 的 错 误 码 对 于 的 错 误 消 息 ;
*/
static int stmt_specifyCol_bind_error_case_001 ( TAOS_STMT * stmt , int tableNum , int rowsOfPerColum , int bingNum , int lenOfBinaryDef , int lenOfBinaryAct , int columnNum ) {
sampleValue * v = ( sampleValue * ) calloc ( 1 , sizeof ( sampleValue ) ) ;
int totalRowsPerTbl = rowsOfPerColum * bingNum ;
v - > ts = ( int64_t * ) malloc ( sizeof ( int64_t ) * ( size_t ) ( totalRowsPerTbl * tableNum ) ) ;
v - > br = ( char * ) malloc ( sizeof ( int64_t ) * ( size_t ) ( totalRowsPerTbl * lenOfBinaryDef ) ) ;
v - > nr = ( char * ) malloc ( sizeof ( int64_t ) * ( size_t ) ( totalRowsPerTbl * lenOfBinaryDef ) ) ;
int * lb = ( int * ) malloc ( MAX_ROWS_OF_PER_COLUMN * sizeof ( int ) ) ;
TAOS_MULTI_BIND * params = calloc ( 1 , sizeof ( TAOS_MULTI_BIND ) * ( size_t ) ( bingNum * columnNum * ( tableNum + 1 ) * rowsOfPerColum ) ) ;
char * is_null = malloc ( sizeof ( char ) * MAX_ROWS_OF_PER_COLUMN ) ;
char * no_null = malloc ( sizeof ( char ) * MAX_ROWS_OF_PER_COLUMN ) ;
int64_t tts = 1591060628000 ;
for ( int i = 0 ; i < rowsOfPerColum ; + + i ) {
lb [ i ] = lenOfBinaryAct ;
no_null [ i ] = 0 ;
is_null [ i ] = ( i % 10 = = 2 ) ? 1 : 0 ;
v - > b [ i ] = ( int8_t ) ( i % 2 ) ;
v - > v1 [ i ] = ( int8_t ) ( ( i + 1 ) % 2 ) ;
v - > v2 [ i ] = ( int16_t ) i ;
v - > v4 [ i ] = ( int32_t ) ( i + 1 ) ;
v - > v8 [ i ] = ( int64_t ) ( i + 2 ) ;
v - > f4 [ i ] = ( float ) ( i + 3 ) ;
v - > f8 [ i ] = ( double ) ( i + 4 ) ;
char tbuf [ MAX_BINARY_DEF_LEN ] ;
memset ( tbuf , 0 , MAX_BINARY_DEF_LEN ) ;
sprintf ( tbuf , " binary-%d-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 " , i % 10 ) ;
memcpy ( v - > br + i * lenOfBinaryDef , tbuf , ( size_t ) lenOfBinaryAct ) ;
memset ( tbuf , 0 , MAX_BINARY_DEF_LEN ) ;
sprintf ( tbuf , " nchar-%d-0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 " , i % 10 ) ;
memcpy ( v - > nr + i * lenOfBinaryDef , tbuf , ( size_t ) lenOfBinaryAct ) ;
v - > ts2 [ i ] = tts + i ;
}
int i = 0 ;
for ( int j = 0 ; j < bingNum * tableNum ; j + + ) {
params [ i + 0 ] . buffer_type = TSDB_DATA_TYPE_TIMESTAMP ;
params [ i + 0 ] . buffer_length = sizeof ( int64_t ) ;
params [ i + 0 ] . buffer = & v - > ts [ j * rowsOfPerColum ] ;
params [ i + 0 ] . length = NULL ;
params [ i + 0 ] . is_null = no_null ;
params [ i + 0 ] . num = rowsOfPerColum ;
params [ i + 1 ] . buffer_type = TSDB_DATA_TYPE_BOOL ;
params [ i + 1 ] . buffer_length = sizeof ( int8_t ) ;
params [ i + 1 ] . buffer = v - > b ;
params [ i + 1 ] . length = NULL ;
params [ i + 1 ] . is_null = is_null ;
params [ i + 1 ] . num = rowsOfPerColum ;
params [ i + 2 ] . buffer_type = TSDB_DATA_TYPE_INT ;
params [ i + 2 ] . buffer_length = sizeof ( int32_t ) ;
params [ i + 2 ] . buffer = v - > v4 ;
params [ i + 2 ] . length = NULL ;
params [ i + 2 ] . is_null = is_null ;
params [ i + 2 ] . num = rowsOfPerColum ;
params [ i + 3 ] . buffer_type = TSDB_DATA_TYPE_FLOAT ;
params [ i + 3 ] . buffer_length = sizeof ( float ) ;
params [ i + 3 ] . buffer = v - > f4 ;
params [ i + 3 ] . length = NULL ;
params [ i + 3 ] . is_null = is_null ;
params [ i + 3 ] . num = rowsOfPerColum ;
params [ i + 4 ] . buffer_type = TSDB_DATA_TYPE_BINARY ;
params [ i + 4 ] . buffer_length = ( uintptr_t ) lenOfBinaryDef ;
params [ i + 4 ] . buffer = v - > br ;
params [ i + 4 ] . length = lb ;
params [ i + 4 ] . is_null = is_null ;
params [ i + 4 ] . num = rowsOfPerColum ;
i + = columnNum ;
}
//int64_t tts = 1591060628000;
for ( int i = 0 ; i < totalRowsPerTbl * tableNum ; + + i ) {
v - > ts [ i ] = tts + i ;
}
unsigned long long starttime = getCurrentTime ( ) ;
// create table m%d (ts timestamp, b bool, v1 tinyint, v2 smallint, v4 int, v8 bigint, f4 float, f8 double, br binary(%d), nr nchar(%d), ts2 timestamp)
char * sql = " insert into m0 (ts,b,v4,f4,br) values(?,?,?,?,?) " ;
int code ;
//TAOS_STMT *stmtNull = NULL;
//int code = taos_stmt_prepare(stmtNull, sql, 0);
//if (code != 0){
// printf("failed to execute taos_stmt_prepare. code:0x%x[%s][%s]\n", code, tstrerror(code), taos_stmt_errstr(stmtNull));
// return -1;
//}
//char* sqlNull = NULL;
//code = taos_stmt_prepare(stmt, sqlNull, 0);
//if (code != 0){
// printf("failed to execute taos_stmt_prepare. code:0x%x[%s][%s]\n", code, tstrerror(code), taos_stmt_errstr(stmt));
//}
code = taos_stmt_prepare ( stmt , sql , 0 ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_prepare. code:0x%x[%s][%s] \n " , code , tstrerror ( code ) , taos_stmt_errstr ( stmt ) ) ;
return - 1 ;
}
int id = 0 ;
for ( int l = 0 ; l < bingNum ; l + + ) {
for ( int zz = 0 ; zz < tableNum ; zz + + ) {
//char buf[32];
//sprintf(buf, "m%d", zz);
//code = taos_stmt_set_tbname(stmt, buf);
//if (code != 0){
// printf("failed to execute taos_stmt_set_tbname. code:0x%x[%s]\n", code, tstrerror(code));
// return -1;
//}
//for (int col=0; col < columnNum + 1000; ++col) {
for ( int col = 0 ; col < columnNum ; + + col ) {
if ( col > = columnNum ) col = 0 ;
//code = taos_stmt_bind_single_param_batch(NULL, params + id, col);
//code = taos_stmt_bind_single_param_batch(stmt, NULL, col);
//code = taos_stmt_bind_single_param_batch(stmt, params + id, columnNum);
code = taos_stmt_bind_single_param_batch ( stmt , params + id , col ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_bind_single_param_batch. code:0x%x[%s][%s] \n " , code , tstrerror ( code ) , taos_stmt_errstr ( stmt ) ) ;
return - 1 ;
}
id + + ;
}
//code = taos_stmt_add_batch(NULL);
code = taos_stmt_add_batch ( stmt ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_add_batch. code:0x%x[%s][%s] \n " , code , tstrerror ( code ) , taos_stmt_errstr ( stmt ) ) ;
return - 1 ;
}
//code = taos_stmt_add_batch(stmt);
//if (code != 0) {
// printf("failed to execute taos_stmt_add_batch second. code:0x%x[%s][%s]\n", code, tstrerror(code), taos_stmt_errstr(stmt));
// return -1;
//}
}
code = taos_stmt_execute ( stmt ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_execute. code:0x%x[%s] \n " , code , tstrerror ( code ) ) ;
return - 1 ;
}
}
unsigned long long endtime = getCurrentTime ( ) ;
unsigned long long totalRows = ( uint32_t ) ( totalRowsPerTbl * tableNum ) ;
printf ( " insert total %d records, used %u seconds, avg:%u useconds per record \n " , totalRows , ( endtime - starttime ) / 1000000UL , ( endtime - starttime ) / totalRows ) ;
free ( v - > ts ) ;
free ( v - > br ) ;
free ( v - > nr ) ;
free ( v ) ;
free ( lb ) ;
free ( params ) ;
free ( is_null ) ;
free ( no_null ) ;
return 0 ;
}
static int stmt_specifyCol_bind_error_case_002 ( TAOS_STMT * stmt , int tableNum , int rowsOfPerColum , int bingNum , int lenOfBinaryDef , int lenOfBinaryAct , int columnNum ) {
sampleValue * v = ( sampleValue * ) calloc ( 1 , sizeof ( sampleValue ) ) ;
int totalRowsPerTbl = rowsOfPerColum * bingNum ;
v - > ts = ( int64_t * ) malloc ( sizeof ( int64_t ) * ( size_t ) ( totalRowsPerTbl * tableNum ) ) ;
v - > br = ( char * ) malloc ( sizeof ( int64_t ) * ( size_t ) ( totalRowsPerTbl * lenOfBinaryDef ) ) ;
v - > nr = ( char * ) malloc ( sizeof ( int64_t ) * ( size_t ) ( totalRowsPerTbl * lenOfBinaryDef ) ) ;
int * lb = ( int * ) malloc ( MAX_ROWS_OF_PER_COLUMN * sizeof ( int ) ) ;
TAOS_MULTI_BIND * params = calloc ( 1 , sizeof ( TAOS_MULTI_BIND ) * ( size_t ) ( bingNum * columnNum * ( tableNum + 1 ) * rowsOfPerColum ) ) ;
char * is_null = malloc ( sizeof ( char ) * MAX_ROWS_OF_PER_COLUMN ) ;
char * no_null = malloc ( sizeof ( char ) * MAX_ROWS_OF_PER_COLUMN ) ;
int64_t tts = 1591060628000 ;
for ( int i = 0 ; i < rowsOfPerColum ; + + i ) {
lb [ i ] = lenOfBinaryAct ;
no_null [ i ] = 0 ;
is_null [ i ] = ( i % 10 = = 2 ) ? 1 : 0 ;
v - > b [ i ] = ( int8_t ) ( i % 2 ) ;
v - > v1 [ i ] = ( int8_t ) ( ( i + 1 ) % 2 ) ;
v - > v2 [ i ] = ( int16_t ) i ;
v - > v4 [ i ] = ( int32_t ) ( i + 1 ) ;
v - > v8 [ i ] = ( int64_t ) ( i + 2 ) ;
v - > f4 [ i ] = ( float ) ( i + 3 ) ;
v - > f8 [ i ] = ( double ) ( i + 4 ) ;
char tbuf [ MAX_BINARY_DEF_LEN ] ;
memset ( tbuf , 0 , MAX_BINARY_DEF_LEN ) ;
sprintf ( tbuf , " binary-%d " , i % 10 ) ;
memcpy ( v - > br + i * lenOfBinaryDef , tbuf , ( size_t ) lenOfBinaryAct ) ;
memset ( tbuf , 0 , MAX_BINARY_DEF_LEN ) ;
sprintf ( tbuf , " nchar-%d " , i % 10 ) ;
memcpy ( v - > nr + i * lenOfBinaryDef , tbuf , ( size_t ) lenOfBinaryAct ) ;
v - > ts2 [ i ] = tts + i ;
}
int i = 0 ;
for ( int j = 0 ; j < bingNum * tableNum ; j + + ) {
params [ i + 0 ] . buffer_type = TSDB_DATA_TYPE_TIMESTAMP ;
params [ i + 0 ] . buffer_length = sizeof ( int64_t ) ;
params [ i + 0 ] . buffer = & v - > ts [ j * rowsOfPerColum ] ;
params [ i + 0 ] . length = NULL ;
params [ i + 0 ] . is_null = no_null ;
params [ i + 0 ] . num = rowsOfPerColum ;
params [ i + 1 ] . buffer_type = TSDB_DATA_TYPE_BOOL ;
params [ i + 1 ] . buffer_length = sizeof ( int8_t ) ;
params [ i + 1 ] . buffer = v - > b ;
params [ i + 1 ] . length = NULL ;
params [ i + 1 ] . is_null = is_null ;
params [ i + 1 ] . num = rowsOfPerColum ;
params [ i + 2 ] . buffer_type = TSDB_DATA_TYPE_INT ;
params [ i + 2 ] . buffer_length = sizeof ( int32_t ) ;
params [ i + 2 ] . buffer = v - > v4 ;
params [ i + 2 ] . length = NULL ;
params [ i + 2 ] . is_null = is_null ;
params [ i + 2 ] . num = rowsOfPerColum ;
params [ i + 3 ] . buffer_type = TSDB_DATA_TYPE_FLOAT ;
params [ i + 3 ] . buffer_length = sizeof ( float ) ;
params [ i + 3 ] . buffer = v - > f4 ;
params [ i + 3 ] . length = NULL ;
params [ i + 3 ] . is_null = is_null ;
params [ i + 3 ] . num = rowsOfPerColum ;
params [ i + 4 ] . buffer_type = TSDB_DATA_TYPE_BINARY ;
params [ i + 4 ] . buffer_length = ( uintptr_t ) lenOfBinaryDef ;
params [ i + 4 ] . buffer = v - > br ;
params [ i + 4 ] . length = lb ;
params [ i + 4 ] . is_null = is_null ;
params [ i + 4 ] . num = rowsOfPerColum ;
i + = columnNum ;
}
//int64_t tts = 1591060628000;
for ( int i = 0 ; i < totalRowsPerTbl * tableNum ; + + i ) {
v - > ts [ i ] = tts + i ;
}
unsigned long long starttime = getCurrentTime ( ) ;
// create table m%d (ts timestamp, b bool, v1 tinyint, v2 smallint, v4 int, v8 bigint, f4 float, f8 double, br binary(%d), nr nchar(%d), ts2 timestamp)
char * sql = " insert into ? (ts,b,v4,f4,br) values(?,?,?,?,?) " ;
int code = taos_stmt_prepare ( stmt , sql , 0 ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_prepare. code:0x%x[%s] \n " , code , tstrerror ( code ) ) ;
return - 1 ;
}
int id = 0 ;
for ( int l = 0 ; l < bingNum ; l + + ) {
for ( int zz = 0 ; zz < tableNum ; zz + + ) {
char buf [ 32 ] ;
sprintf ( buf , " m%d " , zz ) ;
//stmt=NULL;
code = taos_stmt_set_tbname ( stmt , buf ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_set_tbname. code:0x%x[%s][%s] \n " , code , tstrerror ( code ) , taos_stmt_errstr ( stmt ) ) ;
return - 1 ;
}
for ( int col = 0 ; col < columnNum ; + + col ) {
code = taos_stmt_bind_single_param_batch ( stmt , params + id , col ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_bind_single_param_batch. code:0x%x[%s] \n " , code , tstrerror ( code ) ) ;
return - 1 ;
}
id + + ;
}
code = taos_stmt_add_batch ( stmt ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_add_batch. code:0x%x[%s] \n " , code , tstrerror ( code ) ) ;
return - 1 ;
}
}
code = taos_stmt_execute ( stmt ) ;
if ( code ! = 0 ) {
printf ( " failed to execute taos_stmt_execute. code:0x%x[%s] \n " , code , tstrerror ( code ) ) ;
return - 1 ;
}
}
unsigned long long endtime = getCurrentTime ( ) ;
unsigned long long totalRows = ( uint32_t ) ( totalRowsPerTbl * tableNum ) ;
printf ( " insert total %d records, used %u seconds, avg:%u useconds per record \n " , totalRows , ( endtime - starttime ) / 1000000UL , ( endtime - starttime ) / totalRows ) ;
free ( v - > ts ) ;
free ( v - > br ) ;
free ( v - > nr ) ;
free ( v ) ;
free ( lb ) ;
free ( params ) ;
free ( is_null ) ;
free ( no_null ) ;
return 0 ;
}
static void SpecifyColumnBatchErrorCase ( TAOS * taos ) {
TAOS_STMT * stmt = NULL ;
int tableNum ;
int lenOfBinaryDef ;
int rowsOfPerColum ;
int bingNum ;
int lenOfBinaryAct ;
int columnNum ;
int totalRowsPerTbl ;
//=======================================================================//
//=============================== single table ==========================//
//========== case 1: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 1 ;
bingNum = 1 ;
lenOfBinaryDef = 40 ;
lenOfBinaryAct = 8 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db1 " ) ;
stmt_specifyCol_bind_error_case_001 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
taos_stmt_close ( stmt ) ;
printf ( " case 1 check result end \n \n " ) ;
}
# endif
//========== case 2: ======================//
# if 1
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 5 ;
bingNum = 1 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 15 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db2 " ) ;
stmt_specifyCol_bind_error_case_002 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
//checkResult(taos, "m1", 0, totalRowsPerTbl);
//checkResult(taos, "m2", 0, totalRowsPerTbl);
//checkResult(taos, "m3", 0, totalRowsPerTbl);
//checkResult(taos, "m4", 0, totalRowsPerTbl);
//checkResult(taos, "m5", 0, totalRowsPerTbl);
//checkResult(taos, "m6", 0, totalRowsPerTbl);
//checkResult(taos, "m7", 0, totalRowsPerTbl);
//checkResult(taos, "m8", 0, totalRowsPerTbl);
//checkResult(taos, "m9", 0, totalRowsPerTbl);
taos_stmt_close ( stmt ) ;
printf ( " case 2 check result end \n \n " ) ;
}
# endif
//========== case 2-1: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 32767 ;
bingNum = 1 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 15 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db2_1 " ) ;
stmt_specifyCol_bind_case_001 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
//checkResult(taos, "m1", 0, totalRowsPerTbl);
//checkResult(taos, "m2", 0, totalRowsPerTbl);
//checkResult(taos, "m3", 0, totalRowsPerTbl);
//checkResult(taos, "m4", 0, totalRowsPerTbl);
//checkResult(taos, "m5", 0, totalRowsPerTbl);
//checkResult(taos, "m6", 0, totalRowsPerTbl);
//checkResult(taos, "m7", 0, totalRowsPerTbl);
//checkResult(taos, "m8", 0, totalRowsPerTbl);
//checkResult(taos, "m9", 0, totalRowsPerTbl);
taos_stmt_close ( stmt ) ;
printf ( " case 2-1 check result end \n \n " ) ;
}
# endif
//========== case 2-2: ======================//
#if 0
{
printf ( " ====case 2-2 error test start \n " ) ;
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 32768 ;
bingNum = 1 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 15 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db2_2 " ) ;
stmt_specifyCol_bind_case_001 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
//checkResult(taos, "m1", 0, totalRowsPerTbl);
//checkResult(taos, "m2", 0, totalRowsPerTbl);
//checkResult(taos, "m3", 0, totalRowsPerTbl);
//checkResult(taos, "m4", 0, totalRowsPerTbl);
//checkResult(taos, "m5", 0, totalRowsPerTbl);
//checkResult(taos, "m6", 0, totalRowsPerTbl);
//checkResult(taos, "m7", 0, totalRowsPerTbl);
//checkResult(taos, "m8", 0, totalRowsPerTbl);
//checkResult(taos, "m9", 0, totalRowsPerTbl);
taos_stmt_close ( stmt ) ;
printf ( " ====case 2-2 check result end \n \n " ) ;
}
# endif
//========== case 3: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 1 ;
bingNum = 5 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 20 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db3 " ) ;
stmt_specifyCol_bind_case_001 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
//checkResult(taos, "m1", 0, totalRowsPerTbl);
//checkResult(taos, "m2", 0, totalRowsPerTbl);
//checkResult(taos, "m3", 0, totalRowsPerTbl);
//checkResult(taos, "m4", 0, totalRowsPerTbl);
//checkResult(taos, "m5", 0, totalRowsPerTbl);
//checkResult(taos, "m6", 0, totalRowsPerTbl);
//checkResult(taos, "m7", 0, totalRowsPerTbl);
//checkResult(taos, "m8", 0, totalRowsPerTbl);
//checkResult(taos, "m9", 0, totalRowsPerTbl);
taos_stmt_close ( stmt ) ;
printf ( " case 3 check result end \n \n " ) ;
}
# endif
//========== case 4: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 5 ;
bingNum = 5 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 33 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db4 " ) ;
stmt_specifyCol_bind_case_001 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
//checkResult(taos, "m1", 0, totalRowsPerTbl);
//checkResult(taos, "m2", 0, totalRowsPerTbl);
//checkResult(taos, "m3", 0, totalRowsPerTbl);
//checkResult(taos, "m4", 0, totalRowsPerTbl);
//checkResult(taos, "m5", 0, totalRowsPerTbl);
//checkResult(taos, "m6", 0, totalRowsPerTbl);
//checkResult(taos, "m7", 0, totalRowsPerTbl);
//checkResult(taos, "m8", 0, totalRowsPerTbl);
//checkResult(taos, "m9", 0, totalRowsPerTbl);
taos_stmt_close ( stmt ) ;
printf ( " case 4 check result end \n \n " ) ;
}
# endif
//=======================================================================//
//=============================== multi tables ==========================//
//========== case 5: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 5 ;
rowsOfPerColum = 1 ;
bingNum = 1 ;
lenOfBinaryDef = 40 ;
lenOfBinaryAct = 16 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db5 " ) ;
stmt_specifyCol_bind_case_002 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m1 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m2 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m3 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m4 " , 0 , totalRowsPerTbl ) ;
taos_stmt_close ( stmt ) ;
printf ( " case 5 check result end \n \n " ) ;
}
# endif
//========== case 6: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 5 ;
rowsOfPerColum = 5 ;
bingNum = 1 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 20 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db6 " ) ;
stmt_specifyCol_bind_case_002 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m1 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m2 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m3 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m4 " , 0 , totalRowsPerTbl ) ;
taos_stmt_close ( stmt ) ;
printf ( " case 6 check result end \n \n " ) ;
}
# endif
//========== case 7: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 5 ;
rowsOfPerColum = 1 ;
bingNum = 5 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 33 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db7 " ) ;
stmt_specifyCol_bind_case_002 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m1 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m2 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m3 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m4 " , 0 , totalRowsPerTbl ) ;
taos_stmt_close ( stmt ) ;
printf ( " case 7 check result end \n \n " ) ;
}
# endif
//========== case 8: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 5 ;
rowsOfPerColum = 5 ;
bingNum = 5 ;
lenOfBinaryDef = 1000 ;
lenOfBinaryAct = 40 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db8 " ) ;
stmt_specifyCol_bind_case_002 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m1 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m2 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m3 " , 0 , totalRowsPerTbl ) ;
checkResult ( taos , " m4 " , 0 , totalRowsPerTbl ) ;
taos_stmt_close ( stmt ) ;
printf ( " case 8 check result end \n \n " ) ;
}
# endif
//=======================================================================//
//=============================== multi-rows to single table ==========================//
//========== case 9: ======================//
#if 0
{
stmt = taos_stmt_init ( taos ) ;
tableNum = 1 ;
rowsOfPerColum = 23740 ;
bingNum = 1 ;
lenOfBinaryDef = 40 ;
lenOfBinaryAct = 8 ;
columnNum = 5 ;
prepareVcolumn ( taos , 1 , tableNum , lenOfBinaryDef , " db9 " ) ;
stmt_specifyCol_bind_case_001 ( stmt , tableNum , rowsOfPerColum , bingNum , lenOfBinaryDef , lenOfBinaryAct , columnNum ) ;
totalRowsPerTbl = rowsOfPerColum * bingNum ;
checkResult ( taos , " m0 " , 0 , totalRowsPerTbl ) ;
taos_stmt_close ( stmt ) ;
printf ( " case 9 check result end \n \n " ) ;
}
# endif
return ;
}
int main ( int argc , char * argv [ ] )
{
TAOS * taos ;
@ -4472,6 +5120,7 @@ int main(int argc, char *argv[])
//runCase_long(taos);
//SpecifyColumnBatchCase(taos);
SpecifyColumnBatchCase_autoCreateTbl ( taos ) ;
//SpecifyColumnBatchErrorCase(taos);
return 0 ;
}