Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv30414/src/server
Modified Files:
sql_select.mx sql_statement.mx
Log Message:
for simple order by (single column) we now propagate this information
to the result table. (ie insert into x select * from y order by z;)
Index: sql_statement.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_statement.mx,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -d -r1.158 -r1.159
--- sql_statement.mx 28 Jan 2008 16:25:53 -0000 1.158
+++ sql_statement.mx 29 Jan 2008 23:27:05 -0000 1.159
@@ -2228,7 +2228,6 @@
case st_group:
case st_derive:
case st_group_ext:
- case st_mark:
case st_gen_group:
case st_order:
return tail_type(st->op1.stval);
@@ -2244,6 +2243,7 @@
} else if (st->op1.idxval->type == join_idx) {
return sql_bind_localtype("oid");
}
+ case st_mark:
case st_reorder:
return sql_bind_localtype("oid");
case st_table_clear:
@@ -2311,6 +2311,7 @@
case st_group:
case st_group_ext:
case st_order:
+ case st_mark:
return head_type(st->op1.stval);
case st_relselect:
case st_reljoin:
@@ -2319,7 +2320,6 @@
case st_list:
return head_type(st->op1.lval->h->data);
- case st_mark:
case st_temp:
case st_bat:
case st_idxbat:
Index: sql_select.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_select.mx,v
retrieving revision 1.216
retrieving revision 1.217
diff -u -d -r1.216 -r1.217
--- sql_select.mx 27 Jan 2008 15:40:09 -0000 1.216
+++ sql_select.mx 29 Jan 2008 23:27:04 -0000 1.217
@@ -308,22 +308,13 @@
{
scope *scp = scope_open(NULL);
exp_kind ek = {type_value, card_relation, TRUE};
- stmt *s = sql_subquery(sql, scp, sq, ek);
+ stmt *n = NULL, *s = sql_subquery(sql, scp, sq, ek);
scp = scope_close(scp);
if (s && s->type == st_ordered) {
- list *l = create_stmt_list();
- node *n;
-
- for (n = s->op2.stval->op1.lval->h; n; n = n->next) {
- stmt *sc = stmt_dup(n->data);
-
- list_append(l,
stmt_reverse(stmt_order(stmt_reverse(stmt_join(stmt_mark(stmt_reverse(stmt_dup(s->op1.stval)),
0), sc, cmp_equal)
- ), 1))
- );
- }
+ n = sql_reorder(stmt_dup(s->op1.stval), stmt_dup(s->op2.stval));
stmt_destroy(s);
- s = stmt_list(l);
+ s = n;
}
return s;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins