[5/6] incubator-quickstep git commit: Initial commit
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd18561/parser/preprocessed/SqlLexer_gen.cpp -- diff --git a/parser/preprocessed/SqlLexer_gen.cpp b/parser/preprocessed/SqlLexer_gen.cpp index bd77ee1..4800cde 100644 --- a/parser/preprocessed/SqlLexer_gen.cpp +++ b/parser/preprocessed/SqlLexer_gen.cpp @@ -9,88 +9,244 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 3 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif -#define yy_create_buffer quickstep_yy_create_buffer +#ifdef yy_create_buffer +#define quickstep_yy_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer quickstep_yy_create_buffer +#endif -#define yy_delete_buffer quickstep_yy_delete_buffer +#ifdef yy_delete_buffer +#define quickstep_yy_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer quickstep_yy_delete_buffer +#endif -#define yy_scan_buffer quickstep_yy_scan_buffer +#ifdef yy_scan_buffer +#define quickstep_yy_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer quickstep_yy_scan_buffer +#endif -#define yy_scan_string quickstep_yy_scan_string +#ifdef yy_scan_string +#define quickstep_yy_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string quickstep_yy_scan_string +#endif -#define yy_scan_bytes quickstep_yy_scan_bytes +#ifdef yy_scan_bytes +#define quickstep_yy_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes quickstep_yy_scan_bytes +#endif -#define yy_init_buffer quickstep_yy_init_buffer +#ifdef yy_init_buffer +#define quickstep_yy_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer quickstep_yy_init_buffer +#endif -#define yy_flush_buffer quickstep_yy_flush_buffer +#ifdef yy_flush_buffer +#define quickstep_yy_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer quickstep_yy_flush_buffer +#endif -#define yy_load_buffer_state quickstep_yy_load_buffer_state +#ifdef yy_load_buffer_state +#define quickstep_yy_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state quickstep_yy_load_buffer_state +#endif -#define yy_switch_to_buffer quickstep_yy_switch_to_buffer +#ifdef yy_switch_to_buffer +#define quickstep_yy_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer quickstep_yy_switch_to_buffer +#endif -#define yypush_buffer_state quickstep_yypush_buffer_state +#ifdef yypush_buffer_state +#define quickstep_yypush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state quickstep_yypush_buffer_state +#endif -#define yypop_buffer_state quickstep_yypop_buffer_state +#ifdef yypop_buffer_state +#define quickstep_yypop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state quickstep_yypop_buffer_state +#endif -#define yyensure_buffer_stack quickstep_yyensure_buffer_stack +#ifdef yyensure_buffer_stack +#define quickstep_yyensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack quickstep_yyensure_buffer_stack +#endif -#define yylex quickstep_yylex +#ifdef yylex +#define quickstep_yylex_ALREADY_DEFINED +#else +#define yylex quickstep_yylex +#endif -#define yyrestart quickstep_yyrestart +#ifdef yyrestart +#define quickstep_yyrestart_ALREADY_DEFINED +#else +#define yyrestart quickstep_yyrestart +#endif -#define yylex_init quickstep_yylex_init +#ifdef yylex_init +#define quickstep_yylex_init_ALREADY_DEFINED +#else +#define yylex_init quickstep_yylex_init +#endif -#define yylex_init_extra quickstep_yylex_init_extra +#ifdef yylex_init_extra +#define quickstep_yylex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra quickstep_yylex_init_extra +#endif -#define yylex_destroy quickstep_yylex_destroy +#ifdef yylex_destroy +#define quickstep_yylex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy quickstep_yylex_destroy +#endif -#define yyget_debug quickstep_yyget_debug +#ifdef yyget_debug +#define quickstep_yyget_debug_ALREADY_DEFINED +#else +#define yyget_debug quickstep_yyget_debug +#endif -#define yyset_debug quickstep_yyset_debug +#ifdef yyset_debug +#define quickstep_yyset_debug_ALREADY_DEFINED +#else +#define yyset_debug quickstep_yyset_debug +#endif -#define yyget_extra quickstep_yyget_extra +#ifdef yyget_extra +#define quickstep_yyget_extra_ALREADY_DEFINED +#else +#define yyget_extra quickstep_yyget_extra +#endif -#define yyset_extra quickstep_yyset_extra +#ifdef yyset_extra +#define quickstep_yyset_extra_ALREADY_DEFINED +#else +#define yyset_extra quickstep_yyset_extra +#endif -#define yyget_in quickstep_yyget_in +#ifdef yyget_in +#define quickstep_yyget_in_ALREADY_DEFINED +#else +#define yyget_in quickstep_yyget_in +#endif -#define yyset_in quickstep_yyset_in +#ifdef yyset_in +#define quickstep_yyset_in_ALREADY_DEFINED +#else +#define yyset_in quickstep_yyset_in +#endif -#define y
[5/6] incubator-quickstep git commit: Initial commit
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/c7bd8c6d/parser/preprocessed/SqlLexer_gen.cpp -- diff --git a/parser/preprocessed/SqlLexer_gen.cpp b/parser/preprocessed/SqlLexer_gen.cpp index bd77ee1..4800cde 100644 --- a/parser/preprocessed/SqlLexer_gen.cpp +++ b/parser/preprocessed/SqlLexer_gen.cpp @@ -9,88 +9,244 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 3 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif -#define yy_create_buffer quickstep_yy_create_buffer +#ifdef yy_create_buffer +#define quickstep_yy_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer quickstep_yy_create_buffer +#endif -#define yy_delete_buffer quickstep_yy_delete_buffer +#ifdef yy_delete_buffer +#define quickstep_yy_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer quickstep_yy_delete_buffer +#endif -#define yy_scan_buffer quickstep_yy_scan_buffer +#ifdef yy_scan_buffer +#define quickstep_yy_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer quickstep_yy_scan_buffer +#endif -#define yy_scan_string quickstep_yy_scan_string +#ifdef yy_scan_string +#define quickstep_yy_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string quickstep_yy_scan_string +#endif -#define yy_scan_bytes quickstep_yy_scan_bytes +#ifdef yy_scan_bytes +#define quickstep_yy_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes quickstep_yy_scan_bytes +#endif -#define yy_init_buffer quickstep_yy_init_buffer +#ifdef yy_init_buffer +#define quickstep_yy_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer quickstep_yy_init_buffer +#endif -#define yy_flush_buffer quickstep_yy_flush_buffer +#ifdef yy_flush_buffer +#define quickstep_yy_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer quickstep_yy_flush_buffer +#endif -#define yy_load_buffer_state quickstep_yy_load_buffer_state +#ifdef yy_load_buffer_state +#define quickstep_yy_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state quickstep_yy_load_buffer_state +#endif -#define yy_switch_to_buffer quickstep_yy_switch_to_buffer +#ifdef yy_switch_to_buffer +#define quickstep_yy_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer quickstep_yy_switch_to_buffer +#endif -#define yypush_buffer_state quickstep_yypush_buffer_state +#ifdef yypush_buffer_state +#define quickstep_yypush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state quickstep_yypush_buffer_state +#endif -#define yypop_buffer_state quickstep_yypop_buffer_state +#ifdef yypop_buffer_state +#define quickstep_yypop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state quickstep_yypop_buffer_state +#endif -#define yyensure_buffer_stack quickstep_yyensure_buffer_stack +#ifdef yyensure_buffer_stack +#define quickstep_yyensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack quickstep_yyensure_buffer_stack +#endif -#define yylex quickstep_yylex +#ifdef yylex +#define quickstep_yylex_ALREADY_DEFINED +#else +#define yylex quickstep_yylex +#endif -#define yyrestart quickstep_yyrestart +#ifdef yyrestart +#define quickstep_yyrestart_ALREADY_DEFINED +#else +#define yyrestart quickstep_yyrestart +#endif -#define yylex_init quickstep_yylex_init +#ifdef yylex_init +#define quickstep_yylex_init_ALREADY_DEFINED +#else +#define yylex_init quickstep_yylex_init +#endif -#define yylex_init_extra quickstep_yylex_init_extra +#ifdef yylex_init_extra +#define quickstep_yylex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra quickstep_yylex_init_extra +#endif -#define yylex_destroy quickstep_yylex_destroy +#ifdef yylex_destroy +#define quickstep_yylex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy quickstep_yylex_destroy +#endif -#define yyget_debug quickstep_yyget_debug +#ifdef yyget_debug +#define quickstep_yyget_debug_ALREADY_DEFINED +#else +#define yyget_debug quickstep_yyget_debug +#endif -#define yyset_debug quickstep_yyset_debug +#ifdef yyset_debug +#define quickstep_yyset_debug_ALREADY_DEFINED +#else +#define yyset_debug quickstep_yyset_debug +#endif -#define yyget_extra quickstep_yyget_extra +#ifdef yyget_extra +#define quickstep_yyget_extra_ALREADY_DEFINED +#else +#define yyget_extra quickstep_yyget_extra +#endif -#define yyset_extra quickstep_yyset_extra +#ifdef yyset_extra +#define quickstep_yyset_extra_ALREADY_DEFINED +#else +#define yyset_extra quickstep_yyset_extra +#endif -#define yyget_in quickstep_yyget_in +#ifdef yyget_in +#define quickstep_yyget_in_ALREADY_DEFINED +#else +#define yyget_in quickstep_yyget_in +#endif -#define yyset_in quickstep_yyset_in +#ifdef yyset_in +#define quickstep_yyset_in_ALREADY_DEFINED +#else +#define yyset_in quickstep_yyset_in +#endif -#define y
[5/6] incubator-quickstep git commit: Initial commit.
Initial commit. Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/8427d068 Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/8427d068 Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/8427d068 Branch: refs/heads/fuse-join-with-select Commit: 8427d06842a38c8f97bc5a0115b9e48ee97784aa Parents: cdc1e05 Author: Hakan Memisoglu Authored: Tue Aug 16 16:40:27 2016 -0500 Committer: hakanmem Committed: Tue Aug 23 13:57:22 2016 -0500 -- query_optimizer/CMakeLists.txt| 1 + query_optimizer/ExecutionGenerator.cpp| 9 ++ query_optimizer/PhysicalGenerator.cpp | 2 ++ query_optimizer/physical/HashJoin.cpp | 5 +++ query_optimizer/physical/HashJoin.hpp | 18 --- query_optimizer/rules/CMakeLists.txt | 11 +++ query_optimizer/rules/FuseJoinSelect.cpp | 43 ++ query_optimizer/rules/FuseJoinSelect.hpp | 33 relational_operators/HashJoinOperator.cpp | 13 +++- relational_operators/HashJoinOperator.hpp | 12 +++ relational_operators/WorkOrder.proto | 1 + storage/StorageBlock.hpp | 10 -- 12 files changed, 151 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8427d068/query_optimizer/CMakeLists.txt -- diff --git a/query_optimizer/CMakeLists.txt b/query_optimizer/CMakeLists.txt index 56ae52f..b0bc38b 100644 --- a/query_optimizer/CMakeLists.txt +++ b/query_optimizer/CMakeLists.txt @@ -195,6 +195,7 @@ target_link_libraries(quickstep_queryoptimizer_PhysicalGenerator quickstep_queryoptimizer_LogicalToPhysicalMapper quickstep_queryoptimizer_logical_Logical quickstep_queryoptimizer_physical_Physical + quickstep_queryoptimizer_rules_FuseJoinSelect quickstep_queryoptimizer_rules_PruneColumns quickstep_queryoptimizer_rules_StarSchemaHashJoinOrderOptimization quickstep_queryoptimizer_rules_SwapProbeBuild http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8427d068/query_optimizer/ExecutionGenerator.cpp -- diff --git a/query_optimizer/ExecutionGenerator.cpp b/query_optimizer/ExecutionGenerator.cpp index 2e03e09..c5f3005 100644 --- a/query_optimizer/ExecutionGenerator.cpp +++ b/query_optimizer/ExecutionGenerator.cpp @@ -683,6 +683,14 @@ void ExecutionGenerator::convertHashJoin(const P::HashJoinPtr &physical_plan) { query_context_proto_->add_predicates()->CopyFrom(residual_predicate->getProto()); } + // Convert the left filter predicate proto. + QueryContext::predicate_id left_filter_predicate_index = QueryContext::kInvalidPredicateId; + if (physical_plan->residual_predicate()) { +left_filter_predicate_index = query_context_proto_->predicates_size(); +unique_ptr left_filter_predicate(convertPredicate(physical_plan->left_filter_predicate())); + query_context_proto_->add_predicates()->CopyFrom(left_filter_predicate->getProto()); + } + // Convert the project expressions proto. const QueryContext::scalar_group_id project_expressions_group_index = query_context_proto_->scalar_groups_size(); @@ -787,6 +795,7 @@ void ExecutionGenerator::convertHashJoin(const P::HashJoinPtr &physical_plan) { insert_destination_index, join_hash_table_index, residual_predicate_index, + left_filter_predicate_index, project_expressions_group_index, is_selection_on_build.get(), join_type)); http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/8427d068/query_optimizer/PhysicalGenerator.cpp -- diff --git a/query_optimizer/PhysicalGenerator.cpp b/query_optimizer/PhysicalGenerator.cpp index 8f19702..6ad1f8c 100644 --- a/query_optimizer/PhysicalGenerator.cpp +++ b/query_optimizer/PhysicalGenerator.cpp @@ -26,6 +26,7 @@ #include "query_optimizer/Validator.hpp" #include "query_optimizer/logical/Logical.hpp" #include "query_optimizer/physical/Physical.hpp" +#include "query_optimizer/rules/FuseJoinSelect.hpp" #include "query_optimizer/rules/PruneColumns.hpp" #include "query_optimizer/rules/StarSchemaHashJoinOrderOptimization.hpp" #include "query_optimizer/rules/SwapProbeBuild.hpp" @@ -100,6 +101,7 @@ P::PhysicalPtr PhysicalGenerator::optimizePlan() { } rules.emplace_back(new PruneColumns()); rules.emplace_back(new SwapProbeBuild()); + rules.emplace_back(new FuseJoinSelect());