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

Reply via email to