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
376d67e5
Commit
376d67e5
authored
May 15, 2009
by
Sergey Glukhov
Browse files
Options
Browse Files
Download
Plain Diff
5.0-bugteam->5.1-bugteam merge
parents
5f3dc895
fc57b4cf
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
2 deletions
+39
-2
mysql-test/r/union.result
mysql-test/r/union.result
+13
-0
mysql-test/t/union.test
mysql-test/t/union.test
+12
-0
sql/sql_union.cc
sql/sql_union.cc
+14
-2
No files found.
mysql-test/r/union.result
View file @
376d67e5
...
@@ -1574,4 +1574,17 @@ SHOW FIELDS FROM t2;
...
@@ -1574,4 +1574,17 @@ SHOW FIELDS FROM t2;
Field Type Null Key Default Extra
Field Type Null Key Default Extra
d double(9,6) YES NULL
d double(9,6) YES NULL
DROP TABLE t1, t2;
DROP TABLE t1, t2;
CREATE TABLE t1(a INT);
EXPLAIN EXTENDED
SELECT a FROM t1
UNION
SELECT a FROM t1
ORDER BY a;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 system NULL NULL NULL NULL 0 0.00 const row not found
2 UNION t1 system NULL NULL NULL NULL 0 0.00 const row not found
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL NULL Using filesort
Warnings:
Note 1003 select '0' AS `a` from `test`.`t1` union select '0' AS `a` from `test`.`t1` order by `a`
DROP TABLE t1;
End of 5.0 tests
End of 5.0 tests
mysql-test/t/union.test
View file @
376d67e5
...
@@ -1089,4 +1089,16 @@ CREATE TABLE t2 AS SELECT d FROM t1 UNION SELECT d FROM t1;
...
@@ -1089,4 +1089,16 @@ CREATE TABLE t2 AS SELECT d FROM t1 UNION SELECT d FROM t1;
SHOW
FIELDS
FROM
t2
;
SHOW
FIELDS
FROM
t2
;
DROP
TABLE
t1
,
t2
;
DROP
TABLE
t1
,
t2
;
#
# Bug#43612 crash with explain extended, union, order by
#
CREATE
TABLE
t1
(
a
INT
);
EXPLAIN
EXTENDED
SELECT
a
FROM
t1
UNION
SELECT
a
FROM
t1
ORDER
BY
a
;
DROP
TABLE
t1
;
--
echo
End
of
5.0
tests
--
echo
End
of
5.0
tests
sql/sql_union.cc
View file @
376d67e5
...
@@ -653,10 +653,22 @@ bool st_select_lex_unit::cleanup()
...
@@ -653,10 +653,22 @@ bool st_select_lex_unit::cleanup()
join
->
tables
=
0
;
join
->
tables
=
0
;
}
}
error
|=
fake_select_lex
->
cleanup
();
error
|=
fake_select_lex
->
cleanup
();
if
(
fake_select_lex
->
order_list
.
elements
)
/*
There are two cases when we should clean order items:
1. UNION with SELECTs which all enclosed into braces
in this case global_parameters == fake_select_lex
2. UNION where last SELECT is not enclosed into braces
in this case global_parameters == 'last select'
So we should use global_parameters->order_list for
proper order list clean up.
Note: global_parameters and fake_select_lex are always
initialized for UNION
*/
DBUG_ASSERT
(
global_parameters
);
if
(
global_parameters
->
order_list
.
elements
)
{
{
ORDER
*
ord
;
ORDER
*
ord
;
for
(
ord
=
(
ORDER
*
)
fake_select_lex
->
order_list
.
first
;
ord
;
ord
=
ord
->
next
)
for
(
ord
=
(
ORDER
*
)
global_parameters
->
order_list
.
first
;
ord
;
ord
=
ord
->
next
)
(
*
ord
->
item
)
->
cleanup
();
(
*
ord
->
item
)
->
cleanup
();
}
}
}
}
...
...
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