Changeset: d54e3de83771 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d54e3de83771
Added Files:
sql/test/BugTracker-2014/Tests/missing_alias.Bug-3626.sql
sql/test/BugTracker-2014/Tests/missing_alias.Bug-3626.stable.err
sql/test/BugTracker-2014/Tests/missing_alias.Bug-3626.stable.out
Modified Files:
sql/backends/monet5/generator/Tests/generator03.stable.out
sql/benchmarks/nobench/Tests/nobench.stable.out
sql/server/rel_select.c
sql/test/ADT2006/Tests/bram.stable.out
sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
sql/test/BugDay_2005-10-06_2.9.3/Tests/multiple_select_cast.SF-938419.stable.out
sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_bigint_to_int.SF-1211903.stable.out
sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
sql/test/BugDay_2005-12-19_2.9.3/Tests/timestamp_fraction.SF-1357342.stable.out
sql/test/BugTracker-2008/Tests/decimal_cast_in_view.SF-2075223.stable.out
sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.stable.out
sql/test/BugTracker-2011/Tests/Multiplication_and_cast.Bug-2923.stable.out
sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
sql/test/BugTracker-2013/Tests/bogus_aggregation_casts.Bug-3342.stable.out
sql/test/BugTracker-2013/Tests/decimal-cast.Bug-3310.stable.out
sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
sql/test/BugTracker-2014/Tests/All
sql/test/BugTracker/Tests/case_in_aggr_bug.SF-1506545.stable.out
sql/test/BugTracker/Tests/cast_interval2time.SF-1488247.stable.out
sql/test/BugTracker/Tests/convert_dec2varchar.SF-1774312.stable.out
sql/test/BugTracker/Tests/crash_on_cast.SF-1357271.stable.out
sql/test/VOC/Tests/VOC.stable.out
sql/test/bugs/Tests/aggr_single_value.stable.out
sql/test/bugs/Tests/case_substring.stable.out
sql/test/bugs/Tests/cast_bool2int-bug-sf-1000576.stable.out
sql/test/bugs/Tests/cast_bool2int-bug-sf-951800.stable.out
sql/test/bugs/Tests/cast_varchar2int-bug-sf-964165.stable.out
sql/test/bugs/Tests/float2dec.stable.out
sql/test/bugs/Tests/float_arith_cast2int-bug-sf-949255.stable.out
sql/test/bugs/Tests/interval_convert_bugs-sf-1274077-1274085.stable.out
sql/test/bugs/Tests/timestamp_comparison-bug-sf-1158581.stable.out
sql/test/json/Tests/coercions.stable.out
sql/test/snodgrass/Tests/cast_select.stable.out
Branch: Oct2014
Log Message:
fixed bug 3626 by adding an extra alias to cast expressions
diffs (truncated from 839 to 300 lines):
diff --git a/sql/backends/monet5/generator/Tests/generator03.stable.out
b/sql/backends/monet5/generator/Tests/generator03.stable.out
--- a/sql/backends/monet5/generator/Tests/generator03.stable.out
+++ b/sql/backends/monet5/generator/Tests/generator03.stable.out
@@ -30,9 +30,9 @@ Ready.
% timestamp # type
% 26 # length
[ 2008-03-01 00:00:00.000000 ]
-#select cast( '10' as interval second);
-% .L # table_name
-% single_value # name
+#select cast( '10' as interval hour);
+% .L1 # table_name
+% L1 # name
% sec_interval # type
% 0 # length
[ 36000.000 ]
diff --git a/sql/benchmarks/nobench/Tests/nobench.stable.out
b/sql/benchmarks/nobench/Tests/nobench.stable.out
--- a/sql/benchmarks/nobench/Tests/nobench.stable.out
+++ b/sql/benchmarks/nobench/Tests/nobench.stable.out
@@ -175,8 +175,8 @@ Ready.
[ 0 ]
[ 6 ]
#select cast(json.text(json.filter(js,'num')) as integer) from bench10;
-% sys.L # table_name
-% text_filter_js # name
+% sys.L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 9 ]
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -4243,9 +4243,11 @@ rel_cast(mvc *sql, sql_rel **rel, symbol
e = exp_binop(sql->sa, e, exp_atom_int(sql->sa,
tpe->digits), c);
}
}
+ if (e)
+ e = rel_check_type(sql, tpe, e, type_cast);
if (e)
- return rel_check_type(sql, tpe, e, type_cast);
- return NULL;
+ exp_label(sql->sa, e, ++sql->label);
+ return e;
}
static sql_exp *
diff --git a/sql/test/ADT2006/Tests/bram.stable.out
b/sql/test/ADT2006/Tests/bram.stable.out
--- a/sql/test/ADT2006/Tests/bram.stable.out
+++ b/sql/test/ADT2006/Tests/bram.stable.out
@@ -472,9 +472,9 @@ Ready.
# length is not NULL and length like '%\'' and hair like '%blonde%')
#UNION ALL
#(select name, (12*cast(substring(length from 0 for (position('\'' in length)
- 1)) AS integer)
-# + cast(substring(length from (position('\'' in length) + 1) for
(position('"' in length) + 1)) AS integer)) as height from victim v
-% .L6, .L6 # table_name
-% L1, average_height # name
+# + cast(substring(length from (position('\'' in length) + 1) for
(position('"' in length) - position('\'' in length) - 1)) AS integer)) as
height from victim v
+% .L24, .L24 # table_name
+% L4, average_height # name
% char, char # type
% 6, 4 # length
[ "blonde", "5'7\"" ]
diff --git
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
---
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
+++
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/cast_to_interval.SF-1019079.stable.out
@@ -15,8 +15,8 @@ Ready.
#select cast('0' as interval year);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% month_interval # type
% 0 # length
[ 0 ]
diff --git
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/multiple_select_cast.SF-938419.stable.out
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/multiple_select_cast.SF-938419.stable.out
---
a/sql/test/BugDay_2005-10-06_2.9.3/Tests/multiple_select_cast.SF-938419.stable.out
+++
b/sql/test/BugDay_2005-10-06_2.9.3/Tests/multiple_select_cast.SF-938419.stable.out
@@ -15,14 +15,14 @@ Ready.
#select cast(0 as integer);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 0 ]
#select cast(0 as integer);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 0 ]
diff --git
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_bigint_to_int.SF-1211903.stable.out
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_bigint_to_int.SF-1211903.stable.out
---
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_bigint_to_int.SF-1211903.stable.out
+++
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_bigint_to_int.SF-1211903.stable.out
@@ -15,20 +15,20 @@ Ready.
#select cast(1117422000 as integer);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 10 # length
[ 1117422000 ]
#select cast('1117422000' as integer);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 10 # length
[ 1117422000 ]
#select cast(cast(1117422000 as bigint) as integer);
-% .L # table_name
-% single_value # name
+% .L2 # table_name
+% L2 # name
% int # type
% 10 # length
[ 1117422000 ]
diff --git
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
--- a/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
+++ b/sql/test/BugDay_2005-12-19_2.9.3/Tests/cast_interval.SF.1280682.stable.out
@@ -15,14 +15,14 @@ Ready.
#select cast( 1 as interval year );
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% month_interval # type
% 0 # length
[ 12 ]
#select cast( 1 as interval day );
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% sec_interval # type
% 0 # length
[ 86400.000 ]
diff --git
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/timestamp_fraction.SF-1357342.stable.out
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/timestamp_fraction.SF-1357342.stable.out
---
a/sql/test/BugDay_2005-12-19_2.9.3/Tests/timestamp_fraction.SF-1357342.stable.out
+++
b/sql/test/BugDay_2005-12-19_2.9.3/Tests/timestamp_fraction.SF-1357342.stable.out
@@ -30,8 +30,8 @@ Ready.
# length(cast(t2 as varchar(200))),
# length(cast(t3 as varchar(200)))
#from t;
-% sys.L1, sys.L2, sys.L2 # table_name
-% L1, L2, length_t3 # name
+% sys.L2, sys.L4, sys.L5 # table_name
+% L2, L4, length_t3 # name
% int, int, int # type
% 2, 2, 2 # length
[ 26, 19, 23 ]
diff --git
a/sql/test/BugTracker-2008/Tests/decimal_cast_in_view.SF-2075223.stable.out
b/sql/test/BugTracker-2008/Tests/decimal_cast_in_view.SF-2075223.stable.out
--- a/sql/test/BugTracker-2008/Tests/decimal_cast_in_view.SF-2075223.stable.out
+++ b/sql/test/BugTracker-2008/Tests/decimal_cast_in_view.SF-2075223.stable.out
@@ -30,8 +30,8 @@ Ready.
% 10 # length
[ " 54." ]
#select CAST (a as NUMERIC (5, 2)) from A;
-% sys.a # table_name
-% a # name
+% sys.L1 # table_name
+% L1 # name
% decimal # type
% 7 # length
[ 54.00 ]
diff --git a/sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.stable.out
b/sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.stable.out
--- a/sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.stable.out
+++ b/sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.stable.out
@@ -92,8 +92,8 @@ Ready.
#and extract(month from t1.opr_date) = t2.m
#and t1.svalue = t2.svalue
#order by t1.opr_hr;
-% .t1, .t1, .t1, .L2 # table_name
-% opr_date, opr_hr, svalue, L2 # name
+% .t1, .t1, .t1, .L4 # table_name
+% opr_date, opr_hr, svalue, L4 # name
% date, int, varchar, double # type
% 10, 2, 3, 24 # length
[ 2009-04-01, 1, "OFF", -2.5 ]
@@ -115,8 +115,8 @@ Ready.
#and extract(month from t1.opr_date) = t2.m
#and t1.svalue = t2.svalue
#order by t1.opr_hr;
-% sys.t1, sys.t1, sys.t1, sys.L2 # table_name
-% opr_date, opr_hr, svalue, L2 # name
+% sys.t1, sys.t1, sys.t1, sys.L4 # table_name
+% opr_date, opr_hr, svalue, L4 # name
% date, int, varchar, double # type
% 10, 2, 3, 24 # length
[ 2009-04-01, 1, "OFF", -2.5 ]
diff --git
a/sql/test/BugTracker-2011/Tests/Multiplication_and_cast.Bug-2923.stable.out
b/sql/test/BugTracker-2011/Tests/Multiplication_and_cast.Bug-2923.stable.out
--- a/sql/test/BugTracker-2011/Tests/Multiplication_and_cast.Bug-2923.stable.out
+++ b/sql/test/BugTracker-2011/Tests/Multiplication_and_cast.Bug-2923.stable.out
@@ -27,8 +27,8 @@ Ready.
#insert into test234 (t) values (-1.21);
[ 1 ]
#select cast((t * 100) as integer) from test234;
-% sys.L # table_name
-% sql_mul_t # name
+% sys.L1 # table_name
+% L1 # name
% int # type
% 4 # length
[ -121 ]
diff --git
a/sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
b/sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
--- a/sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
+++ b/sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
@@ -50,8 +50,8 @@ Ready.
#insert into t3071 values ('42.42');
[ 1 ]
#select avg ( cast (s as double)) from t3071;
-% sys.L1 # table_name
-% L1 # name
+% sys.L2 # table_name
+% L2 # name
% double # type
% 24 # length
[ 42.42 ]
diff --git
a/sql/test/BugTracker-2013/Tests/bogus_aggregation_casts.Bug-3342.stable.out
b/sql/test/BugTracker-2013/Tests/bogus_aggregation_casts.Bug-3342.stable.out
--- a/sql/test/BugTracker-2013/Tests/bogus_aggregation_casts.Bug-3342.stable.out
+++ b/sql/test/BugTracker-2013/Tests/bogus_aggregation_casts.Bug-3342.stable.out
@@ -34,8 +34,8 @@ Ready.
#5|midnight linen almond tomato plum|Manufacturer#3|Brand#32|STANDARD POLISHED
TIN|15|SM PKG|905.00| wake carefully |
[ 5 ]
#select sys.median(cast (p_retailprice as double)) from part;
-% sys.L1 # table_name
-% L1 # name
+% sys.L2 # table_name
+% L2 # name
% double # type
% 24 # length
[ 903 ]
diff --git a/sql/test/BugTracker-2013/Tests/decimal-cast.Bug-3310.stable.out
b/sql/test/BugTracker-2013/Tests/decimal-cast.Bug-3310.stable.out
--- a/sql/test/BugTracker-2013/Tests/decimal-cast.Bug-3310.stable.out
+++ b/sql/test/BugTracker-2013/Tests/decimal-cast.Bug-3310.stable.out
@@ -49,26 +49,26 @@ Ready.
# 11:28:36 >
#SELECT CAST(0.94 AS INTEGER);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 1 ]
#SELECT CAST(0.95 AS INTEGER);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 1 ]
#SELECT CAST(0.49 AS INTEGER);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 0 ]
#SELECT CAST(0.50 AS INTEGER);
-% .L # table_name
-% single_value # name
+% .L1 # table_name
+% L1 # name
% int # type
% 1 # length
[ 1 ]
diff --git
a/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
b/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
--- a/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
+++ b/sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
@@ -50,8 +50,8 @@ Ready.
#2086 "idxs" 2000 NULL 0 true 0 false 0
[ 40 ]
#select sys.median(cast (id as double)) from tbls;
-% sys.L1 # table_name
-% L1 # name
+% sys.L2 # table_name
+% L2 # name
% double # type
% 24 # length
[ 5183 ]
diff --git a/sql/test/BugTracker-2014/Tests/All
b/sql/test/BugTracker-2014/Tests/All
--- a/sql/test/BugTracker-2014/Tests/All
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list