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
a1b6f6db
Commit
a1b6f6db
authored
Jul 21, 2004
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
LEX initialization fixed
parent
84d9b862
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
18 additions
and
20 deletions
+18
-20
sql/log_event.cc
sql/log_event.cc
+1
-1
sql/mysql_priv.h
sql/mysql_priv.h
+1
-1
sql/sql_lex.cc
sql/sql_lex.cc
+5
-7
sql/sql_lex.h
sql/sql_lex.h
+3
-3
sql/sql_parse.cc
sql/sql_parse.cc
+6
-6
sql/sql_prepare.cc
sql/sql_prepare.cc
+2
-2
No files found.
sql/log_event.cc
View file @
a1b6f6db
...
@@ -1706,7 +1706,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
...
@@ -1706,7 +1706,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
Usually mysql_init_query() is called by mysql_parse(), but we need it here
Usually mysql_init_query() is called by mysql_parse(), but we need it here
as the present method does not call mysql_parse().
as the present method does not call mysql_parse().
*/
*/
mysql_init_query
(
thd
);
mysql_init_query
(
thd
,
0
,
0
);
if
(
!
use_rli_only_for_errors
)
if
(
!
use_rli_only_for_errors
)
{
{
#if MYSQL_VERSION_ID < 50000
#if MYSQL_VERSION_ID < 50000
...
...
sql/mysql_priv.h
View file @
a1b6f6db
...
@@ -434,7 +434,7 @@ bool mysql_test_parse_for_slave(THD *thd,char *inBuf,uint length);
...
@@ -434,7 +434,7 @@ bool mysql_test_parse_for_slave(THD *thd,char *inBuf,uint length);
bool
is_update_query
(
enum
enum_sql_command
command
);
bool
is_update_query
(
enum
enum_sql_command
command
);
bool
alloc_query
(
THD
*
thd
,
char
*
packet
,
ulong
packet_length
);
bool
alloc_query
(
THD
*
thd
,
char
*
packet
,
ulong
packet_length
);
void
mysql_init_select
(
LEX
*
lex
);
void
mysql_init_select
(
LEX
*
lex
);
void
mysql_init_query
(
THD
*
thd
);
void
mysql_init_query
(
THD
*
thd
,
uchar
*
buf
,
uint
length
);
bool
mysql_new_select
(
LEX
*
lex
,
bool
move_down
);
bool
mysql_new_select
(
LEX
*
lex
,
bool
move_down
);
void
create_select_for_variable
(
const
char
*
var_name
);
void
create_select_for_variable
(
const
char
*
var_name
);
void
mysql_init_multi_delete
(
LEX
*
lex
);
void
mysql_init_multi_delete
(
LEX
*
lex
);
...
...
sql/sql_lex.cc
View file @
a1b6f6db
...
@@ -104,14 +104,13 @@ void lex_free(void)
...
@@ -104,14 +104,13 @@ void lex_free(void)
(We already do too much here)
(We already do too much here)
*/
*/
LEX
*
lex_start
(
THD
*
thd
,
uchar
*
buf
,
uint
length
)
void
lex_start
(
THD
*
thd
,
uchar
*
buf
,
uint
length
)
{
{
LEX
*
lex
=
thd
->
lex
;
LEX
*
lex
=
thd
->
lex
;
lex
->
thd
=
thd
;
lex
->
thd
=
thd
;
lex
->
next_state
=
MY_LEX_START
;
lex
->
next_state
=
MY_LEX_START
;
lex
->
end_of_query
=
(
lex
->
ptr
=
buf
)
+
length
;
lex
->
end_of_query
=
(
lex
->
ptr
=
buf
)
+
length
;
lex
->
yylineno
=
1
;
lex
->
yylineno
=
1
;
lex
->
select_lex
.
parsing_place
=
SELECT_LEX_NODE
::
NO_MATTER
;
lex
->
in_comment
=
0
;
lex
->
in_comment
=
0
;
lex
->
length
=
0
;
lex
->
length
=
0
;
lex
->
select_lex
.
in_sum_expr
=
0
;
lex
->
select_lex
.
in_sum_expr
=
0
;
...
@@ -125,7 +124,6 @@ LEX *lex_start(THD *thd, uchar *buf,uint length)
...
@@ -125,7 +124,6 @@ LEX *lex_start(THD *thd, uchar *buf,uint length)
lex
->
ignore_space
=
test
(
thd
->
variables
.
sql_mode
&
MODE_IGNORE_SPACE
);
lex
->
ignore_space
=
test
(
thd
->
variables
.
sql_mode
&
MODE_IGNORE_SPACE
);
lex
->
sql_command
=
SQLCOM_END
;
lex
->
sql_command
=
SQLCOM_END
;
lex
->
duplicates
=
DUP_ERROR
;
lex
->
duplicates
=
DUP_ERROR
;
return
lex
;
}
}
void
lex_end
(
LEX
*
lex
)
void
lex_end
(
LEX
*
lex
)
...
@@ -1009,6 +1007,7 @@ void st_select_lex::init_query()
...
@@ -1009,6 +1007,7 @@ void st_select_lex::init_query()
select_n_having_items
=
0
;
select_n_having_items
=
0
;
prep_where
=
0
;
prep_where
=
0
;
subquery_in_having
=
explicit_limit
=
0
;
subquery_in_having
=
explicit_limit
=
0
;
parsing_place
=
SELECT_LEX_NODE
::
NO_MATTER
;
}
}
void
st_select_lex
::
init_select
()
void
st_select_lex
::
init_select
()
...
@@ -1022,9 +1021,9 @@ void st_select_lex::init_select()
...
@@ -1022,9 +1021,9 @@ void st_select_lex::init_select()
in_sum_expr
=
with_wild
=
0
;
in_sum_expr
=
with_wild
=
0
;
options
=
0
;
options
=
0
;
braces
=
0
;
braces
=
0
;
when_list
.
empty
();
when_list
.
empty
();
expr_list
.
empty
();
expr_list
.
empty
();
interval_list
.
empty
();
interval_list
.
empty
();
use_index
.
empty
();
use_index
.
empty
();
ftfunc_list_alloc
.
empty
();
ftfunc_list_alloc
.
empty
();
ftfunc_list
=
&
ftfunc_list_alloc
;
ftfunc_list
=
&
ftfunc_list_alloc
;
...
@@ -1035,7 +1034,6 @@ void st_select_lex::init_select()
...
@@ -1035,7 +1034,6 @@ void st_select_lex::init_select()
select_limit
=
HA_POS_ERROR
;
select_limit
=
HA_POS_ERROR
;
offset_limit
=
0
;
offset_limit
=
0
;
with_sum_func
=
0
;
with_sum_func
=
0
;
parsing_place
=
SELECT_LEX_NODE
::
NO_MATTER
;
}
}
/*
/*
...
@@ -1055,7 +1053,7 @@ void st_select_lex_node::include_down(st_select_lex_node *upper)
...
@@ -1055,7 +1053,7 @@ void st_select_lex_node::include_down(st_select_lex_node *upper)
/*
/*
include on level down (but do not link)
include on level down (but do not link)
SYNOPSYS
SYNOPSYS
st_select_lex_node::include_standalone()
st_select_lex_node::include_standalone()
upper - reference on node underr which this node should be included
upper - reference on node underr which this node should be included
...
...
sql/sql_lex.h
View file @
a1b6f6db
...
@@ -375,7 +375,7 @@ public:
...
@@ -375,7 +375,7 @@ public:
ulong
init_prepare_fake_select_lex
(
THD
*
thd
);
ulong
init_prepare_fake_select_lex
(
THD
*
thd
);
int
change_result
(
select_subselect
*
result
,
select_subselect
*
old_result
);
int
change_result
(
select_subselect
*
result
,
select_subselect
*
old_result
);
friend
void
mysql_init_query
(
THD
*
thd
);
friend
void
mysql_init_query
(
THD
*
thd
,
uchar
*
buf
,
uint
length
);
friend
int
subselect_union_engine
::
exec
();
friend
int
subselect_union_engine
::
exec
();
private:
private:
bool
create_total_list_n_last_return
(
THD
*
thd
,
st_lex
*
lex
,
bool
create_total_list_n_last_return
(
THD
*
thd
,
st_lex
*
lex
,
...
@@ -514,7 +514,7 @@ public:
...
@@ -514,7 +514,7 @@ public:
bool
test_limit
();
bool
test_limit
();
friend
void
mysql_init_query
(
THD
*
thd
);
friend
void
mysql_init_query
(
THD
*
thd
,
uchar
*
buf
,
uint
length
);
st_select_lex
()
{}
st_select_lex
()
{}
void
make_empty_select
()
void
make_empty_select
()
{
{
...
@@ -664,7 +664,7 @@ typedef struct st_lex
...
@@ -664,7 +664,7 @@ typedef struct st_lex
void
lex_init
(
void
);
void
lex_init
(
void
);
void
lex_free
(
void
);
void
lex_free
(
void
);
LEX
*
lex_start
(
THD
*
thd
,
uchar
*
buf
,
uint
length
);
void
lex_start
(
THD
*
thd
,
uchar
*
buf
,
uint
length
);
void
lex_end
(
LEX
*
lex
);
void
lex_end
(
LEX
*
lex
);
extern
pthread_key
(
LEX
*
,
THR_LEX
);
extern
pthread_key
(
LEX
*
,
THR_LEX
);
...
...
sql/sql_parse.cc
View file @
a1b6f6db
...
@@ -3850,7 +3850,7 @@ bool my_yyoverflow(short **yyss, YYSTYPE **yyvs, ulong *yystacksize)
...
@@ -3850,7 +3850,7 @@ bool my_yyoverflow(short **yyss, YYSTYPE **yyvs, ulong *yystacksize)
****************************************************************************/
****************************************************************************/
void
void
mysql_init_query
(
THD
*
thd
)
mysql_init_query
(
THD
*
thd
,
uchar
*
buf
,
uint
length
)
{
{
DBUG_ENTER
(
"mysql_init_query"
);
DBUG_ENTER
(
"mysql_init_query"
);
LEX
*
lex
=
thd
->
lex
;
LEX
*
lex
=
thd
->
lex
;
...
@@ -3875,6 +3875,7 @@ mysql_init_query(THD *thd)
...
@@ -3875,6 +3875,7 @@ mysql_init_query(THD *thd)
lex
->
lock_option
=
TL_READ
;
lex
->
lock_option
=
TL_READ
;
lex
->
found_colon
=
0
;
lex
->
found_colon
=
0
;
lex
->
safe_to_cache_query
=
1
;
lex
->
safe_to_cache_query
=
1
;
lex_start
(
thd
,
buf
,
length
);
thd
->
select_number
=
lex
->
select_lex
.
select_number
=
1
;
thd
->
select_number
=
lex
->
select_lex
.
select_number
=
1
;
thd
->
free_list
=
0
;
thd
->
free_list
=
0
;
thd
->
total_warn_count
=
0
;
// Warnings for this query
thd
->
total_warn_count
=
0
;
// Warnings for this query
...
@@ -4012,10 +4013,10 @@ void mysql_parse(THD *thd, char *inBuf, uint length)
...
@@ -4012,10 +4013,10 @@ void mysql_parse(THD *thd, char *inBuf, uint length)
{
{
DBUG_ENTER
(
"mysql_parse"
);
DBUG_ENTER
(
"mysql_parse"
);
mysql_init_query
(
thd
);
mysql_init_query
(
thd
,
(
uchar
*
)
inBuf
,
length
);
if
(
query_cache_send_result_to_client
(
thd
,
inBuf
,
length
)
<=
0
)
if
(
query_cache_send_result_to_client
(
thd
,
inBuf
,
length
)
<=
0
)
{
{
LEX
*
lex
=
lex_start
(
thd
,
(
uchar
*
)
inBuf
,
length
)
;
LEX
*
lex
=
thd
->
lex
;
if
(
!
yyparse
((
void
*
)
thd
)
&&
!
thd
->
is_fatal_error
)
if
(
!
yyparse
((
void
*
)
thd
)
&&
!
thd
->
is_fatal_error
)
{
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
#ifndef NO_EMBEDDED_ACCESS_CHECKS
...
@@ -4062,11 +4063,10 @@ void mysql_parse(THD *thd, char *inBuf, uint length)
...
@@ -4062,11 +4063,10 @@ void mysql_parse(THD *thd, char *inBuf, uint length)
bool
mysql_test_parse_for_slave
(
THD
*
thd
,
char
*
inBuf
,
uint
length
)
bool
mysql_test_parse_for_slave
(
THD
*
thd
,
char
*
inBuf
,
uint
length
)
{
{
LEX
*
lex
;
LEX
*
lex
=
thd
->
lex
;
bool
error
=
0
;
bool
error
=
0
;
mysql_init_query
(
thd
);
mysql_init_query
(
thd
,
(
uchar
*
)
inBuf
,
length
);
lex
=
lex_start
(
thd
,
(
uchar
*
)
inBuf
,
length
);
if
(
!
yyparse
((
void
*
)
thd
)
&&
!
thd
->
is_fatal_error
&&
if
(
!
yyparse
((
void
*
)
thd
)
&&
!
thd
->
is_fatal_error
&&
all_tables_not_ok
(
thd
,(
TABLE_LIST
*
)
lex
->
select_lex
.
table_list
.
first
))
all_tables_not_ok
(
thd
,(
TABLE_LIST
*
)
lex
->
select_lex
.
table_list
.
first
))
error
=
1
;
/* Ignore question */
error
=
1
;
/* Ignore question */
...
...
sql/sql_prepare.cc
View file @
a1b6f6db
...
@@ -1613,8 +1613,8 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length,
...
@@ -1613,8 +1613,8 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length,
mysql_log
.
write
(
thd
,
COM_PREPARE
,
"%s"
,
packet
);
mysql_log
.
write
(
thd
,
COM_PREPARE
,
"%s"
,
packet
);
thd
->
current_statement
=
stmt
;
thd
->
current_statement
=
stmt
;
lex
=
lex_start
(
thd
,
(
uchar
*
)
thd
->
query
,
thd
->
query_length
);
mysql_init_query
(
thd
,
(
uchar
*
)
thd
->
query
,
thd
->
query_length
);
mysql_init_query
(
thd
)
;
lex
=
thd
->
lex
;
lex
->
safe_to_cache_query
=
0
;
lex
->
safe_to_cache_query
=
0
;
error
=
yyparse
((
void
*
)
thd
)
||
thd
->
is_fatal_error
||
error
=
yyparse
((
void
*
)
thd
)
||
thd
->
is_fatal_error
||
...
...
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