├── .gitignore ├── LICENSE ├── README.md ├── docs └── img │ └── graphflow.png ├── env.sh ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── intellij_configs ├── README.md ├── graphflow_code_style_guide.xml ├── graphflow_inspections.xml └── runConfigurations │ ├── GraphflowCliRunner.xml │ └── GraphflowServerRunner.xml ├── scripts ├── change_snap_to_csv.py ├── execute_query.py ├── serialize_catalog.py └── serialize_dataset.py ├── settings.gradle └── src └── main ├── antlr └── ca │ └── waterloo │ └── dsg │ └── graphflow │ └── grammar │ └── Graphflow.g4 ├── java └── ca │ └── waterloo │ └── dsg │ └── graphflow │ ├── plan │ ├── Plan.java │ ├── Workers.java │ └── operator │ │ ├── AdjListDescriptor.java │ │ ├── Operator.java │ │ ├── extend │ │ ├── EI.java │ │ ├── Extend.java │ │ └── Intersect.java │ │ ├── hashjoin │ │ ├── Build.java │ │ ├── HashJoin.java │ │ ├── HashTable.java │ │ ├── Probe.java │ │ ├── ProbeCartesian.java │ │ ├── ProbeMultiVertices.java │ │ └── ProbeMultiVerticesCartesian.java │ │ ├── scan │ │ ├── Scan.java │ │ ├── ScanBlocking.java │ │ └── ScanSampling.java │ │ └── sink │ │ ├── Sink.java │ │ └── SinkLimit.java │ ├── planner │ ├── QueryPlanner.java │ ├── QueryPlannerBig.java │ └── catalog │ │ ├── Catalog.java │ │ ├── CatalogFactory.java │ │ ├── CatalogPlans.java │ │ └── operator │ │ ├── IntersectCatalog.java │ │ └── Noop.java │ ├── query │ ├── QueryEdge.java │ ├── QueryGraph.java │ ├── QueryGraphSet.java │ └── parser │ │ ├── AntlrErrorListener.java │ │ ├── ParseTreeVisitor.java │ │ └── QueryParser.java │ ├── runner │ ├── AbstractRunner.java │ ├── ArgsFactory.java │ ├── dataset │ │ ├── CatalogSerializer.java │ │ └── DatasetSerializer.java │ └── plan │ │ └── OptimizerExecutor.java │ ├── storage │ ├── Graph.java │ ├── GraphFactory.java │ ├── KeyStore.java │ ├── KeyStoreFactory.java │ └── SortedAdjList.java │ └── util │ ├── IOUtils.java │ ├── collection │ ├── MapUtils.java │ └── SetUtils.java │ └── container │ ├── Quad.java │ └── Triple.java └── resources └── log4j2.properties /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/README.md -------------------------------------------------------------------------------- /docs/img/graphflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/docs/img/graphflow.png -------------------------------------------------------------------------------- /env.sh: -------------------------------------------------------------------------------- 1 | export GRAPHFLOW_HOME=`pwd` 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/gradlew -------------------------------------------------------------------------------- /intellij_configs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/intellij_configs/README.md -------------------------------------------------------------------------------- /intellij_configs/graphflow_code_style_guide.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/intellij_configs/graphflow_code_style_guide.xml -------------------------------------------------------------------------------- /intellij_configs/graphflow_inspections.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/intellij_configs/graphflow_inspections.xml -------------------------------------------------------------------------------- /intellij_configs/runConfigurations/GraphflowCliRunner.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/intellij_configs/runConfigurations/GraphflowCliRunner.xml -------------------------------------------------------------------------------- /intellij_configs/runConfigurations/GraphflowServerRunner.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/intellij_configs/runConfigurations/GraphflowServerRunner.xml -------------------------------------------------------------------------------- /scripts/change_snap_to_csv.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/scripts/change_snap_to_csv.py -------------------------------------------------------------------------------- /scripts/execute_query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/scripts/execute_query.py -------------------------------------------------------------------------------- /scripts/serialize_catalog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/scripts/serialize_catalog.py -------------------------------------------------------------------------------- /scripts/serialize_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/scripts/serialize_dataset.py -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'graphflow' 2 | -------------------------------------------------------------------------------- /src/main/antlr/ca/waterloo/dsg/graphflow/grammar/Graphflow.g4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/antlr/ca/waterloo/dsg/graphflow/grammar/Graphflow.g4 -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/Plan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/Plan.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/Workers.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/Workers.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/AdjListDescriptor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/AdjListDescriptor.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/Operator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/Operator.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/extend/EI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/extend/EI.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/extend/Extend.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/extend/Extend.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/extend/Intersect.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/extend/Intersect.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/Build.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/Build.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/HashJoin.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/HashJoin.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/HashTable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/HashTable.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/Probe.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/Probe.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/ProbeCartesian.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/ProbeCartesian.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/ProbeMultiVertices.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/ProbeMultiVertices.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/ProbeMultiVerticesCartesian.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/hashjoin/ProbeMultiVerticesCartesian.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/scan/Scan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/scan/Scan.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/scan/ScanBlocking.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/scan/ScanBlocking.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/scan/ScanSampling.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/scan/ScanSampling.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/sink/Sink.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/sink/Sink.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/plan/operator/sink/SinkLimit.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/plan/operator/sink/SinkLimit.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/QueryPlanner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/QueryPlanner.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/QueryPlannerBig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/QueryPlannerBig.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/Catalog.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/Catalog.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/CatalogFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/CatalogFactory.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/CatalogPlans.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/CatalogPlans.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/operator/IntersectCatalog.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/operator/IntersectCatalog.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/operator/Noop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/planner/catalog/operator/Noop.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/query/QueryEdge.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/query/QueryEdge.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/query/QueryGraph.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/query/QueryGraph.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/query/QueryGraphSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/query/QueryGraphSet.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/query/parser/AntlrErrorListener.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/query/parser/AntlrErrorListener.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/query/parser/ParseTreeVisitor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/query/parser/ParseTreeVisitor.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/query/parser/QueryParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/query/parser/QueryParser.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/runner/AbstractRunner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/runner/AbstractRunner.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/runner/ArgsFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/runner/ArgsFactory.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/runner/dataset/CatalogSerializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/runner/dataset/CatalogSerializer.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/runner/dataset/DatasetSerializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/runner/dataset/DatasetSerializer.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/runner/plan/OptimizerExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/runner/plan/OptimizerExecutor.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/storage/Graph.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/storage/Graph.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/storage/GraphFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/storage/GraphFactory.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/storage/KeyStore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/storage/KeyStore.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/storage/KeyStoreFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/storage/KeyStoreFactory.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/storage/SortedAdjList.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/storage/SortedAdjList.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/util/IOUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/util/IOUtils.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/util/collection/MapUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/util/collection/MapUtils.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/util/collection/SetUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/util/collection/SetUtils.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/util/container/Quad.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/util/container/Quad.java -------------------------------------------------------------------------------- /src/main/java/ca/waterloo/dsg/graphflow/util/container/Triple.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/java/ca/waterloo/dsg/graphflow/util/container/Triple.java -------------------------------------------------------------------------------- /src/main/resources/log4j2.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/queryproc/optimizing-subgraph-queries-combining-binary-and-worst-case-optimal-joins/HEAD/src/main/resources/log4j2.properties --------------------------------------------------------------------------------