├── .github └── workflows │ └── rust.yml ├── .gitignore ├── .images └── query-plan1.png ├── Cargo.lock ├── Cargo.toml ├── README.md ├── src ├── bin │ └── dag.rs ├── data_type.rs ├── lib.rs ├── query_graph │ ├── cloner.rs │ ├── explain.rs │ ├── json.rs │ ├── mod.rs │ ├── optimizer │ │ ├── mod.rs │ │ ├── rules │ │ │ ├── aggregate_project_transpose.rs │ │ │ ├── aggregate_pruning.rs │ │ │ ├── aggregate_remove.rs │ │ │ ├── aggregate_simplifier.rs │ │ │ ├── apply_pruning.rs │ │ │ ├── common_aggregate_discovery.rs │ │ │ ├── cte_discovery.rs │ │ │ ├── equality_propagation.rs │ │ │ ├── expression_reduction.rs │ │ │ ├── filter_aggregate_transpose.rs │ │ │ ├── filter_apply_transpose.rs │ │ │ ├── filter_join_transpose.rs │ │ │ ├── filter_merge.rs │ │ │ ├── filter_normalization.rs │ │ │ ├── filter_project_transpose.rs │ │ │ ├── identity_join.rs │ │ │ ├── join_project_transpose.rs │ │ │ ├── join_pruning.rs │ │ │ ├── mod.rs │ │ │ ├── outer_to_inner_join.rs │ │ │ ├── project_merge.rs │ │ │ ├── project_normalization.rs │ │ │ ├── prune_aggregate_input.rs │ │ │ ├── remove_passthrough_project.rs │ │ │ ├── top_projection.rs │ │ │ ├── union_merge.rs │ │ │ └── union_pruning.rs │ │ └── utils.rs │ ├── properties │ │ ├── column_provenance.rs │ │ ├── correlated_input_refs.rs │ │ ├── equivalence_classes.rs │ │ ├── input_dependencies.rs │ │ ├── keys.rs │ │ ├── mod.rs │ │ ├── num_columns.rs │ │ ├── pulled_up_predicates.rs │ │ ├── row_type.rs │ │ └── subqueries.rs │ └── visitor.rs ├── scalar_expr │ ├── equivalence_class.rs │ ├── mod.rs │ ├── reduction.rs │ ├── rewrite.rs │ └── visitor.rs ├── value.rs └── visitor_utils.rs ├── tests ├── explain_test.rs └── testdata │ └── explain │ ├── aggregate_project_transpose.test │ ├── aggregate_pruning.test │ ├── aggregate_remove.test │ ├── apply.test │ ├── common_aggregate_discovery.test │ ├── correlated_filter.test │ ├── correlated_project.test │ ├── cte_discovery.test │ ├── expression_reduction.test │ ├── filter_aggregate_transpose.test │ ├── filter_apply_transpose.test │ ├── filter_join_transpose.test │ ├── filter_merge.test │ ├── filter_normalization.test │ ├── filter_project_transpose.test │ ├── join_project_transpose.test │ ├── join_pruning.test │ ├── keys_filter.test │ ├── keys_join.test │ ├── keys_union.test │ ├── outer_to_inner_join.test │ ├── project_normalization.test │ ├── pulled_up_predicates.test │ ├── static_queries.test │ ├── subqueries.test │ ├── union_merge.test │ └── union_pruning.test └── tools ├── cytoscape.html ├── d3.html └── vis.html /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.images/query-plan1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/.images/query-plan1.png -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/Cargo.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/README.md -------------------------------------------------------------------------------- /src/bin/dag.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/bin/dag.rs -------------------------------------------------------------------------------- /src/data_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/data_type.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/query_graph/cloner.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/cloner.rs -------------------------------------------------------------------------------- /src/query_graph/explain.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/explain.rs -------------------------------------------------------------------------------- /src/query_graph/json.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/json.rs -------------------------------------------------------------------------------- /src/query_graph/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/mod.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/mod.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/aggregate_project_transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/aggregate_project_transpose.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/aggregate_pruning.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/aggregate_pruning.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/aggregate_remove.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/aggregate_remove.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/aggregate_simplifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/aggregate_simplifier.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/apply_pruning.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/apply_pruning.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/common_aggregate_discovery.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/common_aggregate_discovery.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/cte_discovery.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/cte_discovery.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/equality_propagation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/equality_propagation.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/expression_reduction.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/expression_reduction.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/filter_aggregate_transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/filter_aggregate_transpose.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/filter_apply_transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/filter_apply_transpose.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/filter_join_transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/filter_join_transpose.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/filter_merge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/filter_merge.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/filter_normalization.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/filter_normalization.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/filter_project_transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/filter_project_transpose.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/identity_join.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/identity_join.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/join_project_transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/join_project_transpose.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/join_pruning.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/join_pruning.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/mod.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/outer_to_inner_join.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/outer_to_inner_join.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/project_merge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/project_merge.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/project_normalization.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/project_normalization.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/prune_aggregate_input.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/prune_aggregate_input.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/remove_passthrough_project.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/remove_passthrough_project.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/top_projection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/top_projection.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/union_merge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/union_merge.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/rules/union_pruning.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/rules/union_pruning.rs -------------------------------------------------------------------------------- /src/query_graph/optimizer/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/optimizer/utils.rs -------------------------------------------------------------------------------- /src/query_graph/properties/column_provenance.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/column_provenance.rs -------------------------------------------------------------------------------- /src/query_graph/properties/correlated_input_refs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/correlated_input_refs.rs -------------------------------------------------------------------------------- /src/query_graph/properties/equivalence_classes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/equivalence_classes.rs -------------------------------------------------------------------------------- /src/query_graph/properties/input_dependencies.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/input_dependencies.rs -------------------------------------------------------------------------------- /src/query_graph/properties/keys.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/keys.rs -------------------------------------------------------------------------------- /src/query_graph/properties/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/mod.rs -------------------------------------------------------------------------------- /src/query_graph/properties/num_columns.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/num_columns.rs -------------------------------------------------------------------------------- /src/query_graph/properties/pulled_up_predicates.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/pulled_up_predicates.rs -------------------------------------------------------------------------------- /src/query_graph/properties/row_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/row_type.rs -------------------------------------------------------------------------------- /src/query_graph/properties/subqueries.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/properties/subqueries.rs -------------------------------------------------------------------------------- /src/query_graph/visitor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/query_graph/visitor.rs -------------------------------------------------------------------------------- /src/scalar_expr/equivalence_class.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/scalar_expr/equivalence_class.rs -------------------------------------------------------------------------------- /src/scalar_expr/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/scalar_expr/mod.rs -------------------------------------------------------------------------------- /src/scalar_expr/reduction.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/scalar_expr/reduction.rs -------------------------------------------------------------------------------- /src/scalar_expr/rewrite.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/scalar_expr/rewrite.rs -------------------------------------------------------------------------------- /src/scalar_expr/visitor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/scalar_expr/visitor.rs -------------------------------------------------------------------------------- /src/value.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/value.rs -------------------------------------------------------------------------------- /src/visitor_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/src/visitor_utils.rs -------------------------------------------------------------------------------- /tests/explain_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/explain_test.rs -------------------------------------------------------------------------------- /tests/testdata/explain/aggregate_project_transpose.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/aggregate_project_transpose.test -------------------------------------------------------------------------------- /tests/testdata/explain/aggregate_pruning.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/aggregate_pruning.test -------------------------------------------------------------------------------- /tests/testdata/explain/aggregate_remove.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/aggregate_remove.test -------------------------------------------------------------------------------- /tests/testdata/explain/apply.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/apply.test -------------------------------------------------------------------------------- /tests/testdata/explain/common_aggregate_discovery.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/common_aggregate_discovery.test -------------------------------------------------------------------------------- /tests/testdata/explain/correlated_filter.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/correlated_filter.test -------------------------------------------------------------------------------- /tests/testdata/explain/correlated_project.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/correlated_project.test -------------------------------------------------------------------------------- /tests/testdata/explain/cte_discovery.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/cte_discovery.test -------------------------------------------------------------------------------- /tests/testdata/explain/expression_reduction.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/expression_reduction.test -------------------------------------------------------------------------------- /tests/testdata/explain/filter_aggregate_transpose.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/filter_aggregate_transpose.test -------------------------------------------------------------------------------- /tests/testdata/explain/filter_apply_transpose.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/filter_apply_transpose.test -------------------------------------------------------------------------------- /tests/testdata/explain/filter_join_transpose.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/filter_join_transpose.test -------------------------------------------------------------------------------- /tests/testdata/explain/filter_merge.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/filter_merge.test -------------------------------------------------------------------------------- /tests/testdata/explain/filter_normalization.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/filter_normalization.test -------------------------------------------------------------------------------- /tests/testdata/explain/filter_project_transpose.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/filter_project_transpose.test -------------------------------------------------------------------------------- /tests/testdata/explain/join_project_transpose.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/join_project_transpose.test -------------------------------------------------------------------------------- /tests/testdata/explain/join_pruning.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/join_pruning.test -------------------------------------------------------------------------------- /tests/testdata/explain/keys_filter.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/keys_filter.test -------------------------------------------------------------------------------- /tests/testdata/explain/keys_join.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/keys_join.test -------------------------------------------------------------------------------- /tests/testdata/explain/keys_union.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/keys_union.test -------------------------------------------------------------------------------- /tests/testdata/explain/outer_to_inner_join.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/outer_to_inner_join.test -------------------------------------------------------------------------------- /tests/testdata/explain/project_normalization.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/project_normalization.test -------------------------------------------------------------------------------- /tests/testdata/explain/pulled_up_predicates.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/pulled_up_predicates.test -------------------------------------------------------------------------------- /tests/testdata/explain/static_queries.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/static_queries.test -------------------------------------------------------------------------------- /tests/testdata/explain/subqueries.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/subqueries.test -------------------------------------------------------------------------------- /tests/testdata/explain/union_merge.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/union_merge.test -------------------------------------------------------------------------------- /tests/testdata/explain/union_pruning.test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tests/testdata/explain/union_pruning.test -------------------------------------------------------------------------------- /tools/cytoscape.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tools/cytoscape.html -------------------------------------------------------------------------------- /tools/d3.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tools/d3.html -------------------------------------------------------------------------------- /tools/vis.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asenac/rust-sql-playground/HEAD/tools/vis.html --------------------------------------------------------------------------------