Merge pull request #21221 from taosdata/szhou/fix-ts3374
fix: check varchar/nchar column length for alter normal table
This commit is contained in:
commit
7d1a6e0e40
|
@ -8265,6 +8265,11 @@ static int32_t buildAddColReq(STranslateContext* pCxt, SAlterTableStmt* pStmt, S
|
|||
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_DUPLICATED_COLUMN);
|
||||
}
|
||||
|
||||
if ((TSDB_DATA_TYPE_VARCHAR == pStmt->dataType.type && calcTypeBytes(pStmt->dataType) > TSDB_MAX_BINARY_LEN) ||
|
||||
(TSDB_DATA_TYPE_NCHAR == pStmt->dataType.type && calcTypeBytes(pStmt->dataType) > TSDB_MAX_NCHAR_LEN)) {
|
||||
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_VAR_COLUMN_LEN);
|
||||
}
|
||||
|
||||
if (TSDB_MAX_COLUMNS == pTableMeta->tableInfo.numOfColumns) {
|
||||
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_TOO_MANY_COLUMNS);
|
||||
}
|
||||
|
|
|
@ -657,6 +657,17 @@ if $data20 != null then
|
|||
return -1
|
||||
endi
|
||||
|
||||
print =============== error
|
||||
sql create table tb2023(ts timestamp, f int);
|
||||
sql_error alter table tb2023 add column v varchar(16375);
|
||||
sql_error alter table tb2023 add column v varchar(16385);
|
||||
sql_error alter table tb2023 add column v varchar(33100);
|
||||
sql alter table tb2023 add column v varchar(16374);
|
||||
sql desc tb2023
|
||||
sql alter table tb2023 drop column v
|
||||
sql_error alter table tb2023 add column v nchar(4094);
|
||||
sql alter table tb2023 add column v nchar(4093);
|
||||
sql desc tb2023
|
||||
print ======= over
|
||||
sql drop database d1
|
||||
sql select * from information_schema.ins_databases
|
||||
|
|
Loading…
Reference in New Issue