mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge sanja.is.com.ua:/home/bell/mysql/bk/work-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-innodb-4.1
This commit is contained in:
@ -960,3 +960,31 @@ a
|
||||
a
|
||||
150
|
||||
drop table t1;
|
||||
CREATE TABLE t1 ( ID1 int(10) unsigned NOT NULL DEFAULT '0' , ID2 datetime NOT NULL DEFAULT '0000-00-00 00:00:00' , DATA1 varchar(10) , DATA2 double(5,4) , DATA3 datetime , PRIMARY KEY (ID1,ID2));
|
||||
CREATE TABLE t2 ( ID int(3) unsigned NOT NULL DEFAULT '0' , DATA1 timestamp DEFAULT '0000-00-00 00:00:00' , PRIMARY KEY (ID));
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1);
|
||||
ID1 ID2 DATA1 DATA2 DATA3 ID DATA1
|
||||
drop table t1,t2;
|
||||
|
@ -535,3 +535,35 @@ CREATE TABLE t1 (uid int(1));
|
||||
INSERT INTO t1 SELECT 150;
|
||||
SELECT 'a' UNION SELECT uid FROM t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# parser stack overflow
|
||||
#
|
||||
CREATE TABLE t1 ( ID1 int(10) unsigned NOT NULL DEFAULT '0' , ID2 datetime NOT NULL DEFAULT '0000-00-00 00:00:00' , DATA1 varchar(10) , DATA2 double(5,4) , DATA3 datetime , PRIMARY KEY (ID1,ID2));
|
||||
|
||||
CREATE TABLE t2 ( ID int(3) unsigned NOT NULL DEFAULT '0' , DATA1 timestamp DEFAULT '0000-00-00 00:00:00' , PRIMARY KEY (ID));
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1) UNION
|
||||
(SELECT * FROM t1 AS PARTITIONED, t2 AS
|
||||
PARTITIONED_B WHERE PARTITIONED_B.ID=PARTITIONED.ID1);
|
||||
drop table t1,t2;
|
||||
|
@ -3816,10 +3816,10 @@ bool check_stack_overrun(THD *thd,char *buf __attribute__((unused)))
|
||||
#define MY_YACC_INIT 1000 // Start with big alloc
|
||||
#define MY_YACC_MAX 32000 // Because of 'short'
|
||||
|
||||
bool my_yyoverflow(short **yyss, YYSTYPE **yyvs, int *yystacksize)
|
||||
bool my_yyoverflow(short **yyss, YYSTYPE **yyvs, ulong *yystacksize)
|
||||
{
|
||||
LEX *lex=current_lex;
|
||||
int old_info=0;
|
||||
ulong old_info=0;
|
||||
if ((uint) *yystacksize >= MY_YACC_MAX)
|
||||
return 1;
|
||||
if (!lex->yacc_yyvs)
|
||||
|
@ -40,7 +40,7 @@
|
||||
|
||||
int yylex(void *yylval, void *yythd);
|
||||
|
||||
#define yyoverflow(A,B,C,D,E,F) if (my_yyoverflow((B),(D),(int*) (F))) { yyerror((char*) (A)); return 2; }
|
||||
#define yyoverflow(A,B,C,D,E,F) {ulong val= *(F); if(my_yyoverflow((B), (D), &val)) { yyerror((char*) (A)); return 2; } else { *(F)= (YYSIZE_T)val; }}
|
||||
|
||||
#define WARN_DEPRECATED(A,B) \
|
||||
push_warning_printf(((THD *)yythd), MYSQL_ERROR::WARN_LEVEL_WARN, \
|
||||
@ -90,7 +90,7 @@ inline Item *or_or_concat(THD *thd, Item* A, Item* B)
|
||||
}
|
||||
|
||||
%{
|
||||
bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
||||
bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
||||
%}
|
||||
|
||||
%pure_parser /* We have threads */
|
||||
|
Reference in New Issue
Block a user