gitextract_kxn6szmx/ ├── .bazeliskrc ├── .bazelrc ├── .circleci/ │ ├── config.yml │ ├── coverage-config.yml │ ├── diff-cover-config.yml │ ├── full-unittest-config.yml │ ├── lite-unittest-config.yml │ └── path-filtering/ │ └── unittest.conf ├── .clang-format ├── .clang-tidy ├── .coveralls.yml ├── .devcontainer/ │ ├── Dockerfile │ └── devcontainer.json ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── Consulting_issue_template.yaml │ │ └── Error_Issue_Template.yaml │ └── workflows/ │ ├── black.yml │ ├── buildifier.yml │ ├── cla.yml │ ├── clang-format-linter.yml │ ├── codeql.yml │ ├── dependency-review.yml │ ├── docs-check.yml │ ├── docs-publish.yml │ ├── golangci-lint.yml │ ├── govulncheck.yml │ ├── license-check.yml │ ├── oscp.yml │ ├── scorecards.yml │ ├── stale.yml │ ├── trigger-ci-cov.yml │ ├── trigger-ci-full-ut.yml │ ├── trigger-ci-lite-ut.yml │ ├── trigger-diff-coverage.yml │ ├── whitespace-check.yml │ └── yaml-linter.yml ├── .gitignore ├── .golangci.yml ├── .licenserc.yaml ├── .markdownlint.yaml ├── .pre-commit-config.yaml ├── .vscode/ │ ├── cspell.json │ ├── extensions.json │ └── settings.json ├── BUILD.bazel ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LEGAL.md ├── LICENSE ├── MODULE.bazel ├── Makefile ├── README.md ├── REPO_LAYOUT.md ├── SECURITY.md ├── api/ │ ├── BUILD.bazel │ ├── buf.yaml │ ├── common.proto │ ├── core.proto │ ├── engine.proto │ ├── generate_proto.sh │ ├── interpreter.proto │ ├── scql_task.proto │ ├── status.proto │ ├── status_code.proto │ ├── subgraph.proto │ ├── v1/ │ │ ├── BUILD.bazel │ │ ├── column.proto │ │ └── genproto.sh │ └── v1alpha1/ │ ├── BUILD.bazel │ └── compiler.proto ├── bazel/ │ ├── BUILD.bazel │ ├── defs.bzl │ ├── patches/ │ │ ├── BUILD.bazel │ │ ├── grpc-plugin.patch │ │ ├── protobuf-xla.patch │ │ └── rules_foreign_cc.patch │ └── repositories.bzl ├── cmd/ │ └── docgen/ │ ├── main.go │ └── scql_operators.md.tmpl ├── docs/ │ ├── CONTRIBUTING.md │ ├── Makefile │ ├── _static/ │ │ ├── css/ │ │ │ └── custom.css │ │ └── js/ │ │ └── custom.js │ ├── conf.py │ ├── index.rst │ ├── intro/ │ │ ├── index.rst │ │ └── opencore-quickstart.rst │ ├── locales/ │ │ └── zh_CN/ │ │ └── LC_MESSAGES/ │ │ ├── index.po │ │ ├── intro/ │ │ │ ├── index.po │ │ │ └── opencore-quickstart.po │ │ ├── reference/ │ │ │ ├── compiler-config.po │ │ │ ├── engine-config.po │ │ │ ├── implementation-status.po │ │ │ ├── index.po │ │ │ ├── lang/ │ │ │ │ ├── manual.po │ │ │ │ └── mysql-compatibility.po │ │ │ └── operators.po │ │ └── topics/ │ │ ├── faq.po │ │ ├── index.po │ │ ├── security/ │ │ │ └── overview.po │ │ └── system/ │ │ └── intro.po │ ├── reference/ │ │ ├── compiler-config.rst │ │ ├── engine-config.rst │ │ ├── implementation-status.rst │ │ ├── index.rst │ │ ├── lang/ │ │ │ ├── manual.rst │ │ │ └── mysql-compatibility.rst │ │ └── operators.md │ ├── requirements.txt │ └── topics/ │ ├── faq.rst │ ├── index.rst │ ├── security/ │ │ └── overview.rst │ └── system/ │ └── intro.rst ├── engine/ │ ├── auth/ │ │ ├── BUILD.bazel │ │ ├── authenticator.cc │ │ ├── authenticator.h │ │ ├── authenticator_test.cc │ │ ├── authorized_profile.cc │ │ ├── authorized_profile.h │ │ └── authorized_profile.proto │ ├── bazel/ │ │ ├── BUILD.bazel │ │ ├── duckdb.BUILD │ │ ├── engine_deps.bzl │ │ ├── gperftools.BUILD │ │ ├── mysql.BUILD │ │ ├── patches/ │ │ │ ├── dataproxy.patch │ │ │ ├── duckdb.patch │ │ │ ├── mysql.patch │ │ │ ├── poco.patch │ │ │ └── psi.patch │ │ ├── perfetto.BUILD │ │ ├── poco.BUILD │ │ ├── postgres.BUILD │ │ ├── scql.bzl │ │ └── sqlite3.BUILD │ ├── core/ │ │ ├── BUILD.bazel │ │ ├── arrow_helper.h │ │ ├── primitive_builder.cc │ │ ├── primitive_builder.h │ │ ├── primitive_builder_test.cc │ │ ├── string_tensor_builder.cc │ │ ├── string_tensor_builder.h │ │ ├── string_tensor_builder_test.cc │ │ ├── tensor.cc │ │ ├── tensor.h │ │ ├── tensor_batch_reader.cc │ │ ├── tensor_batch_reader.h │ │ ├── tensor_batch_reader_test.cc │ │ ├── tensor_builder.cc │ │ ├── tensor_builder.h │ │ ├── tensor_constructor.cc │ │ ├── tensor_constructor.h │ │ ├── tensor_constructor_test.cc │ │ ├── tensor_slice.cc │ │ ├── tensor_slice.h │ │ ├── type.cc │ │ └── type.h │ ├── datasource/ │ │ ├── BUILD.bazel │ │ ├── arrow_sql_adaptor.cc │ │ ├── arrow_sql_adaptor.h │ │ ├── arrow_sql_adaptor_factory.h │ │ ├── arrow_sql_adaptor_test.cc │ │ ├── csvdb_adaptor.cc │ │ ├── csvdb_adaptor.h │ │ ├── csvdb_adaptor_factory.cc │ │ ├── csvdb_adaptor_factory.h │ │ ├── csvdb_adaptor_test.cc │ │ ├── csvdb_conf.proto │ │ ├── dataproxy_conf.proto │ │ ├── datasource.proto │ │ ├── datasource_adaptor.cc │ │ ├── datasource_adaptor.h │ │ ├── datasource_adaptor_factory.h │ │ ├── datasource_adaptor_mgr.cc │ │ ├── datasource_adaptor_mgr.h │ │ ├── dm_adaptor.cc │ │ ├── dm_adaptor.h │ │ ├── dm_adaptor_factory.cc │ │ ├── dm_adaptor_factory.h │ │ ├── dm_adaptor_kuscia_test.cc │ │ ├── dp_adaptor.cc │ │ ├── dp_adaptor.h │ │ ├── dp_adaptor_factory.cc │ │ ├── dp_adaptor_factory.h │ │ ├── dp_adaptor_test.cc │ │ ├── duckdb_wrapper.cc │ │ ├── duckdb_wrapper.h │ │ ├── duckdb_wrapper_test.cc │ │ ├── embed_router.cc │ │ ├── embed_router.h │ │ ├── embed_router.proto │ │ ├── embed_router_test.cc │ │ ├── http_router.cc │ │ ├── http_router.h │ │ ├── http_router.proto │ │ ├── kuscia_datamesh_router.cc │ │ ├── kuscia_datamesh_router.h │ │ ├── kuscia_datamesh_router_test.cc │ │ ├── mock_router_readme.md │ │ ├── mock_router_server.py │ │ ├── odbc_adaptor.cc │ │ ├── odbc_adaptor.h │ │ ├── odbc_adaptor_factory.cc │ │ ├── odbc_adaptor_factory.h │ │ ├── odbc_adaptor_mysql_test.cc │ │ ├── odbc_adaptor_sqlite_test.cc │ │ ├── odbc_connector.cc │ │ ├── odbc_connector.h │ │ ├── requirements.txt │ │ ├── router.h │ │ └── run_odbc_adaptor_mysql_test.sh │ ├── exe/ │ │ ├── BUILD.bazel │ │ ├── flags.cc │ │ ├── flags.h │ │ ├── main.cc │ │ └── version.h │ ├── framework/ │ │ ├── BUILD.bazel │ │ ├── exec.cc │ │ ├── exec.h │ │ ├── executor.cc │ │ ├── executor.h │ │ ├── operator.cc │ │ ├── operator.h │ │ ├── party_info.cc │ │ ├── party_info.h │ │ ├── party_info_test.cc │ │ ├── registry.cc │ │ ├── registry.h │ │ ├── session.cc │ │ ├── session.h │ │ ├── session_manager.cc │ │ ├── session_manager.h │ │ ├── session_manager_test.cc │ │ ├── tensor_table.cc │ │ └── tensor_table.h │ ├── link/ │ │ ├── BUILD.bazel │ │ ├── channel_manager.cc │ │ ├── channel_manager.h │ │ ├── listener.cc │ │ ├── listener.h │ │ ├── listener_test.cc │ │ ├── mux_link_factory.cc │ │ ├── mux_link_factory.h │ │ ├── mux_receiver.proto │ │ ├── mux_receiver_service.cc │ │ ├── mux_receiver_service.h │ │ ├── mux_receiver_service_test.cc │ │ ├── rpc_helper.cc │ │ ├── rpc_helper.h │ │ └── rpc_helper_test.cc │ ├── operator/ │ │ ├── BUILD.bazel │ │ ├── all_ops_register.cc │ │ ├── all_ops_register.h │ │ ├── all_ops_register_test.cc │ │ ├── arithmetic.cc │ │ ├── arithmetic.h │ │ ├── arithmetic_test.cc │ │ ├── arrow_func.cc │ │ ├── arrow_func.h │ │ ├── arrow_func_test.cc │ │ ├── binary_base.cc │ │ ├── binary_base.h │ │ ├── binary_test.h │ │ ├── broadcast_to.cc │ │ ├── broadcast_to.h │ │ ├── broadcast_to_test.cc │ │ ├── bucket.cc │ │ ├── bucket.h │ │ ├── bucket_bench.cc │ │ ├── bucket_test.cc │ │ ├── case_when.cc │ │ ├── case_when.h │ │ ├── case_when_test.cc │ │ ├── cast.cc │ │ ├── cast.h │ │ ├── cast_test.cc │ │ ├── coalesce.cc │ │ ├── coalesce.h │ │ ├── coalesce_test.cc │ │ ├── compare.cc │ │ ├── compare.h │ │ ├── compare_test.cc │ │ ├── concat.cc │ │ ├── concat.h │ │ ├── concat_test.cc │ │ ├── constant.cc │ │ ├── constant.h │ │ ├── constant_test.cc │ │ ├── copy.cc │ │ ├── copy.h │ │ ├── copy_test.cc │ │ ├── dump_file.cc │ │ ├── dump_file.h │ │ ├── dump_file_test.cc │ │ ├── filter.cc │ │ ├── filter.h │ │ ├── filter_by_index.cc │ │ ├── filter_by_index.h │ │ ├── filter_by_index_test.cc │ │ ├── filter_test.cc │ │ ├── group.cc │ │ ├── group.h │ │ ├── group_agg.cc │ │ ├── group_agg.h │ │ ├── group_agg_test.cc │ │ ├── group_secret_agg.cc │ │ ├── group_secret_agg.h │ │ ├── group_secret_agg_test.cc │ │ ├── group_test.cc │ │ ├── if.cc │ │ ├── if.h │ │ ├── if_null.cc │ │ ├── if_null.h │ │ ├── if_null_test.cc │ │ ├── if_test.cc │ │ ├── in.cc │ │ ├── in.h │ │ ├── in_test.cc │ │ ├── insert_table.cc │ │ ├── insert_table.h │ │ ├── insert_table_mysql_pg_test.cc │ │ ├── insert_table_test.cc │ │ ├── is_null.cc │ │ ├── is_null.h │ │ ├── is_null_test.cc │ │ ├── join.cc │ │ ├── join.h │ │ ├── join_test.cc │ │ ├── limit.cc │ │ ├── limit.h │ │ ├── limit_test.cc │ │ ├── logical.cc │ │ ├── logical.h │ │ ├── logical_test.cc │ │ ├── make_private.cc │ │ ├── make_private.h │ │ ├── make_private_test.cc │ │ ├── make_public.cc │ │ ├── make_public.h │ │ ├── make_public_test.cc │ │ ├── make_share.cc │ │ ├── make_share.h │ │ ├── make_share_test.cc │ │ ├── oblivious_group_agg.cc │ │ ├── oblivious_group_agg.h │ │ ├── oblivious_group_agg_test.cc │ │ ├── oblivious_group_mark.cc │ │ ├── oblivious_group_mark.h │ │ ├── oblivious_group_mark_test.cc │ │ ├── publish.cc │ │ ├── publish.h │ │ ├── publish_test.cc │ │ ├── reduce.cc │ │ ├── reduce.h │ │ ├── reduce_test.cc │ │ ├── replicate.cc │ │ ├── replicate.h │ │ ├── replicate_test.cc │ │ ├── run_sql.cc │ │ ├── run_sql.h │ │ ├── run_sql_test.cc │ │ ├── secret_join.cc │ │ ├── secret_join.h │ │ ├── secret_join_test.cc │ │ ├── shape.cc │ │ ├── shape.h │ │ ├── shape_test.cc │ │ ├── shuffle.cc │ │ ├── shuffle.h │ │ ├── shuffle_test.cc │ │ ├── sort.cc │ │ ├── sort.h │ │ ├── sort_test.cc │ │ ├── test_util.cc │ │ ├── test_util.h │ │ ├── trigonometric.cc │ │ ├── trigonometric.h │ │ ├── trigonometric_test.cc │ │ ├── unary.cc │ │ ├── unary.h │ │ ├── unary_base.cc │ │ ├── unary_base.h │ │ ├── unary_test.cc │ │ ├── unique.cc │ │ ├── unique.h │ │ ├── unique_test.cc │ │ ├── window.cc │ │ ├── window.h │ │ └── window_test.cc │ ├── services/ │ │ ├── BUILD.bazel │ │ ├── engine_service_impl.cc │ │ ├── engine_service_impl.h │ │ ├── engine_service_impl_test.cc │ │ ├── error_collector_service.proto │ │ ├── error_collector_service_impl.cc │ │ ├── error_collector_service_impl.h │ │ ├── mock_report_service.proto │ │ ├── pipeline.cc │ │ ├── pipeline.h │ │ ├── prometheus_service.proto │ │ ├── prometheus_service_impl.cc │ │ ├── prometheus_service_impl.h │ │ ├── run_plan_core.cc │ │ └── run_plan_core.h │ └── util/ │ ├── BUILD.bazel │ ├── communicate_helper.h │ ├── concurrent_queue.h │ ├── context_util.cc │ ├── context_util.h │ ├── copy_to_proto_vistor.h │ ├── datamesh_helper.cc │ ├── datamesh_helper.h │ ├── datamesh_helper_test.cc │ ├── disk/ │ │ ├── BUILD.bazel │ │ ├── arrow_reader.cc │ │ ├── arrow_reader.h │ │ ├── arrow_writer.cc │ │ ├── arrow_writer.h │ │ ├── read_write_bench.cc │ │ └── reader_writer_test.cc │ ├── dp/ │ │ ├── BUILD.bazel │ │ └── flight.proto │ ├── filepath_helper.cc │ ├── filepath_helper.h │ ├── filepath_helper_test.cc │ ├── kpad_task_helper.cc │ ├── kpad_task_helper.h │ ├── kpad_task_helper_test.cc │ ├── logging.cc │ ├── logging.h │ ├── ndarray_to_arrow.cc │ ├── ndarray_to_arrow.h │ ├── prefix_sum.cc │ ├── prefix_sum.h │ ├── progress_util.h │ ├── prometheus_monitor.cc │ ├── prometheus_monitor.h │ ├── psi/ │ │ ├── BUILD.bazel │ │ ├── batch_provider.cc │ │ ├── batch_provider.h │ │ ├── batch_provider_test.cc │ │ ├── cipher_intersection.cc │ │ ├── cipher_intersection.h │ │ ├── cipher_intersection_bench.cc │ │ ├── cipher_intersection_test.cc │ │ ├── common.cc │ │ ├── common.h │ │ ├── detail_logger.cc │ │ ├── detail_logger.h │ │ ├── ub_helper.cc │ │ └── ub_helper.h │ ├── spu_io.cc │ ├── spu_io.h │ ├── ssl_helper.cc │ ├── ssl_helper.h │ ├── ssl_helper_test.cc │ ├── stringifier.cc │ ├── stringifier.h │ ├── stringifier_test.cc │ ├── table_util.cc │ ├── table_util.h │ ├── tensor_util.cc │ ├── tensor_util.h │ ├── time_util.cc │ ├── time_util.h │ ├── trace_categories.cc │ ├── trace_categories.h │ ├── upload_info_helper.cc │ ├── upload_info_helper.h │ └── upload_info_helper_test.cc ├── examples/ │ ├── opencore-demo/ │ │ └── main.go │ └── tutorial/ │ ├── .gitignore │ ├── README.md │ ├── docker/ │ │ ├── build.sh │ │ └── scql-ubuntu.Dockerfile │ ├── docker-compose.yml.template │ ├── engine/ │ │ ├── alice/ │ │ │ └── conf/ │ │ │ └── gflags.conf.template │ │ └── bob/ │ │ └── conf/ │ │ └── gflags.conf.template │ ├── example_config.json │ ├── mysql/ │ │ └── initdb/ │ │ ├── alice_init.sql │ │ └── bob_init.sql │ ├── project_bootstrap.sh │ └── setup.sh ├── go.mod ├── go.sum ├── pkg/ │ ├── config/ │ │ └── tls_config.go │ ├── constant/ │ │ └── constant.go │ ├── executor/ │ │ ├── engine_client.go │ │ ├── engine_client_test.go │ │ ├── engine_stub.go │ │ ├── engine_stub_mock.go │ │ ├── engine_stub_test.go │ │ ├── executor.go │ │ └── executor_test.go │ ├── expression/ │ │ ├── aggregation/ │ │ │ ├── aggregation.go │ │ │ ├── base_func.go │ │ │ ├── descriptor.go │ │ │ ├── util.go │ │ │ └── window_func.go │ │ ├── builtin.go │ │ ├── builtin_arithmetic.go │ │ ├── builtin_cast.go │ │ ├── builtin_compare.go │ │ ├── builtin_control.go │ │ ├── builtin_like.go │ │ ├── builtin_math.go │ │ ├── builtin_op.go │ │ ├── builtin_other.go │ │ ├── builtin_string.go │ │ ├── builtin_time.go │ │ ├── column.go │ │ ├── constant.go │ │ ├── errors.go │ │ ├── expression.go │ │ ├── expression_to_stmt.go │ │ ├── function_traits.go │ │ ├── helper.go │ │ ├── rand.go │ │ ├── scalar_function.go │ │ ├── schema.go │ │ ├── simple_rewriter.go │ │ └── util.go │ ├── infoschema/ │ │ ├── builder.go │ │ ├── infoschema.go │ │ ├── infoschema_test.go │ │ └── table_schema.go │ ├── interpreter/ │ │ ├── compiler/ │ │ │ ├── arrow_func_options.go │ │ │ ├── codegen_pass.go │ │ │ ├── column_security_relaxation.go │ │ │ ├── column_security_relaxation_test.go │ │ │ ├── common.go │ │ │ ├── common_test.go │ │ │ ├── compiler.go │ │ │ ├── compiler_test.go │ │ │ ├── constant.go │ │ │ ├── data/ │ │ │ │ └── test_queries.json │ │ │ ├── execution_graph_builder.go │ │ │ ├── execution_graph_builder_ops.go │ │ │ ├── execution_graph_builder_test.go │ │ │ ├── execution_graph_pass.go │ │ │ ├── inference.go │ │ │ ├── inference_test.go │ │ │ ├── kernel.go │ │ │ ├── kernel_resolver.go │ │ │ ├── kernel_resolver_test.go │ │ │ ├── kernel_test.go │ │ │ ├── logical_plan_pass.go │ │ │ ├── operator.go │ │ │ ├── operator_graph.go │ │ │ ├── operator_graph_builder.go │ │ │ ├── operator_graph_builder_test.go │ │ │ ├── operator_graph_pass.go │ │ │ ├── parser_pass.go │ │ │ ├── reverse_inference.go │ │ │ ├── reverse_inference_test.go │ │ │ ├── security_relaxation_manager.go │ │ │ ├── tensor_manager.go │ │ │ ├── tensor_manager_test.go │ │ │ ├── tensor_meta.go │ │ │ ├── tensor_meta_manager.go │ │ │ ├── tensor_meta_manager_test.go │ │ │ ├── tensor_meta_test.go │ │ │ ├── tensor_placement.go │ │ │ ├── tensor_placement_test.go │ │ │ ├── tensor_status_converter.go │ │ │ ├── tensor_status_converter_test.go │ │ │ ├── tensor_tracker.go │ │ │ ├── tensor_tracker_test.go │ │ │ ├── test_execution_graph_input.go │ │ │ ├── update_column_security.go │ │ │ ├── update_column_security_test.go │ │ │ ├── util/ │ │ │ │ ├── priority_queue.go │ │ │ │ └── priority_queue_test.go │ │ │ ├── visibility_analysis_pass.go │ │ │ ├── visibility_basic_inference.go │ │ │ ├── visibility_basic_inference_test.go │ │ │ ├── visibility_inference_with_relaxation.go │ │ │ ├── visibility_registry.go │ │ │ ├── visibility_registry_test.go │ │ │ ├── visibility_solver.go │ │ │ ├── visibility_solver_test.go │ │ │ ├── visible_parties.go │ │ │ └── visible_parties_test.go │ │ ├── graph/ │ │ │ ├── attribute.go │ │ │ ├── attribute_test.go │ │ │ ├── constant.go │ │ │ ├── data_type.go │ │ │ ├── engine_info.go │ │ │ ├── engine_info_test.go │ │ │ ├── execution_node.go │ │ │ ├── graph.go │ │ │ ├── graph_mapper.go │ │ │ ├── graph_mapper_test.go │ │ │ ├── graph_optimizer.go │ │ │ ├── graph_optimizer_test.go │ │ │ ├── graph_partitioner.go │ │ │ ├── graph_splitter.go │ │ │ ├── graph_splitter_test.go │ │ │ ├── graph_test.go │ │ │ └── tensor.go │ │ ├── operator/ │ │ │ ├── constant.go │ │ │ ├── operator_checker.go │ │ │ ├── operator_def.go │ │ │ ├── operator_def_test.go │ │ │ └── operator_registration.go │ │ └── sc/ │ │ └── scql_compiler.go │ ├── parser/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── ast/ │ │ │ ├── advisor.go │ │ │ ├── ast.go │ │ │ ├── base.go │ │ │ ├── ddl.go │ │ │ ├── ddl_test.go │ │ │ ├── dml.go │ │ │ ├── dml_test.go │ │ │ ├── expressions.go │ │ │ ├── expressions_test.go │ │ │ ├── flag.go │ │ │ ├── flag_test.go │ │ │ ├── format_test.go │ │ │ ├── functions.go │ │ │ ├── functions_test.go │ │ │ ├── misc.go │ │ │ ├── misc_test.go │ │ │ ├── stats.go │ │ │ ├── util.go │ │ │ └── util_test.go │ │ ├── auth/ │ │ │ ├── auth.go │ │ │ └── auth_test.go │ │ ├── bench_test.go │ │ ├── charset/ │ │ │ ├── charset.go │ │ │ ├── charset_test.go │ │ │ └── encoding_table.go │ │ ├── consistent_test.go │ │ ├── digester.go │ │ ├── digester_test.go │ │ ├── export_test.go │ │ ├── format/ │ │ │ ├── format.go │ │ │ ├── format_dialect.go │ │ │ └── format_test.go │ │ ├── goyacc/ │ │ │ ├── format_yacc.go │ │ │ └── main.go │ │ ├── hintparser.go │ │ ├── hintparser.y │ │ ├── hintparser_test.go │ │ ├── hintparserimpl.go │ │ ├── lexer.go │ │ ├── lexer_test.go │ │ ├── misc.go │ │ ├── model/ │ │ │ ├── ddl.go │ │ │ ├── flags.go │ │ │ ├── model.go │ │ │ └── model_test.go │ │ ├── mysql/ │ │ │ ├── charset.go │ │ │ ├── const.go │ │ │ ├── const_test.go │ │ │ ├── errcode.go │ │ │ ├── errname.go │ │ │ ├── error.go │ │ │ ├── error_test.go │ │ │ ├── locale_format.go │ │ │ ├── state.go │ │ │ ├── type.go │ │ │ ├── type_test.go │ │ │ └── util.go │ │ ├── opcode/ │ │ │ ├── opcode.go │ │ │ └── opcode_test.go │ │ ├── parser.go │ │ ├── parser.y │ │ ├── parser_test.go │ │ ├── terror/ │ │ │ ├── terror.go │ │ │ └── terror_test.go │ │ ├── test.sh │ │ ├── test_driver/ │ │ │ ├── test_driver.go │ │ │ ├── test_driver_datum.go │ │ │ ├── test_driver_helper.go │ │ │ └── test_driver_mydecimal.go │ │ ├── types/ │ │ │ ├── etc.go │ │ │ ├── eval_type.go │ │ │ ├── field_type.go │ │ │ └── field_type_test.go │ │ └── yy_parser.go │ ├── planner/ │ │ ├── README.md │ │ ├── core/ │ │ │ ├── common_plans.go │ │ │ ├── database_dialect.go │ │ │ ├── dot.go │ │ │ ├── dot_test.go │ │ │ ├── errors.go │ │ │ ├── explain.go │ │ │ ├── expression_rewriter.go │ │ │ ├── hashcode.go │ │ │ ├── initialize.go │ │ │ ├── logical_plan_builder.go │ │ │ ├── logical_plan_test.go │ │ │ ├── logical_plans.go │ │ │ ├── logicalplan_to_stmt.go │ │ │ ├── logicalplan_to_stmt_helper.go │ │ │ ├── logicalplan_to_stmt_test.go │ │ │ ├── optimizer.go │ │ │ ├── plan.go │ │ │ ├── planbuilder.go │ │ │ ├── preprocess.go │ │ │ ├── rewrite.go │ │ │ ├── rewrite_test.go │ │ │ ├── rule_aggregation_elimination.go │ │ │ ├── rule_aggregation_push_down.go │ │ │ ├── rule_build_key_info.go │ │ │ ├── rule_column_pruning.go │ │ │ ├── rule_decorrelate.go │ │ │ ├── rule_eliminate_projection.go │ │ │ ├── rule_groupby_threshold.go │ │ │ ├── rule_join_reorder.go │ │ │ ├── rule_join_reorder_greedy.go │ │ │ ├── rule_merge_selection.go │ │ │ ├── rule_patch_timezone.go │ │ │ ├── rule_patch_timezone_test.go │ │ │ ├── rule_predicate_push_down.go │ │ │ ├── stringer.go │ │ │ ├── testdata/ │ │ │ │ ├── runsql_in.json │ │ │ │ ├── typical_query_in.json │ │ │ │ └── typical_query_out.json │ │ │ └── util.go │ │ ├── property/ │ │ │ └── property.go │ │ └── util/ │ │ ├── custom_vistor.go │ │ ├── custom_vistor_test.go │ │ ├── debug_util.go │ │ └── path.go │ ├── proto-gen/ │ │ ├── scql/ │ │ │ ├── common.pb.go │ │ │ ├── core.pb.go │ │ │ ├── engine.pb.go │ │ │ ├── interpreter.pb.go │ │ │ ├── scql_task.pb.go │ │ │ ├── status.pb.go │ │ │ ├── status_code.pb.go │ │ │ ├── subgraph.pb.go │ │ │ └── v1alpha1/ │ │ │ └── compiler.pb.go │ │ └── spu/ │ │ └── spu.pb.go │ ├── sessionctx/ │ │ ├── context.go │ │ ├── stmtctx/ │ │ │ └── stmtctx.go │ │ └── variable/ │ │ ├── session.go │ │ └── sysvar.go │ ├── status/ │ │ ├── status.go │ │ └── status_test.go │ ├── table/ │ │ ├── column.go │ │ ├── table.go │ │ └── tables/ │ │ └── tables.go │ ├── types/ │ │ ├── binary_literal.go │ │ ├── compare.go │ │ ├── convert.go │ │ ├── datum.go │ │ ├── errors.go │ │ ├── etc.go │ │ ├── eval_type.go │ │ ├── field_name.go │ │ ├── field_type.go │ │ ├── fsp.go │ │ ├── helper.go │ │ ├── mydecimal.go │ │ ├── mytime.go │ │ ├── overflow.go │ │ ├── parser_driver/ │ │ │ ├── value_expr.go │ │ │ └── value_expr_test.go │ │ └── time.go │ └── util/ │ ├── chunk/ │ │ ├── chunk.go │ │ ├── chunk_util.go │ │ ├── codec.go │ │ ├── column.go │ │ ├── compare.go │ │ ├── iterator.go │ │ └── row.go │ ├── codec/ │ │ ├── bytes.go │ │ ├── bytes_test.go │ │ ├── codec.go │ │ ├── codec_test.go │ │ ├── float.go │ │ └── number.go │ ├── execdetails/ │ │ └── execdetails.go │ ├── hack/ │ │ ├── hack.go │ │ └── hack_test.go │ ├── keyutil/ │ │ └── key_util.go │ ├── kusciaclient/ │ │ └── kusciaclient.go │ ├── logutil/ │ │ ├── log.go │ │ ├── monitor_log_entry.go │ │ └── monitor_log_entry_test.go │ ├── math/ │ │ ├── math.go │ │ └── math_test.go │ ├── mathutil/ │ │ ├── mathutil.go │ │ └── mathutil_wasm.go │ ├── message/ │ │ └── message_io_util.go │ ├── misc.go │ ├── mock/ │ │ ├── Makefile │ │ ├── README.md │ │ ├── mock.sh │ │ ├── mock_data.go │ │ ├── mock_db_data.py │ │ ├── mock_from_testdata.py │ │ ├── mock_schema.py │ │ └── testdata/ │ │ ├── db.json │ │ ├── generated_table_alice.json │ │ ├── generated_table_bob.json │ │ ├── generated_table_carol.json │ │ ├── table_alice.json │ │ ├── table_bob.json │ │ └── table_carol.json │ ├── mvmap/ │ │ ├── fnv.go │ │ ├── mvmap.go │ │ └── mvmap_test.go │ ├── parallel/ │ │ └── parallel.go │ ├── plancodec/ │ │ └── id.go │ ├── prometheus/ │ │ └── prom.go │ ├── ranger/ │ │ └── types.go │ ├── sliceutil/ │ │ ├── slice_util.go │ │ └── slice_util_test.go │ ├── sqlbuilder/ │ │ ├── sqlbuilder.go │ │ └── sqlbuilder_test.go │ ├── stringutil/ │ │ ├── string_util.go │ │ └── string_util_test.go │ ├── tableview/ │ │ └── tableview.go │ ├── testleak/ │ │ ├── fake.go │ │ └── leaktest.go │ ├── testutil/ │ │ └── testutil.go │ ├── texttree/ │ │ ├── texttree.go │ │ └── texttree_test.go │ ├── transaction/ │ │ └── tx.go │ └── url/ │ ├── url_util.go │ └── url_util_test.go ├── python/ │ ├── build.py │ ├── engine/ │ │ ├── BUILD.bazel │ │ └── engine_bindings.cc │ └── src/ │ ├── LICENSE │ ├── README.md │ ├── pyproject.toml │ ├── scql/ │ │ ├── __init__.py │ │ ├── compiler/ │ │ │ └── __init__.py │ │ └── engine/ │ │ └── __init__.py │ └── setup.py ├── renovate.json ├── scripts/ │ ├── check-whitespace.sh │ ├── format/ │ │ └── clang-format.sh │ └── graph-visualization/ │ ├── dot2js.py │ ├── graph.dot │ └── template.html ├── test-tools/ │ ├── README.md │ ├── ca_generator.sh │ └── find_uncover_err.py ├── version.txt └── version_build.sh