Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
deacf8b3
Commit
deacf8b3
authored
Jan 11, 2008
by
mhansson@lamia.dupka
Browse files
Options
Browse Files
Download
Plain Diff
Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into lamia.dupka:/home/mhansson/my51-bug31797-pushee
parents
947715c2
481a9693
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
86 additions
and
1 deletion
+86
-1
mysql-test/r/group_by.result
mysql-test/r/group_by.result
+36
-0
mysql-test/t/group_by.test
mysql-test/t/group_by.test
+48
-0
sql/item.cc
sql/item.cc
+2
-1
No files found.
mysql-test/r/group_by.result
View file @
deacf8b3
...
...
@@ -1478,3 +1478,39 @@ NULL
1
2
DROP TABLE t1;
CREATE TABLE t1 ( a INT, b INT );
SELECT b c, (SELECT a FROM t1 WHERE b = c)
FROM t1;
c (SELECT a FROM t1 WHERE b = c)
SELECT b c, (SELECT a FROM t1 WHERE b = c)
FROM t1
HAVING b = 10;
c (SELECT a FROM t1 WHERE b = c)
SELECT MAX(b) c, (SELECT a FROM t1 WHERE b = c)
FROM t1
HAVING b = 10;
ERROR 42S22: Reference 'c' not supported (reference to group function)
SET @old_sql_mode = @@sql_mode;
SET @@sql_mode='ONLY_FULL_GROUP_BY';
SELECT b c, (SELECT a FROM t1 WHERE b = c)
FROM t1;
c (SELECT a FROM t1 WHERE b = c)
SELECT b c, (SELECT a FROM t1 WHERE b = c)
FROM t1
HAVING b = 10;
ERROR 42000: non-grouping field 'b' is used in HAVING clause
SELECT MAX(b) c, (SELECT a FROM t1 WHERE b = c)
FROM t1
HAVING b = 10;
ERROR 42S22: Reference 'c' not supported (reference to group function)
INSERT INTO t1 VALUES (1, 1);
SELECT b c, (SELECT a FROM t1 WHERE b = c)
FROM t1;
c (SELECT a FROM t1 WHERE b = c)
1 1
INSERT INTO t1 VALUES (2, 1);
SELECT b c, (SELECT a FROM t1 WHERE b = c)
FROM t1;
ERROR 21000: Subquery returns more than 1 row
DROP TABLE t1;
SET @@sql_mode = @old_sql_mode;
mysql-test/t/group_by.test
View file @
deacf8b3
...
...
@@ -946,3 +946,51 @@ EXPLAIN SELECT b from t2 GROUP BY b;
SELECT
b
from
t2
GROUP
BY
b
;
DROP
TABLE
t1
;
#
# Bug #31797: error while parsing subqueries -- WHERE is parsed as HAVING
#
CREATE
TABLE
t1
(
a
INT
,
b
INT
);
SELECT
b
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
;
SELECT
b
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
HAVING
b
=
10
;
--
error
ER_ILLEGAL_REFERENCE
SELECT
MAX
(
b
)
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
HAVING
b
=
10
;
SET
@
old_sql_mode
=
@@
sql_mode
;
SET
@@
sql_mode
=
'ONLY_FULL_GROUP_BY'
;
SELECT
b
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
;
--
error
ER_NON_GROUPING_FIELD_USED
SELECT
b
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
HAVING
b
=
10
;
--
error
ER_ILLEGAL_REFERENCE
SELECT
MAX
(
b
)
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
HAVING
b
=
10
;
INSERT
INTO
t1
VALUES
(
1
,
1
);
SELECT
b
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
;
INSERT
INTO
t1
VALUES
(
2
,
1
);
--
error
ER_SUBQUERY_NO_1_ROW
SELECT
b
c
,
(
SELECT
a
FROM
t1
WHERE
b
=
c
)
FROM
t1
;
DROP
TABLE
t1
;
SET
@@
sql_mode
=
@
old_sql_mode
;
sql/item.cc
View file @
deacf8b3
...
...
@@ -3408,7 +3408,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
resolve_ref_in_select_and_group()
thd current thread
ref column reference being resolved
select the s
ub-s
elect that ref is resolved against
select the select that ref is resolved against
DESCRIPTION
Resolve a column reference (usually inside a HAVING clause) against the
...
...
@@ -3479,6 +3479,7 @@ resolve_ref_in_select_and_group(THD *thd, Item_ident *ref, SELECT_LEX *select)
}
if
(
thd
->
variables
.
sql_mode
&
MODE_ONLY_FULL_GROUP_BY
&&
select
->
having_fix_field
&&
select_ref
!=
not_found_item
&&
!
group_by_ref
)
{
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment