Merge pull request #6089 from taosdata/fix/query
[td-4147]<fix>: report error if the column name is too long.
This commit is contained in:
commit
e2c9099e63
|
@ -89,9 +89,6 @@ void exprTreeToBinary(SBufferWriter* bw, tExprNode* pExprTree);
|
||||||
|
|
||||||
bool exprTreeApplayFilter(tExprNode *pExpr, const void *pItem, SExprTraverseSupp *param);
|
bool exprTreeApplayFilter(tExprNode *pExpr, const void *pItem, SExprTraverseSupp *param);
|
||||||
|
|
||||||
typedef void (*_arithmetic_operator_fn_t)(void *left, int32_t numLeft, int32_t leftType, void *right, int32_t numRight,
|
|
||||||
int32_t rightType, void *output, int32_t order);
|
|
||||||
|
|
||||||
void arithmeticTreeTraverse(tExprNode *pExprs, int32_t numOfRows, char *pOutput, void *param, int32_t order,
|
void arithmeticTreeTraverse(tExprNode *pExprs, int32_t numOfRows, char *pOutput, void *param, int32_t order,
|
||||||
char *(*cb)(void *, const char*, int32_t));
|
char *(*cb)(void *, const char*, int32_t));
|
||||||
|
|
||||||
|
|
|
@ -588,14 +588,14 @@ void tSetDbName(SStrToken *pCpxName, SStrToken *pDb) {
|
||||||
|
|
||||||
void tSetColumnInfo(TAOS_FIELD *pField, SStrToken *pName, TAOS_FIELD *pType) {
|
void tSetColumnInfo(TAOS_FIELD *pField, SStrToken *pName, TAOS_FIELD *pType) {
|
||||||
int32_t maxLen = sizeof(pField->name) / sizeof(pField->name[0]);
|
int32_t maxLen = sizeof(pField->name) / sizeof(pField->name[0]);
|
||||||
|
|
||||||
// truncate the column name
|
|
||||||
if ((int32_t)pName->n >= maxLen) {
|
|
||||||
pName->n = maxLen - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
strncpy(pField->name, pName->z, pName->n);
|
// column name is too long, set the it to be invalid.
|
||||||
pField->name[pName->n] = 0;
|
if ((int32_t) pName->n >= maxLen) {
|
||||||
|
pName->n = -1;
|
||||||
|
} else {
|
||||||
|
strncpy(pField->name, pName->z, pName->n);
|
||||||
|
pField->name[pName->n] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
pField->type = pType->type;
|
pField->type = pType->type;
|
||||||
if(!isValidDataType(pField->type)){
|
if(!isValidDataType(pField->type)){
|
||||||
|
|
|
@ -88,10 +88,9 @@ class TDTestCase:
|
||||||
# TSIM:
|
# TSIM:
|
||||||
# TSIM: print =============== step4
|
# TSIM: print =============== step4
|
||||||
tdLog.info('=============== step4')
|
tdLog.info('=============== step4')
|
||||||
# TSIM: sql create table $tb (ts timestamp,
|
# TSIM: sql create table $tb (ts timestamp, a0123456789012345678901234567890123456789 int)
|
||||||
# a0123456789012345678901234567890123456789 int)
|
|
||||||
getMaxColNum = "grep -w '#define TSDB_COL_NAME_LEN' ../../src/inc/taosdef.h|awk '{print $3}'"
|
getMaxColNum = "grep -w '#define TSDB_COL_NAME_LEN' ../../src/inc/taosdef.h|awk '{print $3}'"
|
||||||
boundary = int(subprocess.check_output(getMaxColNum, shell=True))
|
boundary = int(subprocess.check_output(getMaxColNum, shell=True)) - 1
|
||||||
tdLog.info("get max column name length is %d" % boundary)
|
tdLog.info("get max column name length is %d" % boundary)
|
||||||
chars = string.ascii_uppercase + string.ascii_lowercase
|
chars = string.ascii_uppercase + string.ascii_lowercase
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ sql_error alter table mt1 change tag a 1
|
||||||
|
|
||||||
sql_error create table mtx1 (ts timestamp, c1 int) tags (123 int)
|
sql_error create table mtx1 (ts timestamp, c1 int) tags (123 int)
|
||||||
|
|
||||||
sql create table mt2 (ts timestamp, c1 int) tags (abc012345678901234567890123456789012345678901234567890123456789def int)
|
sql_error create table mt2 (ts timestamp, c1 int) tags (abc012345678901234567890123456789012345678901234567890123456789def int)
|
||||||
sql create table mt3 (ts timestamp, c1 int) tags (abc012345678901234567890123456789012345678901234567890123456789 int)
|
sql create table mt3 (ts timestamp, c1 int) tags (abc012345678901234567890123456789012345678901234567890123456789 int)
|
||||||
sql_error alter table mt3 change tag abc012345678901234567890123456789012345678901234567890123456789 abcdefg012345678901234567890123456789012345678901234567890123456789
|
sql_error alter table mt3 change tag abc012345678901234567890123456789012345678901234567890123456789 abcdefg012345678901234567890123456789012345678901234567890123456789
|
||||||
sql alter table mt3 change tag abc012345678901234567890123456789012345678901234567890123456789 abcdefg0123456789012345678901234567890123456789
|
sql alter table mt3 change tag abc012345678901234567890123456789012345678901234567890123456789 abcdefg0123456789012345678901234567890123456789
|
||||||
|
|
|
@ -114,7 +114,11 @@ sql_error create table $tb (ts timestamp, $tag int)
|
||||||
sql_error create table $tb (ts timestamp, $tags int)
|
sql_error create table $tb (ts timestamp, $tags int)
|
||||||
sql_error create table $tb (ts timestamp, $sint int)
|
sql_error create table $tb (ts timestamp, $sint int)
|
||||||
sql_error create table $tb (ts timestamp, $tint int)
|
sql_error create table $tb (ts timestamp, $tint int)
|
||||||
sql_error create table $tb (ts timestamp, $nchar int)
|
sql_error create table $tb (ts timestamp, $nchar int)
|
||||||
|
|
||||||
|
# too long column name
|
||||||
|
sql_error create table $tb (ts timestamp, abcde_123456789_123456789_123456789_123456789_123456789_123456789 int)
|
||||||
|
sql_error create table tx(ts timestamp, k int) tags(abcd5_123456789_123456789_123456789_123456789_123456789_123456789 int)
|
||||||
print illegal_column_names test passed
|
print illegal_column_names test passed
|
||||||
|
|
||||||
# case5: chinese_char_in_table_support
|
# case5: chinese_char_in_table_support
|
||||||
|
|
|
@ -119,4 +119,8 @@ if $rows != 4 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
print ================>td-4147
|
||||||
|
sql_error create table tx(ts timestamp, a1234_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789 int)
|
||||||
|
|
||||||
|
|
||||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||||
|
|
Loading…
Reference in New Issue