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