Changeset: d71ecfd8adc7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d71ecfd8adc7
Modified Files:
        monetdb5/mal/mal_interpreter.mx
        sql/backends/monet5/sql_gencode.c
Branch: default
Log Message:

merge from Dec2011


diffs (truncated from 524 to 300 lines):

diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -1609,7 +1609,7 @@ doFile(Mapi mid, const char *file)
        FILE *fp;
        char *buf = NULL;
        size_t length;
-       MapiHdl hdl = NULL;
+       MapiHdl hdl = mapi_get_active(mid);
        MapiMsg rc = MOK;
        int bufsize = 0;
        int first = 1;          /* first line processing */
diff --git a/java/tests/Test_PStimezone.java b/java/tests/Test_PStimezone.java
--- a/java/tests/Test_PStimezone.java
+++ b/java/tests/Test_PStimezone.java
@@ -60,7 +60,9 @@ public class Test_PStimezone {
 
                        // make sure this test is reproducable regardless 
timezone
                        // setting, by overriding the VM's default
-                       
TimeZone.setDefault(TimeZone.getTimeZone("Africa/Windhoek"));
+                       // we have to make sure that one doesn't have daylight
+                       // savings corrections
+                       TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
 
                        SimpleDateFormat tsz =
                                new SimpleDateFormat("yyyy-MM-dd 
HH:mm:ss.SSSZ");
@@ -146,7 +148,7 @@ public class Test_PStimezone {
                                                rs.getTime("t", c) + "          
    \t" +
                                                rs.getTime("tz", c) + "      ");
 
-                               c.setTimeZone(TimeZone.getTimeZone("UTC"));
+                               
c.setTimeZone(TimeZone.getTimeZone("Africa/Windhoek"));
                                System.out.println(c.getTimeZone().getID() + 
":\n\t" +
                                                rs.getTimestamp("ts", c) + "    
  \t" +
                                                rs.getTimestamp("tsz", c) + "   
        \t" +
diff --git a/monetdb5/mal/mal_interpreter.mx b/monetdb5/mal/mal_interpreter.mx
--- a/monetdb5/mal/mal_interpreter.mx
+++ b/monetdb5/mal/mal_interpreter.mx
@@ -758,7 +758,6 @@ DFLOWadmission(lng argclaim, lng hotclai
        PARDEBUG
        mnstr_printf(GDKstdout, "#DFLOWadmit %3d thread %d pool " LLFMT " 
claims " LLFMT "," LLFMT "\n",
                                 memoryclaims, THRgettid(), memorypool, 
argclaim, hotclaim);
-       assert(memoryclaims >= 0);
        mal_unset_lock(mal_contextLock, "DFLOWdelay");
        return 0;
 }
diff --git a/monetdb5/modules/mal/pqueue.mx b/monetdb5/modules/mal/pqueue.mx
--- a/monetdb5/modules/mal/pqueue.mx
+++ b/monetdb5/modules/mal/pqueue.mx
@@ -935,18 +935,18 @@ pqueue_export str PQtopn2_@1@2(int *ret,
 str
 PQtopn2_@1@2(int *ret, int *aid, int *bid, wrd *N)
 {
-       BUN n, i,j;
+       BUN n, i,j, cnt;
        BAT *a, *b,*bn = NULL;
        if ((a=BATdescriptor(*aid)) == NULL || (b=BATdescriptor(*bid)) == NULL)
                throw(MAL, "pqueue.topN", RUNTIME_OBJECT_MISSING);
 
-       n = BATcount(a);
+       cnt = n = BATcount(a);
        if (*N != wrd_nil && *N >= 0 && *N <= (wrd) BUN_MAX && (BUN) *N < n)
                  n = (BUN) *N;
        bn = BATnew(TYPE_oid, TYPE_oid, n);
        for(i=0; i<n; ) {
                oid ov = * (oid *) Tloc(a, i);
-               for (j = i; j < n && * (oid *) Tloc(a, j) == ov; j++)
+               for (j = i; j < cnt && * (oid *) Tloc(a, j) == ov; j++)
                        ;
                if (j == i+1) {
                        BUNins(bn, Hloc(a,i), &ov, FALSE);
@@ -978,18 +978,18 @@ pqueue_export str PQutopn2_@1@2(int *ret
 str
 PQutopn2_@1@2(int *ret, int *aid, int *bid, wrd *N)
 {
-       BUN n, i,j;
+       BUN n, i,j, cnt;
        BAT *a, *b,*bn = NULL;
 
        if ((a=BATdescriptor(*aid)) == NULL || (b=BATdescriptor(*bid)) == NULL)
                throw(MAL, "pqueue.topN", RUNTIME_OBJECT_MISSING);
-       n = BATcount(a);
+       cnt = n = BATcount(a);
        if (*N != wrd_nil && *N >= 0 && *N <= (wrd) BUN_MAX && (BUN) *N < n)
                  n = (BUN) *N;
        bn = BATnew(TYPE_oid, TYPE_oid, n);
        for(i=0; i<n; ) {
                oid ov = * (oid *) Tloc(a, i);
-               for (j = i; j < n && * (oid *) Tloc(a, j) == ov; j++)
+               for (j = i; j < cnt && * (oid *) Tloc(a, j) == ov; j++)
                        ;
                if (j == i+1) {
                        BUNins(bn, Hloc(a,i), &ov, FALSE);
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -209,6 +209,12 @@ dump_cols(MalBlkPtr mb, list *l, InstrPt
                q = pushArgument(mb, q, c->nr);
        }
        q->retc = q->argc;
+       /* Lets make it a propper assignment */
+       for (i = 0, n = l->h; n; n = n->next, i++) {
+               stmt *c = n->data;
+
+               q = pushArgument(mb, q, c->nr);
+       }
        return q;
 }
 
@@ -227,6 +233,7 @@ table_func_create_result( MalBlkPtr mb, 
                        q = pushReturn(mb, q, newTmpVariable(mb, type));
                else
                        setVarType(mb,getArg(q,0), type);
+               setVarUDFtype(mb, getArg(q,i));
        }
        return q;
 }
@@ -2342,14 +2349,7 @@ monet5_create_table_function(ptr M, char
        (void)t;
        r = rel_optimizer(m, rel);
        s = rel_bin(m, r);
-/*
-       if (s && s->type == st_ordered) {
-               stmt *order = s->op1;
-               stmt *ns = s->op2;
 
-               s = sql_reorder(order, ns);
-       }
-*/
        if (s->type == st_list && s->nrcols == 0 && s->key) {
                /* row to columns */
                node *n;
diff --git a/sql/jdbc/tests/Tests/Test_PStimezone.stable.out 
b/sql/jdbc/tests/Tests/Test_PStimezone.stable.out
--- a/sql/jdbc/tests/Tests/Test_PStimezone.stable.out
+++ b/sql/jdbc/tests/Tests/Test_PStimezone.stable.out
@@ -23,10 +23,11 @@ Ready.
 # 15:11:19 >  java Test_PStimezone 
jdbc:monetdb://pictor:53368/database?user=monetdb&password=monetdb
 # 15:11:19 >  
 
+
 0. false       false
 1. empty call... failed :)
 2. inserting records...
-inserting (Africa/Windhoek) 1970-01-01 02:00:00.000+0200, 02:00:00.000+0200
+inserting (UTC) 1970-01-01 00:00:00.000+0000, 00:00:00.000+0000
 inserting with calendar timezone UTC
 inserting with calendar timezone America/Los_Angeles
 inserting with calendar timezone GMT+04:15
@@ -34,40 +35,41 @@ done
 3. closing PreparedStatement... passed :)
 4. selecting records... passed :)
 retrieved row (String):
-       1970-01-01 02:00:00.000000      1970-01-01 02:00:00.000000+02:00        
02:00:00                02:00:00+02:00
-default (Africa/Windhoek):
-       1970-01-01 02:00:00.000+0200    1970-01-01 02:00:00.000+0200            
02:00:00.000+0200       02:00:00.000+0200
+       1970-01-01 00:00:00.000000      1970-01-01 01:00:00.000000+01:00        
00:00:00                01:00:00+01:00
+default (UTC):
+       1970-01-01 00:00:00.000+0000    1970-01-01 00:00:00.000+0000            
00:00:00.000+0000       00:00:00.000+0000
 America/Los_Angeles:
-       1970-01-01 12:00:00.0           1970-01-01 02:00:00.0                   
12:00:00                02:00:00      
-UTC:
-       1970-01-01 04:00:00.0           1970-01-01 02:00:00.0                   
04:00:00                02:00:00      
+       1970-01-01 08:00:00.0           1970-01-01 00:00:00.0                   
08:00:00                00:00:00      
+Africa/Windhoek:
+       1969-12-31 22:00:00.0           1970-01-01 00:00:00.0                   
22:00:00                00:00:00      
 
 retrieved row (String):
-       1970-01-01 00:00:00.000000      1970-01-01 02:00:00.000000+02:00        
00:00:00                02:00:00+02:00
-default (Africa/Windhoek):
-       1970-01-01 00:00:00.000+0200    1970-01-01 02:00:00.000+0200            
00:00:00.000+0200       02:00:00.000+0200
+       1970-01-01 00:00:00.000000      1970-01-01 01:00:00.000000+01:00        
00:00:00                01:00:00+01:00
+default (UTC):
+       1970-01-01 00:00:00.000+0000    1970-01-01 00:00:00.000+0000            
00:00:00.000+0000       00:00:00.000+0000
 America/Los_Angeles:
-       1970-01-01 10:00:00.0           1970-01-01 02:00:00.0                   
10:00:00                02:00:00      
-UTC:
-       1970-01-01 02:00:00.0           1970-01-01 02:00:00.0                   
02:00:00                02:00:00      
+       1970-01-01 08:00:00.0           1970-01-01 00:00:00.0                   
08:00:00                00:00:00      
+Africa/Windhoek:
+       1969-12-31 22:00:00.0           1970-01-01 00:00:00.0                   
22:00:00                00:00:00      
 
 retrieved row (String):
-       1969-12-31 16:00:00.000000      1970-01-01 02:00:00.000000+02:00        
16:00:00                02:00:00+02:00
-default (Africa/Windhoek):
-       1969-12-31 16:00:00.000+0200    1970-01-01 02:00:00.000+0200            
16:00:00.000+0200       02:00:00.000+0200
+       1969-12-31 16:00:00.000000      1970-01-01 01:00:00.000000+01:00        
16:00:00                01:00:00+01:00
+default (UTC):
+       1969-12-31 16:00:00.000+0000    1970-01-01 00:00:00.000+0000            
16:00:00.000+0000       00:00:00.000+0000
 America/Los_Angeles:
-       1970-01-01 02:00:00.0           1970-01-01 02:00:00.0                   
02:00:00                02:00:00      
-UTC:
-       1969-12-31 18:00:00.0           1970-01-01 02:00:00.0                   
18:00:00                02:00:00      
+       1970-01-01 00:00:00.0           1970-01-01 00:00:00.0                   
00:00:00                00:00:00      
+Africa/Windhoek:
+       1969-12-31 14:00:00.0           1970-01-01 00:00:00.0                   
14:00:00                00:00:00      
 
 retrieved row (String):
-       1970-01-01 02:00:00.000000      1970-01-01 02:00:00.000000+02:00        
02:00:00                02:00:00+02:00
-default (Africa/Windhoek):
-       1970-01-01 02:00:00.000+0200    1970-01-01 02:00:00.000+0200            
02:00:00.000+0200       02:00:00.000+0200
+       1970-01-01 00:00:00.000000      1970-01-01 01:00:00.000000+01:00        
00:00:00                01:00:00+01:00
+default (UTC):
+       1970-01-01 00:00:00.000+0000    1970-01-01 00:00:00.000+0000            
00:00:00.000+0000       00:00:00.000+0000
 America/Los_Angeles:
-       1970-01-01 12:00:00.0           1970-01-01 02:00:00.0                   
12:00:00                02:00:00      
-UTC:
-       1970-01-01 04:00:00.0           1970-01-01 02:00:00.0                   
04:00:00                02:00:00      
+       1970-01-01 08:00:00.0           1970-01-01 00:00:00.0                   
08:00:00                00:00:00      
+Africa/Windhoek:
+       1969-12-31 22:00:00.0           1970-01-01 00:00:00.0                   
22:00:00                00:00:00      
+
 
 
 # 15:09:12 >  
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
@@ -2270,7 +2270,7 @@ exps_merge_rse( mvc *sql, list *l, list 
                                list_merge(exps, le->r, NULL);
                                list_merge(exps, re->r, NULL);
                                fnd = exp_in(sql->sa, le->l, exps, cmp_in);
-                       } else if (le->f && re->f && 
+                       } else if (le->f && re->f && /* merge ranges */
                                   le->flag == re->flag) {
                                sql_subfunc *min = sql_bind_func(sql->sa, 
sql->session->schema, "sql_min", exp_subtype(le->r), exp_subtype(re->r), 
F_FUNC);
                                sql_subfunc *max = sql_bind_func(sql->sa, 
sql->session->schema, "sql_max", exp_subtype(le->f), exp_subtype(re->f), 
F_FUNC);
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -611,16 +611,18 @@ create_col(sql_trans *tr, sql_column *c)
                /* alter ? */
                if (c->t->columns.set && (fc = c->t->columns.set->h->data) != 
NULL) {
                        sql_delta *d = fc->data;
-                       cnt = d->cnt; 
+                       cnt = d->cnt + 1; 
                }
-               if (cnt) {
+               if (cnt && fc != c) {
                        sql_delta *d = fc->data;
 
                        bat->bid = copyBat(d->bid, type, 0);
-                       bat->ibid = copyBat(d->ibid, type, d->ibase);
+                       if (d->ibid)
+                               bat->ibid = copyBat(d->ibid, type, d->ibase);
                        bat->ibase = d->ibase;
                        bat->cnt = d->cnt;
-                       bat->ubid = e_ubat(type);
+                       if (d->ubid)
+                               bat->ubid = e_ubat(type);
                } else {
                        BAT *b = bat_new(TYPE_void, type, c->t->sz);
                        if (!b) 
diff --git 
a/sql/test/BugTracker-2009/Tests/arithmetic-small-values-null.SF-2921310.sql 
b/sql/test/BugTracker-2009/Tests/arithmetic-small-values-null.SF-2921310.sql
--- a/sql/test/BugTracker-2009/Tests/arithmetic-small-values-null.SF-2921310.sql
+++ b/sql/test/BugTracker-2009/Tests/arithmetic-small-values-null.SF-2921310.sql
@@ -1,7 +1,7 @@
 -- http://bugs.monetdb.org/show_bug.cgi?id=2291
 
 -- yields NULL :/
-select (4.4054292 - 4.40572025343667)^2 + (52.0903881 - 52.091375762174)^2;
+select ((4.4054292 - 4.40572025343667)^2) + ((52.0903881 - 52.091375762174)^2);
 
 -- correct answer
 select cast((4.4054292 - 4.40572025343667)^2 as double) + cast((52.0903881 - 
52.091375762174)^2 as double);
diff --git a/sql/test/BugTracker-2011/Tests/All 
b/sql/test/BugTracker-2011/Tests/All
--- a/sql/test/BugTracker-2011/Tests/All
+++ b/sql/test/BugTracker-2011/Tests/All
@@ -57,3 +57,5 @@ interrupted-initialization.Bug-2875
 case-overflow.Bug-2239
 sqltables.Bug-2921
 Multiplication_and_cast.Bug-2923
+like_or.Bug-2924
+alter_table_add_column.Bug-2919
diff --git a/sql/test/BugTracker-2011/Tests/alter_table_add_column.Bug-2919.sql 
b/sql/test/BugTracker-2011/Tests/alter_table_add_column.Bug-2919.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/alter_table_add_column.Bug-2919.sql
@@ -0,0 +1,12 @@
+
+START TRANSACTION;
+CREATE TABLE a2919(b INTEGER);
+COMMIT;
+
+START TRANSACTION;
+ALTER TABLE a2919 ADD COLUMN c INTEGER;
+INSERT INTO a2919(b) VALUES(1);
+SELECT c FROM a2919;
+ROLLBACK;
+
+DROP TABLE a2919;
diff --git 
a/sql/test/BugTracker-2011/Tests/alter_table_add_column.Bug-2919.stable.err 
b/sql/test/BugTracker-2011/Tests/alter_table_add_column.Bug-2919.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/alter_table_add_column.Bug-2919.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'alter_table_add_column.Bug-2919` in directory 
'test/BugTracker-2011` itself:
+
+
+# 10:41:51 >  
+# 10:41:51 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"gdk_dbfarm=/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB" "--set" 
"mapi_open=true" "--set" "mapi_port=32715" "--set" "monet_prompt=" "--trace" 
"--forcemito" "--set" "mal_listing=2" "--dbname=mTests_test_BugTracker-2011" 
"--set" "mal_listing=0"
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to