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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
12058c29
Commit
12058c29
authored
Dec 10, 2001
by
monty@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed bug in GROUP BY ... DESC
parent
0f71e337
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
68 additions
and
14 deletions
+68
-14
Docs/manual.texi
Docs/manual.texi
+2
-0
libmysql/libmysql.c
libmysql/libmysql.c
+2
-0
mysql-test/r/group_by.result
mysql-test/r/group_by.result
+30
-0
mysql-test/t/group_by.test
mysql-test/t/group_by.test
+24
-1
sql/sql_lex.h
sql/sql_lex.h
+1
-1
sql/sql_yacc.yy
sql/sql_yacc.yy
+8
-11
sql/stacktrace.c
sql/stacktrace.c
+1
-1
No files found.
Docs/manual.texi
View file @
12058c29
...
@@ -46839,6 +46839,8 @@ not yet 100% confident in this code.
...
@@ -46839,6 +46839,8 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.47
@appendixsubsec Changes in release 3.23.47
@itemize @bullet
@itemize @bullet
@item
@item
Fixed that @code{GROUP BY expr DESC} works.
@item
Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}.
Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}.
@item
@item
@code{mysqlconfig} now also work with binary (relocated) distributions.
@code{mysqlconfig} now also work with binary (relocated) distributions.
libmysql/libmysql.c
View file @
12058c29
...
@@ -1955,6 +1955,8 @@ mysql_fetch_row(MYSQL_RES *res)
...
@@ -1955,6 +1955,8 @@ mysql_fetch_row(MYSQL_RES *res)
DBUG_PRINT
(
"info"
,(
"end of data"
));
DBUG_PRINT
(
"info"
,(
"end of data"
));
res
->
eof
=
1
;
res
->
eof
=
1
;
res
->
handle
->
status
=
MYSQL_STATUS_READY
;
res
->
handle
->
status
=
MYSQL_STATUS_READY
;
/* Don't clear handle in mysql_free_results */
res
->
handle
=
0
;
}
}
}
}
DBUG_RETURN
((
MYSQL_ROW
)
NULL
);
DBUG_RETURN
((
MYSQL_ROW
)
NULL
);
...
...
mysql-test/r/group_by.result
View file @
12058c29
...
@@ -34,3 +34,33 @@ Test Procedures 0
...
@@ -34,3 +34,33 @@ Test Procedures 0
2 a 0
2 a 0
1+1 a count(*)
1+1 a count(*)
2 a 0
2 a 0
table type possible_keys key key_len ref rows Extra
t1 ALL NULL NULL NULL NULL 6 Using temporary
userid count(*)
3 3
2 1
1 2
table type possible_keys key key_len ref rows Extra
t1 range spID spID 5 NULL 2 where used; Using index; Using temporary
table type possible_keys key key_len ref rows Extra
t1 range spID spID 5 NULL 2 where used; Using index
spid count(*)
1 1
2 2
spid count(*)
2 2
1 1
table type possible_keys key key_len ref rows Extra
t1 ALL NULL NULL NULL NULL 6 Using filesort
spid sum(userid)
5 3
4 3
3 3
2 3
1 1
table type possible_keys key key_len ref rows Extra
t1 index NULL score 3 NULL 6 Using index
score count(*)
3 3
2 1
1 2
mysql-test/t/group_by.test
View file @
12058c29
...
@@ -38,7 +38,6 @@ INSERT INTO t2 VALUES (3,'name','pass','mail','Y','v','n','adr','1','1','1');
...
@@ -38,7 +38,6 @@ INSERT INTO t2 VALUES (3,'name','pass','mail','Y','v','n','adr','1','1','1');
SELECT
t2
.
userid
,
MIN
(
t1
.
score
)
FROM
t1
,
t2
WHERE
t1
.
userID
=
t2
.
userID
GROUP
BY
t2
.
userid
;
SELECT
t2
.
userid
,
MIN
(
t1
.
score
)
FROM
t1
,
t2
WHERE
t1
.
userID
=
t2
.
userID
GROUP
BY
t2
.
userid
;
SELECT
t2
.
userid
,
MIN
(
t1
.
score
)
FROM
t1
,
t2
WHERE
t1
.
userID
=
t2
.
userID
AND
t1
.
spID
=
2
GROUP
BY
t2
.
userid
;
SELECT
t2
.
userid
,
MIN
(
t1
.
score
)
FROM
t1
,
t2
WHERE
t1
.
userID
=
t2
.
userID
AND
t1
.
spID
=
2
GROUP
BY
t2
.
userid
;
SELECT
t2
.
userid
,
MIN
(
t1
.
score
+
0.0
)
FROM
t1
,
t2
WHERE
t1
.
userID
=
t2
.
userID
AND
t1
.
spID
=
2
GROUP
BY
t2
.
userid
;
SELECT
t2
.
userid
,
MIN
(
t1
.
score
+
0.0
)
FROM
t1
,
t2
WHERE
t1
.
userID
=
t2
.
userID
AND
t1
.
spID
=
2
GROUP
BY
t2
.
userid
;
drop
table
test
.
t1
,
test
.
t2
;
drop
table
test
.
t1
,
test
.
t2
;
#
#
...
@@ -220,3 +219,27 @@ select 1+1, "a",count(*) from t1 where foo in (2);
...
@@ -220,3 +219,27 @@ select 1+1, "a",count(*) from t1 where foo in (2);
insert
into
t1
values
(
1
);
insert
into
t1
values
(
1
);
select
1
+
1
,
"a"
,
count
(
*
)
from
t1
where
foo
in
(
2
);
select
1
+
1
,
"a"
,
count
(
*
)
from
t1
where
foo
in
(
2
);
drop
table
t1
;
drop
table
t1
;
#
# Test GROUP BY DESC
CREATE
TABLE
t1
(
spID
int
(
10
)
unsigned
,
userID
int
(
10
)
unsigned
,
score
smallint
(
5
)
unsigned
,
key
(
spid
),
key
(
score
)
);
INSERT
INTO
t1
VALUES
(
1
,
1
,
1
),(
2
,
2
,
2
),(
2
,
1
,
1
),(
3
,
3
,
3
),(
4
,
3
,
3
),(
5
,
3
,
3
);
explain
select
userid
,
count
(
*
)
from
t1
group
by
userid
desc
;
select
userid
,
count
(
*
)
from
t1
group
by
userid
desc
;
explain
select
spid
,
count
(
*
)
from
t1
where
spid
between
1
and
2
group
by
spid
desc
;
explain
select
spid
,
count
(
*
)
from
t1
where
spid
between
1
and
2
group
by
spid
;
select
spid
,
count
(
*
)
from
t1
where
spid
between
1
and
2
group
by
spid
;
select
spid
,
count
(
*
)
from
t1
where
spid
between
1
and
2
group
by
spid
desc
;
explain
select
sql_big_result
spid
,
sum
(
userid
)
from
t1
group
by
spid
desc
;
select
sql_big_result
spid
,
sum
(
userid
)
from
t1
group
by
spid
desc
;
explain
select
sql_big_result
score
,
count
(
*
)
from
t1
group
by
score
desc
;
select
sql_big_result
score
,
count
(
*
)
from
t1
group
by
score
desc
;
drop
table
t1
;
sql/sql_lex.h
View file @
12058c29
...
@@ -140,7 +140,7 @@ typedef struct st_lex {
...
@@ -140,7 +140,7 @@ typedef struct st_lex {
enum
lex_states
next_state
;
enum
lex_states
next_state
;
enum
enum_duplicates
duplicates
;
enum
enum_duplicates
duplicates
;
enum
enum_tx_isolation
tx_isolation
;
enum
enum_tx_isolation
tx_isolation
;
uint
in_sum_expr
,
grant
,
grant_tot_col
,
which_columns
,
sort_default
;
uint
in_sum_expr
,
grant
,
grant_tot_col
,
which_columns
;
thr_lock_type
lock_option
;
thr_lock_type
lock_option
;
bool
create_refs
,
drop_primary
,
drop_if_exists
,
local_file
;
bool
create_refs
,
drop_primary
,
drop_if_exists
,
local_file
;
bool
in_comment
,
ignore_space
,
verbose
;
bool
in_comment
,
ignore_space
,
verbose
;
...
...
sql/sql_yacc.yy
View file @
12058c29
...
@@ -470,7 +470,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
...
@@ -470,7 +470,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
ULONGLONG_NUM
ULONGLONG_NUM
%type <item>
%type <item>
literal text_literal insert_ident
group_ident
order_ident
literal text_literal insert_ident order_ident
simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr
simple_ident select_item2 expr opt_expr opt_else sum_expr in_sum_expr
table_wild opt_pad no_in_expr expr_expr simple_expr no_and_expr
table_wild opt_pad no_in_expr expr_expr simple_expr no_and_expr
using_list
using_list
...
@@ -1869,10 +1869,10 @@ group_clause:
...
@@ -1869,10 +1869,10 @@ group_clause:
| GROUP BY group_list
| GROUP BY group_list
group_list:
group_list:
group_list ','
group_ident
group_list ','
order_ident order_dir
{ if (add_group_to_list($3,(bool)
1
)) YYABORT; }
{ if (add_group_to_list($3,(bool)
$4
)) YYABORT; }
|
group_ident
|
order_ident order_dir
{ if (add_group_to_list($1,(bool)
1
)) YYABORT; }
{ if (add_group_to_list($1,(bool)
$2
)) YYABORT; }
/*
/*
** Order by statement in select
** Order by statement in select
...
@@ -1883,7 +1883,7 @@ opt_order_clause:
...
@@ -1883,7 +1883,7 @@ opt_order_clause:
| order_clause
| order_clause
order_clause:
order_clause:
ORDER_SYM BY
{ Lex->sort_default=1; }
order_list
ORDER_SYM BY order_list
order_list:
order_list:
order_list ',' order_ident order_dir
order_list ',' order_ident order_dir
...
@@ -1893,8 +1893,8 @@ order_list:
...
@@ -1893,8 +1893,8 @@ order_list:
order_dir:
order_dir:
/* empty */ { $$ = 1; }
/* empty */ { $$ = 1; }
| ASC { $$ =
Lex->sort_default=
1; }
| ASC { $$ =1; }
| DESC { $$ =
Lex->sort_default=
0; }
| DESC { $$ =0; }
limit_clause:
limit_clause:
...
@@ -2452,9 +2452,6 @@ table_wild:
...
@@ -2452,9 +2452,6 @@ table_wild:
| ident '.' ident '.' '*'
| ident '.' ident '.' '*'
{ $$ = new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : $1.str),$3.str,"*"); }
{ $$ = new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : $1.str),$3.str,"*"); }
group_ident:
order_ident order_dir
order_ident:
order_ident:
expr { $$=$1; }
expr { $$=$1; }
...
...
sql/stacktrace.c
View file @
12058c29
...
@@ -218,7 +218,7 @@ void write_core(int sig)
...
@@ -218,7 +218,7 @@ void write_core(int sig)
{
{
signal
(
sig
,
SIG_DFL
);
signal
(
sig
,
SIG_DFL
);
pthread_kill
(
pthread_self
(),
sig
);
pthread_kill
(
pthread_self
(),
sig
);
#if defined(P_MYID)
#if defined(P_MYID)
&& !defined(SCO)
/* On Solaris, the above kill is not enough */
/* On Solaris, the above kill is not enough */
sigsend
(
P_PID
,
P_MYID
,
sig
);
sigsend
(
P_PID
,
P_MYID
,
sig
);
#endif
#endif
...
...
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