From 43ef4329f61f639d8ec96837da68a302592837c3 Mon Sep 17 00:00:00 2001 From: syj <904673462@qq.com> Date: Wed, 29 Sep 2021 19:20:04 +0800 Subject: [PATCH] Throw execption when setting deferrable on cstore pkey/unique constraint. --- src/gausskernel/optimizer/commands/tablecmds.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gausskernel/optimizer/commands/tablecmds.cpp b/src/gausskernel/optimizer/commands/tablecmds.cpp index b28830991..7af4d4573 100644 --- a/src/gausskernel/optimizer/commands/tablecmds.cpp +++ b/src/gausskernel/optimizer/commands/tablecmds.cpp @@ -9905,6 +9905,12 @@ static void ATExecAddIndex(AlteredTableInfo* tab, Relation rel, IndexStmt* stmt, Assert(IsA(stmt, IndexStmt)); Assert(!stmt->concurrent); + /* Primary key/Unique constraint on cstore does not support deferrable */ + if (RelationIsCUFormat(rel) && stmt->isconstraint && (stmt->deferrable || stmt->initdeferred)) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("column store unsupport DEFERRABLE/INITIALLY DEFERRED on primary key/unique constraint"))); + } + /* suppress schema rights check when rebuilding existing index */ check_rights = !is_rebuild; /* skip index build if phase 3 will do it or we're reusing an old one */