From 18da991aea43d803ed65f982b480089a23a5ec23 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Wed, 12 Feb 2025 16:14:12 +0530 Subject: [PATCH] feat: add a test and fail assignment expressions Signed-off-by: Manan Gupta --- go/vt/sqlparser/normalizer.go | 5 ++++- go/vt/vtgate/planbuilder/testdata/unsupported_cases.json | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/go/vt/sqlparser/normalizer.go b/go/vt/sqlparser/normalizer.go index dffb90d52b8..dbded43765a 100644 --- a/go/vt/sqlparser/normalizer.go +++ b/go/vt/sqlparser/normalizer.go @@ -157,7 +157,10 @@ func newNormalizer( // It handles normalization logic based on node types. func (nz *normalizer) walkDown(node, _ SQLNode) bool { switch node := node.(type) { - case *Begin, *Commit, *Rollback, *Savepoint, *SRollback, *Release, *OtherAdmin, *Analyze, *AssignmentExpr, + case *AssignmentExpr: + nz.err = vterrors.VT12001("Assignment expression") + return false + case *Begin, *Commit, *Rollback, *Savepoint, *SRollback, *Release, *OtherAdmin, *Analyze, *PrepareStmt, *ExecuteStmt, *FramePoint, *ColName, TableName, *ConvertType: // These statement don't need normalizing return false diff --git a/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json b/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json index 55329586b0e..e54050bce86 100644 --- a/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json +++ b/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json @@ -229,6 +229,11 @@ "query": "select @val := 42", "plan": "VT12001: unsupported: Assignment expression" }, + { + "comment": "Assignment expression in on duplicate clause", + "query": "insert into unsharded (id) values (@val := 42)", + "plan": "VT12001: unsupported: Assignment expression" + }, { "comment": "Assignment expression in union statements", "query": "select @val := 42 union select 1",