Changeset: a96e9a08f10a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a96e9a08f10a
Modified Files:
        sql/server/rel_optimizer.c
        sql/test/Tests/keys.test
Branch: default
Log Message:

Merged with Oct2020


diffs (truncated from 309 to 300 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -9381,14 +9381,13 @@ replace_column_references_with_nulls_2(m
 static sql_rel *
 out2inner(visitor *v, sql_rel* sel, sql_rel* join, sql_rel* inner_join_side, 
operator_type new_type) {
 
-    list* select_predicates = exps_copy(v->sql, sel->exps);
-
     if (!is_base(inner_join_side->op) && 
!is_simple_project(inner_join_side->op)) {
         // Nothing to do here.
         return sel;
     }
 
     list* inner_join_column_references = inner_join_side->exps;
+    list* select_predicates = exps_copy(v->sql, sel->exps);
 
     for(node* n = select_predicates->h; n; n=n->next) {
         sql_exp* e = n->data;
@@ -9532,6 +9531,8 @@ rel_remove_union_partitions(visitor *v, 
                return rel;
        if (exp_is_zero_rows(v->sql, rel->l, NULL)) {
                sql_rel *r = rel->r;
+               if (!is_project(r->op))
+                       r = rel_project(v->sql->sa, r, rel_projections(v->sql, 
r, NULL, 1, 1));
                rel_rename_exps(v->sql, rel->exps, r->exps);
                rel->r = NULL;
                rel_destroy(rel);
@@ -9540,6 +9541,8 @@ rel_remove_union_partitions(visitor *v, 
        }
        if (exp_is_zero_rows(v->sql, rel->r, NULL)) {
                sql_rel *l = rel->l;
+               if (!is_project(l->op))
+                       l = rel_project(v->sql->sa, l, rel_projections(v->sql, 
l, NULL, 1, 1));
                rel_rename_exps(v->sql, rel->exps, l->exps);
                rel->l = NULL;
                rel_destroy(rel);
diff --git a/sql/test/Tests/keys.sql b/sql/test/Tests/keys.sql
--- a/sql/test/Tests/keys.sql
+++ b/sql/test/Tests/keys.sql
@@ -7,9 +7,11 @@ CREATE INDEX allnewtriples_predicate_idx
 CREATE INDEX allnewtriples_object_idx ON allnewtriples ("object");
 
 SELECT idxs.name, idxs."type", keys.name, keys."type" 
-FROM sys.idxs LEFT JOIN sys.keys on idxs.name = keys.name;
+FROM sys.idxs LEFT JOIN sys.keys on idxs.name = keys.name
+ORDER BY idxs.name, keys.name;
 SELECT idxs.name, idxs."type", keys.name, keys."type" 
-FROM sys.idxs JOIN sys.keys on idxs.name = keys.name;
+FROM sys.idxs JOIN sys.keys on idxs.name = keys.name
+ORDER BY idxs.name, keys.name;
 
 /* test elimination of distinct restriction on aggregates */
 create table dummyme (a int primary key, b int);
diff --git a/sql/test/Tests/keys.stable.out b/sql/test/Tests/keys.stable.out
--- a/sql/test/Tests/keys.stable.out
+++ b/sql/test/Tests/keys.stable.out
@@ -60,27 +60,27 @@ stdout of test 'keys` in directory 'sql/
 % name,        type,   name,   type # name
 % varchar,     int,    varchar,        int # type
 % 44,  1,      44,     1 # length
+[ "allnewtriples_object_idx",  0,      NULL,   NULL    ]
+[ "allnewtriples_predicate_idx",       0,      NULL,   NULL    ]
+[ "allnewtriples_subject_idx", 0,      NULL,   NULL    ]
 [ "comments_id_pkey",  0,      "comments_id_pkey",     0       ]
 [ "dependency_types_dependency_type_id_pkey",  0,      
"dependency_types_dependency_type_id_pkey",     0       ]
 [ "dependency_types_dependency_type_name_unique",      0,      
"dependency_types_dependency_type_name_unique", 1       ]
-[ "spatial_ref_sys_srid_pkey", 0,      "spatial_ref_sys_srid_pkey",    0       
]
-[ "keywords_keyword_pkey",     0,      "keywords_keyword_pkey",        0       
]
-[ "table_types_table_type_id_pkey",    0,      
"table_types_table_type_id_pkey",       0       ]
-[ "table_types_table_type_name_unique",        0,      
"table_types_table_type_name_unique",   1       ]
-[ "function_types_function_type_id_pkey",      0,      
"function_types_function_type_id_pkey", 0       ]
-[ "function_types_function_type_name_unique",  0,      
"function_types_function_type_name_unique",     1       ]
 [ "function_languages_language_id_pkey",       0,      
"function_languages_language_id_pkey",  0       ]
 [ "function_languages_language_name_unique",   0,      
"function_languages_language_name_unique",      1       ]
-[ "key_types_key_type_id_pkey",        0,      "key_types_key_type_id_pkey",   
0       ]
-[ "key_types_key_type_name_unique",    0,      
"key_types_key_type_name_unique",       1       ]
+[ "function_types_function_type_id_pkey",      0,      
"function_types_function_type_id_pkey", 0       ]
+[ "function_types_function_type_name_unique",  0,      
"function_types_function_type_name_unique",     1       ]
 [ "index_types_index_type_id_pkey",    0,      
"index_types_index_type_id_pkey",       0       ]
 [ "index_types_index_type_name_unique",        0,      
"index_types_index_type_name_unique",   1       ]
+[ "key_types_key_type_id_pkey",        0,      "key_types_key_type_id_pkey",   
0       ]
+[ "key_types_key_type_name_unique",    0,      
"key_types_key_type_name_unique",       1       ]
+[ "keywords_keyword_pkey",     0,      "keywords_keyword_pkey",        0       
]
 [ "privilege_codes_privilege_code_id_pkey",    0,      
"privilege_codes_privilege_code_id_pkey",       0       ]
 [ "privilege_codes_privilege_code_name_unique",        0,      
"privilege_codes_privilege_code_name_unique",   1       ]
+[ "spatial_ref_sys_srid_pkey", 0,      "spatial_ref_sys_srid_pkey",    0       
]
+[ "table_types_table_type_id_pkey",    0,      
"table_types_table_type_id_pkey",       0       ]
+[ "table_types_table_type_name_unique",        0,      
"table_types_table_type_name_unique",   1       ]
 [ "unique_key",        0,      "unique_key",   1       ]
-[ "allnewtriples_subject_idx", 0,      NULL,   NULL    ]
-[ "allnewtriples_predicate_idx",       0,      NULL,   NULL    ]
-[ "allnewtriples_object_idx",  0,      NULL,   NULL    ]
 #SELECT idxs.name, idxs."type", keys.name, keys."type" 
 #FROM idxs JOIN keys on idxs.name = keys.name;
 % sys.idxs,    sys.idxs,       sys.keys,       sys.keys # table_name
@@ -90,20 +90,20 @@ stdout of test 'keys` in directory 'sql/
 [ "comments_id_pkey",  0,      "comments_id_pkey",     0       ]
 [ "dependency_types_dependency_type_id_pkey",  0,      
"dependency_types_dependency_type_id_pkey",     0       ]
 [ "dependency_types_dependency_type_name_unique",      0,      
"dependency_types_dependency_type_name_unique", 1       ]
-[ "spatial_ref_sys_srid_pkey", 0,      "spatial_ref_sys_srid_pkey",    0       
]
-[ "keywords_keyword_pkey",     0,      "keywords_keyword_pkey",        0       
]
-[ "table_types_table_type_id_pkey",    0,      
"table_types_table_type_id_pkey",       0       ]
-[ "table_types_table_type_name_unique",        0,      
"table_types_table_type_name_unique",   1       ]
+[ "function_languages_language_id_pkey",       0,      
"function_languages_language_id_pkey",  0       ]
+[ "function_languages_language_name_unique",   0,      
"function_languages_language_name_unique",      1       ]
 [ "function_types_function_type_id_pkey",      0,      
"function_types_function_type_id_pkey", 0       ]
 [ "function_types_function_type_name_unique",  0,      
"function_types_function_type_name_unique",     1       ]
-[ "function_languages_language_id_pkey",       0,      
"function_languages_language_id_pkey",  0       ]
-[ "function_languages_language_name_unique",   0,      
"function_languages_language_name_unique",      1       ]
+[ "index_types_index_type_id_pkey",    0,      
"index_types_index_type_id_pkey",       0       ]
+[ "index_types_index_type_name_unique",        0,      
"index_types_index_type_name_unique",   1       ]
 [ "key_types_key_type_id_pkey",        0,      "key_types_key_type_id_pkey",   
0       ]
 [ "key_types_key_type_name_unique",    0,      
"key_types_key_type_name_unique",       1       ]
-[ "index_types_index_type_id_pkey",    0,      
"index_types_index_type_id_pkey",       0       ]
-[ "index_types_index_type_name_unique",        0,      
"index_types_index_type_name_unique",   1       ]
+[ "keywords_keyword_pkey",     0,      "keywords_keyword_pkey",        0       
]
 [ "privilege_codes_privilege_code_id_pkey",    0,      
"privilege_codes_privilege_code_id_pkey",       0       ]
 [ "privilege_codes_privilege_code_name_unique",        0,      
"privilege_codes_privilege_code_name_unique",   1       ]
+[ "spatial_ref_sys_srid_pkey", 0,      "spatial_ref_sys_srid_pkey",    0       
]
+[ "table_types_table_type_id_pkey",    0,      
"table_types_table_type_id_pkey",       0       ]
+[ "table_types_table_type_name_unique",        0,      
"table_types_table_type_name_unique",   1       ]
 [ "unique_key",        0,      "unique_key",   1       ]
 #create table dummyme (a int primary key, b int);
 #insert into dummyme values (1,1), (2,1), (3,1);
diff --git a/sql/test/Tests/keys.test b/sql/test/Tests/keys.test
--- a/sql/test/Tests/keys.test
+++ b/sql/test/Tests/keys.test
@@ -18,17 +18,172 @@ CREATE INDEX allnewtriples_object_idx ON
 query TITI rowsort
 SELECT idxs.name, idxs."type", keys.name, keys."type"
 FROM sys.idxs LEFT JOIN sys.keys on idxs.name = keys.name
+ORDER BY idxs.name, keys.name
 ----
-84 values hashing to aca252ae38ab8879e6e119df7736fb5e
+allnewtriples_object_idx
+0
+NULL
+NULL
+allnewtriples_predicate_idx
+0
+NULL
+NULL
+allnewtriples_subject_idx
+0
+NULL
+NULL
+comments_id_pkey
+0
+comments_id_pkey
+0
+dependency_types_dependency_type_id_pkey
+0
+dependency_types_dependency_type_id_pkey
+0
+dependency_types_dependency_type_name_unique
+0
+dependency_types_dependency_type_name_unique
+1
+function_languages_language_id_pkey
+0
+function_languages_language_id_pkey
+0
+function_languages_language_name_unique
+0
+function_languages_language_name_unique
+1
+function_types_function_type_id_pkey
+0
+function_types_function_type_id_pkey
+0
+function_types_function_type_name_unique
+0
+function_types_function_type_name_unique
+1
+index_types_index_type_id_pkey
+0
+index_types_index_type_id_pkey
+0
+index_types_index_type_name_unique
+0
+index_types_index_type_name_unique
+1
+key_types_key_type_id_pkey
+0
+key_types_key_type_id_pkey
+0
+key_types_key_type_name_unique
+0
+key_types_key_type_name_unique
+1
+keywords_keyword_pkey
+0
+keywords_keyword_pkey
+0
+privilege_codes_privilege_code_id_pkey
+0
+privilege_codes_privilege_code_id_pkey
+0
+privilege_codes_privilege_code_name_unique
+0
+privilege_codes_privilege_code_name_unique
+1
+spatial_ref_sys_srid_pkey
+0
+spatial_ref_sys_srid_pkey
+0
+table_types_table_type_id_pkey
+0
+table_types_table_type_id_pkey
+0
+table_types_table_type_name_unique
+0
+table_types_table_type_name_unique
+1
+unique_key
+0
+unique_key
+1
 
 query TITI rowsort
 SELECT idxs.name, idxs."type", keys.name, keys."type"
 FROM sys.idxs JOIN sys.keys on idxs.name = keys.name
+ORDER BY idxs.name, keys.name
 ----
-72 values hashing to 605c876e5adbcc987c4a0294b82e9da6
+comments_id_pkey
+0
+comments_id_pkey
+0
+dependency_types_dependency_type_id_pkey
+0
+dependency_types_dependency_type_id_pkey
+0
+dependency_types_dependency_type_name_unique
+0
+dependency_types_dependency_type_name_unique
+1
+function_languages_language_id_pkey
+0
+function_languages_language_id_pkey
+0
+function_languages_language_name_unique
+0
+function_languages_language_name_unique
+1
+function_types_function_type_id_pkey
+0
+function_types_function_type_id_pkey
+0
+function_types_function_type_name_unique
+0
+function_types_function_type_name_unique
+1
+index_types_index_type_id_pkey
+0
+index_types_index_type_id_pkey
+0
+index_types_index_type_name_unique
+0
+index_types_index_type_name_unique
+1
+key_types_key_type_id_pkey
+0
+key_types_key_type_id_pkey
+0
+key_types_key_type_name_unique
+0
+key_types_key_type_name_unique
+1
+keywords_keyword_pkey
+0
+keywords_keyword_pkey
+0
+privilege_codes_privilege_code_id_pkey
+0
+privilege_codes_privilege_code_id_pkey
+0
+privilege_codes_privilege_code_name_unique
+0
+privilege_codes_privilege_code_name_unique
+1
+spatial_ref_sys_srid_pkey
+0
+spatial_ref_sys_srid_pkey
+0
+table_types_table_type_id_pkey
+0
+table_types_table_type_id_pkey
+0
+table_types_table_type_name_unique
+0
+table_types_table_type_name_unique
+1
+unique_key
+0
+unique_key
+1
 
 statement ok
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to