From 1e5ef8271a3a78dd30a88d1c0dd2b7a5184e0306 Mon Sep 17 00:00:00 2001 From: slzhou Date: Fri, 29 Mar 2024 10:52:28 +0800 Subject: [PATCH] feat: update column and drop column is banned for normal table pk column --- source/libs/parser/src/parTranslater.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 9fc9f28a6a..b08552fc3d 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -10832,6 +10832,14 @@ static int32_t rewriteAlterTableImpl(STranslateContext* pCxt, SAlterTableStmt* p return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_ALTER_TABLE); } + const SSchema* pSchema = getNormalColSchema(pTableMeta, pStmt->colName); + if (hasPkInTable(pTableMeta) && pSchema && (pSchema->flags & COL_IS_KEY) && + (TSDB_ALTER_TABLE_DROP_COLUMN == pStmt->alterType || + TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES == pStmt->alterType || + TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME == pStmt->alterType)) { + return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_PK_OP); + } + SVAlterTbReq req = {0}; int32_t code = buildAlterTbReq(pCxt, pStmt, pTableMeta, &req);