[TD-4098]<feature> refactor IN filter
This commit is contained in:
parent
ad651eff54
commit
6bc71839b1
|
@ -176,18 +176,32 @@ bool serializeExprListToVariant(SArray* pList, tVariant **dst, int16_t colType,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((colType == TSDB_DATA_TYPE_BOOL || IS_SIGNED_NUMERIC_TYPE(colType))) {
|
if ((colType == TSDB_DATA_TYPE_BOOL || IS_SIGNED_NUMERIC_TYPE(colType))) {
|
||||||
|
if (var->nType != TSDB_DATA_TYPE_BOOL && !IS_SIGNED_NUMERIC_TYPE(var->nType)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
tbufWriteInt64(&bw, var->i64);
|
tbufWriteInt64(&bw, var->i64);
|
||||||
} else if (IS_UNSIGNED_NUMERIC_TYPE(colType)) {
|
} else if (IS_UNSIGNED_NUMERIC_TYPE(colType)) {
|
||||||
|
if (IS_SIGNED_NUMERIC_TYPE(var->nType) && IS_UNSIGNED_NUMERIC_TYPE(var->nType)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
tbufWriteUint64(&bw, var->u64);
|
tbufWriteUint64(&bw, var->u64);
|
||||||
} else if (colType == TSDB_DATA_TYPE_DOUBLE || colType == TSDB_DATA_TYPE_FLOAT) {
|
} else if (colType == TSDB_DATA_TYPE_DOUBLE || colType == TSDB_DATA_TYPE_FLOAT) {
|
||||||
if (IS_SIGNED_NUMERIC_TYPE(var->nType) || IS_UNSIGNED_NUMERIC_TYPE(var->nType)) {
|
if (IS_SIGNED_NUMERIC_TYPE(var->nType) || IS_UNSIGNED_NUMERIC_TYPE(var->nType)) {
|
||||||
tbufWriteDouble(&bw, (double)(var->i64));
|
tbufWriteDouble(&bw, (double)(var->i64));
|
||||||
} else {
|
} else if (var->nType == TSDB_DATA_TYPE_DOUBLE || var->nType == TSDB_DATA_TYPE_FLOAT){
|
||||||
tbufWriteDouble(&bw, var->dKey);
|
tbufWriteDouble(&bw, var->dKey);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else if (colType == TSDB_DATA_TYPE_BINARY) {
|
} else if (colType == TSDB_DATA_TYPE_BINARY) {
|
||||||
|
if (var->nType != TSDB_DATA_TYPE_BINARY) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
tbufWriteBinary(&bw, var->pz, var->nLen);
|
tbufWriteBinary(&bw, var->pz, var->nLen);
|
||||||
} else if (colType == TSDB_DATA_TYPE_NCHAR) {
|
} else if (colType == TSDB_DATA_TYPE_NCHAR) {
|
||||||
|
if (var->nType != TSDB_DATA_TYPE_BINARY) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
char *buf = (char *)calloc(1, (var->nLen + 1)*TSDB_NCHAR_SIZE);
|
char *buf = (char *)calloc(1, (var->nLen + 1)*TSDB_NCHAR_SIZE);
|
||||||
if (tVariantDump(var, buf, colType, false) != TSDB_CODE_SUCCESS) {
|
if (tVariantDump(var, buf, colType, false) != TSDB_CODE_SUCCESS) {
|
||||||
free(buf);
|
free(buf);
|
||||||
|
@ -203,6 +217,8 @@ bool serializeExprListToVariant(SArray* pList, tVariant **dst, int16_t colType,
|
||||||
tbufWriteInt64(&bw, var->i64);
|
tbufWriteInt64(&bw, var->i64);
|
||||||
} else if (var->nType == TSDB_DATA_TYPE_BIGINT) {
|
} else if (var->nType == TSDB_DATA_TYPE_BIGINT) {
|
||||||
tbufWriteInt64(&bw, var->i64);
|
tbufWriteInt64(&bw, var->i64);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -621,65 +621,65 @@ class TDTestCase:
|
||||||
tdLog.info(cmd1)
|
tdLog.info(cmd1)
|
||||||
tdSql.execute(cmd1)
|
tdSql.execute(cmd1)
|
||||||
|
|
||||||
#cmd2 = 'select * from in_stable_4 where in_float in (\'888\');'
|
cmd2 = 'select * from in_stable_4 where in_float in (\'888\');'
|
||||||
#tdLog.info(cmd2)
|
tdLog.info(cmd2)
|
||||||
#tdSql.error(cmd2)
|
tdSql.error(cmd2)
|
||||||
#try:
|
try:
|
||||||
# tdSql.execute(cmd2)
|
tdSql.execute(cmd2)
|
||||||
# tdLog.exit("invalid operation: not supported filter condition")
|
tdLog.exit("invalid operation: not supported filter condition")
|
||||||
#except Exception as e:
|
except Exception as e:
|
||||||
# tdLog.info(repr(e))
|
tdLog.info(repr(e))
|
||||||
# tdLog.info("invalid operation: not supported filter condition")
|
tdLog.info("invalid operation: not supported filter condition")
|
||||||
|
|
||||||
#cmd3 = 'select * from in_stable_4 where in_double in (\'66666\');'
|
cmd3 = 'select * from in_stable_4 where in_double in (\'66666\');'
|
||||||
#tdLog.info(cmd3)
|
tdLog.info(cmd3)
|
||||||
#tdSql.error(cmd3)
|
tdSql.error(cmd3)
|
||||||
#try:
|
try:
|
||||||
# tdSql.execute(cmd3)
|
tdSql.execute(cmd3)
|
||||||
# tdLog.exit("invalid operation: not supported filter condition")
|
tdLog.exit("invalid operation: not supported filter condition")
|
||||||
#except Exception as e:
|
except Exception as e:
|
||||||
# tdLog.info(repr(e))
|
tdLog.info(repr(e))
|
||||||
# tdLog.info("invalid operation: not supported filter condition")
|
tdLog.info("invalid operation: not supported filter condition")
|
||||||
|
|
||||||
#cmd4 = 'select * from in_stable_4 where tin_float in (\'666\');'
|
cmd4 = 'select * from in_stable_4 where tin_float in (\'666\');'
|
||||||
#tdLog.info(cmd4)
|
tdLog.info(cmd4)
|
||||||
#tdSql.error(cmd4)
|
tdSql.error(cmd4)
|
||||||
#try:
|
try:
|
||||||
# tdSql.execute(cmd4)
|
tdSql.execute(cmd4)
|
||||||
# tdLog.exit("invalid operation: not supported filter condition")
|
tdLog.exit("invalid operation: not supported filter condition")
|
||||||
#except Exception as e:
|
except Exception as e:
|
||||||
# tdLog.info(repr(e))
|
tdLog.info(repr(e))
|
||||||
# tdLog.info("invalid operation: not supported filter condition")
|
tdLog.info("invalid operation: not supported filter condition")
|
||||||
|
|
||||||
#cmd5 = 'select * from in_stable_4 where tin_double in (\'88888\');'
|
cmd5 = 'select * from in_stable_4 where tin_double in (\'88888\');'
|
||||||
#tdLog.info(cmd5)
|
tdLog.info(cmd5)
|
||||||
#tdSql.error(cmd5)
|
tdSql.error(cmd5)
|
||||||
#try:
|
try:
|
||||||
# tdSql.execute(cmd5)
|
tdSql.execute(cmd5)
|
||||||
# tdLog.exit("invalid operation: not supported filter condition")
|
tdLog.exit("invalid operation: not supported filter condition")
|
||||||
#except Exception as e:
|
except Exception as e:
|
||||||
# tdLog.info(repr(e))
|
tdLog.info(repr(e))
|
||||||
# tdLog.info("invalid operation: not supported filter condition")
|
tdLog.info("invalid operation: not supported filter condition")
|
||||||
|
|
||||||
#cmd6 = 'select * from in_float_double_1 where in_float in (\'888\');'
|
cmd6 = 'select * from in_float_double_1 where in_float in (\'888\');'
|
||||||
#tdLog.info(cmd6)
|
tdLog.info(cmd6)
|
||||||
#tdSql.error(cmd6)
|
tdSql.error(cmd6)
|
||||||
#try:
|
try:
|
||||||
# tdSql.execute(cmd6)
|
tdSql.execute(cmd6)
|
||||||
# tdLog.exit("invalid operation: not supported filter condition")
|
tdLog.exit("invalid operation: not supported filter condition")
|
||||||
#except Exception as e:
|
except Exception as e:
|
||||||
# tdLog.info(repr(e))
|
tdLog.info(repr(e))
|
||||||
# tdLog.info("invalid operation: not supported filter condition")
|
tdLog.info("invalid operation: not supported filter condition")
|
||||||
#
|
|
||||||
#cmd7 = 'select * from in_float_double_1 where in_double in (\'66666\');'
|
cmd7 = 'select * from in_float_double_1 where in_double in (\'66666\');'
|
||||||
#tdLog.info(cmd7)
|
tdLog.info(cmd7)
|
||||||
#tdSql.error(cmd7)
|
tdSql.error(cmd7)
|
||||||
#try:
|
try:
|
||||||
# tdSql.execute(cmd7)
|
tdSql.execute(cmd7)
|
||||||
# tdLog.exit("invalid operation: not supported filter condition")
|
tdLog.exit("invalid operation: not supported filter condition")
|
||||||
#except Exception as e:
|
except Exception as e:
|
||||||
# tdLog.info(repr(e))
|
tdLog.info(repr(e))
|
||||||
# tdLog.info("invalid operation: not supported filter condition")
|
tdLog.info("invalid operation: not supported filter condition")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue