summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-02-17 07:12:31 +0300
committerunknown <sergefp@mysql.com>2005-02-17 07:12:31 +0300
commitc082848897de3421824d591ff9f8484c5a8d38c5 (patch)
treef15d762facb44f5fe78dbd368a3b7421d3bcb03d
parent968e06a8040f87527ca54035b4e07ee69eda6083 (diff)
downloadmariadb-git-c082848897de3421824d591ff9f8484c5a8d38c5.tar.gz
A "fix" for problem discovered in BUG#8510: remove ONLY_FULL_GROUP_BY mode from ANSI mode, as currently
ONLY_FULL_GROUP_BY mode is overly restrictive. mysql-test/r/ansi.result: A "fix" for problem discovered in BUG#8510: remove ONLY_FULL_GROUP_BY mode from ANSI mode. mysql-test/t/ansi.test: A "fix" for problem discovered in BUG#8510: remove ONLY_FULL_GROUP_BY mode from ANSI mode. sql/set_var.cc: A "fix" for problem discovered in BUG#8510: remove ONLY_FULL_GROUP_BY mode from ANSI 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 |