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
25d0f827
Commit
25d0f827
authored
Nov 13, 2004
by
bell@sanja.is.com.ua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
posmerge fixes
parent
d76db8b9
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
64 additions
and
59 deletions
+64
-59
mysql-test/r/view.result
mysql-test/r/view.result
+2
-2
sql/item.cc
sql/item.cc
+0
-3
sql/mysql_priv.h
sql/mysql_priv.h
+1
-1
sql/sql_parse.cc
sql/sql_parse.cc
+13
-11
sql/sql_select.cc
sql/sql_select.cc
+0
-3
sql/sql_show.cc
sql/sql_show.cc
+47
-38
sql/table.h
sql/table.h
+1
-1
No files found.
mysql-test/r/view.result
View file @
25d0f827
...
@@ -1221,11 +1221,11 @@ ERROR 42000: FUNCTION test.x1 does not exist
...
@@ -1221,11 +1221,11 @@ ERROR 42000: FUNCTION test.x1 does not exist
show table status;
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 9 Fixed 0 0 0 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
t1 MyISAM 9 Fixed 0 0 0 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL
view
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL
FUNCTION test.x1 does not exist
show table status;
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 9 Fixed 0 0 0 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
t1 MyISAM 9 Fixed 0 0 0 21474836479 1024 0 NULL # # NULL latin1_swedish_ci NULL
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL
view
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL
FUNCTION test.x1 does not exist
drop view v1;
drop view v1;
drop table t1;
drop table t1;
create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
...
...
sql/item.cc
View file @
25d0f827
...
@@ -1793,9 +1793,6 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **reference)
...
@@ -1793,9 +1793,6 @@ bool Item_field::fix_fields(THD *thd, TABLE_LIST *tables, Item **reference)
!
any_privileges
))
==
!
any_privileges
))
==
not_found_field
)
not_found_field
)
{
{
#ifdef EMBEDDED_LIBRARY
thd
->
net
.
last_errno
=
0
;
#endif
SELECT_LEX
*
last
=
0
;
SELECT_LEX
*
last
=
0
;
TABLE_LIST
*
table_list
;
TABLE_LIST
*
table_list
;
Item
**
ref
=
(
Item
**
)
not_found_item
;
Item
**
ref
=
(
Item
**
)
not_found_item
;
...
...
sql/mysql_priv.h
View file @
25d0f827
...
@@ -737,7 +737,7 @@ int fill_schema_user_privileges(THD *thd, TABLE_LIST *tables, COND *cond);
...
@@ -737,7 +737,7 @@ int fill_schema_user_privileges(THD *thd, TABLE_LIST *tables, COND *cond);
int
fill_schema_schema_privileges
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
);
int
fill_schema_schema_privileges
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
);
int
fill_schema_table_privileges
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
);
int
fill_schema_table_privileges
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
);
int
fill_schema_column_privileges
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
);
int
fill_schema_column_privileges
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
);
int
get_schema_tables_result
(
JOIN
*
join
);
bool
get_schema_tables_result
(
JOIN
*
join
);
/* sql_prepare.cc */
/* sql_prepare.cc */
bool
mysql_stmt_prepare
(
THD
*
thd
,
char
*
packet
,
uint
packet_length
,
bool
mysql_stmt_prepare
(
THD
*
thd
,
char
*
packet
,
uint
packet_length
,
...
...
sql/sql_parse.cc
View file @
25d0f827
...
@@ -1877,7 +1877,8 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
...
@@ -1877,7 +1877,8 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
switch
(
schema_table_idx
)
{
switch
(
schema_table_idx
)
{
case
SCH_SCHEMATA
:
case
SCH_SCHEMATA
:
#if defined(DONT_ALLOW_SHOW_COMMANDS)
#if defined(DONT_ALLOW_SHOW_COMMANDS)
send_error
(
thd
,
ER_NOT_ALLOWED_COMMAND
);
/* purecov: inspected */
my_message
(
ER_NOT_ALLOWED_COMMAND
,
ER
(
ER_NOT_ALLOWED_COMMAND
),
MYF
(
0
));
/* purecov: inspected */
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
#else
#else
if
((
specialflag
&
SPECIAL_SKIP_SHOW_DB
)
&&
if
((
specialflag
&
SPECIAL_SKIP_SHOW_DB
)
&&
...
@@ -1889,30 +1890,30 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
...
@@ -1889,30 +1890,30 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
case
SCH_TABLES
:
case
SCH_TABLES
:
case
SCH_VIEWS
:
case
SCH_VIEWS
:
#ifdef DONT_ALLOW_SHOW_COMMANDS
#ifdef DONT_ALLOW_SHOW_COMMANDS
send_error
(
thd
,
ER_NOT_ALLOWED_COMMAND
);
/* purecov: inspected */
my_message
(
ER_NOT_ALLOWED_COMMAND
,
ER
(
ER_NOT_ALLOWED_COMMAND
),
MYF
(
0
));
/* purecov: inspected */
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
#else
#else
{
{
char
*
db
=
lex
->
select_lex
.
db
?
lex
->
select_lex
.
db
:
thd
->
db
;
char
*
db
=
lex
->
select_lex
.
db
?
lex
->
select_lex
.
db
:
thd
->
db
;
if
(
!
db
)
if
(
!
db
)
{
{
send_error
(
thd
,
ER_NO_DB_ERROR
);
/* purecov: inspected */
my_message
(
ER_NO_DB_ERROR
,
ER
(
ER_NO_DB_ERROR
),
MYF
(
0
));
/* purecov: inspected */
DBUG_RETURN
(
1
);
/* purecov: inspected */
DBUG_RETURN
(
1
);
/* purecov: inspected */
}
}
remove_escape
(
db
);
// Fix escaped '_'
remove_escape
(
db
);
// Fix escaped '_'
if
(
check_db_name
(
db
))
if
(
check_db_name
(
db
))
{
{
net_printf
(
thd
,
ER_WRONG_DB_NAME
,
db
);
my_error
(
ER_WRONG_DB_NAME
,
MYF
(
0
)
,
db
);
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
}
}
if
(
check_access
(
thd
,
SELECT_ACL
,
db
,
&
thd
->
col_access
,
0
,
0
))
if
(
check_access
(
thd
,
SELECT_ACL
,
db
,
&
thd
->
col_access
,
0
,
0
))
DBUG_RETURN
(
1
);
/* purecov: inspected */
DBUG_RETURN
(
1
);
/* purecov: inspected */
if
(
!
thd
->
col_access
&&
check_grant_db
(
thd
,
db
))
if
(
!
thd
->
col_access
&&
check_grant_db
(
thd
,
db
))
{
{
net_printf
(
thd
,
ER_DBACCESS_DENIED_ERROR
,
my_error
(
ER_DBACCESS_DENIED_ERROR
,
MYF
(
0
),
thd
->
priv_user
,
thd
->
priv_user
,
thd
->
priv_host
,
db
);
thd
->
priv_host
,
db
);
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
}
}
lex
->
select_lex
.
db
=
db
;
lex
->
select_lex
.
db
=
db
;
...
@@ -1922,7 +1923,8 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
...
@@ -1922,7 +1923,8 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
case
SCH_COLUMNS
:
case
SCH_COLUMNS
:
case
SCH_STATISTICS
:
case
SCH_STATISTICS
:
#ifdef DONT_ALLOW_SHOW_COMMANDS
#ifdef DONT_ALLOW_SHOW_COMMANDS
send_error
(
thd
,
ER_NOT_ALLOWED_COMMAND
);
/* purecov: inspected */
my_message
(
ER_NOT_ALLOWED_COMMAND
,
ER
(
ER_NOT_ALLOWED_COMMAND
),
MYF
(
0
));
/* purecov: inspected */
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
#else
#else
if
(
table_ident
)
if
(
table_ident
)
...
@@ -5238,8 +5240,8 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd,
...
@@ -5238,8 +5240,8 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd,
ST_SCHEMA_TABLE
*
schema_table
=
find_schema_table
(
thd
,
ptr
->
real_name
);
ST_SCHEMA_TABLE
*
schema_table
=
find_schema_table
(
thd
,
ptr
->
real_name
);
if
(
!
schema_table
)
if
(
!
schema_table
)
{
{
net_printf
(
thd
,
ER_UNKNOWN_TABLE
,
ptr
->
real_name
,
my_error
(
ER_UNKNOWN_TABLE
,
MYF
(
0
)
,
information_schema_name
.
str
);
ptr
->
real_name
,
information_schema_name
.
str
);
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
}
}
ptr
->
schema_table
=
schema_table
;
ptr
->
schema_table
=
schema_table
;
...
...
sql/sql_select.cc
View file @
25d0f827
...
@@ -9770,9 +9770,6 @@ end_update(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)),
...
@@ -9770,9 +9770,6 @@ end_update(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)),
{
{
Item
*
item
=
*
group
->
item
;
Item
*
item
=
*
group
->
item
;
item
->
save_org_in_field
(
group
->
field
);
item
->
save_org_in_field
(
group
->
field
);
#ifdef EMBEDDED_LIBRARY
join
->
thd
->
net
.
last_errno
=
0
;
#endif
/* Store in the used key if the field was 0 */
/* Store in the used key if the field was 0 */
if
(
item
->
maybe_null
)
if
(
item
->
maybe_null
)
group
->
buff
[
-
1
]
=
item
->
null_value
?
1
:
0
;
group
->
buff
[
-
1
]
=
item
->
null_value
?
1
:
0
;
...
...
sql/sql_show.cc
View file @
25d0f827
...
@@ -1900,7 +1900,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
...
@@ -1900,7 +1900,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
TABLE
*
old_open_tables
=
thd
->
open_tables
;
TABLE
*
old_open_tables
=
thd
->
open_tables
;
TABLE_LIST
*
show_table_list
=
(
TABLE_LIST
*
)
lsel
->
table_list
.
first
;
TABLE_LIST
*
show_table_list
=
(
TABLE_LIST
*
)
lsel
->
table_list
.
first
;
lex
->
all_selects_list
=
lsel
;
lex
->
all_selects_list
=
lsel
;
int
res
=
open_and_lock_tables
(
thd
,
show_table_list
);
bool
res
=
open_and_lock_tables
(
thd
,
show_table_list
);
if
(
schema_table
->
process_table
(
thd
,
show_table_list
,
if
(
schema_table
->
process_table
(
thd
,
show_table_list
,
table
,
res
,
show_table_list
->
db
,
table
,
res
,
show_table_list
->
db
,
show_table_list
->
real_name
))
show_table_list
->
real_name
))
...
@@ -2060,9 +2060,10 @@ int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
...
@@ -2060,9 +2060,10 @@ int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
}
}
int
get_schema_tables_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
static
int
get_schema_tables_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
TABLE
*
table
,
int
res
,
TABLE
*
table
,
bool
res
,
const
char
*
base_name
,
const
char
*
file_name
)
const
char
*
base_name
,
const
char
*
file_name
)
{
{
const
char
*
tmp_buff
;
const
char
*
tmp_buff
;
TIME
time
;
TIME
time
;
...
@@ -2070,18 +2071,21 @@ int get_schema_tables_record(THD *thd, struct st_table_list *tables,
...
@@ -2070,18 +2071,21 @@ int get_schema_tables_record(THD *thd, struct st_table_list *tables,
DBUG_ENTER
(
"get_schema_tables_record"
);
DBUG_ENTER
(
"get_schema_tables_record"
);
restore_record
(
table
,
default_values
);
restore_record
(
table
,
default_values
);
if
(
res
>
0
)
{
DBUG_RETURN
(
1
);
}
table
->
field
[
1
]
->
store
(
base_name
,
strlen
(
base_name
),
cs
);
table
->
field
[
1
]
->
store
(
base_name
,
strlen
(
base_name
),
cs
);
table
->
field
[
2
]
->
store
(
file_name
,
strlen
(
file_name
),
cs
);
table
->
field
[
2
]
->
store
(
file_name
,
strlen
(
file_name
),
cs
);
if
(
res
<
0
||
tables
->
view
)
if
(
res
)
{
/*
there was errors during opening tables
*/
const
char
*
error
=
thd
->
net
.
last_error
;
table
->
field
[
20
]
->
store
(
error
,
strlen
(
error
),
cs
);
thd
->
clear_error
();
}
else
if
(
tables
->
view
)
{
{
table
->
field
[
3
]
->
store
(
"VIEW"
,
4
,
cs
);
table
->
field
[
3
]
->
store
(
"VIEW"
,
4
,
cs
);
table
->
field
[
20
]
->
store
(
"view"
,
4
,
cs
);
table
->
field
[
20
]
->
store
(
"view"
,
4
,
cs
);
if
(
res
)
thd
->
clear_error
();
}
}
else
else
{
{
...
@@ -2203,9 +2207,10 @@ int get_schema_tables_record(THD *thd, struct st_table_list *tables,
...
@@ -2203,9 +2207,10 @@ int get_schema_tables_record(THD *thd, struct st_table_list *tables,
}
}
int
get_schema_column_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
static
int
get_schema_column_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
TABLE
*
table
,
int
res
,
TABLE
*
table
,
bool
res
,
const
char
*
base_name
,
const
char
*
file_name
)
const
char
*
base_name
,
const
char
*
file_name
)
{
{
TIME
time
;
TIME
time
;
const
char
*
wild
=
thd
->
lex
->
wild
?
thd
->
lex
->
wild
->
ptr
()
:
NullS
;
const
char
*
wild
=
thd
->
lex
->
wild
?
thd
->
lex
->
wild
->
ptr
()
:
NullS
;
...
@@ -2538,9 +2543,10 @@ err:
...
@@ -2538,9 +2543,10 @@ err:
}
}
int
get_schema_stat_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
static
int
get_schema_stat_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
TABLE
*
table
,
int
res
,
TABLE
*
table
,
bool
res
,
const
char
*
base_name
,
const
char
*
file_name
)
const
char
*
base_name
,
const
char
*
file_name
)
{
{
CHARSET_INFO
*
cs
=
system_charset_info
;
CHARSET_INFO
*
cs
=
system_charset_info
;
DBUG_ENTER
(
"get_schema_stat_record"
);
DBUG_ENTER
(
"get_schema_stat_record"
);
...
@@ -2605,13 +2611,14 @@ int get_schema_stat_record(THD *thd, struct st_table_list *tables,
...
@@ -2605,13 +2611,14 @@ int get_schema_stat_record(THD *thd, struct st_table_list *tables,
}
}
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
res
);
}
}
int
get_schema_views_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
static
int
get_schema_views_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
TABLE
*
table
,
int
res
,
TABLE
*
table
,
bool
res
,
const
char
*
base_name
,
const
char
*
file_name
)
const
char
*
base_name
,
const
char
*
file_name
)
{
{
CHARSET_INFO
*
cs
=
system_charset_info
;
CHARSET_INFO
*
cs
=
system_charset_info
;
DBUG_ENTER
(
"get_schema_views_record"
);
DBUG_ENTER
(
"get_schema_views_record"
);
...
@@ -2631,13 +2638,14 @@ int get_schema_views_record(THD *thd, struct st_table_list *tables,
...
@@ -2631,13 +2638,14 @@ int get_schema_views_record(THD *thd, struct st_table_list *tables,
table
->
file
->
write_row
(
table
->
record
[
0
]);
table
->
file
->
write_row
(
table
->
record
[
0
]);
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
res
);
}
}
int
get_schema_constarints_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
static
int
get_schema_constarints_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
TABLE
*
table
,
int
res
,
TABLE
*
table
,
bool
res
,
const
char
*
base_name
,
const
char
*
file_name
)
const
char
*
base_name
,
const
char
*
file_name
)
{
{
CHARSET_INFO
*
cs
=
system_charset_info
;
CHARSET_INFO
*
cs
=
system_charset_info
;
DBUG_ENTER
(
"get_schema_constarints_record"
);
DBUG_ENTER
(
"get_schema_constarints_record"
);
...
@@ -2684,14 +2692,15 @@ int get_schema_constarints_record(THD *thd, struct st_table_list *tables,
...
@@ -2684,14 +2692,15 @@ int get_schema_constarints_record(THD *thd, struct st_table_list *tables,
table
->
file
->
write_row
(
table
->
record
[
0
]);
table
->
file
->
write_row
(
table
->
record
[
0
]);
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
res
);
}
}
int
get_schema_key_column_usage_record
(
THD
*
thd
,
struct
st_table_list
*
tables
,
static
int
get_schema_key_column_usage_record
(
THD
*
thd
,
TABLE
*
table
,
int
res
,
struct
st_table_list
*
tables
,
const
char
*
base_name
,
TABLE
*
table
,
bool
res
,
const
char
*
file_name
)
const
char
*
base_name
,
const
char
*
file_name
)
{
{
DBUG_ENTER
(
"get_schema_key_column_usage_record"
);
DBUG_ENTER
(
"get_schema_key_column_usage_record"
);
CHARSET_INFO
*
cs
=
system_charset_info
;
CHARSET_INFO
*
cs
=
system_charset_info
;
...
@@ -2707,7 +2716,7 @@ int get_schema_key_column_usage_record(THD *thd, struct st_table_list *tables,
...
@@ -2707,7 +2716,7 @@ int get_schema_key_column_usage_record(THD *thd, struct st_table_list *tables,
for
(
uint
i
=
0
;
i
<
show_table
->
keys
;
i
++
,
key_info
++
)
for
(
uint
i
=
0
;
i
<
show_table
->
keys
;
i
++
,
key_info
++
)
{
{
if
(
i
!=
primary_key
&&
!
(
key_info
->
flags
&
HA_NOSAME
))
if
(
i
!=
primary_key
&&
!
(
key_info
->
flags
&
HA_NOSAME
))
continue
;
continue
;
uint
f_idx
=
0
;
uint
f_idx
=
0
;
KEY_PART_INFO
*
key_part
=
key_info
->
key_part
;
KEY_PART_INFO
*
key_part
=
key_info
->
key_part
;
for
(
uint
j
=
0
;
j
<
key_info
->
key_parts
;
j
++
,
key_part
++
)
for
(
uint
j
=
0
;
j
<
key_info
->
key_parts
;
j
++
,
key_part
++
)
...
@@ -2762,7 +2771,7 @@ int get_schema_key_column_usage_record(THD *thd, struct st_table_list *tables,
...
@@ -2762,7 +2771,7 @@ int get_schema_key_column_usage_record(THD *thd, struct st_table_list *tables,
}
}
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
res
);
}
}
...
@@ -3076,11 +3085,11 @@ int make_schema_select(THD *thd, SELECT_LEX *sel,
...
@@ -3076,11 +3085,11 @@ int make_schema_select(THD *thd, SELECT_LEX *sel,
join join which use schema tables
join join which use schema tables
RETURN
RETURN
0
success
FALSE
success
1
error
TRUE
error
*/
*/
int
get_schema_tables_result
(
JOIN
*
join
)
bool
get_schema_tables_result
(
JOIN
*
join
)
{
{
DBUG_ENTER
(
"get_schema_tables_result"
);
DBUG_ENTER
(
"get_schema_tables_result"
);
JOIN_TAB
*
tmp_join_tab
=
join
->
join_tab
+
join
->
tables
;
JOIN_TAB
*
tmp_join_tab
=
join
->
join_tab
+
join
->
tables
;
...
@@ -3090,7 +3099,7 @@ int get_schema_tables_result(JOIN *join)
...
@@ -3090,7 +3099,7 @@ int get_schema_tables_result(JOIN *join)
if
(
!
tab
->
table
||
!
tab
->
table
->
pos_in_table_list
)
if
(
!
tab
->
table
||
!
tab
->
table
->
pos_in_table_list
)
break
;
break
;
TABLE_LIST
*
table_list
=
tab
->
table
->
pos_in_table_list
;
TABLE_LIST
*
table_list
=
tab
->
table
->
pos_in_table_list
;
if
(
table_list
->
schema_table
&&
!
thd
->
only_prepare
())
if
(
table_list
->
schema_table
&&
thd
->
fill_derived_tables
())
{
{
TABLE
*
old_derived_tables
=
thd
->
derived_tables
;
TABLE
*
old_derived_tables
=
thd
->
derived_tables
;
thd
->
derived_tables
=
0
;
thd
->
derived_tables
=
0
;
...
@@ -3103,14 +3112,14 @@ int get_schema_tables_result(JOIN *join)
...
@@ -3103,14 +3112,14 @@ int get_schema_tables_result(JOIN *join)
{
{
thd
->
derived_tables
=
old_derived_tables
;
thd
->
derived_tables
=
old_derived_tables
;
thd
->
lock
=
sql_lock
;
thd
->
lock
=
sql_lock
;
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
TRUE
);
}
}
thd
->
lock
=
sql_lock
;
thd
->
lock
=
sql_lock
;
thd
->
lex
->
sql_command
=
SQLCOM_SELECT
;
thd
->
lex
->
sql_command
=
SQLCOM_SELECT
;
thd
->
derived_tables
=
old_derived_tables
;
thd
->
derived_tables
=
old_derived_tables
;
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
FALSE
);
}
}
...
...
sql/table.h
View file @
25d0f827
...
@@ -250,7 +250,7 @@ typedef struct st_schema_table
...
@@ -250,7 +250,7 @@ typedef struct st_schema_table
/* Handle fileds for old SHOW */
/* Handle fileds for old SHOW */
int
(
*
old_format
)
(
THD
*
thd
,
struct
st_schema_table
*
schema_table
);
int
(
*
old_format
)
(
THD
*
thd
,
struct
st_schema_table
*
schema_table
);
int
(
*
process_table
)
(
THD
*
thd
,
struct
st_table_list
*
tables
,
int
(
*
process_table
)
(
THD
*
thd
,
struct
st_table_list
*
tables
,
TABLE
*
table
,
int
res
,
const
char
*
base_name
,
TABLE
*
table
,
bool
res
,
const
char
*
base_name
,
const
char
*
file_name
);
const
char
*
file_name
);
int
idx_field1
,
idx_field2
;
int
idx_field1
,
idx_field2
;
}
ST_SCHEMA_TABLE
;
}
ST_SCHEMA_TABLE
;
...
...
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