summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/ansi.result4
-rw-r--r--mysql-test/t/ansi.test3
-rw-r--r--sql/set_var.cc8
3 files changed, 11 insertions, 4 deletions
diff --git a/mysql-test/r/ansi.result b/mysql-test/r/ansi.result
index 0b86634f67b..212d28f918b 100644
--- a/mysql-test/r/ansi.result
+++ b/mysql-test/r/ansi.result
@@ -6,7 +6,7 @@ NO_FIELD_OPTIONS,MYSQL40
set @@sql_mode="ANSI";
select @@sql_mode;
@@sql_mode
-REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI
+REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI
SELECT 'A' || 'B';
'A' || 'B'
AB
@@ -14,6 +14,6 @@ CREATE TABLE t1 (id INT, id2 int);
SELECT id,NULL,1,1.1,'a' FROM t1 GROUP BY id;
id NULL 1 1.1 a
SELECT id FROM t1 GROUP BY id2;
-ERROR 42000: 'test.t1.id' isn't in GROUP BY
+id
drop table t1;
SET @@SQL_MODE="";
diff --git a/mysql-test/t/ansi.test b/mysql-test/t/ansi.test
index faf20f1e57e..9d235df5b46 100644
--- a/mysql-test/t/ansi.test
+++ b/mysql-test/t/ansi.test
@@ -19,7 +19,8 @@ SELECT 'A' || 'B';
CREATE TABLE t1 (id INT, id2 int);
SELECT id,NULL,1,1.1,'a' FROM t1 GROUP BY id;
---error 1055
+#No --error 1055 error due to temporary fix for BUG#8510:
+#ONLY_FULL_GROUP_BY is overly restrictive, so remove it from ANSI mode.
SELECT id FROM t1 GROUP BY id2;
drop table t1;
diff --git a/sql/set_var.cc b/sql/set_var.cc
index ca7987d2636..605480cb72f 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -3089,8 +3089,14 @@ ulong fix_sql_mode(ulong sql_mode)
*/
if (sql_mode & MODE_ANSI)
+ {
sql_mode|= (MODE_REAL_AS_FLOAT | MODE_PIPES_AS_CONCAT | MODE_ANSI_QUOTES |
- MODE_IGNORE_SPACE | MODE_ONLY_FULL_GROUP_BY);
+ MODE_IGNORE_SPACE);
+ /*
+ MODE_ONLY_FULL_GROUP_BY removed from ANSI mode because it is currently
+ overly restrictive (see BUG#8510).
+ */
+ }
if (sql_mode & MODE_ORACLE)
sql_mode|= (MODE_PIPES_AS_CONCAT | MODE_ANSI_QUOTES |
MODE_IGNORE_SPACE |