Skip to content

Commit 5f671c1

Browse files
committed
fix: expand EXPLAIN to support DDL/utility inner statements
EXPLAIN now accepts CREATE, ALTER, DROP, TRUNCATE, SHOW, SET, EXECUTE, CALL, DO, and parenthesized subqueries as inner statements, not just DML. Fixes 107+ PARTIAL results from CockroachDB test corpus.
1 parent dfbdc3d commit 5f671c1

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/sql_parser/parser.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,17 @@ ParseResult Parser<D>::parse_explain(bool is_describe) {
531531
next.type == TokenType::TK_INSERT ||
532532
next.type == TokenType::TK_UPDATE ||
533533
next.type == TokenType::TK_DELETE ||
534-
next.type == TokenType::TK_REPLACE);
534+
next.type == TokenType::TK_REPLACE ||
535+
next.type == TokenType::TK_CREATE ||
536+
next.type == TokenType::TK_ALTER ||
537+
next.type == TokenType::TK_DROP ||
538+
next.type == TokenType::TK_TRUNCATE ||
539+
next.type == TokenType::TK_SHOW ||
540+
next.type == TokenType::TK_SET ||
541+
next.type == TokenType::TK_EXECUTE ||
542+
next.type == TokenType::TK_CALL ||
543+
next.type == TokenType::TK_DO ||
544+
next.type == TokenType::TK_LPAREN);
535545

536546
if (is_inner_stmt) {
537547
// Parse inner statement recursively

0 commit comments

Comments
 (0)