diff --git a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4 b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4 index 8774b57574b2d..3f0834c736b21 100644 --- a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4 +++ b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4 @@ -549,7 +549,7 @@ patternMatchingOperator ; cursorName - : name + : name | hostVariable ; aExpr @@ -1934,3 +1934,7 @@ ifExists booleanValue : TRUE | ON | FALSE | OFF | NUMBER_ ; + +hostVariable + : (COLON_)? identifier + ; diff --git a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4 b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4 index de2ad41bd01d0..d8e60f672a805 100644 --- a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4 +++ b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4 @@ -1790,21 +1790,32 @@ importQualificationType : LIMIT TO | EXCEPT ; - declare - : DECLARE cursorName cursorOptions CURSOR (WITH HOLD | WITHOUT HOLD)? FOR select + : DECLARE cursorName cursorOption CURSOR ((WITH | WITHOUT) HOLD)? FOR select ; -cursorOptions - : cursorOption* +cursorOption + : BINARY? (ASENSITIVE | INSENSITIVE)? (NO? SCROLL)? ; -cursorOption - : NO SCROLL - | SCROLL - | BINARY - | ASENSITIVE - | INSENSITIVE +open + : OPEN cursorName (usingValueClause | usingSqlDescriptorClause)? + ; + +usingValueClause + : USING value (COMMA_ value)* + ; + +value + : aexprConst | hostVariable + ; + +usingSqlDescriptorClause + : USING SQL DESCRIPTOR descriptorName + ; + +descriptorName + : identifier | hostVariable ; move diff --git a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4 b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4 index e4601808f049d..1177b2f5b4529 100644 --- a/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4 +++ b/parser/sql/dialect/postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4 @@ -1460,3 +1460,7 @@ NOBYPASSRLS ASENSITIVE : A S E N S I T I V E ; + +DESCRIPTOR + : D E S C R I P T O R + ; diff --git a/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4 b/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4 index cbd307fe4fba1..cd02b9e7361d9 100644 --- a/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4 +++ b/parser/sql/dialect/postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatementParser.g4 @@ -181,5 +181,6 @@ execute | alterTrigger | createPublication | emptyStatement + | open ) SEMI_? EOF ; diff --git a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java index b41878c289fa2..6ed93432cf3bc 100644 --- a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java +++ b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java @@ -56,6 +56,7 @@ import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.GroupByItemContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.GroupClauseContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.HavingClauseContext; +import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.HostVariableContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.IdentifierContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.InExprContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.IndexNameContext; @@ -1392,6 +1393,11 @@ public ASTNode visitName(final NameContext ctx) { return visit(ctx.identifier()); } + @Override + public ASTNode visitHostVariable(final HostVariableContext ctx) { + return visit(ctx.identifier()); + } + @Override public ASTNode visitSignedIconst(final SignedIconstContext ctx) { return new NumberLiteralValue(ctx.getText()); diff --git a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java index 9b1cc6670eab7..f6b54c6855872 100644 --- a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java +++ b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java @@ -159,6 +159,7 @@ import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.NameListContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.NextContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.NotifyStmtContext; +import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.OpenContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.PrepareContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.PriorContext; import org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.RefreshMatViewStmtContext; @@ -312,6 +313,7 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLListenStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLMoveStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLNotifyStmtStatement; +import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLOpenStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLPrepareStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLRefreshMatViewStmtStatement; import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLReindexStatement; @@ -1233,7 +1235,8 @@ public ASTNode visitClose(final CloseContext ctx) { @Override public ASTNode visitCursorName(final CursorNameContext ctx) { - return new CursorNameSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.name())); + return null != ctx.name() ? new CursorNameSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.name())) + : new CursorNameSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.hostVariable())); } @Override @@ -1438,4 +1441,11 @@ public ASTNode visitCreatePolicy(final CreatePolicyContext ctx) { public ASTNode visitCreatePublication(final CreatePublicationContext ctx) { return new PostgreSQLCreatePublicationStatement(); } + + @Override + public ASTNode visitOpen(final OpenContext ctx) { + PostgreSQLOpenStatement result = new PostgreSQLOpenStatement(); + result.setCursorName((CursorNameSegment) visit(ctx.cursorName())); + return result; + } } diff --git a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java index 9f1693db60a2f..387cfb862159b 100644 --- a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java +++ b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java @@ -711,7 +711,9 @@ public enum SQLVisitorRule { SPOOL("Spool", SQLStatementType.DAL), - START_REPLICA("StartReplica", SQLStatementType.RL); + START_REPLICA("StartReplica", SQLStatementType.RL), + + OPEN("Open", SQLStatementType.DDL); private final String name; diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/ddl/OpenStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/ddl/OpenStatement.java new file mode 100644 index 0000000000000..20800e6ab9919 --- /dev/null +++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/ddl/OpenStatement.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.sql.parser.sql.common.statement.ddl; + +import lombok.Getter; +import lombok.Setter; +import org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.cursor.CursorNameSegment; +import org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement; + +/** + * Open statement. + */ +@Getter +@Setter +public abstract class OpenStatement extends AbstractSQLStatement implements DDLStatement { + + private CursorNameSegment cursorName; +} diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/ddl/PostgreSQLOpenStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/ddl/PostgreSQLOpenStatement.java new file mode 100644 index 0000000000000..9b53b78320cce --- /dev/null +++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/postgresql/ddl/PostgreSQLOpenStatement.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl; + +import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.OpenStatement; +import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.PostgreSQLStatement; + +/** + * PostgreSQL open statement. + */ +public final class PostgreSQLOpenStatement extends OpenStatement implements PostgreSQLStatement { +} diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/DDLStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/DDLStatementAssert.java index b96179642dc31..afbc690ee5ffc 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/DDLStatementAssert.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/DDLStatementAssert.java @@ -40,6 +40,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.ListenStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.MoveStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.NotifyStmtStatement; +import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.OpenStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.RefreshMatViewStmtStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.ReindexStatement; import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.RenameTableStatement; @@ -84,6 +85,7 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.MoveStatementAssert; import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.NoAuditStatementAssert; import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.NotifyStmtStatementAssert; +import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.OpenStatementAssert; import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.RefreshMatViewStmtStatementAssert; import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.ReindexStatementAssert; import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl.RenameTableStatementAssert; @@ -120,6 +122,7 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.MoveStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.NoAuditStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.NotifyStmtStatementTestCase; +import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.OpenStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.RefreshMatViewStmtStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.ReindexStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.RenameTableStatementTestCase; @@ -212,6 +215,8 @@ public static void assertIs(final SQLCaseAssertContext assertContext, final DDLS CreateSequenceStatementAssert.assertIs(assertContext, (CreateSequenceStatement) actual, (CreateSequenceStatementTestCase) expected); } else if (actual instanceof SQLServerUpdateStatisticsStatement) { SQLServerUpdateStatisticsStatementAssert.assertIs(assertContext, (SQLServerUpdateStatisticsStatement) actual, (UpdateStatisticsStatementTestCase) expected); + } else if (actual instanceof OpenStatement) { + OpenStatementAssert.assertIs(assertContext, (OpenStatement) actual, (OpenStatementTestCase) expected); } } } diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/impl/OpenStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/impl/OpenStatementAssert.java new file mode 100644 index 0000000000000..31ea1c997977f --- /dev/null +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/ddl/impl/OpenStatementAssert.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ddl.impl; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.OpenStatement; +import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext; +import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.SQLSegmentAssert; +import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.identifier.IdentifierValueAssert; +import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.OpenStatementTestCase; + +/** + * Open statement assert. + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public final class OpenStatementAssert { + + /** + * Assert open statement is correct with expected parser result. + * + * @param assertContext assert context + * @param actual actual declare statement + * @param expected expected declare statement test case + */ + public static void assertIs(final SQLCaseAssertContext assertContext, final OpenStatement actual, final OpenStatementTestCase expected) { + assertCursorName(assertContext, actual, expected); + } + + private static void assertCursorName(final SQLCaseAssertContext assertContext, final OpenStatement actual, final OpenStatementTestCase expected) { + IdentifierValueAssert.assertIs(assertContext, actual.getCursorName().getIdentifier(), expected.getCursorName(), "Cursor"); + SQLSegmentAssert.assertIs(assertContext, actual.getCursorName(), expected.getCursorName()); + } +} diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java index 4b3e7ecb78ff5..17a8bc58e0050 100644 --- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java @@ -282,6 +282,7 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.MoveStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.NoAuditStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.NotifyStmtStatementTestCase; +import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.OpenStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.PreparedStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.PurgeStatementTestCase; import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl.RefreshMatViewStmtStatementTestCase; @@ -1757,6 +1758,9 @@ public final class RootSQLParserTestCases { @XmlElement(name = "create-outline") private final List createOutlineStatementTestCases = new LinkedList<>(); + @XmlElement(name = "open") + private final List openTestCases = new LinkedList<>(); + /** * Get all SQL parser test cases. * diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/OpenStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/OpenStatementTestCase.java new file mode 100644 index 0000000000000..e8dcb6fe7290b --- /dev/null +++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/ddl/OpenStatementTestCase.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.ddl; + +import lombok.Getter; +import lombok.Setter; +import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.cursor.ExpectedCursorName; +import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase; + +import javax.xml.bind.annotation.XmlElement; + +/** + * Open statement test case. + */ +@Getter +@Setter +public final class OpenStatementTestCase extends SQLParserTestCase { + + @XmlElement(name = "cursor-name") + private ExpectedCursorName cursorName; +} diff --git a/test/it/parser/src/main/resources/case/ddl/open.xml b/test/it/parser/src/main/resources/case/ddl/open.xml new file mode 100644 index 0000000000000..4cef3c63db04c --- /dev/null +++ b/test/it/parser/src/main/resources/case/ddl/open.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/open.xml b/test/it/parser/src/main/resources/sql/supported/ddl/open.xml new file mode 100644 index 0000000000000..67eaa60486941 --- /dev/null +++ b/test/it/parser/src/main/resources/sql/supported/ddl/open.xml @@ -0,0 +1,24 @@ + + + + + + + + +