You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/10/26 03:56:07 UTC
[shardingsphere] branch master updated: add table UT (#7872)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 49a6ca0 add table UT (#7872)
49a6ca0 is described below
commit 49a6ca05757603395b842050df1063e4d4fe0d4a
Author: JingShang Lu <lu...@apache.org>
AuthorDate: Mon Oct 26 11:55:39 2020 +0800
add table UT (#7872)
* add table UT
* delete commont
* fix
* delete redundant blank line
---
.../asserts/segment/table/TableAssert.java | 98 +-
.../statement/dml/impl/SelectStatementAssert.java | 10 +
.../segment/impl/ExpectedTableReference.java | 41 -
.../segment/impl/table/ExpectedJoinTable.java | 7 +-
.../{ExpectedTables.java => ExpectedTable.java} | 11 +-
.../segment/impl/table/ExpectedTableFactor.java | 43 -
.../ddl/CreateIndexStatementTestCase.java | 4 +-
.../statement/dml/SelectStatementTestCase.java | 13 +-
.../src/main/resources/case/ddl/create-index.xml | 76 +-
.../src/main/resources/case/dml/insert.xml | 88 +-
.../src/main/resources/case/dml/replace.xml | 37 +-
.../main/resources/case/dml/select-aggregate.xml | 100 +-
.../main/resources/case/dml/select-expression.xml | 40 +-
.../main/resources/case/dml/select-group-by.xml | 112 +-
.../src/main/resources/case/dml/select-join.xml | 49 +-
.../src/main/resources/case/dml/select-or.xml | 124 +-
.../main/resources/case/dml/select-order-by.xml | 128 +-
.../dml/select-pagination-group-by-order-by.xml | 1852 ++++++++++----------
.../main/resources/case/dml/select-pagination.xml | 1711 +++++++++---------
.../main/resources/case/dml/select-sub-query.xml | 129 +-
.../src/main/resources/case/dml/select.xml | 794 ++++-----
21 files changed, 2573 insertions(+), 2894 deletions(-)
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java
index 56ea5a8..08ba69e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java
@@ -21,6 +21,8 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.DeleteMultiTableSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SubqueryTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableSegment;
@@ -28,18 +30,19 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAs
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.SQLSegmentAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.schema.SchemaAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dml.impl.SelectStatementAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedTable;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTableOwner;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedJoinTable;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSubqueryTable;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedTables;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTableOwner;
import java.util.Collection;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
/**
* Table assert.
@@ -54,28 +57,20 @@ public final class TableAssert {
* @param actual actual tables
* @param expected expected tables
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final Collection<TableSegment> actual, final ExpectedTables expected) {
- assertThat(assertContext.getText("Tables size assertion error: "), actual.size(), is(expected.getSimpleTables().size() + expected.getSubqueryTables().size()));
- assertSimpleTableSegment(assertContext, actual, expected);
- assertSubqueryTableSegment(assertContext, actual, expected);
- }
-
- /**
- * Assert actual table segments is correct with expected tables.
- *
- * @param assertContext assert context
- * @param actual actual tables
- * @param expected expected tables
- */
- public static void assertIs(final SQLCaseAssertContext assertContext, final Collection<SimpleTableSegment> actual, final List<ExpectedSimpleTable> expected) {
- assertThat(assertContext.getText("Tables size assertion error: "), actual.size(), is(expected.size()));
- int count = 0;
- for (SimpleTableSegment each : actual) {
- assertIs(assertContext, each, expected.get(count));
- count++;
+ public static void assertIs(final SQLCaseAssertContext assertContext, final TableSegment actual, final ExpectedTable expected) {
+ if (actual instanceof JoinTableSegment) {
+ assertIs(assertContext, (JoinTableSegment) actual, expected.getJoinTable());
+ } else if (actual instanceof SimpleTableSegment) {
+ assertIs(assertContext, (SimpleTableSegment) actual, expected.getSimpleTable());
+ } else if (actual instanceof SubqueryTableSegment) {
+ assertIs(assertContext, (SubqueryTableSegment) actual, expected.getSubqueryTable());
+ } else if (actual instanceof DeleteMultiTableSegment) {
+ return;
+ } else {
+ return;
}
}
-
+
/**
* Assert actual table segment is correct with expected table.
*
@@ -98,7 +93,7 @@ public final class TableAssert {
assertThat(assertContext.getText("Table end delimiter assertion error: "), actual.getTableName().getIdentifier().getQuoteCharacter().getEndDelimiter(), is(expected.getEndDelimiter()));
SQLSegmentAssert.assertIs(assertContext, actual, expected);
}
-
+
/**
* Assert subquery expression.
*
@@ -109,10 +104,36 @@ public final class TableAssert {
public static void assertIs(final SQLCaseAssertContext assertContext, final SubqueryTableSegment actual, final ExpectedSubqueryTable expected) {
SelectStatementAssert.assertIs(assertContext, actual.getSubquery().getSelect(), expected.getSubquery().getSelectTestCases());
assertThat(assertContext.getText("Table alias assertion error: "), actual.getAlias().orElse(null), is(expected.getAlias()));
- // TODO assert start index, stop index and sub select statement.
- // SQLSegmentAssert.assertIs(assertContext, actual, expected);
}
-
+
+ /**
+ * Assert join table.
+ *
+ * @param assertContext assert context
+ * @param actual actual JoinTableSegment
+ * @param expected expected ExpectedJoinTable
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext, final JoinTableSegment actual, final ExpectedJoinTable expected) {
+ TableAssert.assertIs(assertContext, actual.getLeft(), expected.getLeft());
+ TableAssert.assertIs(assertContext, actual.getRight(), expected.getRight());
+ }
+
+ /**
+ * Assert actual table segments is correct with expected tables.
+ *
+ * @param assertContext assert context
+ * @param actual actual tables
+ * @param expected expected tables
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext, final Collection<SimpleTableSegment> actual, final List<ExpectedSimpleTable> expected) {
+ assertThat(assertContext.getText("Tables size assertion error: "), actual.size(), is(expected.size()));
+ int count = 0;
+ for (SimpleTableSegment each : actual) {
+ assertIs(assertContext, each, expected.get(count));
+ count++;
+ }
+ }
+
/**
* Assert actual table segment is correct with expected table owner.
*
@@ -122,29 +143,10 @@ public final class TableAssert {
*/
public static void assertOwner(final SQLCaseAssertContext assertContext, final SimpleTableSegment actual, final ExpectedSimpleTableOwner expected) {
assertThat(assertContext.getText("Owner name assertion error: "), actual.getTableName().getIdentifier().getValue(), is(expected.getName()));
- assertThat(assertContext.getText("Owner name start delimiter assertion error: "),
+ assertThat(assertContext.getText("Owner name start delimiter assertion error: "),
actual.getTableName().getIdentifier().getQuoteCharacter().getStartDelimiter(), is(expected.getStartDelimiter()));
assertThat(assertContext.getText("Owner name end delimiter assertion error: "), actual.getTableName().getIdentifier().getQuoteCharacter().getEndDelimiter(), is(expected.getEndDelimiter()));
SQLSegmentAssert.assertIs(assertContext, actual, expected);
}
-
- private static void assertSimpleTableSegment(final SQLCaseAssertContext assertContext, final Collection<TableSegment> actual, final ExpectedTables expected) {
- int count = 0;
- for (TableSegment each : actual) {
- if (each instanceof SimpleTableSegment) {
- assertIs(assertContext, (SimpleTableSegment) each, expected.getSimpleTables().get(count));
- }
- count++;
- }
- }
-
- private static void assertSubqueryTableSegment(final SQLCaseAssertContext assertContext, final Collection<TableSegment> actual, final ExpectedTables expected) {
- int count = 0;
- for (TableSegment each : actual) {
- if (each instanceof SubqueryTableSegment) {
- assertIs(assertContext, (SubqueryTableSegment) each, expected.getSubqueryTables().get(count));
- }
- count++;
- }
- }
+
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java
index 5404f3b..fb75b8e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java
@@ -28,6 +28,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.g
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.limit.LimitClauseAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.orderby.OrderByClauseAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.projection.ProjectionAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.table.TableAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.where.WhereClauseAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.SelectStatementTestCase;
@@ -55,12 +56,21 @@ public final class SelectStatementAssert {
assertGroupByClause(assertContext, actual, expected);
assertOrderByClause(assertContext, actual, expected);
assertLimitClause(assertContext, actual, expected);
+ assertTable(assertContext, actual, expected);
// TODO support table assert
}
private static void assertProjection(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
ProjectionAssert.assertIs(assertContext, actual.getProjections(), expected.getProjections());
}
+
+ private static void assertTable(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
+ if (null != expected.getFrom()) {
+ TableAssert.assertIs(assertContext, actual.getFrom(), expected.getFrom());
+ } else {
+ assertFalse(assertContext.getText("Actual from should not exist."), null != actual.getFrom());
+ }
+ }
private static void assertWhereClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
if (null != expected.getWhereClause()) {
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/ExpectedTableReference.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/ExpectedTableReference.java
deleted file mode 100644
index c47d0df..0000000
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/ExpectedTableReference.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.sql.parser.parameterized.jaxb.cases.domain.segment.impl;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedDelimiterSQLSegment;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedJoinTable;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedTableFactor;
-
-import javax.xml.bind.annotation.XmlElement;
-import java.util.Collection;
-
-/**
- * Expected TableReference.
- */
-@Getter
-@Setter
-public final class ExpectedTableReference extends AbstractExpectedDelimiterSQLSegment {
-
- @XmlElement(name = "table-factor")
- private ExpectedTableFactor tableFactor;
-
- @XmlElement(name = "join-table")
- private Collection<ExpectedJoinTable> joinTables;
-}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedJoinTable.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedJoinTable.java
index b3b80ce..761cce4 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedJoinTable.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedJoinTable.java
@@ -31,8 +31,11 @@ import javax.xml.bind.annotation.XmlElement;
@Setter
public final class ExpectedJoinTable extends AbstractExpectedDelimiterSQLSegment {
- @XmlElement(name = "table-factor")
- private ExpectedTableFactor tableFactor;
+ @XmlElement(name = "left")
+ private ExpectedTable left;
+
+ @XmlElement(name = "right")
+ private ExpectedTable right;
@XmlElement
private ExpectedJoinSpecification joinSpecification;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTables.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTable.java
similarity index 81%
rename from shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTables.java
rename to shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTable.java
index 5f4d4e5..6b7c93f 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTables.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTable.java
@@ -22,19 +22,20 @@ import lombok.Setter;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedDelimiterSQLSegment;
import javax.xml.bind.annotation.XmlElement;
-import java.util.LinkedList;
-import java.util.List;
/**
* Expected tables.
*/
@Getter
@Setter
-public final class ExpectedTables extends AbstractExpectedDelimiterSQLSegment {
+public final class ExpectedTable extends AbstractExpectedDelimiterSQLSegment {
@XmlElement(name = "simple-table")
- private final List<ExpectedSimpleTable> simpleTables = new LinkedList<>();
+ private ExpectedSimpleTable simpleTable;
@XmlElement(name = "subquery-table")
- private final List<ExpectedSubqueryTable> subqueryTables = new LinkedList<>();
+ private ExpectedSubqueryTable subqueryTable;
+
+ @XmlElement(name = "join-table")
+ private ExpectedJoinTable joinTable;
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTableFactor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTableFactor.java
deleted file mode 100644
index cecc170..0000000
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/table/ExpectedTableFactor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedDelimiterSQLSegment;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.ExpectedTableReference;
-
-import javax.xml.bind.annotation.XmlElement;
-import java.util.Collection;
-
-/**
- * Expected TableFactor.
- */
-@Getter
-@Setter
-public final class ExpectedTableFactor extends AbstractExpectedDelimiterSQLSegment {
-
- @XmlElement
- private ExpectedSimpleTable table;
-
- @XmlElement
- private ExpectedSubqueryTable subqueryTable;
-
- @XmlElement(name = "table-reference")
- private Collection<ExpectedTableReference> expectedTableReferences;
-}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CreateIndexStatementTestCase.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CreateIndexStatementTestCase.java
index 4db247b..ed08842 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CreateIndexStatementTestCase.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CreateIndexStatementTestCase.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndex;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedTable;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
@@ -36,5 +36,5 @@ public final class CreateIndexStatementTestCase extends SQLParserTestCase {
private ExpectedIndex index;
@XmlElement
- private ExpectedSimpleTable table;
+ private ExpectedTable table;
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dml/SelectStatementTestCase.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dml/SelectStatementTestCase.java
index 26c3e51..cc5822a 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dml/SelectStatementTestCase.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dml/SelectStatementTestCase.java
@@ -19,17 +19,15 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
import lombok.Getter;
import lombok.Setter;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.ExpectedTableReference;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.limit.ExpectedLimitClause;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.orderby.ExpectedOrderByClause;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.predicate.ExpectedWhereClause;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.projection.ExpectedProjections;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedTables;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedTable;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
-import java.util.List;
/**
* Select statement test case.
@@ -41,12 +39,9 @@ public final class SelectStatementTestCase extends SQLParserTestCase {
@XmlAttribute(name = "lock-clause")
private boolean lockClause;
- @XmlElement(name = "table-reference")
- private List<ExpectedTableReference> tableReferences;
-
- @XmlElement(name = "tables")
- private final ExpectedTables tables = new ExpectedTables();
-
+ @XmlElement(name = "from")
+ private ExpectedTable from;
+
@XmlElement(name = "projections")
private final ExpectedProjections projections = new ExpectedProjections();
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/ddl/create-index.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/ddl/create-index.xml
index 66c932a..005f1db 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/ddl/create-index.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/ddl/create-index.xml
@@ -18,79 +18,117 @@
<sql-parser-test-cases>
<create-index sql-case-id="create_index">
- <table name="t_log" start-index="28" stop-index="32" />
+ <table>
+ <simple-table name="t_log" start-index="28" stop-index="32" />
+ </table>
</create-index>
<create-index sql-case-id="create_unique_index">
- <table name="t_log" start-index="35" stop-index="39" />
+ <table>
+ <simple-table name="t_log" start-index="35" stop-index="39" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_space">
- <table name="t_order" start-index="52" stop-index="58" />
+ <table>
+ <simple-table name="t_order" start-index="52" stop-index="58" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_back_quota">
- <table name="t_order" start-delimiter="`" end-delimiter="`" start-index="30" stop-index="38" />
+ <table>
+ <simple-table name="t_order" start-delimiter="`" end-delimiter="`" start-index="30" stop-index="38" />
+ </table>
</create-index>
<create-index sql-case-id="create_composite_index">
- <table name="t_order" start-index="28" stop-index="34" />
+ <table>
+ <simple-table name="t_order" start-index="28" stop-index="34" />
+ </table>
</create-index>
<create-index sql-case-id="create_btree_index">
- <table name="t_order" start-index="28" stop-index="34" />
+ <table>
+ <simple-table name="t_order" start-index="28" stop-index="34" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_quota">
- <table name="t_order" start-delimiter=""" end-delimiter=""" start-index="30" stop-index="38" />
+ <table>
+ <simple-table name="t_order" start-delimiter=""" end-delimiter=""" start-index="30" stop-index="38" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_function">
- <table name="t_order" start-index="33" stop-index="39" />
+ <table>
+ <simple-table name="t_order" start-index="33" stop-index="39" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_double_quota">
- <table name="t_order" start-delimiter=""" end-delimiter=""" start-index="30" stop-index="38" />
+ <table>
+ <simple-table name="t_order" start-delimiter=""" end-delimiter=""" start-index="30" stop-index="38" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_double_quota_and_uescape">
<!-- FIXME table index error -->
- <table name="u&t_order" start-index="58" stop-index="68" />
+ <table>
+ <simple-table name="u&t_order" start-index="58" stop-index="68" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_concurrently">
- <table name="t_order" start-index="41" stop-index="47" />
+ <table>
+ <simple-table name="t_order" start-index="41" stop-index="47" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_if_not_exists">
- <table name="t_order" start-index="42" stop-index="48" />
+ <table>
+ <simple-table name="t_order" start-index="42" stop-index="48" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_using_btree">
- <table name="t_order" start-index="28" stop-index="34" />
+ <table>
+ <simple-table name="t_order" start-index="28" stop-index="34" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_bracket">
- <table name="t_order" start-delimiter="[" end-delimiter="]" start-index="30" stop-index="38" />
+ <table>
+ <simple-table name="t_order" start-delimiter="[" end-delimiter="]" start-index="30" stop-index="38" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_no_default_fill_factor">
- <table name="t_order" start-index="35" stop-index="41" />
+ <table>
+ <simple-table name="t_order" start-index="35" stop-index="41" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_tablespace">
- <table name="t_order" start-index="25" stop-index="31" />
+ <table>
+ <simple-table name="t_order" start-index="25" stop-index="31" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_using_gist">
- <table name="t_order" start-index="25" stop-index="31" />
+ <table>
+ <simple-table name="t_order" start-index="25" stop-index="31" />
+ </table>
</create-index>
<create-index sql-case-id="create_index_with_concurrently">
- <table name="t_order" start-index="50" stop-index="56" />
+ <table>
+ <simple-table name="t_order" start-index="50" stop-index="56" />
+ </table>
</create-index>
<create-index sql-case-id="create_gin_index">
- <table name="t_order" start-index="24" stop-index="30" />
+ <table>
+ <simple-table name="t_order" start-index="24" stop-index="30" />
+ </table>
</create-index>
</sql-parser-test-cases>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/insert.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/insert.xml
index 664392a..318bbc3 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/insert.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/insert.xml
@@ -1157,11 +1157,9 @@
<column name="status" start-index="40" stop-index="45" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="86" stop-index="92" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="86" stop-index="92" />
+ </from>
<projections start-index="55" stop-index="79">
<column-projection name="order_id" start-index="55" stop-index="62" />
<column-projection name="user_id" start-index="65" stop-index="71" />
@@ -1186,11 +1184,9 @@
<table name="t_order" start-index="12" stop-index="18" />
<columns start-index="19" stop-index="19" />
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="58" stop-index="64" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="58" stop-index="64" />
+ </from>
<projections start-index="27" stop-index="51">
<column-projection name="order_id" start-index="27" stop-index="34" />
<column-projection name="user_id" start-index="37" stop-index="43" />
@@ -1221,11 +1217,9 @@
<column name="creation_date" start-index="61" stop-index="73" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="139" stop-index="150" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="139" stop-index="150" />
+ </from>
<projections start-index="83" stop-index="132">
<column-projection name="item_id" start-index="83" stop-index="89" />
<column-projection name="order_id" start-index="92" stop-index="99" />
@@ -1257,11 +1251,9 @@
<column name="creation_date" start-index="52" stop-index="64" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="121" stop-index="132" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="121" stop-index="132" />
+ </from>
<projections start-index="74" stop-index="114">
<column-projection name="order_id" start-index="74" stop-index="81" />
<column-projection name="user_id" start-index="84" stop-index="90" />
@@ -1291,11 +1283,9 @@
<column name="status" start-index="39" stop-index="44" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="85" stop-index="91" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="85" stop-index="91" />
+ </from>
<projections start-index="54" stop-index="78">
<column-projection name="order_id" start-index="54" stop-index="61" />
<column-projection name="user_id" start-index="64" stop-index="70" />
@@ -1362,11 +1352,9 @@
</columns>
<subquery-expression>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="63" stop-index="69" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="63" stop-index="69" />
+ </from>
<projections start-index="40" stop-index="56">
<column-projection name="order_id" start-index="40" stop-index="47" />
<column-projection name="user_id" start-index="50" stop-index="56" />
@@ -1381,11 +1369,9 @@
<column name="user_id" start-index="103" stop-index="109"/>
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="cte" start-index="142" stop-index="144" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="cte" start-index="142" stop-index="144" />
+ </from>
<projections start-index="119" stop-index="135">
<column-projection name="order_id" start-index="119" stop-index="126" />
<column-projection name="user_id" start-index="129" stop-index="135" />
@@ -1398,11 +1384,9 @@
<common-table-expression name="cte" start-index="5" stop-index="50">
<subquery-expression>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="43" stop-index="49" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="43" stop-index="49" />
+ </from>
<projections start-index="20" stop-index="36">
<column-projection name="order_id" start-index="20" stop-index="27" />
<column-projection name="user_id" start-index="30" stop-index="36" />
@@ -1417,11 +1401,9 @@
<column name="user_id" start-index="83" stop-index="89"/>
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="cte" start-index="122" stop-index="124" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="cte" start-index="122" stop-index="124" />
+ </from>
<projections start-index="99" stop-index="115">
<column-projection name="order_id" start-index="99" stop-index="106" />
<column-projection name="user_id" start-index="109" stop-index="115" />
@@ -1475,11 +1457,9 @@
<column name="user_id" start-index="34" stop-index="40" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="73" stop-index="79" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="73" stop-index="79" />
+ </from>
<projections start-index="50" stop-index="66">
<column-projection name="order_id" start-index="50" stop-index="57" />
<column-projection name="user_id" start-index="60" stop-index="66" />
@@ -1494,11 +1474,9 @@
<column name="user_id" start-index="42" stop-index="48" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="81" stop-index="87" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="81" stop-index="87" />
+ </from>
<projections start-index="58" stop-index="74">
<column-projection name="order_id" start-index="58" stop-index="65" />
<column-projection name="user_id" start-index="68" stop-index="74" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/replace.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/replace.xml
index b872312..3e5904e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/replace.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/replace.xml
@@ -841,11 +841,9 @@
<column name="status" start-index="41" stop-index="46" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="87" stop-index="93" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="87" stop-index="93" />
+ </from>
<projections start-index="56" stop-index="80">
<column-projection name="order_id" start-index="56" stop-index="63" />
<column-projection name="user_id" start-index="66" stop-index="72" />
@@ -870,11 +868,9 @@
<table name="t_order" start-index="13" stop-index="19" />
<columns start-index="20" stop-index="20" />
<select>
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="59" stop-index="65" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="59" stop-index="65" />
+ </from>
<projections start-index="28" stop-index="52">
<column-projection name="order_id" start-index="28" stop-index="35" />
<column-projection name="user_id" start-index="38" stop-index="44" />
@@ -905,11 +901,14 @@
<column name="creation_date" start-index="62" stop-index="74" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="140" stop-index="151" />
- </table-factor>
- </table-reference>
+<!-- <table-reference>-->
+<!-- <table-factor>-->
+<!-- <table name="t_order_item" start-index="140" stop-index="151" />-->
+<!-- </table-factor>-->
+<!-- </table-reference>-->
+ <from>
+ <simple-table name="t_order_item" start-index="140" stop-index="151" />
+ </from>
<projections start-index="84" stop-index="133">
<column-projection name="item_id" start-index="84" stop-index="90" />
<column-projection name="order_id" start-index="93" stop-index="100" />
@@ -941,11 +940,9 @@
<column name="creation_date" start-index="53" stop-index="65" />
</columns>
<select>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="122" stop-index="133" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="122" stop-index="133" />
+ </from>
<projections start-index="75" stop-index="115">
<column-projection name="order_id" start-index="75" stop-index="82" />
<column-projection name="user_id" start-index="85" stop-index="91" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-aggregate.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-aggregate.xml
index a64249a..0a2beb2 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-aggregate.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-aggregate.xml
@@ -18,33 +18,27 @@
<sql-parser-test-cases>
<select sql-case-id="select_sum">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="40" stop-index="46" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="40" stop-index="46" />
+ </from>
<projections start-index="7" stop-index="33">
<aggregation-projection type="SUM" inner-expression="(user_id)" alias="user_id_sum" start-index="7" stop-index="18" />
</projections>
</select>
<select sql-case-id="select_count">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="37" stop-index="43" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="37" stop-index="43" />
+ </from>
<projections start-index="7" stop-index="30">
<aggregation-projection type="COUNT" alias="orders_count" inner-expression="(*)" start-index="7" stop-index="14" />
</projections>
</select>
<select sql-case-id="select_count_with_sub">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="37" stop-index="43" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="37" stop-index="43" />
+ </from>
<projections start-index="7" stop-index="30">
<aggregation-projection type="COUNT" alias="orders_count" inner-expression="(*)" start-index="7" stop-index="14" />
</projections>
@@ -62,11 +56,9 @@
</select>
<select sql-case-id="select_count_with_sub_with_whitespace">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="37" stop-index="43" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="37" stop-index="43" />
+ </from>
<projections start-index="7" stop-index="30">
<aggregation-projection type="COUNT" alias="orders_count" inner-expression="(*)" start-index="7" stop-index="14" />
</projections>
@@ -84,49 +76,43 @@
</select>
<select sql-case-id="select_max">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="40" stop-index="46" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="40" stop-index="46" />
+ </from>
<projections start-index="7" stop-index="33">
<aggregation-projection type="MAX" inner-expression="(user_id)" alias="max_user_id" start-index="7" stop-index="18" />
</projections>
</select>
<select sql-case-id="select_min">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="40" stop-index="46" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="40" stop-index="46" />
+ </from>
<projections start-index="7" stop-index="33">
<aggregation-projection type="MIN" inner-expression="(user_id)" alias="min_user_id" start-index="7" stop-index="18" />
</projections>
</select>
<select sql-case-id="select_avg">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="40" stop-index="46" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="40" stop-index="46" />
+ </from>
<projections start-index="7" stop-index="33">
<aggregation-projection type="AVG" inner-expression="(user_id)" alias="user_id_avg" start-index="7" stop-index="18" />
</projections>
</select>
<select sql-case-id="select_count_with_binding_tables_without_join" parameters="1, 2, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="36" stop-index="44" />
- </table-factor>
- </table-reference>
- <table-reference>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="47" stop-index="60" />
- </table-factor>
- </table-reference>
+ <from>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="36" stop-index="44" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="47" stop-index="60" />
+ </right>
+ </join-table>
+ </from>
<projections start-index="7" stop-index="29">
<aggregation-projection type="COUNT" inner-expression="(*)" alias="items_count" start-index="7" stop-index="14" />
</projections>
@@ -175,14 +161,14 @@
</select>
<select sql-case-id="select_count_with_binding_tables_with_join" parameters="1, 2, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="36" stop-index="44" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="51" stop-index="64" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="36" stop-index="44" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="51" stop-index="64" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="69" stop-index="89">
@@ -204,7 +190,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="29">
<aggregation-projection type="COUNT" inner-expression="(*)" alias="items_count" start-index="7" stop-index="14" />
</projections>
@@ -237,11 +223,9 @@
</select>
<select sql-case-id="select_count_with_escape_character">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="46" stop-index="52" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="46" stop-index="52" />
+ </from>
<projections start-index="7" stop-index="39">
<aggregation-projection type="COUNT" inner-expression="(`order_id`)" alias="orders_count" start-index="7" stop-index="23" />
</projections>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-expression.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-expression.xml
index 02ec64e..a6e596d 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-expression.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-expression.xml
@@ -18,11 +18,9 @@
<sql-parser-test-cases>
<select sql-case-id="select_with_expression">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="38" stop-index="49" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="38" stop-index="49" />
+ </from>
<projections start-index="7" stop-index="31">
<!-- TODO check expression-projection's stop-index whether include alias -->
<expression-projection alias="exp" start-index="7" stop-index="31" />
@@ -35,11 +33,9 @@
</select>
<select sql-case-id="select_with_date_function">
- <table-reference>
- <table-factor>
- <table name="t_order_item" alias="i" start-delimiter="`" end-delimiter="`" start-index="51" stop-index="69" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" alias="i" start-delimiter="`" end-delimiter="`" start-index="51" stop-index="69" />
+ </from>
<projections start-index="7" stop-index="44">
<expression-projection alias="creation_date" start-index="7" stop-index="44" />
</projections>
@@ -49,11 +45,9 @@
</select>
<select sql-case-id="select_with_regexp" parameters="'init', 1, 2">
- <table-reference>
- <table-factor>
- <table name="t_order_item" alias="t" start-index="14" stop-index="27" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" alias="t" start-index="14" stop-index="27" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -90,14 +84,14 @@
</column-projection>
<expression-projection start-index="33" stop-index="124" alias="stateName" />
</projections>
- <table-reference>
- <table-factor>
- <table start-index="135" stop-index="143" name="t_order" alias="t" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table start-index="155" stop-index="171" name="t_order_item" alias="o" />
- </table-factor>
+ <left>
+ <simple-table start-index="135" stop-index="143" name="t_order" alias="t" />
+ </left>
+ <right>
+ <simple-table start-index="155" stop-index="171" name="t_order_item" alias="o" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="176" stop-index="197">
@@ -111,7 +105,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<where start-index="198" stop-index="219">
<and-predicate>
<predicate start-index="205" stop-index="219" >
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-group-by.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-group-by.xml
index a974e7e..9fb6899 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-group-by.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-group-by.xml
@@ -18,11 +18,9 @@
<sql-parser-test-cases>
<select sql-case-id="select_group_by_with_sum">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<aggregation-projection type="SUM" alias="orders_sum" inner-expression="(order_id)" start-index="7" stop-index="19" />
<column-projection name="user_id" start-index="36" stop-index="42" />
@@ -36,11 +34,9 @@
</select>
<select sql-case-id="select_group_by_with_count">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="53" stop-index="59" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="53" stop-index="59" />
+ </from>
<projections start-index="7" stop-index="46">
<aggregation-projection type="COUNT" alias="orders_count" inner-expression="(order_id)" start-index="7" stop-index="21" />
<column-projection name="user_id" start-index="40" stop-index="46" />
@@ -54,11 +50,9 @@
</select>
<select sql-case-id="select_group_by_with_max">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="51" stop-index="57" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="51" stop-index="57" />
+ </from>
<projections start-index="7" stop-index="44">
<aggregation-projection type="MAX" alias="max_order_id" inner-expression="(order_id)" start-index="7" stop-index="19" />
<column-projection name="user_id" start-index="38" stop-index="44" />
@@ -72,11 +66,9 @@
</select>
<select sql-case-id="select_group_by_with_min">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="51" stop-index="57" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="51" stop-index="57" />
+ </from>
<projections start-index="7" stop-index="44">
<aggregation-projection type="MIN" alias="min_order_id" inner-expression="(order_id)" start-index="7" stop-index="19" />
<column-projection name="user_id" start-index="38" stop-index="44" />
@@ -90,11 +82,9 @@
</select>
<select sql-case-id="select_group_by_with_avg">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<aggregation-projection type="AVG" alias="orders_avg" inner-expression="(order_id)" start-index="7" stop-index="19" />
<column-projection name="user_id" start-index="36" stop-index="42" />
@@ -108,11 +98,9 @@
</select>
<select sql-case-id="select_group_by_with_order_by_desc">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<aggregation-projection type="SUM" inner-expression="(order_id)" alias="orders_sum" start-index="7" stop-index="19" />
<column-projection name="user_id" start-index="36" stop-index="42" />
@@ -126,14 +114,14 @@
</select>
<select sql-case-id="select_group_by_without_grouped_column" parameters="1, 2, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="36" stop-index="44" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="51" stop-index="64"/>
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="36" stop-index="44" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="51" stop-index="64"/>
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="69" stop-index="89">
@@ -155,7 +143,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="29">
<aggregation-projection type="COUNT" inner-expression="(*)" alias="items_count" start-index="7" stop-index="14" />
</projections>
@@ -193,11 +181,9 @@
</select>
<select sql-case-id="select_group_by_with_limit" parameters="5">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="20" stop-index="26" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="20" stop-index="26" />
+ </from>
<projections start-index="7" stop-index="13">
<column-projection name="user_id" start-index="7" stop-index="13" />
</projections>
@@ -213,11 +199,9 @@
</select>
<select sql-case-id="select_group_by_with_order_by_and_limit" parameters="5">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<column-projection name="user_id" start-index="7" stop-index="13" />
<aggregation-projection type="SUM" inner-expression="(order_id)" alias="orders_sum" start-index="16" stop-index="28" />
@@ -234,11 +218,9 @@
</select>
<select sql-case-id="select_with_item_alias_match_order_by_and_group_by_items">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="26" stop-index="34" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="26" stop-index="34" />
+ </from>
<projections start-index="7" stop-index="19">
<column-projection name="user_id" alias="uid" start-index="7" stop-index="15">
<owner name="o" start-index="7" stop-index="7" />
@@ -257,11 +239,9 @@
</select>
<select sql-case-id="select_group_by_with_date_function" parameters="1000, 1100">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-delimiter="`" end-delimiter="`" start-index="91" stop-index="104" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-delimiter="`" end-delimiter="`" start-index="91" stop-index="104" />
+ </from>
<projections start-index="7" stop-index="84">
<expression-projection alias="creation_date" start-index="7" stop-index="62" />
<aggregation-projection type="COUNT" inner-expression="(*)" alias="c_number" start-index="65" stop-index="72" />
@@ -285,11 +265,9 @@
</select>
<select sql-case-id="select_group_by_with_keyword_alias">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="58" stop-index="64" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="58" stop-index="64" />
+ </from>
<projections start-index="7" stop-index="51">
<aggregation-projection type="SUM" inner-expression="(order_id)" alias="orders_sum" start-index="7" stop-index="19" />
<column-projection name="user_id" alias="key" start-index="36" stop-index="42" />
@@ -300,11 +278,9 @@
</select>
<select sql-case-id="select_group_by_with_count_without_column_name">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="53" stop-index="59" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="53" stop-index="59" />
+ </from>
<projections start-index="7" stop-index="46">
<aggregation-projection inner-expression="(order_id)" type="COUNT" alias="orders_count" start-index="7" stop-index="21" />
<column-projection name="user_id" start-index="40" stop-index="46" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-join.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-join.xml
index 879829c..ca7e641 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-join.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-join.xml
@@ -18,14 +18,14 @@
<sql-parser-test-cases>
<select sql-case-id="select_inner_join_related_with_alias" parameters="1000">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="37" stop-index="50" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="37" stop-index="50" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="55" stop-index="77">
@@ -39,7 +39,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -62,14 +62,14 @@
</select>
<select sql-case-id="select_inner_join_related_with_name" parameters="1000">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="27" stop-index="33" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" start-index="40" stop-index="51" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" start-index="27" stop-index="33" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" start-index="40" stop-index="51" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="56" stop-index="95">
@@ -83,7 +83,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="20">
<shorthand-projection start-index="7" stop-index="20">
<owner name="t_order_item" start-index="7" stop-index="18" />
@@ -106,17 +106,16 @@
</select>
<select sql-case-id="select_join_using" parameters="1000">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
- <joinSpecification />
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-or.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-or.xml
index 9c34067..1a7454e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-or.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-or.xml
@@ -18,11 +18,9 @@
<sql-parser-test-cases>
<select sql-case-id="select_or_with_same_sharding_columns" parameters="1, 2">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -51,11 +49,9 @@
</select>
<select sql-case-id="select_or_with_different_sharding_columns" parameters="1, 2">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -84,11 +80,9 @@
</select>
<select sql-case-id="select_or_with_none_sharding_columns" parameters="1, 'init'">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -117,11 +111,9 @@
</select>
<select sql-case-id="select_or_mix_and_for_simple_pattern" parameters="1, 'init', 3">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -166,11 +158,9 @@
</select>
<select sql-case-id="select_or_mix_and_for_complex_pattern" parameters="'init', 1, 2, 3, 4">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -283,14 +273,14 @@
</select>
<select sql-case-id="select_or_mix_and_with_binding_tables" parameters="1, 2, 3">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -312,7 +302,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -367,39 +357,41 @@
</select>
<select sql-case-id="select_or_mix_and_with_binding_and_broadcast_tables" parameters="1, 2, 3, 'init'">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="49" stop-index="69">
- <column-left-value name="user_id" start-index="49" stop-index="57">
- <owner name="o" start-index="49" stop-index="49" />
- </column-left-value>
- <column-right-value name="user_id" start-index="61" stop-index="69">
- <owner name="i" start-index="61" stop-index="61" />
- </column-right-value>
- </predicate>
- <predicate start-index="75" stop-index="97">
- <column-left-value name="order_id" start-index="75" stop-index="84">
- <owner name="o" start-index="75" stop-index="75" />
- </column-left-value>
- <column-right-value name="order_id" start-index="88" stop-index="97">
- <owner name="i" start-index="88" stop-index="88" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- <join-table>
- <table-factor>
- <table name="t_broadcast_table" alias="c" start-index="104" stop-index="122" />
- </table-factor>
+ <left>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="49" stop-index="69">
+ <column-left-value name="user_id" start-index="49" stop-index="57">
+ <owner name="o" start-index="49" stop-index="49" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="61" stop-index="69">
+ <owner name="i" start-index="61" stop-index="61" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="75" stop-index="97">
+ <column-left-value name="order_id" start-index="75" stop-index="84">
+ <owner name="o" start-index="75" stop-index="75" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="88" stop-index="97">
+ <owner name="i" start-index="88" stop-index="88" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </left>
+ <right>
+ <simple-table name="t_broadcast_table" alias="c" start-index="104" stop-index="122" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="127" stop-index="145">
@@ -413,7 +405,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-order-by.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-order-by.xml
index 25e6994..e7ef615 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-order-by.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-order-by.xml
@@ -18,11 +18,9 @@
<sql-parser-test-cases>
<select sql-case-id="select_order_by_asc_and_index_desc">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="14" stop-index="22" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="14" stop-index="22" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -35,16 +33,16 @@
</select>
<select sql-case-id="select_order_by_desc_and_index_asc">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
- </table-reference>
- <table-reference>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="27" stop-index="40" />
- </table-factor>
- </table-reference>
+ <from>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="27" stop-index="40" />
+ </right>
+ </join-table>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -82,11 +80,9 @@
</select>
<select sql-case-id="select_order_by_with_ordered_column">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="40" stop-index="48" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="40" stop-index="48" />
+ </from>
<projections start-index="7" stop-index="33">
<column-projection name="order_id" alias="gen_order_id_" start-index="7" stop-index="16">
<owner name="o" start-index="7" stop-index="7" />
@@ -100,16 +96,16 @@
</select>
<select sql-case-id="select_order_by_with_date">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
- </table-reference>
- <table-reference>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="27" stop-index="40" />
- </table-factor>
- </table-reference>
+ <from>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="27" stop-index="40" />
+ </right>
+ </join-table>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -152,11 +148,9 @@
<!-- //TODO add order-by-null-type -->
<select sql-case-id="select_order_by_for_nulls_first">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="40" stop-index="48" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="40" stop-index="48" />
+ </from>
<projections start-index="7" stop-index="33">
<column-projection name="order_id" alias="gen_order_id_" start-index="7" stop-index="16">
<owner name="o" start-index="7" stop-index="7" />
@@ -171,11 +165,9 @@
<!-- //TODO add order-by-null-type -->
<select sql-case-id="select_order_by_for_nulls_last">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="40" stop-index="48" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="40" stop-index="48" />
+ </from>
<projections start-index="7" stop-index="33">
<column-projection name="order_id" alias="gen_order_id_" start-index="7" stop-index="16">
<owner name="o" start-index="7" stop-index="7" />
@@ -189,11 +181,9 @@
</select>
<select sql-case-id="select_order_by_with_multiple_stars">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="29" stop-index="37" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="29" stop-index="37" />
+ </from>
<projections start-index="7" stop-index="22">
<shorthand-projection start-index="7" stop-index="7" />
<shorthand-projection start-index="20" stop-index="22">
@@ -209,11 +199,9 @@
</select>
<select sql-case-id="select_order_by_with_alias_star_alias_name">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="o" start-index="7" stop-index="7" />
@@ -227,11 +215,9 @@
</select>
<select sql-case-id="select_order_by_with_star_table_alias">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="14" stop-index="22" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="14" stop-index="22" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -241,11 +227,9 @@
</select>
<select sql-case-id="select_order_by_with_table_star_table_name">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="22" stop-index="28" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="22" stop-index="28" />
+ </from>
<projections start-index="7" stop-index="15">
<shorthand-projection start-index="7" stop-index="15">
<owner name="t_order" start-index="7" stop-index="13" />
@@ -259,11 +243,9 @@
</select>
<select sql-case-id="select_order_by_with_star_no_table_alias">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -273,14 +255,14 @@
</select>
<select sql-case-id="select_order_by_with_table_star_without_table_name">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="21" stop-index="29" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="36" stop-index="49" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="21" stop-index="29" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="36" stop-index="49" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="54" stop-index="74">
@@ -302,7 +284,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="14">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination-group-by-order-by.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination-group-by-order-by.xml
index 5a0f10d..55efd35 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination-group-by-order-by.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination-group-by-order-by.xml
@@ -18,14 +18,14 @@
<sql-parser-test-cases>
<select sql-case-id="select_pagination_with_group_by_and_order_by" parameters="1, 2, 9, 10, 5, 3">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="22" stop-index="30" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="37" stop-index="50" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="22" stop-index="30" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="37" stop-index="50" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="55" stop-index="75">
@@ -47,7 +47,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="15">
<column-projection name="user_id" start-index="7" stop-index="15">
<owner name="i" start-index="7" stop-index="7" />
@@ -96,14 +96,14 @@
</select>
<select sql-case-id="select_pagination_with_diff_group_by_and_order_by" parameters="1, 2, 9, 10, 5, 3">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="22" stop-index="30" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="37" stop-index="50" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="22" stop-index="30" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="37" stop-index="50" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="55" stop-index="75">
@@ -125,7 +125,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="15">
<column-projection name="user_id" start-index="7" stop-index="15">
<owner name="i" start-index="7" stop-index="7" />
@@ -177,94 +177,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="158">
- <top-projection alias="rownum_" start-index="22" stop-index="70">
- <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
- </top-projection>
- <column-projection name="item_id" start-index="84" stop-index="92">
- <owner name="i" start-index="84" stop-index="84" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="95" stop-index="104">
- <owner name="o" start-index="95" stop-index="95" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="119" stop-index="126">
- <owner name="o" start-index="119" stop-index="119" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="139" stop-index="147">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="165" stop-index="173" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="180" stop-index="193" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="198" stop-index="218">
- <column-left-value name="user_id" start-index="198" stop-index="206">
- <owner name="o" start-index="198" stop-index="198" />
- </column-left-value>
- <column-right-value name="user_id" start-index="210" stop-index="218">
- <owner name="i" start-index="210" stop-index="210" />
- </column-right-value>
- </predicate>
- <predicate start-index="224" stop-index="246">
- <column-left-value name="order_id" start-index="224" stop-index="233">
- <owner name="o" start-index="224" stop-index="224" />
- </column-left-value>
- <column-right-value name="order_id" start-index="237" stop-index="246">
- <owner name="i" start-index="237" stop-index="237" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="248" stop-index="303" literal-stop-index="304">
- <and-predicate>
- <predicate start-index="254" stop-index="272">
- <column-left-value name="user_id" start-index="254" stop-index="262">
- <owner name="o" start-index="254" stop-index="254" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="268" stop-index="268" />
- <parameter-marker-expression value="2" start-index="271" stop-index="271" />
- <literal-expression value="1" start-index="268" stop-index="268" />
- <literal-expression value="2" start-index="271" stop-index="271" />
- </in-right-value>
- </predicate>
- <predicate start-index="278" stop-index="303" literal-stop-index="304">
- <column-left-value name="order_id" start-index="278" stop-index="287">
- <owner name="o" start-index="278" stop-index="278" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="297" stop-index="297" />
- <and-parameter-marker-expression value="4" start-index="303" stop-index="303" />
- <between-literal-expression value="9" start-index="297" stop-index="297" />
- <and-literal-expression value="10" start-index="303" stop-index="304" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="item_id" start-index="314" stop-index="322" literal-start-index="315" literal-stop-index="323">
- <owner name="i" start-index="314" stop-index="314" literal-start-index="315" literal-stop-index="315" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="158">
+ <top-projection alias="rownum_" start-index="22" stop-index="70">
+ <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
+ </top-projection>
+ <column-projection name="item_id" start-index="84" stop-index="92">
+ <owner name="i" start-index="84" stop-index="84" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="95" stop-index="104">
+ <owner name="o" start-index="95" stop-index="95" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="119" stop-index="126">
+ <owner name="o" start-index="119" stop-index="119" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="139" stop-index="147">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="165" stop-index="173" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="180" stop-index="193" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="198" stop-index="218">
+ <column-left-value name="user_id" start-index="198" stop-index="206">
+ <owner name="o" start-index="198" stop-index="198" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="210" stop-index="218">
+ <owner name="i" start-index="210" stop-index="210" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="224" stop-index="246">
+ <column-left-value name="order_id" start-index="224" stop-index="233">
+ <owner name="o" start-index="224" stop-index="224" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="237" stop-index="246">
+ <owner name="i" start-index="237" stop-index="237" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="248" stop-index="303" literal-stop-index="304">
+ <and-predicate>
+ <predicate start-index="254" stop-index="272">
+ <column-left-value name="user_id" start-index="254" stop-index="262">
+ <owner name="o" start-index="254" stop-index="254" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="268" stop-index="268" />
+ <parameter-marker-expression value="2" start-index="271" stop-index="271" />
+ <literal-expression value="1" start-index="268" stop-index="268" />
+ <literal-expression value="2" start-index="271" stop-index="271" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="278" stop-index="303" literal-stop-index="304">
+ <column-left-value name="order_id" start-index="278" stop-index="287">
+ <owner name="o" start-index="278" stop-index="278" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="297" stop-index="297" />
+ <and-parameter-marker-expression value="4" start-index="303" stop-index="303" />
+ <between-literal-expression value="9" start-index="297" stop-index="297" />
+ <and-literal-expression value="10" start-index="303" stop-index="304" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="item_id" start-index="314" stop-index="322" literal-start-index="315" literal-stop-index="323">
+ <owner name="i" start-index="314" stop-index="314" literal-start-index="315" literal-stop-index="315" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="333" stop-index="354" literal-start-index="334" literal-stop-index="355">
<and-predicate>
<predicate start-index="339" stop-index="354" literal-start-index="340" literal-stop-index="355">
@@ -285,94 +283,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="176">
- <top-projection alias="rownum_" start-index="22" stop-index="88">
- <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
- </top-projection>
- <column-projection name="item_id" start-index="102" stop-index="110">
- <owner name="i" start-index="102" stop-index="102" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="113" stop-index="122">
- <owner name="o" start-index="113" stop-index="113" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="137" stop-index="144">
- <owner name="o" start-index="137" stop-index="137" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="157" stop-index="165">
- <owner name="o" start-index="157" stop-index="157" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="183" stop-index="191" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="198" stop-index="211" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="216" stop-index="236">
- <column-left-value name="user_id" start-index="216" stop-index="224">
- <owner name="o" start-index="216" stop-index="216" />
- </column-left-value>
- <column-right-value name="user_id" start-index="228" stop-index="236">
- <owner name="i" start-index="228" stop-index="228" />
- </column-right-value>
- </predicate>
- <predicate start-index="242" stop-index="264">
- <column-left-value name="order_id" start-index="242" stop-index="251">
- <owner name="o" start-index="242" stop-index="242" />
- </column-left-value>
- <column-right-value name="order_id" start-index="255" stop-index="264">
- <owner name="i" start-index="255" stop-index="255" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="266" stop-index="321" literal-stop-index="322">
- <and-predicate>
- <predicate start-index="272" stop-index="290">
- <column-left-value name="user_id" start-index="272" stop-index="280">
- <owner name="o" start-index="272" stop-index="272" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="286" stop-index="286" />
- <parameter-marker-expression value="2" start-index="289" stop-index="289" />
- <literal-expression value="1" start-index="286" stop-index="286" />
- <literal-expression value="2" start-index="289" stop-index="289" />
- </in-right-value>
- </predicate>
- <predicate start-index="296" stop-index="321" literal-stop-index="322">
- <column-left-value name="order_id" start-index="296" stop-index="305">
- <owner name="o" start-index="296" stop-index="296" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="315" stop-index="315" />
- <and-parameter-marker-expression value="4" start-index="321" stop-index="321" />
- <between-literal-expression value="9" start-index="315" stop-index="315" />
- <and-literal-expression value="10" start-index="321" stop-index="322" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="item_id" start-index="332" stop-index="340" literal-start-index="333" literal-stop-index="341">
- <owner name="i" start-index="332" stop-index="332" literal-start-index="333" literal-stop-index="333" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="176">
+ <top-projection alias="rownum_" start-index="22" stop-index="88">
+ <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
+ </top-projection>
+ <column-projection name="item_id" start-index="102" stop-index="110">
+ <owner name="i" start-index="102" stop-index="102" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="113" stop-index="122">
+ <owner name="o" start-index="113" stop-index="113" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="137" stop-index="144">
+ <owner name="o" start-index="137" stop-index="137" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="157" stop-index="165">
+ <owner name="o" start-index="157" stop-index="157" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="183" stop-index="191" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="198" stop-index="211" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="216" stop-index="236">
+ <column-left-value name="user_id" start-index="216" stop-index="224">
+ <owner name="o" start-index="216" stop-index="216" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="228" stop-index="236">
+ <owner name="i" start-index="228" stop-index="228" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="242" stop-index="264">
+ <column-left-value name="order_id" start-index="242" stop-index="251">
+ <owner name="o" start-index="242" stop-index="242" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="255" stop-index="264">
+ <owner name="i" start-index="255" stop-index="255" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="266" stop-index="321" literal-stop-index="322">
+ <and-predicate>
+ <predicate start-index="272" stop-index="290">
+ <column-left-value name="user_id" start-index="272" stop-index="280">
+ <owner name="o" start-index="272" stop-index="272" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="286" stop-index="286" />
+ <parameter-marker-expression value="2" start-index="289" stop-index="289" />
+ <literal-expression value="1" start-index="286" stop-index="286" />
+ <literal-expression value="2" start-index="289" stop-index="289" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="296" stop-index="321" literal-stop-index="322">
+ <column-left-value name="order_id" start-index="296" stop-index="305">
+ <owner name="o" start-index="296" stop-index="296" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="315" stop-index="315" />
+ <and-parameter-marker-expression value="4" start-index="321" stop-index="321" />
+ <between-literal-expression value="9" start-index="315" stop-index="315" />
+ <and-literal-expression value="10" start-index="321" stop-index="322" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="item_id" start-index="332" stop-index="340" literal-start-index="333" literal-stop-index="341">
+ <owner name="i" start-index="332" stop-index="332" literal-start-index="333" literal-stop-index="333" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="351" stop-index="372" literal-start-index="352" literal-stop-index="373">
<and-predicate>
<predicate start-index="357" stop-index="372" literal-start-index="358" literal-stop-index="373">
@@ -393,94 +389,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="160">
- <top-projection alias="rownum_" start-index="22" stop-index="72">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="86" stop-index="94">
- <owner name="i" start-index="86" stop-index="86" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
- <owner name="o" start-index="97" stop-index="97" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="121" stop-index="128">
- <owner name="o" start-index="121" stop-index="121" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
- <owner name="o" start-index="141" stop-index="141" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="167" stop-index="175" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="182" stop-index="195" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="200" stop-index="220">
- <column-left-value name="user_id" start-index="200" stop-index="208">
- <owner name="o" start-index="200" stop-index="200" />
- </column-left-value>
- <column-right-value name="user_id" start-index="212" stop-index="220">
- <owner name="i" start-index="212" stop-index="212" />
- </column-right-value>
- </predicate>
- <predicate start-index="226" stop-index="248">
- <column-left-value name="order_id" start-index="226" stop-index="235">
- <owner name="o" start-index="226" stop-index="226" />
- </column-left-value>
- <column-right-value name="order_id" start-index="239" stop-index="248">
- <owner name="i" start-index="239" stop-index="239" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="250" stop-index="305" literal-stop-index="306">
- <and-predicate>
- <predicate start-index="256" stop-index="274">
- <column-left-value name="user_id" start-index="256" stop-index="264">
- <owner name="o" start-index="256" stop-index="256" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="270" stop-index="270" />
- <parameter-marker-expression value="2" start-index="273" stop-index="273" />
- <literal-expression value="1" start-index="270" stop-index="270" />
- <literal-expression value="2" start-index="273" stop-index="273" />
- </in-right-value>
- </predicate>
- <predicate start-index="280" stop-index="305" literal-stop-index="306">
- <column-left-value name="order_id" start-index="280" stop-index="289">
- <owner name="o" start-index="280" stop-index="280" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
- <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
- <between-literal-expression value="9" start-index="299" stop-index="299" />
- <and-literal-expression value="10" start-index="305" stop-index="306" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="item_id" start-index="316" stop-index="324" literal-start-index="317" literal-stop-index="325">
- <owner name="i" start-index="316" stop-index="316" literal-start-index="317" literal-stop-index="317" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="160">
+ <top-projection alias="rownum_" start-index="22" stop-index="72">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="86" stop-index="94">
+ <owner name="i" start-index="86" stop-index="86" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
+ <owner name="o" start-index="97" stop-index="97" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="121" stop-index="128">
+ <owner name="o" start-index="121" stop-index="121" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
+ <owner name="o" start-index="141" stop-index="141" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="167" stop-index="175" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="182" stop-index="195" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="200" stop-index="220">
+ <column-left-value name="user_id" start-index="200" stop-index="208">
+ <owner name="o" start-index="200" stop-index="200" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="212" stop-index="220">
+ <owner name="i" start-index="212" stop-index="212" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="226" stop-index="248">
+ <column-left-value name="order_id" start-index="226" stop-index="235">
+ <owner name="o" start-index="226" stop-index="226" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="239" stop-index="248">
+ <owner name="i" start-index="239" stop-index="239" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="250" stop-index="305" literal-stop-index="306">
+ <and-predicate>
+ <predicate start-index="256" stop-index="274">
+ <column-left-value name="user_id" start-index="256" stop-index="264">
+ <owner name="o" start-index="256" stop-index="256" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="270" stop-index="270" />
+ <parameter-marker-expression value="2" start-index="273" stop-index="273" />
+ <literal-expression value="1" start-index="270" stop-index="270" />
+ <literal-expression value="2" start-index="273" stop-index="273" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="280" stop-index="305" literal-stop-index="306">
+ <column-left-value name="order_id" start-index="280" stop-index="289">
+ <owner name="o" start-index="280" stop-index="280" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
+ <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
+ <between-literal-expression value="9" start-index="299" stop-index="299" />
+ <and-literal-expression value="10" start-index="305" stop-index="306" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="item_id" start-index="316" stop-index="324" literal-start-index="317" literal-stop-index="325">
+ <owner name="i" start-index="316" stop-index="316" literal-start-index="317" literal-stop-index="317" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="335" stop-index="356" literal-start-index="336" literal-stop-index="357">
<and-predicate>
<predicate start-index="341" stop-index="356" literal-start-index="342" literal-stop-index="357">
@@ -501,94 +495,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="178">
- <top-projection alias="rownum_" start-index="22" stop-index="90">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="104" stop-index="112">
- <owner name="i" start-index="104" stop-index="104" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
- <owner name="o" start-index="115" stop-index="115" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="139" stop-index="146">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
- <owner name="o" start-index="159" stop-index="159" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="185" stop-index="193" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="200" stop-index="213" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="218" stop-index="238">
- <column-left-value name="user_id" start-index="218" stop-index="226">
- <owner name="o" start-index="218" stop-index="218" />
- </column-left-value>
- <column-right-value name="user_id" start-index="230" stop-index="238">
- <owner name="i" start-index="230" stop-index="230" />
- </column-right-value>
- </predicate>
- <predicate start-index="244" stop-index="266">
- <column-left-value name="order_id" start-index="244" stop-index="253">
- <owner name="o" start-index="244" stop-index="244" />
- </column-left-value>
- <column-right-value name="order_id" start-index="257" stop-index="266">
- <owner name="i" start-index="257" stop-index="257" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="268" stop-index="323" literal-stop-index="324">
- <and-predicate>
- <predicate start-index="274" stop-index="292">
- <column-left-value name="user_id" start-index="274" stop-index="282">
- <owner name="o" start-index="274" stop-index="274" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="288" stop-index="288" />
- <parameter-marker-expression value="2" start-index="291" stop-index="291" />
- <literal-expression value="1" start-index="288" stop-index="288" />
- <literal-expression value="2" start-index="291" stop-index="291" />
- </in-right-value>
- </predicate>
- <predicate start-index="298" stop-index="323" literal-stop-index="324">
- <column-left-value name="order_id" start-index="298" stop-index="307">
- <owner name="o" start-index="298" stop-index="298" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
- <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
- <between-literal-expression value="9" start-index="317" stop-index="317" />
- <and-literal-expression value="10" start-index="323" stop-index="324" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="item_id" start-index="334" stop-index="342" literal-start-index="335" literal-stop-index="343">
- <owner name="i" start-index="334" stop-index="334" literal-start-index="335" literal-stop-index="335" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="178">
+ <top-projection alias="rownum_" start-index="22" stop-index="90">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="104" stop-index="112">
+ <owner name="i" start-index="104" stop-index="104" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
+ <owner name="o" start-index="115" stop-index="115" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="139" stop-index="146">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
+ <owner name="o" start-index="159" stop-index="159" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="185" stop-index="193" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="200" stop-index="213" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="218" stop-index="238">
+ <column-left-value name="user_id" start-index="218" stop-index="226">
+ <owner name="o" start-index="218" stop-index="218" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="230" stop-index="238">
+ <owner name="i" start-index="230" stop-index="230" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="244" stop-index="266">
+ <column-left-value name="order_id" start-index="244" stop-index="253">
+ <owner name="o" start-index="244" stop-index="244" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="257" stop-index="266">
+ <owner name="i" start-index="257" stop-index="257" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="268" stop-index="323" literal-stop-index="324">
+ <and-predicate>
+ <predicate start-index="274" stop-index="292">
+ <column-left-value name="user_id" start-index="274" stop-index="282">
+ <owner name="o" start-index="274" stop-index="274" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="288" stop-index="288" />
+ <parameter-marker-expression value="2" start-index="291" stop-index="291" />
+ <literal-expression value="1" start-index="288" stop-index="288" />
+ <literal-expression value="2" start-index="291" stop-index="291" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="298" stop-index="323" literal-stop-index="324">
+ <column-left-value name="order_id" start-index="298" stop-index="307">
+ <owner name="o" start-index="298" stop-index="298" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
+ <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
+ <between-literal-expression value="9" start-index="317" stop-index="317" />
+ <and-literal-expression value="10" start-index="323" stop-index="324" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="item_id" start-index="334" stop-index="342" literal-start-index="335" literal-stop-index="343">
+ <owner name="i" start-index="334" stop-index="334" literal-start-index="335" literal-stop-index="335" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="353" stop-index="374" literal-start-index="354" literal-stop-index="375">
<and-predicate>
<predicate start-index="359" stop-index="374" literal-start-index="360" literal-stop-index="375">
@@ -609,94 +601,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="158">
- <top-projection alias="rownum_" start-index="22" stop-index="70">
- <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
- </top-projection>
- <column-projection name="item_id" start-index="84" stop-index="92">
- <owner name="i" start-index="84" stop-index="84" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="95" stop-index="104">
- <owner name="o" start-index="95" stop-index="95" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="119" stop-index="126">
- <owner name="o" start-index="119" stop-index="119" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="139" stop-index="147">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="165" stop-index="173" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="180" stop-index="193" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="198" stop-index="218">
- <column-left-value name="user_id" start-index="198" stop-index="206">
- <owner name="o" start-index="198" stop-index="198" />
- </column-left-value>
- <column-right-value name="user_id" start-index="210" stop-index="218">
- <owner name="i" start-index="210" stop-index="210" />
- </column-right-value>
- </predicate>
- <predicate start-index="224" stop-index="246">
- <column-left-value name="order_id" start-index="224" stop-index="233">
- <owner name="o" start-index="224" stop-index="224" />
- </column-left-value>
- <column-right-value name="order_id" start-index="237" stop-index="246">
- <owner name="i" start-index="237" stop-index="237" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="248" stop-index="303" literal-stop-index="304">
- <and-predicate>
- <predicate start-index="254" stop-index="272">
- <column-left-value name="user_id" start-index="254" stop-index="262">
- <owner name="o" start-index="254" stop-index="254" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="268" stop-index="268" />
- <parameter-marker-expression value="2" start-index="271" stop-index="271" />
- <literal-expression value="1" start-index="268" stop-index="268" />
- <literal-expression value="2" start-index="271" stop-index="271" />
- </in-right-value>
- </predicate>
- <predicate start-index="278" stop-index="303" literal-stop-index="304">
- <column-left-value name="order_id" start-index="278" stop-index="287">
- <owner name="o" start-index="278" stop-index="278" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="297" stop-index="297" />
- <and-parameter-marker-expression value="4" start-index="303" stop-index="303" />
- <between-literal-expression value="9" start-index="297" stop-index="297" />
- <and-literal-expression value="10" start-index="303" stop-index="304" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="user_id" start-index="314" stop-index="322" literal-start-index="315" literal-stop-index="323">
- <owner name="i" start-index="314" stop-index="314" literal-start-index="315" literal-stop-index="315" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="158">
+ <top-projection alias="rownum_" start-index="22" stop-index="70">
+ <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
+ </top-projection>
+ <column-projection name="item_id" start-index="84" stop-index="92">
+ <owner name="i" start-index="84" stop-index="84" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="95" stop-index="104">
+ <owner name="o" start-index="95" stop-index="95" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="119" stop-index="126">
+ <owner name="o" start-index="119" stop-index="119" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="139" stop-index="147">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="165" stop-index="173" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="180" stop-index="193" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="198" stop-index="218">
+ <column-left-value name="user_id" start-index="198" stop-index="206">
+ <owner name="o" start-index="198" stop-index="198" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="210" stop-index="218">
+ <owner name="i" start-index="210" stop-index="210" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="224" stop-index="246">
+ <column-left-value name="order_id" start-index="224" stop-index="233">
+ <owner name="o" start-index="224" stop-index="224" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="237" stop-index="246">
+ <owner name="i" start-index="237" stop-index="237" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="248" stop-index="303" literal-stop-index="304">
+ <and-predicate>
+ <predicate start-index="254" stop-index="272">
+ <column-left-value name="user_id" start-index="254" stop-index="262">
+ <owner name="o" start-index="254" stop-index="254" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="268" stop-index="268" />
+ <parameter-marker-expression value="2" start-index="271" stop-index="271" />
+ <literal-expression value="1" start-index="268" stop-index="268" />
+ <literal-expression value="2" start-index="271" stop-index="271" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="278" stop-index="303" literal-stop-index="304">
+ <column-left-value name="order_id" start-index="278" stop-index="287">
+ <owner name="o" start-index="278" stop-index="278" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="297" stop-index="297" />
+ <and-parameter-marker-expression value="4" start-index="303" stop-index="303" />
+ <between-literal-expression value="9" start-index="297" stop-index="297" />
+ <and-literal-expression value="10" start-index="303" stop-index="304" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="user_id" start-index="314" stop-index="322" literal-start-index="315" literal-stop-index="323">
+ <owner name="i" start-index="314" stop-index="314" literal-start-index="315" literal-stop-index="315" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="333" stop-index="354" literal-start-index="334" literal-stop-index="355">
<and-predicate>
<predicate start-index="339" stop-index="354" literal-start-index="340" literal-stop-index="355">
@@ -717,94 +707,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="176">
- <top-projection alias="rownum_" start-index="22" stop-index="88">
- <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
- </top-projection>
- <column-projection name="item_id" start-index="102" stop-index="110">
- <owner name="i" start-index="102" stop-index="102" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="113" stop-index="122">
- <owner name="o" start-index="113" stop-index="113" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="137" stop-index="144">
- <owner name="o" start-index="137" stop-index="137" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="157" stop-index="165">
- <owner name="o" start-index="157" stop-index="157" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="183" stop-index="191" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="198" stop-index="211" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="216" stop-index="236">
- <column-left-value name="user_id" start-index="216" stop-index="224">
- <owner name="o" start-index="216" stop-index="216" />
- </column-left-value>
- <column-right-value name="user_id" start-index="228" stop-index="236">
- <owner name="i" start-index="228" stop-index="228" />
- </column-right-value>
- </predicate>
- <predicate start-index="242" stop-index="264">
- <column-left-value name="order_id" start-index="242" stop-index="251">
- <owner name="o" start-index="242" stop-index="242" />
- </column-left-value>
- <column-right-value name="order_id" start-index="255" stop-index="264">
- <owner name="i" start-index="255" stop-index="255" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="266" stop-index="321" literal-stop-index="322">
- <and-predicate>
- <predicate start-index="272" stop-index="290">
- <column-left-value name="user_id" start-index="272" stop-index="280">
- <owner name="o" start-index="272" stop-index="272" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="286" stop-index="286" />
- <parameter-marker-expression value="2" start-index="289" stop-index="289" />
- <literal-expression value="1" start-index="286" stop-index="286" />
- <literal-expression value="2" start-index="289" stop-index="289" />
- </in-right-value>
- </predicate>
- <predicate start-index="296" stop-index="321" literal-stop-index="322">
- <column-left-value name="order_id" start-index="296" stop-index="305">
- <owner name="o" start-index="296" stop-index="296" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="315" stop-index="315" />
- <and-parameter-marker-expression value="4" start-index="321" stop-index="321" />
- <between-literal-expression value="9" start-index="315" stop-index="315" />
- <and-literal-expression value="10" start-index="321" stop-index="322" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="user_id" start-index="332" stop-index="340" literal-start-index="333" literal-stop-index="341">
- <owner name="i" start-index="332" stop-index="332" literal-start-index="333" literal-stop-index="333" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="176">
+ <top-projection alias="rownum_" start-index="22" stop-index="88">
+ <top-value value="3" parameter-index="0" start-index="26" stop-index="26" />
+ </top-projection>
+ <column-projection name="item_id" start-index="102" stop-index="110">
+ <owner name="i" start-index="102" stop-index="102" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="113" stop-index="122">
+ <owner name="o" start-index="113" stop-index="113" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="137" stop-index="144">
+ <owner name="o" start-index="137" stop-index="137" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="157" stop-index="165">
+ <owner name="o" start-index="157" stop-index="157" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="183" stop-index="191" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="198" stop-index="211" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="216" stop-index="236">
+ <column-left-value name="user_id" start-index="216" stop-index="224">
+ <owner name="o" start-index="216" stop-index="216" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="228" stop-index="236">
+ <owner name="i" start-index="228" stop-index="228" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="242" stop-index="264">
+ <column-left-value name="order_id" start-index="242" stop-index="251">
+ <owner name="o" start-index="242" stop-index="242" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="255" stop-index="264">
+ <owner name="i" start-index="255" stop-index="255" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="266" stop-index="321" literal-stop-index="322">
+ <and-predicate>
+ <predicate start-index="272" stop-index="290">
+ <column-left-value name="user_id" start-index="272" stop-index="280">
+ <owner name="o" start-index="272" stop-index="272" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="286" stop-index="286" />
+ <parameter-marker-expression value="2" start-index="289" stop-index="289" />
+ <literal-expression value="1" start-index="286" stop-index="286" />
+ <literal-expression value="2" start-index="289" stop-index="289" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="296" stop-index="321" literal-stop-index="322">
+ <column-left-value name="order_id" start-index="296" stop-index="305">
+ <owner name="o" start-index="296" stop-index="296" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="315" stop-index="315" />
+ <and-parameter-marker-expression value="4" start-index="321" stop-index="321" />
+ <between-literal-expression value="9" start-index="315" stop-index="315" />
+ <and-literal-expression value="10" start-index="321" stop-index="322" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="user_id" start-index="332" stop-index="340" literal-start-index="333" literal-stop-index="341">
+ <owner name="i" start-index="332" stop-index="332" literal-start-index="333" literal-stop-index="333" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="351" stop-index="372" literal-start-index="352" literal-stop-index="373">
<and-predicate>
<predicate start-index="357" stop-index="372" literal-start-index="358" literal-stop-index="373">
@@ -825,94 +813,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="160">
- <top-projection alias="rownum_" start-index="22" stop-index="72">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="86" stop-index="94">
- <owner name="i" start-index="86" stop-index="86" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
- <owner name="o" start-index="97" stop-index="97" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="121" stop-index="128">
- <owner name="o" start-index="121" stop-index="121" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
- <owner name="o" start-index="141" stop-index="141" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="167" stop-index="175" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="182" stop-index="195" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="200" stop-index="220">
- <column-left-value name="user_id" start-index="200" stop-index="208">
- <owner name="o" start-index="200" stop-index="200" />
- </column-left-value>
- <column-right-value name="user_id" start-index="212" stop-index="220">
- <owner name="i" start-index="212" stop-index="212" />
- </column-right-value>
- </predicate>
- <predicate start-index="226" stop-index="248">
- <column-left-value name="order_id" start-index="226" stop-index="235">
- <owner name="o" start-index="226" stop-index="226" />
- </column-left-value>
- <column-right-value name="order_id" start-index="239" stop-index="248">
- <owner name="i" start-index="239" stop-index="239" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="250" stop-index="305" literal-stop-index="306">
- <and-predicate>
- <predicate start-index="256" stop-index="274">
- <column-left-value name="user_id" start-index="256" stop-index="264">
- <owner name="o" start-index="256" stop-index="256" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="270" stop-index="270" />
- <parameter-marker-expression value="2" start-index="273" stop-index="273" />
- <literal-expression value="1" start-index="270" stop-index="270" />
- <literal-expression value="2" start-index="273" stop-index="273" />
- </in-right-value>
- </predicate>
- <predicate start-index="280" stop-index="305" literal-stop-index="306">
- <column-left-value name="order_id" start-index="280" stop-index="289">
- <owner name="o" start-index="280" stop-index="280" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
- <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
- <between-literal-expression value="9" start-index="299" stop-index="299" />
- <and-literal-expression value="10" start-index="305" stop-index="306" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="user_id" start-index="316" stop-index="324" literal-start-index="317" literal-stop-index="325">
- <owner name="i" start-index="316" stop-index="316" literal-start-index="317" literal-stop-index="317" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="160">
+ <top-projection alias="rownum_" start-index="22" stop-index="72">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="86" stop-index="94">
+ <owner name="i" start-index="86" stop-index="86" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
+ <owner name="o" start-index="97" stop-index="97" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="121" stop-index="128">
+ <owner name="o" start-index="121" stop-index="121" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
+ <owner name="o" start-index="141" stop-index="141" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="167" stop-index="175" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="182" stop-index="195" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="200" stop-index="220">
+ <column-left-value name="user_id" start-index="200" stop-index="208">
+ <owner name="o" start-index="200" stop-index="200" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="212" stop-index="220">
+ <owner name="i" start-index="212" stop-index="212" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="226" stop-index="248">
+ <column-left-value name="order_id" start-index="226" stop-index="235">
+ <owner name="o" start-index="226" stop-index="226" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="239" stop-index="248">
+ <owner name="i" start-index="239" stop-index="239" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="250" stop-index="305" literal-stop-index="306">
+ <and-predicate>
+ <predicate start-index="256" stop-index="274">
+ <column-left-value name="user_id" start-index="256" stop-index="264">
+ <owner name="o" start-index="256" stop-index="256" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="270" stop-index="270" />
+ <parameter-marker-expression value="2" start-index="273" stop-index="273" />
+ <literal-expression value="1" start-index="270" stop-index="270" />
+ <literal-expression value="2" start-index="273" stop-index="273" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="280" stop-index="305" literal-stop-index="306">
+ <column-left-value name="order_id" start-index="280" stop-index="289">
+ <owner name="o" start-index="280" stop-index="280" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
+ <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
+ <between-literal-expression value="9" start-index="299" stop-index="299" />
+ <and-literal-expression value="10" start-index="305" stop-index="306" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="user_id" start-index="316" stop-index="324" literal-start-index="317" literal-stop-index="325">
+ <owner name="i" start-index="316" stop-index="316" literal-start-index="317" literal-stop-index="317" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="335" stop-index="356" literal-start-index="336" literal-stop-index="357">
<and-predicate>
<predicate start-index="341" stop-index="356" literal-start-index="342" literal-stop-index="357">
@@ -933,94 +919,92 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="178">
- <top-projection alias="rownum_" start-index="22" stop-index="90">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="104" stop-index="112">
- <owner name="i" start-index="104" stop-index="104" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
- <owner name="o" start-index="115" stop-index="115" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="139" stop-index="146">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
- <owner name="o" start-index="159" stop-index="159" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="185" stop-index="193" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="200" stop-index="213" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="218" stop-index="238">
- <column-left-value name="user_id" start-index="218" stop-index="226">
- <owner name="o" start-index="218" stop-index="218" />
- </column-left-value>
- <column-right-value name="user_id" start-index="230" stop-index="238">
- <owner name="i" start-index="230" stop-index="230" />
- </column-right-value>
- </predicate>
- <predicate start-index="244" stop-index="266">
- <column-left-value name="order_id" start-index="244" stop-index="253">
- <owner name="o" start-index="244" stop-index="244" />
- </column-left-value>
- <column-right-value name="order_id" start-index="257" stop-index="266">
- <owner name="i" start-index="257" stop-index="257" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="268" stop-index="323" literal-stop-index="324">
- <and-predicate>
- <predicate start-index="274" stop-index="292">
- <column-left-value name="user_id" start-index="274" stop-index="282">
- <owner name="o" start-index="274" stop-index="274" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="288" stop-index="288" />
- <parameter-marker-expression value="2" start-index="291" stop-index="291" />
- <literal-expression value="1" start-index="288" stop-index="288" />
- <literal-expression value="2" start-index="291" stop-index="291" />
- </in-right-value>
- </predicate>
- <predicate start-index="298" stop-index="323" literal-stop-index="324">
- <column-left-value name="order_id" start-index="298" stop-index="307">
- <owner name="o" start-index="298" stop-index="298" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
- <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
- <between-literal-expression value="9" start-index="317" stop-index="317" />
- <and-literal-expression value="10" start-index="323" stop-index="324" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- <group-by>
- <column-item name="user_id" start-index="334" stop-index="342" literal-start-index="335" literal-stop-index="343">
- <owner name="i" start-index="334" stop-index="334" literal-start-index="335" literal-stop-index="335" />
- </column-item>
- </group-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="178">
+ <top-projection alias="rownum_" start-index="22" stop-index="90">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="104" stop-index="112">
+ <owner name="i" start-index="104" stop-index="104" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
+ <owner name="o" start-index="115" stop-index="115" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="139" stop-index="146">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
+ <owner name="o" start-index="159" stop-index="159" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="185" stop-index="193" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="200" stop-index="213" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="218" stop-index="238">
+ <column-left-value name="user_id" start-index="218" stop-index="226">
+ <owner name="o" start-index="218" stop-index="218" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="230" stop-index="238">
+ <owner name="i" start-index="230" stop-index="230" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="244" stop-index="266">
+ <column-left-value name="order_id" start-index="244" stop-index="253">
+ <owner name="o" start-index="244" stop-index="244" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="257" stop-index="266">
+ <owner name="i" start-index="257" stop-index="257" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="268" stop-index="323" literal-stop-index="324">
+ <and-predicate>
+ <predicate start-index="274" stop-index="292">
+ <column-left-value name="user_id" start-index="274" stop-index="282">
+ <owner name="o" start-index="274" stop-index="274" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="288" stop-index="288" />
+ <parameter-marker-expression value="2" start-index="291" stop-index="291" />
+ <literal-expression value="1" start-index="288" stop-index="288" />
+ <literal-expression value="2" start-index="291" stop-index="291" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="298" stop-index="323" literal-stop-index="324">
+ <column-left-value name="order_id" start-index="298" stop-index="307">
+ <owner name="o" start-index="298" stop-index="298" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
+ <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
+ <between-literal-expression value="9" start-index="317" stop-index="317" />
+ <and-literal-expression value="10" start-index="323" stop-index="324" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item name="user_id" start-index="334" stop-index="342" literal-start-index="335" literal-stop-index="343">
+ <owner name="i" start-index="334" stop-index="334" literal-start-index="335" literal-stop-index="335" />
+ </column-item>
+ </group-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="353" stop-index="374" literal-start-index="354" literal-stop-index="375">
<and-predicate>
<predicate start-index="359" stop-index="374" literal-start-index="360" literal-stop-index="375">
@@ -1041,121 +1025,117 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable start-index="14" stop-index="382" alias="t">
- <subquery>
- <select>
- <projections start-index="22" stop-index="43">
- <shorthand-projection start-index="22" stop-index="27" >
- <owner start-index="22" stop-index="25" name="row_"/>
- </shorthand-projection>
- <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_"/>
- </projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="58" stop-index="139">
- <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
- <owner start-index="58" stop-index="64" name="order0_"/>
- </column-projection>
- <column-projection start-index="88" stop-index="101" name="status" alias="status">
- <owner start-index="88" stop-index="94" name="order0_"/>
- </column-projection>
- <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
- <owner start-index="114" stop-index="120" name="order0_"/>
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="146" stop-index="160" name="t_order" alias="order0_"/>
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="167" stop-index="180" name="t_order_item" alias="i"/>
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="185" stop-index="211">
- <column-left-value start-index="185" stop-index="199" name="user_id">
- <owner start-index="185" stop-index="191" name="order0_"/>
- </column-left-value>
- <column-right-value start-index="203" stop-index="211" name="user_id">
- <owner start-index="203" stop-index="203" name="i"/>
- </column-right-value>
- </predicate>
- <predicate start-index="217" stop-index="245">
- <column-left-value start-index="217" stop-index="232" name="order_id">
- <owner start-index="217" stop-index="223" name="order0_"/>
- </column-left-value>
- <column-right-value start-index="236" stop-index="245" name="order_id">
- <owner start-index="236" stop-index="236" name="i"/>
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="247" stop-index="314">
+ <from>
+ <subquery-table start-index="14" stop-index="382" alias="t">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="43">
+ <shorthand-projection start-index="22" stop-index="27" >
+ <owner start-index="22" stop-index="25" name="row_"/>
+ </shorthand-projection>
+ <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_"/>
+ </projections>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="58" stop-index="139">
+ <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
+ <owner start-index="58" stop-index="64" name="order0_"/>
+ </column-projection>
+ <column-projection start-index="88" stop-index="101" name="status" alias="status">
+ <owner start-index="88" stop-index="94" name="order0_"/>
+ </column-projection>
+ <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
+ <owner start-index="114" stop-index="120" name="order0_"/>
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="146" stop-index="160" name="t_order" alias="order0_"/>
+ </left>
+ <right>
+ <simple-table start-index="167" stop-index="180" name="t_order_item" alias="i"/>
+ </right>
+ <joinSpecification>
<and-predicate>
- <predicate start-index="253" stop-index="277">
- <column-left-value start-index="253" stop-index="267" name="user_id">
- <owner start-index="253" stop-index="259" name="order0_" />
+ <predicate start-index="185" stop-index="211">
+ <column-left-value start-index="185" stop-index="199" name="user_id">
+ <owner start-index="185" stop-index="191" name="order0_"/>
</column-left-value>
- <in-right-value>
- <literal-expression start-index="273" stop-index="273" value="1" />
- <parameter-marker-expression start-index="273" stop-index="273" value="0"/>
- <literal-expression start-index="276" stop-index="276" value="2"/>
- <parameter-marker-expression start-index="276" stop-index="276" value="1" />
- </in-right-value>
+ <column-right-value start-index="203" stop-index="211" name="user_id">
+ <owner start-index="203" stop-index="203" name="i"/>
+ </column-right-value>
</predicate>
- <predicate start-index="283" stop-index="314">
- <column-left-value start-index="283" stop-index="298" name="order_id">
- <owner start-index="283" stop-index="289" name="order0_"/>
+ <predicate start-index="217" stop-index="245">
+ <column-left-value start-index="217" stop-index="232" name="order_id">
+ <owner start-index="217" stop-index="223" name="order0_"/>
</column-left-value>
- <between-right-value>
- <between-literal-expression start-index="308" stop-index="308" value="9" />
- <between-parameter-marker-expression start-index="308" stop-index="308" value="2"/>
- <and-literal-expression start-index="314" stop-index="314" value="7" />
- <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
- </between-right-value>
+ <column-right-value start-index="236" stop-index="245" name="order_id">
+ <owner start-index="236" stop-index="236" name="i"/>
+ </column-right-value>
</predicate>
</and-predicate>
- </where>
- <group-by>
- <column-item start-index="325" stop-index="333" name="item_id">
- <owner start-index="325" stop-index="325" name="i"/>
- </column-item>
- </group-by>
- <order-by>
- <column-item start-index="344" stop-index="352" name="item_id" order-direction="DESC">
- <owner start-index="344" stop-index="344" name="i"/>
- </column-item>
- </order-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
- <where start-index="365" stop-index="381">
- <and-predicate>
- <predicate start-index="371" stop-index="381">
- <column-left-value start-index="371" stop-index="376" name="rownum" />
- <operator type="<="/>
- <compare-right-value>
- <literal-expression start-index="381" stop-index="381" value="5"/>
- <parameter-marker-expression start-index="381" stop-index="381" value="4"/>
- </compare-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="247" stop-index="314">
+ <and-predicate>
+ <predicate start-index="253" stop-index="277">
+ <column-left-value start-index="253" stop-index="267" name="user_id">
+ <owner start-index="253" stop-index="259" name="order0_" />
+ </column-left-value>
+ <in-right-value>
+ <literal-expression start-index="273" stop-index="273" value="1" />
+ <parameter-marker-expression start-index="273" stop-index="273" value="0"/>
+ <literal-expression start-index="276" stop-index="276" value="2"/>
+ <parameter-marker-expression start-index="276" stop-index="276" value="1" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="283" stop-index="314">
+ <column-left-value start-index="283" stop-index="298" name="order_id">
+ <owner start-index="283" stop-index="289" name="order0_"/>
+ </column-left-value>
+ <between-right-value>
+ <between-literal-expression start-index="308" stop-index="308" value="9" />
+ <between-parameter-marker-expression start-index="308" stop-index="308" value="2"/>
+ <and-literal-expression start-index="314" stop-index="314" value="7" />
+ <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item start-index="325" stop-index="333" name="item_id">
+ <owner start-index="325" stop-index="325" name="i"/>
+ </column-item>
+ </group-by>
+ <order-by>
+ <column-item start-index="344" stop-index="352" name="item_id" order-direction="DESC">
+ <owner start-index="344" stop-index="344" name="i"/>
+ </column-item>
+ </order-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
+ <where start-index="365" stop-index="381">
+ <and-predicate>
+ <predicate start-index="371" stop-index="381">
+ <column-left-value start-index="371" stop-index="376" name="rownum" />
+ <operator type="<="/>
+ <compare-right-value>
+ <literal-expression start-index="381" stop-index="381" value="5"/>
+ <parameter-marker-expression start-index="381" stop-index="381" value="4"/>
+ </compare-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="386" stop-index="404">
<and-predicate>
<predicate start-index="392" stop-index="404">
@@ -1176,121 +1156,117 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable start-index="14" stop-index="382" alias="t">
- <subquery>
- <select>
- <projections start-index="22" stop-index="43">
- <shorthand-projection start-index="22" stop-index="27" >
- <owner start-index="22" stop-index="25" name="row_"/>
- </shorthand-projection>
- <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_"/>
- </projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="58" stop-index="139">
- <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
- <owner start-index="58" stop-index="64" name="order0_"/>
- </column-projection>
- <column-projection start-index="88" stop-index="101" name="status" alias="status">
- <owner start-index="88" stop-index="94" name="order0_"/>
- </column-projection>
- <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
- <owner start-index="114" stop-index="120" name="order0_"/>
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="146" stop-index="160" name="t_order" alias="order0_"/>
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="167" stop-index="180" name="t_order_item" alias="i"/>
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="185" stop-index="211">
- <column-left-value start-index="185" stop-index="199" name="user_id">
- <owner start-index="185" stop-index="191" name="order0_"/>
- </column-left-value>
- <column-right-value start-index="203" stop-index="211" name="user_id">
- <owner start-index="203" stop-index="203" name="i"/>
- </column-right-value>
- </predicate>
- <predicate start-index="217" stop-index="245">
- <column-left-value start-index="217" stop-index="232" name="order_id">
- <owner start-index="217" stop-index="223" name="order0_"/>
- </column-left-value>
- <column-right-value start-index="236" stop-index="245" name="order_id">
- <owner start-index="236" stop-index="236" name="i"/>
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="247" stop-index="314">
+ <from>
+ <subquery-table start-index="14" stop-index="382" alias="t">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="43">
+ <shorthand-projection start-index="22" stop-index="27" >
+ <owner start-index="22" stop-index="25" name="row_"/>
+ </shorthand-projection>
+ <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_"/>
+ </projections>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="58" stop-index="139">
+ <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
+ <owner start-index="58" stop-index="64" name="order0_"/>
+ </column-projection>
+ <column-projection start-index="88" stop-index="101" name="status" alias="status">
+ <owner start-index="88" stop-index="94" name="order0_"/>
+ </column-projection>
+ <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
+ <owner start-index="114" stop-index="120" name="order0_"/>
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="146" stop-index="160" name="t_order" alias="order0_"/>
+ </left>
+ <right>
+ <simple-table start-index="167" stop-index="180" name="t_order_item" alias="i"/>
+ </right>
+ <joinSpecification>
<and-predicate>
- <predicate start-index="253" stop-index="277">
- <column-left-value start-index="253" stop-index="267" name="user_id">
- <owner start-index="253" stop-index="259" name="order0_" />
+ <predicate start-index="185" stop-index="211">
+ <column-left-value start-index="185" stop-index="199" name="user_id">
+ <owner start-index="185" stop-index="191" name="order0_"/>
</column-left-value>
- <in-right-value>
- <literal-expression start-index="273" stop-index="273" value="1" />
- <parameter-marker-expression start-index="273" stop-index="273" value="0"/>
- <literal-expression start-index="276" stop-index="276" value="2"/>
- <parameter-marker-expression start-index="276" stop-index="276" value="1" />
- </in-right-value>
+ <column-right-value start-index="203" stop-index="211" name="user_id">
+ <owner start-index="203" stop-index="203" name="i"/>
+ </column-right-value>
</predicate>
- <predicate start-index="283" stop-index="314">
- <column-left-value start-index="283" stop-index="298" name="order_id">
- <owner start-index="283" stop-index="289" name="order0_"/>
+ <predicate start-index="217" stop-index="245">
+ <column-left-value start-index="217" stop-index="232" name="order_id">
+ <owner start-index="217" stop-index="223" name="order0_"/>
</column-left-value>
- <between-right-value>
- <between-literal-expression start-index="308" stop-index="308" value="9" />
- <between-parameter-marker-expression start-index="308" stop-index="308" value="2"/>
- <and-literal-expression start-index="314" stop-index="314" value="7" />
- <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
- </between-right-value>
+ <column-right-value start-index="236" stop-index="245" name="order_id">
+ <owner start-index="236" stop-index="236" name="i"/>
+ </column-right-value>
</predicate>
</and-predicate>
- </where>
- <group-by>
- <column-item start-index="325" stop-index="333" name="user_id">
- <owner start-index="325" stop-index="325" name="i"/>
- </column-item>
- </group-by>
- <order-by>
- <column-item start-index="344" stop-index="352" name="item_id" order-direction="DESC">
- <owner start-index="344" stop-index="344" name="i"/>
- </column-item>
- </order-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
- <where start-index="365" stop-index="381">
- <and-predicate>
- <predicate start-index="371" stop-index="381">
- <column-left-value start-index="371" stop-index="376" name="rownum" />
- <operator type="<="/>
- <compare-right-value>
- <literal-expression start-index="381" stop-index="381" value="5"/>
- <parameter-marker-expression start-index="381" stop-index="381" value="4"/>
- </compare-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="247" stop-index="314">
+ <and-predicate>
+ <predicate start-index="253" stop-index="277">
+ <column-left-value start-index="253" stop-index="267" name="user_id">
+ <owner start-index="253" stop-index="259" name="order0_" />
+ </column-left-value>
+ <in-right-value>
+ <literal-expression start-index="273" stop-index="273" value="1" />
+ <parameter-marker-expression start-index="273" stop-index="273" value="0"/>
+ <literal-expression start-index="276" stop-index="276" value="2"/>
+ <parameter-marker-expression start-index="276" stop-index="276" value="1" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="283" stop-index="314">
+ <column-left-value start-index="283" stop-index="298" name="order_id">
+ <owner start-index="283" stop-index="289" name="order0_"/>
+ </column-left-value>
+ <between-right-value>
+ <between-literal-expression start-index="308" stop-index="308" value="9" />
+ <between-parameter-marker-expression start-index="308" stop-index="308" value="2"/>
+ <and-literal-expression start-index="314" stop-index="314" value="7" />
+ <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <group-by>
+ <column-item start-index="325" stop-index="333" name="user_id">
+ <owner start-index="325" stop-index="325" name="i"/>
+ </column-item>
+ </group-by>
+ <order-by>
+ <column-item start-index="344" stop-index="352" name="item_id" order-direction="DESC">
+ <owner start-index="344" stop-index="344" name="i"/>
+ </column-item>
+ </order-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
+ <where start-index="365" stop-index="381">
+ <and-predicate>
+ <predicate start-index="371" stop-index="381">
+ <column-left-value start-index="371" stop-index="376" name="rownum" />
+ <operator type="<="/>
+ <compare-right-value>
+ <literal-expression start-index="381" stop-index="381" value="5"/>
+ <parameter-marker-expression start-index="381" stop-index="381" value="4"/>
+ </compare-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="386" stop-index="404">
<and-predicate>
<predicate start-index="392" stop-index="404">
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination.xml
index 8475528..0785b3e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-pagination.xml
@@ -18,14 +18,14 @@
<sql-parser-test-cases>
<select sql-case-id="select_pagination_with_offset" parameters="1, 2, 9, 10, 5">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -47,7 +47,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -91,14 +91,14 @@
</select>
<select sql-case-id="select_pagination_with_row_count" parameters="1, 2, 9, 10, 5">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -120,7 +120,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
@@ -164,14 +164,14 @@
</select>
<select sql-case-id="select_pagination_with_limit_with_back_quotes" parameters="1, 2, 9, 10, 5, 3">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-delimiter="`" end-delimiter="`" start-index="16" stop-index="26" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-delimiter="`" end-delimiter="`" start-index="33" stop-index="48" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-delimiter="`" end-delimiter="`" start-index="16" stop-index="26" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-delimiter="`" end-delimiter="`" start-index="33" stop-index="48" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="53" stop-index="73">
@@ -193,7 +193,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -237,14 +237,14 @@
</select>
<select sql-case-id="select_pagination_with_limit_and_offset_keyword" parameters="1, 2, 9, 10, 3, 5">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-delimiter="`" end-delimiter="`" start-index="16" stop-index="26" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-delimiter="`" end-delimiter="`" start-index="33" stop-index="48" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-delimiter="`" end-delimiter="`" start-index="16" stop-index="26" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-delimiter="`" end-delimiter="`" start-index="33" stop-index="48" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="53" stop-index="73">
@@ -266,7 +266,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -313,189 +313,185 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="160">
- <top-projection alias="rownum_" start-index="22" stop-index="72">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="86" stop-index="94">
- <owner name="i" start-index="86" stop-index="86" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
- <owner name="o" start-index="97" stop-index="97" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="121" stop-index="128">
- <owner name="o" start-index="121" stop-index="121" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
- <owner name="o" start-index="141" stop-index="141" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="167" stop-index="175" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="182" stop-index="195" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="200" stop-index="220">
- <column-left-value name="user_id" start-index="200" stop-index="208">
- <owner name="o" start-index="200" stop-index="200" />
- </column-left-value>
- <column-right-value name="user_id" start-index="212" stop-index="220">
- <owner name="i" start-index="212" stop-index="212" />
- </column-right-value>
- </predicate>
- <predicate start-index="226" stop-index="248">
- <column-left-value name="order_id" start-index="226" stop-index="235">
- <owner name="o" start-index="226" stop-index="226" />
- </column-left-value>
- <column-right-value name="order_id" start-index="239" stop-index="248">
- <owner name="i" start-index="239" stop-index="239" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="250" stop-index="305" literal-stop-index="306">
- <and-predicate>
- <predicate start-index="256" stop-index="274">
- <column-left-value name="user_id" start-index="256" stop-index="264">
- <owner name="o" start-index="256" stop-index="256" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="270" stop-index="270" />
- <parameter-marker-expression value="2" start-index="273" stop-index="273" />
- <literal-expression value="1" start-index="270" stop-index="270" />
- <literal-expression value="2" start-index="273" stop-index="273" />
- </in-right-value>
- </predicate>
- <predicate start-index="280" stop-index="305" literal-stop-index="306">
- <column-left-value name="order_id" start-index="280" stop-index="289">
- <owner name="o" start-index="280" stop-index="280" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
- <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
- <between-literal-expression value="9" start-index="299" stop-index="299" />
- <and-literal-expression value="10" start-index="305" stop-index="306" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="160">
+ <top-projection alias="rownum_" start-index="22" stop-index="72">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="86" stop-index="94">
+ <owner name="i" start-index="86" stop-index="86" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
+ <owner name="o" start-index="97" stop-index="97" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="121" stop-index="128">
+ <owner name="o" start-index="121" stop-index="121" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
+ <owner name="o" start-index="141" stop-index="141" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="167" stop-index="175" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="182" stop-index="195" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="200" stop-index="220">
+ <column-left-value name="user_id" start-index="200" stop-index="208">
+ <owner name="o" start-index="200" stop-index="200" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="212" stop-index="220">
+ <owner name="i" start-index="212" stop-index="212" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="226" stop-index="248">
+ <column-left-value name="order_id" start-index="226" stop-index="235">
+ <owner name="o" start-index="226" stop-index="226" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="239" stop-index="248">
+ <owner name="i" start-index="239" stop-index="239" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="250" stop-index="305" literal-stop-index="306">
+ <and-predicate>
+ <predicate start-index="256" stop-index="274">
+ <column-left-value name="user_id" start-index="256" stop-index="264">
+ <owner name="o" start-index="256" stop-index="256" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="270" stop-index="270" />
+ <parameter-marker-expression value="2" start-index="273" stop-index="273" />
+ <literal-expression value="1" start-index="270" stop-index="270" />
+ <literal-expression value="2" start-index="273" stop-index="273" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="280" stop-index="305" literal-stop-index="306">
+ <column-left-value name="order_id" start-index="280" stop-index="289">
+ <owner name="o" start-index="280" stop-index="280" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
+ <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
+ <between-literal-expression value="9" start-index="299" stop-index="299" />
+ <and-literal-expression value="10" start-index="305" stop-index="306" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
</select>
<select sql-case-id="select_pagination_with_top_percent_with_ties" parameters="3, 1, 2, 9, 10">
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="178">
- <top-projection alias="rownum_" start-index="22" stop-index="90">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="104" stop-index="112">
- <owner name="i" start-index="104" stop-index="104" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
- <owner name="o" start-index="115" stop-index="115" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="139" stop-index="146">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
- <owner name="o" start-index="159" stop-index="159" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="185" stop-index="193" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="200" stop-index="213" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="218" stop-index="238">
- <column-left-value name="user_id" start-index="218" stop-index="226">
- <owner name="o" start-index="218" stop-index="218" />
- </column-left-value>
- <column-right-value name="user_id" start-index="230" stop-index="238">
- <owner name="i" start-index="230" stop-index="230" />
- </column-right-value>
- </predicate>
- <predicate start-index="244" stop-index="266">
- <column-left-value name="order_id" start-index="244" stop-index="253">
- <owner name="o" start-index="244" stop-index="244" />
- </column-left-value>
- <column-right-value name="order_id" start-index="257" stop-index="266">
- <owner name="i" start-index="257" stop-index="257" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="268" stop-index="323" literal-stop-index="324">
- <and-predicate>
- <predicate start-index="274" stop-index="292">
- <column-left-value name="user_id" start-index="274" stop-index="282">
- <owner name="o" start-index="274" stop-index="274" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="288" stop-index="288" />
- <parameter-marker-expression value="2" start-index="291" stop-index="291" />
- <literal-expression value="1" start-index="288" stop-index="288" />
- <literal-expression value="2" start-index="291" stop-index="291" />
- </in-right-value>
- </predicate>
- <predicate start-index="298" stop-index="323" literal-stop-index="324">
- <column-left-value name="order_id" start-index="298" stop-index="307">
- <owner name="o" start-index="298" stop-index="298" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
- <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
- <between-literal-expression value="9" start-index="317" stop-index="317" />
- <and-literal-expression value="10" start-index="323" stop-index="324" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="178">
+ <top-projection alias="rownum_" start-index="22" stop-index="90">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="104" stop-index="112">
+ <owner name="i" start-index="104" stop-index="104" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
+ <owner name="o" start-index="115" stop-index="115" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="139" stop-index="146">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
+ <owner name="o" start-index="159" stop-index="159" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="185" stop-index="193" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="200" stop-index="213" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="218" stop-index="238">
+ <column-left-value name="user_id" start-index="218" stop-index="226">
+ <owner name="o" start-index="218" stop-index="218" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="230" stop-index="238">
+ <owner name="i" start-index="230" stop-index="230" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="244" stop-index="266">
+ <column-left-value name="order_id" start-index="244" stop-index="253">
+ <owner name="o" start-index="244" stop-index="244" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="257" stop-index="266">
+ <owner name="i" start-index="257" stop-index="257" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="268" stop-index="323" literal-stop-index="324">
+ <and-predicate>
+ <predicate start-index="274" stop-index="292">
+ <column-left-value name="user_id" start-index="274" stop-index="282">
+ <owner name="o" start-index="274" stop-index="274" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="288" stop-index="288" />
+ <parameter-marker-expression value="2" start-index="291" stop-index="291" />
+ <literal-expression value="1" start-index="288" stop-index="288" />
+ <literal-expression value="2" start-index="291" stop-index="291" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="298" stop-index="323" literal-stop-index="324">
+ <column-left-value name="order_id" start-index="298" stop-index="307">
+ <owner name="o" start-index="298" stop-index="298" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
+ <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
+ <between-literal-expression value="9" start-index="317" stop-index="317" />
+ <and-literal-expression value="10" start-index="323" stop-index="324" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
</select>
<select sql-case-id="select_pagination_with_offset_and_limit" parameters="1, 2, 9, 10, 5, 3">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -517,7 +513,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -562,14 +558,14 @@
</select>
<select sql-case-id="select_pagination_with_offset_and_limit_all" parameters="1, 2, 9, 10, 5">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -591,7 +587,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -637,89 +633,87 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="160">
- <top-projection alias="rownum_" start-index="22" stop-index="72">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="86" stop-index="94">
- <owner name="i" start-index="86" stop-index="86" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
- <owner name="o" start-index="97" stop-index="97" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="121" stop-index="128">
- <owner name="o" start-index="121" stop-index="121" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
- <owner name="o" start-index="141" stop-index="141" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="167" stop-index="175" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="182" stop-index="195" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="200" stop-index="220">
- <column-left-value name="user_id" start-index="200" stop-index="208">
- <owner name="o" start-index="200" stop-index="200" />
- </column-left-value>
- <column-right-value name="user_id" start-index="212" stop-index="220">
- <owner name="i" start-index="212" stop-index="212" />
- </column-right-value>
- </predicate>
- <predicate start-index="226" stop-index="248">
- <column-left-value name="order_id" start-index="226" stop-index="235">
- <owner name="o" start-index="226" stop-index="226" />
- </column-left-value>
- <column-right-value name="order_id" start-index="239" stop-index="248">
- <owner name="i" start-index="239" stop-index="239" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="250" stop-index="305" literal-stop-index="306">
- <and-predicate>
- <predicate start-index="256" stop-index="274">
- <column-left-value name="user_id" start-index="256" stop-index="264">
- <owner name="o" start-index="256" stop-index="256" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="270" stop-index="270" />
- <parameter-marker-expression value="2" start-index="273" stop-index="273" />
- <literal-expression value="1" start-index="270" stop-index="270" />
- <literal-expression value="2" start-index="273" stop-index="273" />
- </in-right-value>
- </predicate>
- <predicate start-index="280" stop-index="305" literal-stop-index="306">
- <column-left-value name="order_id" start-index="280" stop-index="289">
- <owner name="o" start-index="280" stop-index="280" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
- <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
- <between-literal-expression value="9" start-index="299" stop-index="299" />
- <and-literal-expression value="10" start-index="305" stop-index="306" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="160">
+ <top-projection alias="rownum_" start-index="22" stop-index="72">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="86" stop-index="94">
+ <owner name="i" start-index="86" stop-index="86" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
+ <owner name="o" start-index="97" stop-index="97" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="121" stop-index="128">
+ <owner name="o" start-index="121" stop-index="121" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
+ <owner name="o" start-index="141" stop-index="141" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="167" stop-index="175" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="182" stop-index="195" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="200" stop-index="220">
+ <column-left-value name="user_id" start-index="200" stop-index="208">
+ <owner name="o" start-index="200" stop-index="200" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="212" stop-index="220">
+ <owner name="i" start-index="212" stop-index="212" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="226" stop-index="248">
+ <column-left-value name="order_id" start-index="226" stop-index="235">
+ <owner name="o" start-index="226" stop-index="226" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="239" stop-index="248">
+ <owner name="i" start-index="239" stop-index="239" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="250" stop-index="305" literal-stop-index="306">
+ <and-predicate>
+ <predicate start-index="256" stop-index="274">
+ <column-left-value name="user_id" start-index="256" stop-index="264">
+ <owner name="o" start-index="256" stop-index="256" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="270" stop-index="270" />
+ <parameter-marker-expression value="2" start-index="273" stop-index="273" />
+ <literal-expression value="1" start-index="270" stop-index="270" />
+ <literal-expression value="2" start-index="273" stop-index="273" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="280" stop-index="305" literal-stop-index="306">
+ <column-left-value name="order_id" start-index="280" stop-index="289">
+ <owner name="o" start-index="280" stop-index="280" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
+ <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
+ <between-literal-expression value="9" start-index="299" stop-index="299" />
+ <and-literal-expression value="10" start-index="305" stop-index="306" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="316" stop-index="337" literal-start-index="317" literal-stop-index="338">
<and-predicate>
<predicate start-index="322" stop-index="337" literal-start-index="323" literal-stop-index="338">
@@ -740,89 +734,87 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="178">
- <top-projection alias="rownum_" start-index="22" stop-index="90">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="104" stop-index="112">
- <owner name="i" start-index="104" stop-index="104" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
- <owner name="o" start-index="115" stop-index="115" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="139" stop-index="146">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
- <owner name="o" start-index="159" stop-index="159" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="185" stop-index="193" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="200" stop-index="213" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="218" stop-index="238">
- <column-left-value name="user_id" start-index="218" stop-index="226">
- <owner name="o" start-index="218" stop-index="218" />
- </column-left-value>
- <column-right-value name="user_id" start-index="230" stop-index="238">
- <owner name="i" start-index="230" stop-index="230" />
- </column-right-value>
- </predicate>
- <predicate start-index="244" stop-index="266">
- <column-left-value name="order_id" start-index="244" stop-index="253">
- <owner name="o" start-index="244" stop-index="244" />
- </column-left-value>
- <column-right-value name="order_id" start-index="257" stop-index="266">
- <owner name="i" start-index="257" stop-index="257" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="268" stop-index="323" literal-stop-index="324">
- <and-predicate>
- <predicate start-index="274" stop-index="292">
- <column-left-value name="user_id" start-index="274" stop-index="282">
- <owner name="o" start-index="274" stop-index="274" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="288" stop-index="288" />
- <parameter-marker-expression value="2" start-index="291" stop-index="291" />
- <literal-expression value="1" start-index="288" stop-index="288" />
- <literal-expression value="2" start-index="291" stop-index="291" />
- </in-right-value>
- </predicate>
- <predicate start-index="298" stop-index="323" literal-stop-index="324">
- <column-left-value name="order_id" start-index="298" stop-index="307">
- <owner name="o" start-index="298" stop-index="298" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
- <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
- <between-literal-expression value="9" start-index="317" stop-index="317" />
- <and-literal-expression value="10" start-index="323" stop-index="324" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="178">
+ <top-projection alias="rownum_" start-index="22" stop-index="90">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="104" stop-index="112">
+ <owner name="i" start-index="104" stop-index="104" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
+ <owner name="o" start-index="115" stop-index="115" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="139" stop-index="146">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
+ <owner name="o" start-index="159" stop-index="159" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="185" stop-index="193" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="200" stop-index="213" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="218" stop-index="238">
+ <column-left-value name="user_id" start-index="218" stop-index="226">
+ <owner name="o" start-index="218" stop-index="218" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="230" stop-index="238">
+ <owner name="i" start-index="230" stop-index="230" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="244" stop-index="266">
+ <column-left-value name="order_id" start-index="244" stop-index="253">
+ <owner name="o" start-index="244" stop-index="244" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="257" stop-index="266">
+ <owner name="i" start-index="257" stop-index="257" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="268" stop-index="323" literal-stop-index="324">
+ <and-predicate>
+ <predicate start-index="274" stop-index="292">
+ <column-left-value name="user_id" start-index="274" stop-index="282">
+ <owner name="o" start-index="274" stop-index="274" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="288" stop-index="288" />
+ <parameter-marker-expression value="2" start-index="291" stop-index="291" />
+ <literal-expression value="1" start-index="288" stop-index="288" />
+ <literal-expression value="2" start-index="291" stop-index="291" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="298" stop-index="323" literal-stop-index="324">
+ <column-left-value name="order_id" start-index="298" stop-index="307">
+ <owner name="o" start-index="298" stop-index="298" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
+ <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
+ <between-literal-expression value="9" start-index="317" stop-index="317" />
+ <and-literal-expression value="10" start-index="323" stop-index="324" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="334" stop-index="355" literal-start-index="335" literal-stop-index="356">
<and-predicate>
<predicate start-index="340" stop-index="355" literal-start-index="341" literal-stop-index="356">
@@ -843,89 +835,87 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="160">
- <top-projection alias="rownum_" start-index="22" stop-index="72">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="86" stop-index="94">
- <owner name="i" start-index="86" stop-index="86" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
- <owner name="o" start-index="97" stop-index="97" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="121" stop-index="128">
- <owner name="o" start-index="121" stop-index="121" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
- <owner name="o" start-index="141" stop-index="141" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="167" stop-index="175" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="182" stop-index="195" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="200" stop-index="220">
- <column-left-value name="user_id" start-index="200" stop-index="208">
- <owner name="o" start-index="200" stop-index="200" />
- </column-left-value>
- <column-right-value name="user_id" start-index="212" stop-index="220">
- <owner name="i" start-index="212" stop-index="212" />
- </column-right-value>
- </predicate>
- <predicate start-index="226" stop-index="248">
- <column-left-value name="order_id" start-index="226" stop-index="235">
- <owner name="o" start-index="226" stop-index="226" />
- </column-left-value>
- <column-right-value name="order_id" start-index="239" stop-index="248">
- <owner name="i" start-index="239" stop-index="239" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="250" stop-index="305" literal-stop-index="306">
- <and-predicate>
- <predicate start-index="256" stop-index="274">
- <column-left-value name="user_id" start-index="256" stop-index="264">
- <owner name="o" start-index="256" stop-index="256" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="270" stop-index="270" />
- <parameter-marker-expression value="2" start-index="273" stop-index="273" />
- <literal-expression value="1" start-index="270" stop-index="270" />
- <literal-expression value="2" start-index="273" stop-index="273" />
- </in-right-value>
- </predicate>
- <predicate start-index="280" stop-index="305" literal-stop-index="306">
- <column-left-value name="order_id" start-index="280" stop-index="289">
- <owner name="o" start-index="280" stop-index="280" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
- <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
- <between-literal-expression value="9" start-index="299" stop-index="299" />
- <and-literal-expression value="10" start-index="305" stop-index="306" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="160">
+ <top-projection alias="rownum_" start-index="22" stop-index="72">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="86" stop-index="94">
+ <owner name="i" start-index="86" stop-index="86" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="97" stop-index="106">
+ <owner name="o" start-index="97" stop-index="97" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="121" stop-index="128">
+ <owner name="o" start-index="121" stop-index="121" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="141" stop-index="149">
+ <owner name="o" start-index="141" stop-index="141" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="167" stop-index="175" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="182" stop-index="195" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="200" stop-index="220">
+ <column-left-value name="user_id" start-index="200" stop-index="208">
+ <owner name="o" start-index="200" stop-index="200" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="212" stop-index="220">
+ <owner name="i" start-index="212" stop-index="212" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="226" stop-index="248">
+ <column-left-value name="order_id" start-index="226" stop-index="235">
+ <owner name="o" start-index="226" stop-index="226" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="239" stop-index="248">
+ <owner name="i" start-index="239" stop-index="239" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="250" stop-index="305" literal-stop-index="306">
+ <and-predicate>
+ <predicate start-index="256" stop-index="274">
+ <column-left-value name="user_id" start-index="256" stop-index="264">
+ <owner name="o" start-index="256" stop-index="256" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="270" stop-index="270" />
+ <parameter-marker-expression value="2" start-index="273" stop-index="273" />
+ <literal-expression value="1" start-index="270" stop-index="270" />
+ <literal-expression value="2" start-index="273" stop-index="273" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="280" stop-index="305" literal-stop-index="306">
+ <column-left-value name="order_id" start-index="280" stop-index="289">
+ <owner name="o" start-index="280" stop-index="280" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="299" stop-index="299" />
+ <and-parameter-marker-expression value="4" start-index="305" stop-index="305" />
+ <between-literal-expression value="9" start-index="299" stop-index="299" />
+ <and-literal-expression value="10" start-index="305" stop-index="306" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="316" stop-index="337" literal-start-index="317" literal-stop-index="338">
<and-predicate>
<predicate start-index="322" stop-index="338" literal-start-index="323" literal-stop-index="339">
@@ -946,89 +936,87 @@
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="row_">
- <subquery>
- <select>
- <projections start-index="22" stop-index="178">
- <top-projection alias="rownum_" start-index="22" stop-index="90">
- <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
- </top-projection>
- <column-projection name="item_id" start-index="104" stop-index="112">
- <owner name="i" start-index="104" stop-index="104" />
- </column-projection>
- <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
- <owner name="o" start-index="115" stop-index="115" />
- </column-projection>
- <column-projection name="status" alias="status" start-index="139" stop-index="146">
- <owner name="o" start-index="139" stop-index="139" />
- </column-projection>
- <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
- <owner name="o" start-index="159" stop-index="159" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="185" stop-index="193" name="t_order" alias="o" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="200" stop-index="213" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="218" stop-index="238">
- <column-left-value name="user_id" start-index="218" stop-index="226">
- <owner name="o" start-index="218" stop-index="218" />
- </column-left-value>
- <column-right-value name="user_id" start-index="230" stop-index="238">
- <owner name="i" start-index="230" stop-index="230" />
- </column-right-value>
- </predicate>
- <predicate start-index="244" stop-index="266">
- <column-left-value name="order_id" start-index="244" stop-index="253">
- <owner name="o" start-index="244" stop-index="244" />
- </column-left-value>
- <column-right-value name="order_id" start-index="257" stop-index="266">
- <owner name="i" start-index="257" stop-index="257" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="268" stop-index="323" literal-stop-index="324">
- <and-predicate>
- <predicate start-index="274" stop-index="292">
- <column-left-value name="user_id" start-index="274" stop-index="282">
- <owner name="o" start-index="274" stop-index="274" />
- </column-left-value>
- <in-right-value>
- <parameter-marker-expression value="1" start-index="288" stop-index="288" />
- <parameter-marker-expression value="2" start-index="291" stop-index="291" />
- <literal-expression value="1" start-index="288" stop-index="288" />
- <literal-expression value="2" start-index="291" stop-index="291" />
- </in-right-value>
- </predicate>
- <predicate start-index="298" stop-index="323" literal-stop-index="324">
- <column-left-value name="order_id" start-index="298" stop-index="307">
- <owner name="o" start-index="298" stop-index="298" />
- </column-left-value>
- <between-right-value>
- <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
- <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
- <between-literal-expression value="9" start-index="317" stop-index="317" />
- <and-literal-expression value="10" start-index="323" stop-index="324" />
- </between-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ <from>
+ <subquery-table alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="22" stop-index="178">
+ <top-projection alias="rownum_" start-index="22" stop-index="90">
+ <top-value value="3" parameter-index="0" start-index="27" stop-index="27" />
+ </top-projection>
+ <column-projection name="item_id" start-index="104" stop-index="112">
+ <owner name="i" start-index="104" stop-index="104" />
+ </column-projection>
+ <column-projection name="order_id" alias="order_id" start-index="115" stop-index="124">
+ <owner name="o" start-index="115" stop-index="115" />
+ </column-projection>
+ <column-projection name="status" alias="status" start-index="139" stop-index="146">
+ <owner name="o" start-index="139" stop-index="139" />
+ </column-projection>
+ <column-projection name="user_id" alias="user_id" start-index="159" stop-index="167">
+ <owner name="o" start-index="159" stop-index="159" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="185" stop-index="193" name="t_order" alias="o" />
+ </left>
+ <right>
+ <simple-table start-index="200" stop-index="213" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="218" stop-index="238">
+ <column-left-value name="user_id" start-index="218" stop-index="226">
+ <owner name="o" start-index="218" stop-index="218" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="230" stop-index="238">
+ <owner name="i" start-index="230" stop-index="230" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="244" stop-index="266">
+ <column-left-value name="order_id" start-index="244" stop-index="253">
+ <owner name="o" start-index="244" stop-index="244" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="257" stop-index="266">
+ <owner name="i" start-index="257" stop-index="257" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="268" stop-index="323" literal-stop-index="324">
+ <and-predicate>
+ <predicate start-index="274" stop-index="292">
+ <column-left-value name="user_id" start-index="274" stop-index="282">
+ <owner name="o" start-index="274" stop-index="274" />
+ </column-left-value>
+ <in-right-value>
+ <parameter-marker-expression value="1" start-index="288" stop-index="288" />
+ <parameter-marker-expression value="2" start-index="291" stop-index="291" />
+ <literal-expression value="1" start-index="288" stop-index="288" />
+ <literal-expression value="2" start-index="291" stop-index="291" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="298" stop-index="323" literal-stop-index="324">
+ <column-left-value name="order_id" start-index="298" stop-index="307">
+ <owner name="o" start-index="298" stop-index="298" />
+ </column-left-value>
+ <between-right-value>
+ <between-parameter-marker-expression value="3" start-index="317" stop-index="317" />
+ <and-parameter-marker-expression value="4" start-index="323" stop-index="323" />
+ <between-literal-expression value="9" start-index="317" stop-index="317" />
+ <and-literal-expression value="10" start-index="323" stop-index="324" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="334" stop-index="355" literal-start-index="335" literal-stop-index="356">
<and-predicate>
<predicate start-index="340" stop-index="356" literal-start-index="341" literal-stop-index="357">
@@ -1049,236 +1037,226 @@
<projections start-index="7" stop-index="7" >
<shorthand-projection stop-index="7" start-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable>
- <subquery start-index="14" stop_index="363">
- <select>
- <projections start-index="22" stop-index="43">
- <shorthand-projection start-index="22" stop-index="27">
- <owner start-index="22" stop-index="25" name="row_" />
- </shorthand-projection>
- <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_" />
- </projections>
- <table-reference>
- <table-factor>
- <subqueryTable start-index="50" stop-index="339" alias="row_">
- <subquery>
- <select>
- <projections start-index="58" stop-index="139" >
- <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
- <owner start-index="58" stop-index="64" name="order0_" />
- </column-projection>
- <column-projection start-index="88" stop-index="101" name="status" alias="status">
- <owner start-index="88" stop-index="94" name="order0_" />
- </column-projection>
- <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
- <owner start-index="114" stop-index="120" name="order0_" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="146" stop-index="160" name="t_order" alias="order0_" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="167" stop-index="180" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="185" stop-index="211">
- <column-left-value start-index="185" stop-index="199" name="user_id">
- <owner start-index="185" stop-index="191" name="order0_" />
- </column-left-value>
- <column-right-value start-index="203" stop-index="211" name="user_id">
- <owner start-index="203" stop-index="203" name="i" />
- </column-right-value>
- </predicate>
- <predicate start-index="217" stop-index="245">
- <column-left-value start-index="217" stop-index="232" name="order_id">
- <owner start-index="217" stop-index="223" name="order0_" />
- </column-left-value>
- <column-right-value start-index="236" stop-index="245" name="order_id">
- <owner start-index="236" stop-index="236" name="i" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="247" stop-index="314">
+ <from>
+ <subquery-table>
+ <subquery start-index="14" stop_index="363">
+ <select>
+ <projections start-index="22" stop-index="43">
+ <shorthand-projection start-index="22" stop-index="27">
+ <owner start-index="22" stop-index="25" name="row_" />
+ </shorthand-projection>
+ <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_" />
+ </projections>
+ <from>
+ <subquery-table start-index="50" stop-index="339" alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="58" stop-index="139" >
+ <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
+ <owner start-index="58" stop-index="64" name="order0_" />
+ </column-projection>
+ <column-projection start-index="88" stop-index="101" name="status" alias="status">
+ <owner start-index="88" stop-index="94" name="order0_" />
+ </column-projection>
+ <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
+ <owner start-index="114" stop-index="120" name="order0_" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="146" stop-index="160" name="t_order" alias="order0_" />
+ </left>
+ <right>
+ <simple-table start-index="167" stop-index="180" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
<and-predicate>
- <predicate start-index="253" stop-index="277">
- <column-left-value start-index="253" stop-index="267" name="user_id">
- <owner start-index="253" stop-index="259" name="order0_" />
+ <predicate start-index="185" stop-index="211">
+ <column-left-value start-index="185" stop-index="199" name="user_id">
+ <owner start-index="185" stop-index="191" name="order0_" />
</column-left-value>
- <in-right-value>
- <literal-expression start-index="273" stop-index="273" value="1" />
- <literal-expression start-index="276" stop-index="276" value="2" />
- <parameter-marker-expression start-index="273" stop-index="273" value="0" />
- <parameter-marker-expression start-index="276" stop-index="276" value="1" />
- </in-right-value>
+ <column-right-value start-index="203" stop-index="211" name="user_id">
+ <owner start-index="203" stop-index="203" name="i" />
+ </column-right-value>
</predicate>
- <predicate start-index="283" stop-index="314">
- <column-left-value start-index="283" stop-index="298" name="order_id">
- <owner start-index="283" stop-index="289" name="order0_" />
+ <predicate start-index="217" stop-index="245">
+ <column-left-value start-index="217" stop-index="232" name="order_id">
+ <owner start-index="217" stop-index="223" name="order0_" />
</column-left-value>
- <between-right-value>
- <between-literal-expression start-index="308" stop-index="308" value="9" />
- <between-parameter-marker-expression start-index="308" stop-index="308" value="2" />
- <and-literal-expression start-index="314" stop-index="314" value="7" />
- <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
- </between-right-value>
+ <column-right-value start-index="236" stop-index="245" name="order_id">
+ <owner start-index="236" stop-index="236" name="i" />
+ </column-right-value>
</predicate>
</and-predicate>
- </where>
- <order-by>
- <column-item start-index="325" stop-index="333" name="item_id" order-direction="DESC">
- <owner start-index="325" stop-index="325" name="i" />
- </column-item>
- </order-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="247" stop-index="314">
+ <and-predicate>
+ <predicate start-index="253" stop-index="277">
+ <column-left-value start-index="253" stop-index="267" name="user_id">
+ <owner start-index="253" stop-index="259" name="order0_" />
+ </column-left-value>
+ <in-right-value>
+ <literal-expression start-index="273" stop-index="273" value="1" />
+ <literal-expression start-index="276" stop-index="276" value="2" />
+ <parameter-marker-expression start-index="273" stop-index="273" value="0" />
+ <parameter-marker-expression start-index="276" stop-index="276" value="1" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="283" stop-index="314">
+ <column-left-value start-index="283" stop-index="298" name="order_id">
+ <owner start-index="283" stop-index="289" name="order0_" />
+ </column-left-value>
+ <between-right-value>
+ <between-literal-expression start-index="308" stop-index="308" value="9" />
+ <between-parameter-marker-expression start-index="308" stop-index="308" value="2" />
+ <and-literal-expression start-index="314" stop-index="314" value="7" />
+ <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <order-by>
+ <column-item start-index="325" stop-index="333" name="item_id" order-direction="DESC">
+ <owner start-index="325" stop-index="325" name="i" />
+ </column-item>
+ </order-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
+ <where start-index="346" stop-index="362">
+ <and-predicate>
+ <predicate start-index="352" stop-index="362">
+ <column-left-value start-index="352" stop-index="357" name="rownum" />
+ <operator type="<=" />
+ <compare-right-value>
+ <literal-expression start-index="362" stop-index="362" value="3" />
+ <parameter-marker-expression start-index="362" stop-index="362" value="4" />
+ </compare-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
- </table-reference>
- <where start-index="346" stop-index="362">
- <and-predicate>
- <predicate start-index="352" stop-index="362">
- <column-left-value start-index="352" stop-index="357" name="rownum" />
- <operator type="<=" />
- <compare-right-value>
- <literal-expression start-index="362" stop-index="362" value="3" />
- <parameter-marker-expression start-index="362" stop-index="362" value="4" />
- </compare-right-value>
- </predicate>
- </and-predicate>
- </where>
-
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
</select>
<select sql-case-id="select_pagination_with_row_number_for_greater_than" parameters="1, 2, 9, 7, 5, 3">
<projections start-index="7" stop-index="7" >
<shorthand-projection stop-index="7" start-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable>
- <subquery start-index="14" stop_index="363">
- <select>
- <projections start-index="22" stop-index="43">
- <shorthand-projection start-index="22" stop-index="27">
- <owner start-index="22" stop-index="25" name="row_" />
- </shorthand-projection>
- <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_" />
- </projections>
- <table-reference>
- <table-factor>
- <subqueryTable start-index="50" stop-index="339" alias="row_">
- <subquery>
- <select>
- <projections start-index="58" stop-index="139" >
- <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
- <owner start-index="58" stop-index="64" name="order0_" />
- </column-projection>
- <column-projection start-index="88" stop-index="101" name="status" alias="status">
- <owner start-index="88" stop-index="94" name="order0_" />
- </column-projection>
- <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
- <owner start-index="114" stop-index="120" name="order0_" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="146" stop-index="160" name="t_order" alias="order0_" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="167" stop-index="180" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="185" stop-index="211">
- <column-left-value start-index="185" stop-index="199" name="user_id">
- <owner start-index="185" stop-index="191" name="order0_" />
- </column-left-value>
- <column-right-value start-index="203" stop-index="211" name="user_id">
- <owner start-index="203" stop-index="203" name="i" />
- </column-right-value>
- </predicate>
- <predicate start-index="217" stop-index="245">
- <column-left-value start-index="217" stop-index="232" name="order_id">
- <owner start-index="217" stop-index="223" name="order0_" />
- </column-left-value>
- <column-right-value start-index="236" stop-index="245" name="order_id">
- <owner start-index="236" stop-index="236" name="i" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="247" stop-index="314">
+ <from>
+ <subquery-table alias="t">
+ <subquery start-index="14" stop_index="363">
+ <select>
+ <projections start-index="22" stop-index="43">
+ <shorthand-projection start-index="22" stop-index="27">
+ <owner start-index="22" stop-index="25" name="row_" />
+ </shorthand-projection>
+ <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_" />
+ </projections>
+ <from>
+ <subquery-table start-index="50" stop-index="339" alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="58" stop-index="139" >
+ <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
+ <owner start-index="58" stop-index="64" name="order0_" />
+ </column-projection>
+ <column-projection start-index="88" stop-index="101" name="status" alias="status">
+ <owner start-index="88" stop-index="94" name="order0_" />
+ </column-projection>
+ <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
+ <owner start-index="114" stop-index="120" name="order0_" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="146" stop-index="160" name="t_order" alias="order0_" />
+ </left>
+ <right>
+ <simple-table start-index="167" stop-index="180" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
<and-predicate>
- <predicate start-index="253" stop-index="277">
- <column-left-value start-index="253" stop-index="267" name="user_id">
- <owner start-index="253" stop-index="259" name="order0_" />
+ <predicate start-index="185" stop-index="211">
+ <column-left-value start-index="185" stop-index="199" name="user_id">
+ <owner start-index="185" stop-index="191" name="order0_" />
</column-left-value>
- <in-right-value>
- <literal-expression start-index="273" stop-index="273" value="1" />
- <literal-expression start-index="276" stop-index="276" value="2" />
- <parameter-marker-expression start-index="273" stop-index="273" value="0" />
- <parameter-marker-expression start-index="276" stop-index="276" value="1" />
- </in-right-value>
+ <column-right-value start-index="203" stop-index="211" name="user_id">
+ <owner start-index="203" stop-index="203" name="i" />
+ </column-right-value>
</predicate>
- <predicate start-index="283" stop-index="314">
- <column-left-value start-index="283" stop-index="298" name="order_id">
- <owner start-index="283" stop-index="289" name="order0_" />
+ <predicate start-index="217" stop-index="245">
+ <column-left-value start-index="217" stop-index="232" name="order_id">
+ <owner start-index="217" stop-index="223" name="order0_" />
</column-left-value>
- <between-right-value>
- <between-literal-expression start-index="308" stop-index="308" value="9" />
- <between-parameter-marker-expression start-index="308" stop-index="308" value="2" />
- <and-literal-expression start-index="314" stop-index="314" value="7" />
- <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
- </between-right-value>
+ <column-right-value start-index="236" stop-index="245" name="order_id">
+ <owner start-index="236" stop-index="236" name="i" />
+ </column-right-value>
</predicate>
</and-predicate>
- </where>
- <order-by>
- <column-item start-index="325" stop-index="333" name="item_id" order-direction="DESC">
- <owner start-index="325" stop-index="325" name="i" />
- </column-item>
- </order-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
-
- </table-reference>
- <where start-index="346" stop-index="362">
- <and-predicate>
- <predicate start-index="352" stop-index="362">
- <column-left-value start-index="352" stop-index="357" name="rownum" />
- <operator type="<=" />
- <compare-right-value>
- <literal-expression start-index="362" stop-index="362" value="5" />
- <parameter-marker-expression start-index="362" stop-index="362" value="4" />
- </compare-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="247" stop-index="314">
+ <and-predicate>
+ <predicate start-index="253" stop-index="277">
+ <column-left-value start-index="253" stop-index="267" name="user_id">
+ <owner start-index="253" stop-index="259" name="order0_" />
+ </column-left-value>
+ <in-right-value>
+ <literal-expression start-index="273" stop-index="273" value="1" />
+ <literal-expression start-index="276" stop-index="276" value="2" />
+ <parameter-marker-expression start-index="273" stop-index="273" value="0" />
+ <parameter-marker-expression start-index="276" stop-index="276" value="1" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="283" stop-index="314">
+ <column-left-value start-index="283" stop-index="298" name="order_id">
+ <owner start-index="283" stop-index="289" name="order0_" />
+ </column-left-value>
+ <between-right-value>
+ <between-literal-expression start-index="308" stop-index="308" value="9" />
+ <between-parameter-marker-expression start-index="308" stop-index="308" value="2" />
+ <and-literal-expression start-index="314" stop-index="314" value="7" />
+ <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <order-by>
+ <column-item start-index="325" stop-index="333" name="item_id" order-direction="DESC">
+ <owner start-index="325" stop-index="325" name="i" />
+ </column-item>
+ </order-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
+ <where start-index="346" stop-index="362">
+ <and-predicate>
+ <predicate start-index="352" stop-index="362">
+ <column-left-value start-index="352" stop-index="357" name="rownum" />
+ <operator type="<=" />
+ <compare-right-value>
+ <literal-expression start-index="362" stop-index="362" value="5" />
+ <parameter-marker-expression start-index="362" stop-index="362" value="4" />
+ </compare-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="367" stop-index="385">
<and-predicate>
<predicate start-index="373" stop-index="385">
@@ -1299,117 +1277,112 @@
<projections start-index="7" stop-index="7" >
<shorthand-projection stop-index="7" start-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable>
- <subquery start-index="14" stop_index="363">
- <select>
- <projections start-index="22" stop-index="43">
- <shorthand-projection start-index="22" stop-index="27">
- <owner start-index="22" stop-index="25" name="row_" />
- </shorthand-projection>
- <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_" />
- </projections>
- <table-reference>
- <table-factor>
- <subqueryTable start-index="50" stop-index="339" alias="row_">
- <subquery>
- <select>
- <projections start-index="58" stop-index="139" >
- <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
- <owner start-index="58" stop-index="64" name="order0_" />
- </column-projection>
- <column-projection start-index="88" stop-index="101" name="status" alias="status">
- <owner start-index="88" stop-index="94" name="order0_" />
- </column-projection>
- <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
- <owner start-index="114" stop-index="120" name="order0_" />
- </column-projection>
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="146" stop-index="160" name="t_order" alias="order0_" />
- </table-factor>
- <join-table>
- <table-factor>
- <table start-index="167" stop-index="180" name="t_order_item" alias="i" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="185" stop-index="211">
- <column-left-value start-index="185" stop-index="199" name="user_id">
- <owner start-index="185" stop-index="191" name="order0_" />
- </column-left-value>
- <column-right-value start-index="203" stop-index="211" name="user_id">
- <owner start-index="203" stop-index="203" name="i" />
- </column-right-value>
- </predicate>
- <predicate start-index="217" stop-index="245">
- <column-left-value start-index="217" stop-index="232" name="order_id">
- <owner start-index="217" stop-index="223" name="order0_" />
- </column-left-value>
- <column-right-value start-index="236" stop-index="245" name="order_id">
- <owner start-index="236" stop-index="236" name="i" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- </table-reference>
- <where start-index="247" stop-index="314">
+ <from>
+ <subquery-table alias="t">
+ <subquery start-index="14" stop_index="363">
+ <select>
+ <projections start-index="22" stop-index="43">
+ <shorthand-projection start-index="22" stop-index="27">
+ <owner start-index="22" stop-index="25" name="row_" />
+ </shorthand-projection>
+ <column-projection start-index="30" stop-index="35" name="rownum" alias="rownum_" />
+ </projections>
+ <from>
+ <subquery-table start-index="50" stop-index="339" alias="row_">
+ <subquery>
+ <select>
+ <projections start-index="58" stop-index="139" >
+ <column-projection start-index="58" stop-index="73" name="order_id" alias="order_id">
+ <owner start-index="58" stop-index="64" name="order0_" />
+ </column-projection>
+ <column-projection start-index="88" stop-index="101" name="status" alias="status">
+ <owner start-index="88" stop-index="94" name="order0_" />
+ </column-projection>
+ <column-projection start-index="114" stop-index="128" name="user_id" alias="user_id">
+ <owner start-index="114" stop-index="120" name="order0_" />
+ </column-projection>
+ </projections>
+ <from>
+ <join-table>
+ <left>
+ <simple-table start-index="146" stop-index="160" name="t_order" alias="order0_" />
+ </left>
+ <right>
+ <simple-table start-index="167" stop-index="180" name="t_order_item" alias="i" />
+ </right>
+ <joinSpecification>
<and-predicate>
- <predicate start-index="253" stop-index="277">
- <column-left-value start-index="253" stop-index="267" name="user_id">
- <owner start-index="253" stop-index="259" name="order0_" />
+ <predicate start-index="185" stop-index="211">
+ <column-left-value start-index="185" stop-index="199" name="user_id">
+ <owner start-index="185" stop-index="191" name="order0_" />
</column-left-value>
- <in-right-value>
- <literal-expression start-index="273" stop-index="273" value="1" />
- <literal-expression start-index="276" stop-index="276" value="2" />
- <parameter-marker-expression start-index="273" stop-index="273" value="0" />
- <parameter-marker-expression start-index="276" stop-index="276" value="1" />
- </in-right-value>
+ <column-right-value start-index="203" stop-index="211" name="user_id">
+ <owner start-index="203" stop-index="203" name="i" />
+ </column-right-value>
</predicate>
- <predicate start-index="283" stop-index="314">
- <column-left-value start-index="283" stop-index="298" name="order_id">
- <owner start-index="283" stop-index="289" name="order0_" />
+ <predicate start-index="217" stop-index="245">
+ <column-left-value start-index="217" stop-index="232" name="order_id">
+ <owner start-index="217" stop-index="223" name="order0_" />
</column-left-value>
- <between-right-value>
- <between-literal-expression start-index="308" stop-index="308" value="9" />
- <between-parameter-marker-expression start-index="308" stop-index="308" value="2" />
- <and-literal-expression start-index="314" stop-index="314" value="7" />
- <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
- </between-right-value>
+ <column-right-value start-index="236" stop-index="245" name="order_id">
+ <owner start-index="236" stop-index="236" name="i" />
+ </column-right-value>
</predicate>
</and-predicate>
- </where>
- <order-by>
- <column-item start-index="325" stop-index="333" name="item_id" order-direction="DESC">
- <owner start-index="325" stop-index="325" name="i" />
- </column-item>
- </order-by>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
-
- </table-reference>
- <where start-index="346" stop-index="362">
- <and-predicate>
- <predicate start-index="352" stop-index="362">
- <column-left-value start-index="352" stop-index="357" name="rownum" />
- <operator type="<=" />
- <compare-right-value>
- <literal-expression start-index="362" stop-index="362" value="5" />
- <parameter-marker-expression start-index="362" stop-index="362" value="4" />
- </compare-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
+ </joinSpecification>
+ </join-table>
+ </from>
+ <where start-index="247" stop-index="314">
+ <and-predicate>
+ <predicate start-index="253" stop-index="277">
+ <column-left-value start-index="253" stop-index="267" name="user_id">
+ <owner start-index="253" stop-index="259" name="order0_" />
+ </column-left-value>
+ <in-right-value>
+ <literal-expression start-index="273" stop-index="273" value="1" />
+ <literal-expression start-index="276" stop-index="276" value="2" />
+ <parameter-marker-expression start-index="273" stop-index="273" value="0" />
+ <parameter-marker-expression start-index="276" stop-index="276" value="1" />
+ </in-right-value>
+ </predicate>
+ <predicate start-index="283" stop-index="314">
+ <column-left-value start-index="283" stop-index="298" name="order_id">
+ <owner start-index="283" stop-index="289" name="order0_" />
+ </column-left-value>
+ <between-right-value>
+ <between-literal-expression start-index="308" stop-index="308" value="9" />
+ <between-parameter-marker-expression start-index="308" stop-index="308" value="2" />
+ <and-literal-expression start-index="314" stop-index="314" value="7" />
+ <and-parameter-marker-expression start-index="314" stop-index="314" value="3" />
+ </between-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ <order-by>
+ <column-item start-index="325" stop-index="333" name="item_id" order-direction="DESC">
+ <owner start-index="325" stop-index="325" name="i" />
+ </column-item>
+ </order-by>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
+ <where start-index="346" stop-index="362">
+ <and-predicate>
+ <predicate start-index="352" stop-index="362">
+ <column-left-value start-index="352" stop-index="357" name="rownum" />
+ <operator type="<=" />
+ <compare-right-value>
+ <literal-expression start-index="362" stop-index="362" value="5" />
+ <parameter-marker-expression start-index="362" stop-index="362" value="4" />
+ </compare-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
+ </subquery-table>
+ </from>
<where start-index="367" stop-index="385">
<and-predicate>
<predicate start-index="373" stop-index="386">
@@ -1427,11 +1400,9 @@
</select>
<select sql-case-id="select_pagination_with_row_number_not_at_end" parameters="20">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1454,11 +1425,9 @@
</select>
<select sql-case-id="select_pagination_with_offset_fetch" parameters="20">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20"/>
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20"/>
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-sub-query.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-sub-query.xml
index 845cce0..9f5eae6 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-sub-query.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select-sub-query.xml
@@ -18,11 +18,9 @@
<sql-parser-test-cases>
<select sql-case-id="select_sub_query_with_project">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="40" stop-index="46" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="40" stop-index="46" />
+ </from>
<projections start-index="7" stop-index="33">
<column-projection name="order_id" start-index="7" stop-index="14" />
<subquery-projection start-index="17" stop-index="26" alias="num">
@@ -43,70 +41,39 @@
<owner start-index="7" stop-index="7" name="t"/>
</shorthand-projection>
</projections>
- <table-reference>
- <table-factor>
- <subqueryTable alias="t">
- <subquery>
- <select>
- <projections start-index="24" stop-index="24">
- <shorthand-projection start-index="24" stop-index="24" />
- </projections>
- <table-reference>
- <table-factor>
- <table start-index="31" stop-index="37" name="t_order"/>
- </table-factor>
- </table-reference>
- <where start-index="39" stop-index="62">
- <and-predicate>
- <predicate start-index="45" stop-index="62">
- <column-left-value start-index="45" stop-index="52" name="order_id" />
- <in-right-value>
- <literal-expression start-index="58" stop-index="58" value="3" />
- <parameter-marker-expression start-index="58" stop-index="58" value="0" />
- <literal-expression start-index="61" stop-index="61" value="4" />
- <parameter-marker-expression start-index="61" stop-index="61" value="1"/>
- </in-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
- </subquery>
- </subqueryTable>
- </table-factor>
- </table-reference>
- <tables>
- <subquery-table start-index="17" stop-index="62" alias="t">
- <select>
- <tables>
- <simple-table name="t_order" start-index="31" stop-index="37" />
- </tables>
- <projections start-index="24" stop-index="24">
- <shorthand-projection start-index="24" stop-index="24" />
- </projections>
- <where start-index="39" stop-index="62" literal-stop-index="62">
- <and-predicate>
- <predicate start-index="45" stop-index="62" literal-stop-index="62">
- <column-left-value name="order_id" start-index="45" stop-index="52" />
- <in-right-value>
- <parameter-marker-expression value="1" />
- <parameter-marker-expression value="2" />
- <literal-expression value="3" />
- <literal-expression value="4" />
- </in-right-value>
- </predicate>
- </and-predicate>
- </where>
- </select>
+ <from>
+ <subquery-table alias="t">
+ <subquery>
+ <select>
+ <projections start-index="24" stop-index="24">
+ <shorthand-projection start-index="24" stop-index="24" />
+ </projections>
+ <from>
+ <simple-table start-index="31" stop-index="37" name="t_order"/>
+ </from>
+ <where start-index="39" stop-index="62">
+ <and-predicate>
+ <predicate start-index="45" stop-index="62">
+ <column-left-value start-index="45" stop-index="52" name="order_id" />
+ <in-right-value>
+ <literal-expression start-index="58" stop-index="58" value="3" />
+ <parameter-marker-expression start-index="58" stop-index="58" value="0" />
+ <literal-expression start-index="61" stop-index="61" value="4" />
+ <parameter-marker-expression start-index="61" stop-index="61" value="1"/>
+ </in-right-value>
+ </predicate>
+ </and-predicate>
+ </where>
+ </select>
+ </subquery>
</subquery-table>
- </tables>
+ </from>
</select>
<select sql-case-id="select_with_equal_subquery">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -146,11 +113,9 @@
</select>
<select sql-case-id="select_with_in_subquery">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -161,11 +126,9 @@
<in-right-value>
<subquery-expression start-index="39" stop-index="93" literal-start-index="39" literal-stop-index="93">
<select>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="60" stop-index="71" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="60" stop-index="71" />
+ </from>
<projections start-index="47" stop-index="53">
<column-projection name="user_id" start-index="47" stop-index="53" />
</projections>
@@ -189,11 +152,9 @@
</select>
<select sql-case-id="select_with_between_subquery" parameters="12">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -204,11 +165,9 @@
<between-right-value>
<between-subquery-expression start-index="44" stop-index="97" literal-start-index="44" literal-stop-index="97" >
<select>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="65" stop-index="76" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="65" stop-index="76" />
+ </from>
<projections start-index="52" stop-index="58">
<column-projection name="user_id" start-index="52" stop-index="58" />
</projections>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select.xml
index e01ac58..d777eeb 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/dml/select.xml
@@ -30,11 +30,9 @@
</select>
<select sql-case-id="select_with_same_table_name_and_alias" parameters="1, 1">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="t_order" start-index="22" stop-index="36" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="t_order" start-index="22" stop-index="36" />
+ </from>
<projections start-index="7" stop-index="15">
<shorthand-projection start-index="7" stop-index="15">
<owner name="t_order" start-index="7" stop-index="13" />
@@ -63,11 +61,9 @@
</select>
<select sql-case-id="select_with_same_table_name_and_alias_column_with_owner" parameters="1, 1">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="t_order" start-index="52" stop-index="66" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="t_order" start-index="52" stop-index="66" />
+ </from>
<projections start-index="7" stop-index="45">
<column-projection name="order_id" start-index="7" stop-index="22">
<owner name="t_order" start-index="7" stop-index="13" />
@@ -102,11 +98,9 @@
</select>
<select sql-case-id="select_not_equal_with_single_table" parameters="1">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="14" stop-index="25" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="14" stop-index="25" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -128,11 +122,9 @@
</select>
<select sql-case-id="select_exclamation_equal_with_single_table" parameters="1">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="14" stop-index="25" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="14" stop-index="25" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -154,11 +146,9 @@
</select>
<select sql-case-id="select_not_in_with_single_table" parameters="100000, 100001">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="14" stop-index="25" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="14" stop-index="25" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -179,11 +169,9 @@
</select>
<select sql-case-id="select_not_between_with_single_table" parameters="100000, 100001">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="14" stop-index="25" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="14" stop-index="25" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -204,11 +192,9 @@
</select>
<select sql-case-id="select_equal_with_single_table" parameters="1, 1">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -235,11 +221,9 @@
</select>
<select sql-case-id="select_equal_with_same_sharding_column" parameters="1, 2">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -266,11 +250,9 @@
</select>
<select sql-case-id="select_between_with_single_table" parameters="1, 10, 2, 5">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -303,11 +285,9 @@
</select>
<select sql-case-id="select_comparison_symbol_with_single_table" parameters="1, 10, 2, 5">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -354,11 +334,9 @@
</select>
<select sql-case-id="select_in_with_single_table" parameters="1, 2, 3, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -393,11 +371,9 @@
</select>
<select sql-case-id="select_in_with_same_sharding_column" parameters="1000, 1001, 1001, 1002">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -429,6 +405,9 @@
</select>
<select sql-case-id="select_with_N_string_in_expression">
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7"/>
</projections>
@@ -436,11 +415,9 @@
</select>
<select sql-case-id="select_count_like_concat" parameters="'init', 1, 2, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="37" stop-index="45" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="37" stop-index="45" />
+ </from>
<projections start-index="7" stop-index="30">
<aggregation-projection type="COUNT" inner-expression="(0)" alias="orders_count" start-index="7" stop-index="14" />
</projections>
@@ -479,6 +456,9 @@
</select>
<select sql-case-id="select_like_with_single_quotes" >
+ <from>
+ <simple-table name="admin" start-index="15" stop-index="19" />
+ </from>
<projections start-index="7" stop-index="8">
<column-projection name="id" start-index="7" stop-index="8"/>
</projections>
@@ -486,11 +466,9 @@
</select>
<select sql-case-id="select_count_tilde_concat" parameters="'init', 1, 2, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="37" stop-index="45" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" alias="o" start-index="37" stop-index="45" />
+ </from>
<projections start-index="7" stop-index="30">
<aggregation-projection type="COUNT" inner-expression="(0)" alias="orders_count" start-index="7" stop-index="14" />
</projections>
@@ -529,14 +507,14 @@
</select>
<select sql-case-id="select_sharding_route_with_binding_tables" parameters="1, 2, 9, 10">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -558,7 +536,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -598,14 +576,14 @@
</select>
<select sql-case-id="select_full_route_with_binding_tables">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="49" stop-index="69">
@@ -627,7 +605,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -641,39 +619,41 @@
</select>
<select sql-case-id="select_sharding_route_with_broadcast_table" parameters="1, 2, 9, 10, 'init'">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="49" stop-index="69">
- <column-left-value name="user_id" start-index="49" stop-index="57">
- <owner name="o" start-index="49" stop-index="49" />
- </column-left-value>
- <column-right-value name="user_id" start-index="61" stop-index="69">
- <owner name="i" start-index="61" stop-index="61" />
- </column-right-value>
- </predicate>
- <predicate start-index="75" stop-index="97">
- <column-left-value name="order_id" start-index="75" stop-index="84">
- <owner name="o" start-index="75" stop-index="75" />
- </column-left-value>
- <column-right-value name="order_id" start-index="88" stop-index="97">
- <owner name="i" start-index="88" stop-index="88" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
- <join-table>
- <table-factor>
- <table name="t_broadcast_table" alias="c" start-index="104" stop-index="122" />
- </table-factor>
+ <left>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="49" stop-index="69">
+ <column-left-value name="user_id" start-index="49" stop-index="57">
+ <owner name="o" start-index="49" stop-index="49" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="61" stop-index="69">
+ <owner name="i" start-index="61" stop-index="61" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="75" stop-index="97">
+ <column-left-value name="order_id" start-index="75" stop-index="84">
+ <owner name="o" start-index="75" stop-index="75" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="88" stop-index="97">
+ <owner name="i" start-index="88" stop-index="88" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </left>
+ <right>
+ <simple-table name="t_broadcast_table" alias="c" start-index="104" stop-index="122" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="127" stop-index="145">
@@ -687,7 +667,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -737,39 +717,41 @@
</select>
<select sql-case-id="select_keyword_table_name_with_back_quotes" parameters="1, 2, 9, 10, 'init'">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
- <join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="49" stop-index="69">
- <column-left-value name="user_id" start-index="49" stop-index="57">
- <owner name="o" start-index="49" stop-index="49" />
- </column-left-value>
- <column-right-value name="user_id" start-index="61" stop-index="69">
- <owner name="i" start-index="61" stop-index="61" />
- </column-right-value>
- </predicate>
- <predicate start-index="75" stop-index="97">
- <column-left-value name="order_id" start-index="75" stop-index="84">
- <owner name="o" start-index="75" stop-index="75" />
- </column-left-value>
- <column-right-value name="order_id" start-index="88" stop-index="97">
- <owner name="i" start-index="88" stop-index="88" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
+ <from>
<join-table>
- <table-factor>
- <table name="select" alias="c" start-delimiter="`" end-delimiter="`" start-index="104" stop-index="113" />
- </table-factor>
+ <left>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="49" stop-index="69">
+ <column-left-value name="user_id" start-index="49" stop-index="57">
+ <owner name="o" start-index="49" stop-index="49" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="61" stop-index="69">
+ <owner name="i" start-index="61" stop-index="61" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="75" stop-index="97">
+ <column-left-value name="order_id" start-index="75" stop-index="84">
+ <owner name="o" start-index="75" stop-index="75" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="88" stop-index="97">
+ <owner name="i" start-index="88" stop-index="88" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </left>
+ <right>
+ <simple-table name="select" alias="c" start-delimiter="`" end-delimiter="`" start-index="104" stop-index="113" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="118" stop-index="136">
@@ -783,7 +765,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -833,39 +815,41 @@
</select>
<select sql-case-id="select_keyword_table_name_with_double_quotes" parameters="1, 2, 9, 10, 'init'">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
- <join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="49" stop-index="69">
- <column-left-value name="user_id" start-index="49" stop-index="57">
- <owner name="o" start-index="49" stop-index="49" />
- </column-left-value>
- <column-right-value name="user_id" start-index="61" stop-index="69">
- <owner name="i" start-index="61" stop-index="61" />
- </column-right-value>
- </predicate>
- <predicate start-index="75" stop-index="97">
- <column-left-value name="order_id" start-index="75" stop-index="84">
- <owner name="o" start-index="75" stop-index="75" />
- </column-left-value>
- <column-right-value name="order_id" start-index="88" stop-index="97">
- <owner name="i" start-index="88" stop-index="88" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
+ <from>
<join-table>
- <table-factor>
- <table name="select" alias="c" start-delimiter=""" end-delimiter=""" start-index="104" stop-index="113" />
- </table-factor>
+ <left>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="49" stop-index="69">
+ <column-left-value name="user_id" start-index="49" stop-index="57">
+ <owner name="o" start-index="49" stop-index="49" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="61" stop-index="69">
+ <owner name="i" start-index="61" stop-index="61" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="75" stop-index="97">
+ <column-left-value name="order_id" start-index="75" stop-index="84">
+ <owner name="o" start-index="75" stop-index="75" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="88" stop-index="97">
+ <owner name="i" start-index="88" stop-index="88" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </left>
+ <right>
+ <simple-table name="select" alias="c" start-delimiter=""" end-delimiter=""" start-index="104" stop-index="113" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="118" stop-index="136">
@@ -879,7 +863,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9" >
<owner name="i" start-index="7" stop-index="7" />
@@ -929,39 +913,41 @@
</select>
<select sql-case-id="select_keyword_table_name_with_square_brackets" parameters="1, 2, 9, 10, 'init'">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
- <join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="31" stop-index="44" />
- </table-factor>
- <joinSpecification>
- <and-predicate>
- <predicate start-index="49" stop-index="69">
- <column-left-value name="user_id" start-index="49" stop-index="57">
- <owner name="o" start-index="49" stop-index="49" />
- </column-left-value>
- <column-right-value name="user_id" start-index="61" stop-index="69">
- <owner name="i" start-index="61" stop-index="61" />
- </column-right-value>
- </predicate>
- <predicate start-index="75" stop-index="97">
- <column-left-value name="order_id" start-index="75" stop-index="84">
- <owner name="o" start-index="75" stop-index="75" />
- </column-left-value>
- <column-right-value name="order_id" start-index="88" stop-index="97">
- <owner name="i" start-index="88" stop-index="88" />
- </column-right-value>
- </predicate>
- </and-predicate>
- </joinSpecification>
- </join-table>
+ <from>
<join-table>
- <table-factor>
- <table name="select" alias="c" start-delimiter="[" end-delimiter="]" start-index="104" stop-index="113" />
- </table-factor>
+ <left>
+ <join-table>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="31" stop-index="44" />
+ </right>
+ <joinSpecification>
+ <and-predicate>
+ <predicate start-index="49" stop-index="69">
+ <column-left-value name="user_id" start-index="49" stop-index="57">
+ <owner name="o" start-index="49" stop-index="49" />
+ </column-left-value>
+ <column-right-value name="user_id" start-index="61" stop-index="69">
+ <owner name="i" start-index="61" stop-index="61" />
+ </column-right-value>
+ </predicate>
+ <predicate start-index="75" stop-index="97">
+ <column-left-value name="order_id" start-index="75" stop-index="84">
+ <owner name="o" start-index="75" stop-index="75" />
+ </column-left-value>
+ <column-right-value name="order_id" start-index="88" stop-index="97">
+ <owner name="i" start-index="88" stop-index="88" />
+ </column-right-value>
+ </predicate>
+ </and-predicate>
+ </joinSpecification>
+ </join-table>
+ </left>
+ <right>
+ <simple-table name="select" alias="c" start-delimiter="[" end-delimiter="]" start-index="104" stop-index="113" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="118" stop-index="136">
@@ -975,7 +961,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -1025,11 +1011,9 @@
</select>
<select sql-case-id="select_alias_as_keyword" parameters="1">
- <table-reference>
- <table-factor>
- <table name="t_order_item" alias="length" start-index="36" stop-index="54" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" alias="length" start-index="36" stop-index="54" />
+ </from>
<projections start-index="7" stop-index="29">
<column-projection name="item_id" alias="password" start-index="7" stop-index="20">
<owner name="length" start-index="7" stop-index="12" />
@@ -1052,14 +1036,14 @@
</select>
<select sql-case-id="select_with_force_index_join" parameters="1000">
- <table-reference>
- <table-factor>
- <table name="t_order" alias="o" start-index="16" stop-index="24" />
- </table-factor>
+ <from>
<join-table>
- <table-factor>
- <table name="t_order_item" alias="i" start-index="56" stop-index="69" />
- </table-factor>
+ <left>
+ <simple-table name="t_order" alias="o" start-index="16" stop-index="24" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" alias="i" start-index="56" stop-index="69" />
+ </right>
<joinSpecification>
<and-predicate>
<predicate start-index="74" stop-index="94">
@@ -1073,7 +1057,7 @@
</and-predicate>
</joinSpecification>
</join-table>
- </table-reference>
+ </from>
<projections start-index="7" stop-index="9">
<shorthand-projection start-index="7" stop-index="9">
<owner name="i" start-index="7" stop-index="7" />
@@ -1096,11 +1080,9 @@
</select>
<select sql-case-id="select_equal_with_geography" parameters="'{"rule2":"null2"}', 100, 200, 1, 2">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1145,11 +1127,9 @@
</select>
<select sql-case-id="select_in_with_geography" parameters="'{"rule2":"null2"}', '{"rule3":"null3"}', 100, 200, 1, 2">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1193,11 +1173,9 @@
</select>
<select sql-case-id="select_between_with_geography" parameters="'{"rule2":"null2"}', '{"rule3":"null3"}', 100, 200, 1">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1235,11 +1213,9 @@
</select>
<select sql-case-id="select_with_double_quotes" parameters="1">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-delimiter=""" end-delimiter=""" start-index="14" stop-index="27" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-delimiter=""" end-delimiter=""" start-index="14" stop-index="27" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1261,22 +1237,18 @@
</select>
<select sql-case-id="select_distinct_with_single_column_without_order_by" >
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="29" stop-index="40" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="29" stop-index="40" />
+ </from>
<projections start-index="16" stop-index="22" distinct-row="true">
<column-projection name="item_id" start-index="16" stop-index="22" />
</projections>
</select>
<select sql-case-id="select_distinct_with_multi_column_without_order_by" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="47" stop-index="53" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="47" stop-index="53" />
+ </from>
<projections start-index="16" stop-index="40" distinct-row="true">
<column-projection name="order_id" start-index="16" stop-index="23" />
<column-projection name="user_id" start-index="26" stop-index="32" />
@@ -1285,11 +1257,9 @@
</select>
<select sql-case-id="select_distinct_with_owner_column_without_order_by" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="38" stop-index="44" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="38" stop-index="44" />
+ </from>
<projections start-index="16" stop-index="31" distinct-row="true">
<column-projection name="order_id" start-index="16" stop-index="31" >
<owner name="t_order" start-index="16" stop-index="22" />
@@ -1303,16 +1273,16 @@
</select>
<select sql-case-id="select_distinct_with_owner_star_without_order_by" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="54" stop-index="60" />
- </table-factor>
- </table-reference>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="63" stop-index="74" />
- </table-factor>
- </table-reference>
+ <from>
+ <join-table>
+ <left>
+ <simple-table name="t_order" start-index="54" stop-index="60" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" start-index="63" stop-index="74" />
+ </right>
+ </join-table>
+ </from>
<projections start-index="16" stop-index="47" distinct-row="true">
<shorthand-projection start-index="16" stop-index="24">
<owner name="t_order" start-index="16" stop-index="22"/>
@@ -1336,11 +1306,9 @@
</select>
<select sql-case-id="select_distinct_with_owner_column_with_group_by" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="38" stop-index="44" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="38" stop-index="44" />
+ </from>
<projections start-index="16" stop-index="31" distinct-row="true">
<column-projection name="order_id" start-index="16" stop-index="31" >
<owner name="t_order" start-index="16" stop-index="22" />
@@ -1354,11 +1322,9 @@
</select>
<select sql-case-id="select_distinct_with_single_column" >
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="29" stop-index="40" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="29" stop-index="40" />
+ </from>
<projections start-index="16" stop-index="22" distinct-row="true">
<column-projection name="item_id" start-index="16" stop-index="22" />
</projections>
@@ -1368,11 +1334,9 @@
</select>
<select sql-case-id="select_distinct_with_owner_column" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="38" stop-index="44" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="38" stop-index="44" />
+ </from>
<projections start-index="16" stop-index="31" distinct-row="true">
<column-projection name="order_id" start-index="16" stop-index="31">
<owner name="t_order" start-index="16" stop-index="22" />
@@ -1384,11 +1348,9 @@
</select>
<select sql-case-id="select_distinct_with_multi_column" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="47" stop-index="53" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="47" stop-index="53" />
+ </from>
<projections start-index="16" stop-index="40" distinct-row="true">
<column-projection name="order_id" start-index="16" stop-index="23" />
<column-projection name="user_id" start-index="26" stop-index="32" />
@@ -1400,11 +1362,9 @@
</select>
<select sql-case-id="select_distinct_with_star" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="23" stop-index="29" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="23" stop-index="29" />
+ </from>
<projections distinct-row="true" start-index="16" stop-index="16">
<shorthand-projection start-index="16" stop-index="16" />
</projections>
@@ -1425,16 +1385,16 @@
</select>
<select sql-case-id="select_distinct_with_owner_star">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="54" stop-index="60" />
- </table-factor>
- </table-reference>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="63" stop-index="74" />
- </table-factor>
- </table-reference>
+ <from>
+ <join-table>
+ <left>
+ <simple-table name="t_order" start-index="54" stop-index="60" />
+ </left>
+ <right>
+ <simple-table name="t_order_item" start-index="63" stop-index="74" />
+ </right>
+ </join-table>
+ </from>
<projections distinct-row="true" start-index="16" stop-index="47">
<shorthand-projection start-index="16" stop-index="24">
<owner name="t_order" start-index="16" stop-index="22" />
@@ -1463,11 +1423,9 @@
</select>
<select sql-case-id="select_distinct_with_sum" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="37" stop-index="43" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="37" stop-index="43" />
+ </from>
<projections start-index="7" stop-index="30">
<aggregation-distinct-projection type="SUM" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" alias="s" start-index="7" stop-index="28" />
</projections>
@@ -1485,11 +1443,9 @@
</select>
<select sql-case-id="select_distinct_with_count">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="39" stop-index="45" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="39" stop-index="45" />
+ </from>
<projections start-index="7" stop-index="32">
<aggregation-distinct-projection type="COUNT" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" alias="c" start-index="7" stop-index="30" />
</projections>
@@ -1507,11 +1463,9 @@
</select>
<select sql-case-id="select_distinct_with_avg">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="35" stop-index="41" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="35" stop-index="41" />
+ </from>
<projections start-index="7" stop-index="28">
<aggregation-distinct-projection type="AVG" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" start-index="7" stop-index="28" />
</projections>
@@ -1529,11 +1483,9 @@
</select>
<select sql-case-id="select_distinct_with_count_sum" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="61" stop-index="67" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="61" stop-index="67" />
+ </from>
<projections start-index="7" stop-index="54">
<aggregation-distinct-projection type="COUNT" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" start-index="7" stop-index="30" />
<aggregation-distinct-projection type="SUM" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" start-index="33" stop-index="54" />
@@ -1552,11 +1504,9 @@
</select>
<select sql-case-id="select_distinct_with_single_count_group_by" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<column-projection name="order_id" start-index="7" stop-index="14" />
<aggregation-distinct-projection type="COUNT" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" alias="c" start-index="17" stop-index="40" />
@@ -1581,11 +1531,9 @@
</select>
<select sql-case-id="select_distinct_with_count_group_by" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<aggregation-distinct-projection type="COUNT" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" alias="c" start-index="7" stop-index="30" />
<column-projection name="order_id" start-index="35" stop-index="42" />
@@ -1599,11 +1547,9 @@
</select>
<select sql-case-id="select_distinct_function">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="30" stop-index="41" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="30" stop-index="41" />
+ </from>
<projections distinct-row="true" start-index="15" stop-index="23">
<column-projection start-index="16" stop-index="22" name="item_id"/>
</projections>
@@ -1613,11 +1559,9 @@
</select>
<select sql-case-id="select_distinct_with_count_calculation" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="49" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="49" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="42">
<aggregation-distinct-projection type="COUNT" inner-expression="(DISTINCT user_id + order_id)" distinct-expression="user_id+order_id" alias="c" start-index="7" stop-index="40" />
</projections>
@@ -1635,11 +1579,9 @@
</select>
<select sql-case-id="select_distinct_with_aggregation_functions" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="77" stop-index="83" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="77" stop-index="83" />
+ </from>
<projections start-index="7" stop-index="69">
<aggregation-distinct-projection type="SUM" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" start-index="7" stop-index="28" />
<aggregation-distinct-projection type="COUNT" inner-expression="(DISTINCT order_id)" distinct-expression="order_id" start-index="30" stop-index="53" />
@@ -1659,24 +1601,20 @@
</select>
<select sql-case-id="select_with_schema" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="24">
- <owner name="db1" start-index="14" stop-index="16" />
- </table>
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="24">
+ <owner name="db1" start-index="14" stop-index="16" />
+ </simple-table>
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
</select>
<select sql-case-id="select_escape_with_single_quota" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1694,11 +1632,9 @@
</select>
<select sql-case-id="select_escape_with_double_quota" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1714,11 +1650,9 @@
</select>
<select sql-case-id="select_with_block_comment" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="83" stop-index="89" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="83" stop-index="89" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1737,11 +1671,9 @@
</select>
<select sql-case-id="select_with_single_comment" >
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="78" stop-index="84" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="78" stop-index="84" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1760,33 +1692,27 @@
</select>
<select sql-case-id="select_alias_as_single_quote_string">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="31" stop-index="37" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="31" stop-index="37" />
+ </from>
<projections start-index="7" stop-index="24">
<column-projection alias="status" name="status" start-index="7" stop-index="12" />
</projections>
</select>
<select sql-case-id="select_alias_as_string_double_quote">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="31" stop-index="37" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="31" stop-index="37" />
+ </from>
<projections start-index="7" stop-index="24">
<column-projection name="status" alias="status" start-index="7" stop-index="12" />
</projections>
</select>
<select sql-case-id="select_special_function_nested" parameters="12, 1000">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="48" stop-index="54" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="48" stop-index="54" />
+ </from>
<projections start-index="7" stop-index="41">
<aggregation-projection type="SUM" inner-expression="(if(status=0, 1, 0))" alias="func_status" start-index="7" stop-index="29" />
</projections>
@@ -1813,11 +1739,9 @@
</select>
<select sql-case-id="select_with_interval_function" parameters="12, 1000">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="45" stop-index="51" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="45" stop-index="51" />
+ </from>
<projections start-index="7" stop-index="38">
<expression-projection alias="func_status" start-index="7" stop-index="38" />
</projections>
@@ -1844,11 +1768,9 @@
</select>
<select sql-case-id="select_with_left_function">
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="44" stop-index="55" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order_item" start-index="44" stop-index="55" />
+ </from>
<projections start-index="7" stop-index="37">
<expression-projection start-index="7" stop-index="37" />
</projections>
@@ -1866,11 +1788,9 @@
</select>
<select sql-case-id="select_for_update" parameters="10">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1895,11 +1815,9 @@
</select>
<select sql-case-id="select_with_mod_function">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1909,11 +1827,9 @@
</select>
<select sql-case-id="select_with_date_format_function">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1926,11 +1842,9 @@
</select>
<select sql-case-id="select_with_spatial_function">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="14" stop-index="20" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="14" stop-index="20" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
@@ -1948,14 +1862,12 @@
</projections>
</select>
<select sql-case-id="select_with_match_against" parameters="hello, 10">
+ <from>
+ <simple-table name="t_order_item" start-index="14" stop-index="25" />
+ </from>
<projections start-index="7" stop-index="7">
<shorthand-projection start-index="7" stop-index="7" />
</projections>
- <table-reference>
- <table-factor>
- <table name="t_order_item" start-index="14" stop-index="25" />
- </table-factor>
- </table-reference>
<where start-index="27" stop-index="116" literal-stop-index="121">
<and-predicate>
<predicate start-index="106" stop-index="116" literal-start-index="110" literal-stop-index="121">
@@ -1971,15 +1883,13 @@
</select>
<select sql-case-id="select_with_json_separator">
+ <from>
+ <simple-table name="tb_content_json" start-index="82" stop-index="98" alias="b" />
+ </from>
<projections start-index="7" stop-index="75">
<expression-projection start-index="7" stop-index="41" alias="nation" />
<expression-projection start-index="43" stop-index="75" alias="title" />
</projections>
- <table-reference>
- <table-factor>
- <table name="tb_content_json" start-index="82" stop-index="98" alias="b" />
- </table-factor>
- </table-reference>
<where start-index="100" stop-index="119" literal-stop-index="121">
<and-predicate>
<predicate start-index="106" stop-index="119">
@@ -1996,11 +1906,9 @@
</select>
<select sql-case-id="select_with_convert_function">
- <table-reference>
- <table-factor>
- <table name="t_order" start-index="70" stop-index="76" />
- </table-factor>
- </table-reference>
+ <from>
+ <simple-table name="t_order" start-index="70" stop-index="76" />
+ </from>
<projections start-index="7" stop-index="63">
<expression-projection alias="signed_content" start-index="7" stop-index="63" />
</projections>