├── .gitignore ├── .mvn └── wrapper │ └── maven-wrapper.properties ├── LICENSE ├── README.md ├── checkstyle.xml ├── indexer ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── zabetak │ │ │ └── calcite │ │ │ └── tutorial │ │ │ └── indexer │ │ │ ├── DatasetIndexer.java │ │ │ └── TpchTable.java │ └── resources │ │ └── data │ │ └── tpch │ │ ├── customer.csv │ │ ├── lineitem.csv │ │ ├── nation.csv │ │ ├── orders.csv │ │ ├── part.csv │ │ ├── partsupp.csv │ │ ├── region.csv │ │ └── supplier.csv │ └── test │ └── java │ └── com │ └── github │ └── zabetak │ └── calcite │ └── tutorial │ └── indexer │ └── DatasetIndexerTest.java ├── mvnw ├── mvnw.cmd ├── pom.xml ├── queries └── tpch │ ├── Q0.sql │ ├── Q1.sql │ └── Q2.sql ├── solution ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── github │ │ └── zabetak │ │ └── calcite │ │ └── tutorial │ │ ├── LuceneEnumerable.java │ │ ├── LuceneQueryProcessor.java │ │ ├── LuceneTable.java │ │ ├── operators │ │ ├── LuceneFilter.java │ │ ├── LuceneRel.java │ │ ├── LuceneTableScan.java │ │ ├── LuceneToEnumerableConverter.java │ │ └── RexToLuceneTranslator.java │ │ └── rules │ │ ├── LuceneFilterChecker.java │ │ ├── LuceneFilterRule.java │ │ ├── LuceneTableScanRule.java │ │ └── LuceneToEnumerableConverterRule.java │ └── test │ └── java │ └── com │ └── github │ └── zabetak │ └── calcite │ └── tutorial │ ├── LuceneEnumerableTest.java │ └── LuceneQueryProcessorTest.java └── template ├── pom.xml └── src └── main └── java └── com └── github └── zabetak └── calcite └── tutorial ├── LuceneBuilderProcessor.java ├── LuceneEnumerable.java ├── LuceneQueryProcessor.java ├── LuceneTable.java ├── operators ├── LuceneFilter.java ├── LuceneRel.java ├── LuceneTableScan.java ├── LuceneToEnumerableConverter.java └── RexToLuceneTranslator.java └── rules ├── LuceneFilterChecker.java ├── LuceneFilterRule.java ├── LuceneTableScanRule.java └── LuceneToEnumerableConverterRule.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/.gitignore -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/README.md -------------------------------------------------------------------------------- /checkstyle.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/checkstyle.xml -------------------------------------------------------------------------------- /indexer/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/pom.xml -------------------------------------------------------------------------------- /indexer/src/main/java/com/github/zabetak/calcite/tutorial/indexer/DatasetIndexer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/java/com/github/zabetak/calcite/tutorial/indexer/DatasetIndexer.java -------------------------------------------------------------------------------- /indexer/src/main/java/com/github/zabetak/calcite/tutorial/indexer/TpchTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/java/com/github/zabetak/calcite/tutorial/indexer/TpchTable.java -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/customer.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/customer.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/lineitem.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/lineitem.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/nation.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/nation.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/orders.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/orders.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/part.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/part.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/partsupp.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/partsupp.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/region.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/region.csv -------------------------------------------------------------------------------- /indexer/src/main/resources/data/tpch/supplier.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/main/resources/data/tpch/supplier.csv -------------------------------------------------------------------------------- /indexer/src/test/java/com/github/zabetak/calcite/tutorial/indexer/DatasetIndexerTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/indexer/src/test/java/com/github/zabetak/calcite/tutorial/indexer/DatasetIndexerTest.java -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/pom.xml -------------------------------------------------------------------------------- /queries/tpch/Q0.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/queries/tpch/Q0.sql -------------------------------------------------------------------------------- /queries/tpch/Q1.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/queries/tpch/Q1.sql -------------------------------------------------------------------------------- /queries/tpch/Q2.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/queries/tpch/Q2.sql -------------------------------------------------------------------------------- /solution/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/pom.xml -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/LuceneEnumerable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/LuceneEnumerable.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/LuceneQueryProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/LuceneQueryProcessor.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/LuceneTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/LuceneTable.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneFilter.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneRel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneRel.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneTableScan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneTableScan.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneToEnumerableConverter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneToEnumerableConverter.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/RexToLuceneTranslator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/operators/RexToLuceneTranslator.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterChecker.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterRule.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneTableScanRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneTableScanRule.java -------------------------------------------------------------------------------- /solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneToEnumerableConverterRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneToEnumerableConverterRule.java -------------------------------------------------------------------------------- /solution/src/test/java/com/github/zabetak/calcite/tutorial/LuceneEnumerableTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/test/java/com/github/zabetak/calcite/tutorial/LuceneEnumerableTest.java -------------------------------------------------------------------------------- /solution/src/test/java/com/github/zabetak/calcite/tutorial/LuceneQueryProcessorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/solution/src/test/java/com/github/zabetak/calcite/tutorial/LuceneQueryProcessorTest.java -------------------------------------------------------------------------------- /template/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/pom.xml -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneBuilderProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneBuilderProcessor.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneEnumerable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneEnumerable.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneQueryProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneQueryProcessor.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/LuceneTable.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneFilter.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneRel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneRel.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneTableScan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneTableScan.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneToEnumerableConverter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/operators/LuceneToEnumerableConverter.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/operators/RexToLuceneTranslator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/operators/RexToLuceneTranslator.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterChecker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterChecker.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneFilterRule.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneTableScanRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneTableScanRule.java -------------------------------------------------------------------------------- /template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneToEnumerableConverterRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zabetak/calcite-tutorial/HEAD/template/src/main/java/com/github/zabetak/calcite/tutorial/rules/LuceneToEnumerableConverterRule.java --------------------------------------------------------------------------------