Changeset: 7be034cc1886 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7be034cc1886
Modified Files:
sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.sql
sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out
Branch: default
Log Message:
On some platforms we got error:
QUERY = select count(*), 1 from (
(select this_column from table_one)
intersect
(select this_column from table_two)
) as "existing"
union all
select count(*), 0 from (
(select this_column from table_one)
except
(select this_column from table_two)
) as "missing";
ERROR = !inputs not the same size.
Apparently the union detects different output signatures of the first and
second query.
This occurs in default branch on platforms:
mac-mini Cla-Dar-i64 (without assert propcheck)
lab05 GNU-Fed-i64 (without assert propcheck)
solaris Sol-Sol-i64
zonnestraal GNU-Sol-s32
win2012 Int-Win-i32
win2012 Mic-Win-i32
win2012 Mic-Win-i64
lab03 Int-Win-i32
lab03 Mic-Win-i32
But strangely not on:
mac-mini Cla-Dar-i64 (with assert propcheck)
lab05 GNU-Fed-i64 (with assert / propcheck / not_int128)
win2012 Int-Win-i64
lab03 Int-Win-i64
lab03 Mic-Win-i64
To get a stable output I added explicit cast to bigint for the count(*) column
in this query.
Once this works on default, we can repeat this patch on Dec2016 branch where it
occurs on platforms:
zonnestraal GNU-Sol-s32
win2012 Int-Win-i32
lab03 Int-Win-i32
lab03 Int-Win-i64
But strangely not on:
win2012 Int-Win-i64
diffs (46 lines):
diff --git a/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.sql
b/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.sql
--- a/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.sql
+++ b/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.sql
@@ -45,13 +45,13 @@ SELECT COUNT(*) AS count, (CASE WHEN t2.
GROUP BY new_column;
-select count(*), 1 from (
+select cast(count(*) as bigint) as count, 1 from (
(select this_column from table_one)
intersect
(select this_column from table_two)
) as "existing"
union all
-select count(*), 0 from (
+select cast(count(*) as bigint) as count, 0 from (
(select this_column from table_one)
except
(select this_column from table_two)
diff --git a/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out
b/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out
--- a/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out
+++ b/sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out
@@ -178,19 +178,19 @@ Ready.
% 1, 1 # length
[ 2, 1 ]
[ 3, 0 ]
-#select count(*), 1 from (
+#select cast(count(*) as bigint) as count, 1 from (
# (select this_column from table_one)
# intersect
# (select this_column from table_two)
#) as "existing"
#union all
-#select count(*), 0 from (
+#select cast(count(*) as bigint) as count, 0 from (
# (select this_column from table_one)
# except
# (select this_column from table_two)
#) as "missing";
-% .L34, .L34 # table_name
-% L11, L14 # name
+% .L36, .L36 # table_name
+% count, L15 # name
% bigint, tinyint # type
% 1, 1 # length
[ 2, 1 ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list