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
ff4aa03d
Commit
ff4aa03d
authored
Jul 21, 2004
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
LEX initialization fixed
parent
bf95f919
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 @
ff4aa03d
...
@@ -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 @
ff4aa03d
...
@@ -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 @
ff4aa03d
...
@@ -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 @
ff4aa03d
...
@@ -375,7 +375,7 @@ class st_select_lex_unit: public st_select_lex_node {
...
@@ -375,7 +375,7 @@ class st_select_lex_unit: public st_select_lex_node {
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 @@ class st_select_lex: public st_select_lex_node
...
@@ -514,7 +514,7 @@ class st_select_lex: public st_select_lex_node
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 @
ff4aa03d
...
@@ -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 @
ff4aa03d
...
@@ -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