Changeset: 2737878355ca for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2737878355ca
Modified Files:
        clients/Tests/SQL-dump.stable.out.int128
        sql/common/sql_types.c
        sql/server/rel_updates.c
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
        
sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
        sql/test/VOC/Tests/median.Bug-3096.stable.out
        sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out
        sql/test/pg_regress/Tests/date.stable.out
Branch: Jul2015
Log Message:

use int for date difference, fixes bug 3940


diffs (199 lines):

diff --git a/clients/Tests/SQL-dump.stable.out.int128 
b/clients/Tests/SQL-dump.stable.out.int128
--- a/clients/Tests/SQL-dump.stable.out.int128
+++ b/clients/Tests/SQL-dump.stable.out.int128
@@ -4711,7 +4711,7 @@ 4958      1031    "res_0" "timetz"        7       0       
0       0
 4959   1032    "res_0" "timestamptz"   7       0       0       0
 4960   1033    "res_0" "time"  7       0       0       0
 4961   1034    "res_0" "timestamp"     7       0       0       0
-4962   1035    "res_0" "month_interval"        32      0       0       0
+4962   1035    "res_0" "int"   32      0       0       0
 4963   1035    "arg_1" "date"  0       0       1       1
 4964   1035    "arg_2" "date"  0       0       1       2
 4965   1036    "res_0" "sec_interval"  13      0       0       0
diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -1531,7 +1531,7 @@ sqltypeinit( sql_allocator *sa)
        sql_create_func(sa, "localtime", "sql", "current_time", NULL, NULL, 
TME, SCALE_NONE);
        sql_create_func(sa, "localtimestamp", "sql", "current_timestamp", NULL, 
NULL, TMESTAMP, SCALE_NONE);
 
-       sql_create_func(sa, "sql_sub", "mtime", "diff", DTE, DTE, MONINT, 
SCALE_FIX);
+       sql_create_func(sa, "sql_sub", "mtime", "diff", DTE, DTE, INT, 
SCALE_FIX);
        sql_create_func(sa, "sql_sub", "mtime", "diff", TMETZ, TMETZ, SECINT, 
SCALE_NONE);
        sql_create_func(sa, "sql_sub", "mtime", "diff", TME, TME, SECINT, 
SCALE_FIX);
        sql_create_func(sa, "sql_sub", "mtime", "diff", TMESTAMPTZ, TMESTAMPTZ, 
SECINT, SCALE_NONE);
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -1287,7 +1287,6 @@ copyfrom(mvc *sql, dlist *qname, dlist *
                                        "COPY INTO from file(s) requires 
database administrator rights, "
                                        "use 'COPY INTO \"%s\" FROM STDIN' 
instead", tname);
 
-
                for (; n; n = n->next) {
                        char *fname = n->data.sval;
                        sql_rel *nrel;
@@ -1317,7 +1316,7 @@ copyfrom(mvc *sql, dlist *qname, dlist *
                for (n = headers->h; n; n = n->next) {
                        dnode *dn = n->data.lval->h;
                        char *cname = dn->data.sval;
-                       sql_exp *e;
+                       sql_exp *e, *ne;
 
                        if (!list_find_name(collist, cname)) 
                                continue;
@@ -1339,14 +1338,16 @@ copyfrom(mvc *sql, dlist *qname, dlist *
                                        return sql_error(sql, 02, "COPY INTO: 
'%s' missing for type %s", fname, cs->type.type->sqlname);
                                append(args, e);
                                append(args, exp_atom_clob(sql->sa, format));
-                               e = exp_op(sql->sa, args, f);
-                               append(nexps, e);
+                               ne = exp_op(sql->sa, args, f);
+                               exp_setname(sql->sa, ne, exp_relname(e), 
exp_name(e));
+                               append(nexps, ne);
                        } else {
                                append(nexps, e);
                        }
                        m = m->next;
                }
                rel = rel_project(sql->sa, rel, nexps);
+               reorder = 0;
        }
        
        if (!rel)
diff --git 
a/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out 
b/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
--- a/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
+++ b/sql/test/BugDay_2005-11-09_2.9.3/Tests/date_functions.SF-967145.stable.out
@@ -27,13 +27,13 @@ Ready.
 #select current_date - current_date;
 % .L # table_name
 % sql_sub_current_date # name
-% month_interval # type
+% int # type
 % 1 # length
 [ 0    ]
 #select current_date() - current_date();
 % .L # table_name
 % sql_sub_current_date # name
-% month_interval # type
+% int # type
 % 1 # length
 [ 0    ]
 
diff --git 
a/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
 
b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
--- 
a/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
+++ 
b/sql/test/BugTracker-2016/Tests/date_calculation_and_comparison_wrong_results.Bug-3940.stable.out
@@ -71,7 +71,7 @@ Ready.
 #SELECT (dat2-dat1), (dat2-dat1) < 10 FROM foo;
 % sys.L1,      sys.L1 # table_name
 % L1,  <_sql_sub_dat2 # name
-% month_interval,      boolean # type
+% int, boolean # type
 % 2,   5 # length
 [ 1,   true    ]
 [ 0,   true    ]
diff --git a/sql/test/VOC/Tests/median.Bug-3096.stable.out 
b/sql/test/VOC/Tests/median.Bug-3096.stable.out
--- a/sql/test/VOC/Tests/median.Bug-3096.stable.out
+++ b/sql/test/VOC/Tests/median.Bug-3096.stable.out
@@ -42,13 +42,13 @@ Ready.
 #select median(departure_date) - min(departure_date) from voyages;
 % sys.L2 # table_name
 % sql_sub_L1 # name
-% month_interval # type
+% int # type
 % 11 # length
 [ NULL ]
 #select max(departure_date) - min(departure_date) from voyages;
 % sys.L2 # table_name
 % sql_sub_L1 # name
-% month_interval # type
+% int # type
 % 11 # length
 [ NULL ]
 #drop table voyages;
diff --git a/sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out 
b/sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out
--- a/sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out
+++ b/sql/test/bugs/Tests/default_with_cast.SF-1334486.stable.out
@@ -22,7 +22,7 @@ Ready.
 #select cast(now() as date) - d from t;
 % .L1 # table_name
 % current_timestamp # name
-% month_interval # type
+% int # type
 % 1 # length
 [ 0    ]
 
diff --git a/sql/test/pg_regress/Tests/date.stable.out 
b/sql/test/pg_regress/Tests/date.stable.out
--- a/sql/test/pg_regress/Tests/date.stable.out
+++ b/sql/test/pg_regress/Tests/date.stable.out
@@ -653,7 +653,7 @@ Ready.
 #SELECT f1, sql_sub(f1, cast('2001-12-12' as date)) FROM DATE_TBL;
 % sys.date_tbl,        sys.L1 # table_name
 % f1,  sql_sub_f1 # name
-% date,        month_interval # type
+% date,        int # type
 % 10,  6 # length
 [ 1957-04-09,  -16318  ]
 [ 1957-06-13,  -16253  ]
@@ -674,7 +674,7 @@ Ready.
 #SELECT f1, sql_sub(cast('2001-12-12' as date), f1) FROM DATE_TBL;
 % sys.date_tbl,        .L1 # table_name
 % f1,  sql_sub_single_value # name
-% date,        month_interval # type
+% date,        int # type
 % 10,  6 # length
 [ 1957-04-09,  16318   ]
 [ 1957-06-13,  16253   ]
@@ -1001,7 +1001,7 @@ Ready.
 #SELECT f1 - date '2000-01-01' AS "Days From 2K" FROM DATE_TBL;
 % sys.L # table_name
 % "Days From 2K" # name
-% month_interval # type
+% int # type
 % 6 # length
 [ -15607 ]
 [ -15542 ]
@@ -1022,37 +1022,37 @@ Ready.
 #SELECT sql_sub(current_date, 24*60*60.0) - current_date AS "One day";
 % .L # table_name
 % One day # name
-% month_interval # type
+% int # type
 % 2 # length
 [ -1 ]
 #SELECT current_date - sql_add(current_date, 24*60*60.0) AS "One day";
 % .L # table_name
 % One day # name
-% month_interval # type
+% int # type
 % 2 # length
 [ -1 ]
 #SELECT sql_sub(current_date, 24*60*60.0) - sql_add(current_date, 24*60*60.0) 
AS "Two days";
 % .L # table_name
 % Two days # name
-% month_interval # type
+% int # type
 % 2 # length
 [ -2 ]
 #SELECT sql_add(current_date, 24*60*60.0) - current_date AS "One day";
 % .L # table_name
 % One day # name
-% month_interval # type
+% int # type
 % 1 # length
 [ 1 ]
 #SELECT current_date - sql_sub(current_date, 24*60*60.0) AS "One day";
 % .L # table_name
 % One day # name
-% month_interval # type
+% int # type
 % 1 # length
 [ 1 ]
 #SELECT sql_add(current_date, 24*60*60.0) - sql_sub(current_date, 24*60*60.0) 
AS "Two days";
 % .L # table_name
 % Two days # name
-% month_interval # type
+% int # type
 % 1 # length
 [ 2 ]
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to