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
8a5ef8dc
Commit
8a5ef8dc
authored
Sep 20, 2002
by
monty@mashka.mysql.fi
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/my/mysql-4.0 into mashka.mysql.fi:/home/my/mysql-4.0
parents
2e0bffb9
7726d4b5
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
104 additions
and
88 deletions
+104
-88
client/mysql.cc
client/mysql.cc
+1
-0
configure.in
configure.in
+19
-2
sql/lock.cc
sql/lock.cc
+2
-2
sql/log_event.cc
sql/log_event.cc
+1
-1
sql/mysqld.cc
sql/mysqld.cc
+1
-3
sql/slave.cc
sql/slave.cc
+1
-1
sql/sql_acl.cc
sql/sql_acl.cc
+20
-20
sql/sql_base.cc
sql/sql_base.cc
+8
-8
sql/sql_cache.cc
sql/sql_cache.cc
+3
-3
sql/sql_handler.cc
sql/sql_handler.cc
+9
-9
sql/sql_insert.cc
sql/sql_insert.cc
+2
-2
sql/sql_parse.cc
sql/sql_parse.cc
+13
-13
sql/sql_show.cc
sql/sql_show.cc
+1
-1
sql/sql_table.cc
sql/sql_table.cc
+4
-4
sql/sql_udf.cc
sql/sql_udf.cc
+3
-3
sql/sql_union.cc
sql/sql_union.cc
+1
-1
sql/sql_yacc.yy
sql/sql_yacc.yy
+6
-6
sql/table.h
sql/table.h
+9
-9
No files found.
client/mysql.cc
View file @
8a5ef8dc
...
@@ -701,6 +701,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
...
@@ -701,6 +701,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_mysql_unix_port
=
my_strdup
(
MYSQL_NAMEDPIPE
,
MYF
(
0
));
opt_mysql_unix_port
=
my_strdup
(
MYSQL_NAMEDPIPE
,
MYF
(
0
));
#endif
#endif
break
;
break
;
#include <sslopt-case.h>
case
'V'
:
case
'V'
:
usage
(
1
);
usage
(
1
);
exit
(
0
);
exit
(
0
);
...
...
configure.in
View file @
8a5ef8dc
...
@@ -453,6 +453,7 @@ fi
...
@@ -453,6 +453,7 @@ fi
NOINST_LDFLAGS
=
NOINST_LDFLAGS
=
static_nss
=
""
AC_ARG_WITH
(
other-libc,
AC_ARG_WITH
(
other-libc,
[
--with-other-libc
=
DIR Link against libc and other standard libraries
[
--with-other-libc
=
DIR Link against libc and other standard libraries
installed
in
the specified non-standard location
installed
in
the specified non-standard location
...
@@ -472,7 +473,6 @@ AC_ARG_WITH(other-libc,
...
@@ -472,7 +473,6 @@ AC_ARG_WITH(other-libc,
# by telling it to be permissive. Note that this option only works with
# by telling it to be permissive. Note that this option only works with
# new versions of gcc (2.95.x and above)
# new versions of gcc (2.95.x and above)
CXXFLAGS
=
"
$CXXFLAGS
-fpermissive -I
$other_libc_include
"
CXXFLAGS
=
"
$CXXFLAGS
-fpermissive -I
$other_libc_include
"
static_nss
=
if
test
-f
"
$other_libc_lib
/libnss_files.a"
if
test
-f
"
$other_libc_lib
/libnss_files.a"
then
then
# libc has been compiled with --enable-static-nss
# libc has been compiled with --enable-static-nss
...
@@ -507,6 +507,23 @@ AC_ARG_WITH(other-libc,
...
@@ -507,6 +507,23 @@ AC_ARG_WITH(other-libc,
)
)
AC_SUBST
(
NOINST_LDFLAGS
)
AC_SUBST
(
NOINST_LDFLAGS
)
#
# Check if we are using Linux and a glibc compiled with static nss
# (this is true on the MySQL build machines to avoid NSS problems)
#
if
test
"
$IS_LINUX
"
=
"true"
-a
"
$static_nss
"
=
""
then
tmp
=
`
nm /usr/lib/libc.a |
grep
_nss_files_getaliasent_r
`
if
test
-n
"
$tmp
"
then
STATIC_NSS_FLAGS
=
"-Wl,--start-group -lc -lnss_files -lnss_dns -lresolv
\
-Wl,--end-group"
static_nss
=
1
fi
fi
AC_ARG_WITH
(
server-suffix,
AC_ARG_WITH
(
server-suffix,
[
--with-server-suffix
Append value to the version string.],
[
--with-server-suffix
Append value to the version string.],
[
MYSQL_SERVER_SUFFIX
=
`
echo
"
$withval
"
|
sed
-e
's/^\(...................................\)..*$/\1/'
`
]
,
[
MYSQL_SERVER_SUFFIX
=
`
echo
"
$withval
"
|
sed
-e
's/^\(...................................\)..*$/\1/'
`
]
,
...
@@ -1392,7 +1409,7 @@ else
...
@@ -1392,7 +1409,7 @@ else
CXXFLAGS
=
"
$OPTIMIZE_CXXFLAGS
-DDBUG_OFF
$CXXFLAGS
"
CXXFLAGS
=
"
$OPTIMIZE_CXXFLAGS
-DDBUG_OFF
$CXXFLAGS
"
fi
fi
# Force static compilation to avoid linking probles/get more speed
# Force static compilation to avoid linking proble
m
s/get more speed
AC_ARG_WITH
(
mysqld-ldflags,
AC_ARG_WITH
(
mysqld-ldflags,
[
--with-mysqld-ldflags
Extra linking arguments
for
mysqld],
[
--with-mysqld-ldflags
Extra linking arguments
for
mysqld],
[
MYSQLD_EXTRA_LDFLAGS
=
$withval
]
,
[
MYSQLD_EXTRA_LDFLAGS
=
$withval
]
,
...
...
sql/lock.cc
View file @
8a5ef8dc
...
@@ -470,7 +470,7 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list)
...
@@ -470,7 +470,7 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list)
DBUG_ENTER
(
"lock_table_name"
);
DBUG_ENTER
(
"lock_table_name"
);
safe_mutex_assert_owner
(
&
LOCK_open
);
safe_mutex_assert_owner
(
&
LOCK_open
);
key_length
=
(
uint
)
(
strmov
(
strmov
(
key
,
table_list
->
db
)
+
1
,
table_list
->
name
)
key_length
=
(
uint
)
(
strmov
(
strmov
(
key
,
table_list
->
db
)
+
1
,
table_list
->
real_
name
)
-
key
)
+
1
;
-
key
)
+
1
;
/* Only insert the table if we haven't insert it already */
/* Only insert the table if we haven't insert it already */
...
@@ -499,7 +499,7 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list)
...
@@ -499,7 +499,7 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list)
my_free
((
gptr
)
table
,
MYF
(
0
));
my_free
((
gptr
)
table
,
MYF
(
0
));
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
-
1
);
}
}
if
(
remove_table_from_cache
(
thd
,
table_list
->
db
,
table_list
->
name
))
if
(
remove_table_from_cache
(
thd
,
table_list
->
db
,
table_list
->
real_
name
))
DBUG_RETURN
(
1
);
// Table is in use
DBUG_RETURN
(
1
);
// Table is in use
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
}
}
...
...
sql/log_event.cc
View file @
8a5ef8dc
...
@@ -1718,7 +1718,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli)
...
@@ -1718,7 +1718,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli)
TABLE_LIST
tables
;
TABLE_LIST
tables
;
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
.
db
=
thd
->
db
;
tables
.
db
=
thd
->
db
;
tables
.
name
=
tables
.
real_name
=
(
char
*
)
table_name
;
tables
.
alias
=
tables
.
real_name
=
(
char
*
)
table_name
;
tables
.
lock_type
=
TL_WRITE
;
tables
.
lock_type
=
TL_WRITE
;
// the table will be opened in mysql_load
// the table will be opened in mysql_load
if
(
table_rules_on
&&
!
tables_ok
(
thd
,
&
tables
))
if
(
table_rules_on
&&
!
tables_ok
(
thd
,
&
tables
))
...
...
sql/mysqld.cc
View file @
8a5ef8dc
...
@@ -1884,9 +1884,6 @@ int main(int argc, char **argv)
...
@@ -1884,9 +1884,6 @@ int main(int argc, char **argv)
charsets_list
=
list_charsets
(
MYF
(
MY_COMPILED_SETS
|
MY_CONFIG_SETS
));
charsets_list
=
list_charsets
(
MYF
(
MY_COMPILED_SETS
|
MY_CONFIG_SETS
));
#ifdef HAVE_OPENSSL
#ifdef HAVE_OPENSSL
if
(
opt_ssl_key
||
opt_ssl_cert
||
opt_ssl_ca
||
opt_ssl_capath
||
opt_ssl_cipher
)
opt_use_ssl
=
1
;
if
(
opt_use_ssl
)
if
(
opt_use_ssl
)
{
{
/* having ssl_acceptor_fd != 0 signals the use of SSL */
/* having ssl_acceptor_fd != 0 signals the use of SSL */
...
@@ -3969,6 +3966,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
...
@@ -3969,6 +3966,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
net_buffer_length
=
atoi
(
argument
);
net_buffer_length
=
atoi
(
argument
);
break
;
break
;
#endif
#endif
#include <sslopt-case.h>
case
'v'
:
case
'v'
:
case
'V'
:
case
'V'
:
print_version
();
print_version
();
...
...
sql/slave.cc
View file @
8a5ef8dc
...
@@ -913,7 +913,7 @@ static int create_table_from_dump(THD* thd, NET* net, const char* db,
...
@@ -913,7 +913,7 @@ static int create_table_from_dump(THD* thd, NET* net, const char* db,
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
.
db
=
(
char
*
)
db
;
tables
.
db
=
(
char
*
)
db
;
tables
.
name
=
tables
.
real_name
=
(
char
*
)
table_name
;
tables
.
alias
=
tables
.
real_name
=
(
char
*
)
table_name
;
tables
.
lock_type
=
TL_WRITE
;
tables
.
lock_type
=
TL_WRITE
;
thd
->
proc_info
=
"Opening master dump table"
;
thd
->
proc_info
=
"Opening master dump table"
;
if
(
!
open_ltable
(
thd
,
&
tables
,
TL_WRITE
))
if
(
!
open_ltable
(
thd
,
&
tables
,
TL_WRITE
))
...
...
sql/sql_acl.cc
View file @
8a5ef8dc
...
@@ -156,9 +156,9 @@ my_bool acl_init(bool dont_read_acl_tables)
...
@@ -156,9 +156,9 @@ my_bool acl_init(bool dont_read_acl_tables)
thd
->
db
=
my_strdup
(
"mysql"
,
MYF
(
0
));
thd
->
db
=
my_strdup
(
"mysql"
,
MYF
(
0
));
thd
->
db_length
=
5
;
// Safety
thd
->
db_length
=
5
;
// Safety
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
[
0
].
name
=
tables
[
0
].
real_name
=
(
char
*
)
"host"
;
tables
[
0
].
alias
=
tables
[
0
].
real_name
=
(
char
*
)
"host"
;
tables
[
1
].
name
=
tables
[
1
].
real_name
=
(
char
*
)
"user"
;
tables
[
1
].
alias
=
tables
[
1
].
real_name
=
(
char
*
)
"user"
;
tables
[
2
].
name
=
tables
[
2
].
real_name
=
(
char
*
)
"db"
;
tables
[
2
].
alias
=
tables
[
2
].
real_name
=
(
char
*
)
"db"
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
1
].
next
=
tables
+
2
;
tables
[
1
].
next
=
tables
+
2
;
tables
[
0
].
lock_type
=
tables
[
1
].
lock_type
=
tables
[
2
].
lock_type
=
TL_READ
;
tables
[
0
].
lock_type
=
tables
[
1
].
lock_type
=
tables
[
2
].
lock_type
=
TL_READ
;
...
@@ -1151,7 +1151,7 @@ static bool update_user_table(THD *thd, const char *host, const char *user,
...
@@ -1151,7 +1151,7 @@ static bool update_user_table(THD *thd, const char *host, const char *user,
DBUG_PRINT
(
"enter"
,(
"user: %s host: %s"
,
user
,
host
));
DBUG_PRINT
(
"enter"
,(
"user: %s host: %s"
,
user
,
host
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
.
name
=
tables
.
real_name
=
(
char
*
)
"user"
;
tables
.
alias
=
tables
.
real_name
=
(
char
*
)
"user"
;
tables
.
db
=
(
char
*
)
"mysql"
;
tables
.
db
=
(
char
*
)
"mysql"
;
if
(
!
(
table
=
open_ltable
(
thd
,
&
tables
,
TL_WRITE
)))
if
(
!
(
table
=
open_ltable
(
thd
,
&
tables
,
TL_WRITE
)))
DBUG_RETURN
(
1
);
/* purecov: deadcode */
DBUG_RETURN
(
1
);
/* purecov: deadcode */
...
@@ -1968,7 +1968,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
...
@@ -1968,7 +1968,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
check
->
column
.
length
(),
0
,
0
))
check
->
column
.
length
(),
0
,
0
))
{
{
my_printf_error
(
ER_BAD_FIELD_ERROR
,
ER
(
ER_BAD_FIELD_ERROR
),
MYF
(
0
),
my_printf_error
(
ER_BAD_FIELD_ERROR
,
ER
(
ER_BAD_FIELD_ERROR
),
MYF
(
0
),
check
->
column
.
c_ptr
(),
table_list
->
name
);
check
->
column
.
c_ptr
(),
table_list
->
alias
);
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
-
1
);
}
}
column_priv
|=
check
->
rights
|
(
rights
&
COL_ACLS
);
column_priv
|=
check
->
rights
|
(
rights
&
COL_ACLS
);
...
@@ -1978,12 +1978,12 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
...
@@ -1978,12 +1978,12 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
else
if
(
!
(
rights
&
CREATE_ACL
)
&&
!
revoke_grant
)
else
if
(
!
(
rights
&
CREATE_ACL
)
&&
!
revoke_grant
)
{
{
char
buf
[
FN_REFLEN
];
char
buf
[
FN_REFLEN
];
sprintf
(
buf
,
"%s/%s/%s.frm"
,
mysql_data_home
,
table_list
->
db
,
sprintf
(
buf
,
"%s/%s/%s.frm"
,
mysql_data_home
,
table_list
->
db
,
table_list
->
name
);
table_list
->
real_
name
);
fn_format
(
buf
,
buf
,
""
,
""
,
4
+
16
+
32
);
fn_format
(
buf
,
buf
,
""
,
""
,
4
+
16
+
32
);
if
(
access
(
buf
,
F_OK
))
if
(
access
(
buf
,
F_OK
))
{
{
my_error
(
ER_NO_SUCH_TABLE
,
MYF
(
0
),
table_list
->
db
,
table_list
->
name
);
my_error
(
ER_NO_SUCH_TABLE
,
MYF
(
0
),
table_list
->
db
,
table_list
->
alias
);
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
-
1
);
}
}
}
}
...
@@ -1991,9 +1991,9 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
...
@@ -1991,9 +1991,9 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
/* open the mysql.tables_priv and mysql.columns_priv tables */
/* open the mysql.tables_priv and mysql.columns_priv tables */
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
[
0
].
name
=
tables
[
0
].
real_name
=
(
char
*
)
"user"
;
tables
[
0
].
alias
=
tables
[
0
].
real_name
=
(
char
*
)
"user"
;
tables
[
1
].
name
=
tables
[
1
].
real_name
=
(
char
*
)
"tables_priv"
;
tables
[
1
].
alias
=
tables
[
1
].
real_name
=
(
char
*
)
"tables_priv"
;
tables
[
2
].
name
=
tables
[
2
].
real_name
=
(
char
*
)
"columns_priv"
;
tables
[
2
].
alias
=
tables
[
2
].
real_name
=
(
char
*
)
"columns_priv"
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
0
].
next
=
tables
+
1
;
/* Don't open column table if we don't need it ! */
/* Don't open column table if we don't need it ! */
tables
[
1
].
next
=
((
column_priv
||
tables
[
1
].
next
=
((
column_priv
||
...
@@ -2041,20 +2041,20 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
...
@@ -2041,20 +2041,20 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
/* Find/create cached table grant */
/* Find/create cached table grant */
grant_table
=
table_hash_search
(
Str
->
host
.
str
,
NullS
,
table_list
->
db
,
grant_table
=
table_hash_search
(
Str
->
host
.
str
,
NullS
,
table_list
->
db
,
Str
->
user
.
str
,
Str
->
user
.
str
,
table_list
->
name
,
1
);
table_list
->
real_
name
,
1
);
if
(
!
grant_table
)
if
(
!
grant_table
)
{
{
if
(
revoke_grant
)
if
(
revoke_grant
)
{
{
my_printf_error
(
ER_NONEXISTING_TABLE_GRANT
,
my_printf_error
(
ER_NONEXISTING_TABLE_GRANT
,
ER
(
ER_NONEXISTING_TABLE_GRANT
),
MYF
(
0
),
ER
(
ER_NONEXISTING_TABLE_GRANT
),
MYF
(
0
),
Str
->
user
.
str
,
Str
->
host
.
str
,
table_list
->
name
);
Str
->
user
.
str
,
Str
->
host
.
str
,
table_list
->
alias
);
result
=
-
1
;
result
=
-
1
;
continue
;
continue
;
}
}
grant_table
=
new
GRANT_TABLE
(
Str
->
host
.
str
,
table_list
->
db
,
grant_table
=
new
GRANT_TABLE
(
Str
->
host
.
str
,
table_list
->
db
,
Str
->
user
.
str
,
Str
->
user
.
str
,
table_list
->
name
,
table_list
->
real_
name
,
rights
,
rights
,
column_priv
);
column_priv
);
if
(
!
grant_table
)
// end of memory
if
(
!
grant_table
)
// end of memory
...
@@ -2101,7 +2101,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
...
@@ -2101,7 +2101,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
if
(
replace_table_table
(
thd
,
grant_table
,
tables
[
1
].
table
,
*
Str
,
if
(
replace_table_table
(
thd
,
grant_table
,
tables
[
1
].
table
,
*
Str
,
table_list
->
db
,
table_list
->
db
,
table_list
->
name
,
table_list
->
real_
name
,
rights
,
column_priv
,
revoke_grant
))
rights
,
column_priv
,
revoke_grant
))
{
// Crashend table ??
{
// Crashend table ??
result
=
-
1
;
/* purecov: deadcode */
result
=
-
1
;
/* purecov: deadcode */
...
@@ -2111,7 +2111,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
...
@@ -2111,7 +2111,7 @@ int mysql_table_grant (THD *thd, TABLE_LIST *table_list,
if
((
replace_column_table
(
grant_table
,
tables
[
2
].
table
,
*
Str
,
if
((
replace_column_table
(
grant_table
,
tables
[
2
].
table
,
*
Str
,
columns
,
columns
,
table_list
->
db
,
table_list
->
db
,
table_list
->
name
,
table_list
->
real_
name
,
rights
,
revoke_grant
)))
rights
,
revoke_grant
)))
{
{
result
=
-
1
;
result
=
-
1
;
...
@@ -2153,8 +2153,8 @@ int mysql_grant (THD *thd, const char *db, List <LEX_USER> &list,
...
@@ -2153,8 +2153,8 @@ int mysql_grant (THD *thd, const char *db, List <LEX_USER> &list,
/* open the mysql.user and mysql.db tables */
/* open the mysql.user and mysql.db tables */
tables
[
0
].
name
=
tables
[
0
].
real_name
=
(
char
*
)
"user"
;
tables
[
0
].
alias
=
tables
[
0
].
real_name
=
(
char
*
)
"user"
;
tables
[
1
].
name
=
tables
[
1
].
real_name
=
(
char
*
)
"db"
;
tables
[
1
].
alias
=
tables
[
1
].
real_name
=
(
char
*
)
"db"
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
1
].
next
=
0
;
tables
[
1
].
next
=
0
;
tables
[
0
].
lock_type
=
tables
[
1
].
lock_type
=
TL_WRITE
;
tables
[
0
].
lock_type
=
tables
[
1
].
lock_type
=
TL_WRITE
;
...
@@ -2251,8 +2251,8 @@ my_bool grant_init(void)
...
@@ -2251,8 +2251,8 @@ my_bool grant_init(void)
thd
->
db
=
my_strdup
(
"mysql"
,
MYF
(
0
));
thd
->
db
=
my_strdup
(
"mysql"
,
MYF
(
0
));
thd
->
db_length
=
5
;
// Safety
thd
->
db_length
=
5
;
// Safety
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
[
0
].
name
=
tables
[
0
].
real_name
=
(
char
*
)
"tables_priv"
;
tables
[
0
].
alias
=
tables
[
0
].
real_name
=
(
char
*
)
"tables_priv"
;
tables
[
1
].
name
=
tables
[
1
].
real_name
=
(
char
*
)
"columns_priv"
;
tables
[
1
].
alias
=
tables
[
1
].
real_name
=
(
char
*
)
"columns_priv"
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
0
].
next
=
tables
+
1
;
tables
[
0
].
lock_type
=
tables
[
1
].
lock_type
=
TL_READ
;
tables
[
0
].
lock_type
=
tables
[
1
].
lock_type
=
TL_READ
;
tables
[
0
].
db
=
tables
[
1
].
db
=
thd
->
db
;
tables
[
0
].
db
=
tables
[
1
].
db
=
thd
->
db
;
...
...
sql/sql_base.cc
View file @
8a5ef8dc
...
@@ -370,7 +370,7 @@ bool close_cached_tables(THD *thd, bool if_wait_for_refresh,
...
@@ -370,7 +370,7 @@ bool close_cached_tables(THD *thd, bool if_wait_for_refresh,
bool
found
=
0
;
bool
found
=
0
;
for
(
TABLE_LIST
*
table
=
tables
;
table
;
table
=
table
->
next
)
for
(
TABLE_LIST
*
table
=
tables
;
table
;
table
=
table
->
next
)
{
{
if
(
remove_table_from_cache
(
thd
,
table
->
db
,
table
->
name
,
1
))
if
(
remove_table_from_cache
(
thd
,
table
->
db
,
table
->
real_
name
,
1
))
found
=
1
;
found
=
1
;
}
}
if
(
!
found
)
if
(
!
found
)
...
@@ -730,7 +730,7 @@ TABLE *reopen_name_locked_table(THD* thd, TABLE_LIST* table_list)
...
@@ -730,7 +730,7 @@ TABLE *reopen_name_locked_table(THD* thd, TABLE_LIST* table_list)
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
char
*
db
=
thd
->
db
?
thd
->
db
:
table_list
->
db
;
char
*
db
=
thd
->
db
?
thd
->
db
:
table_list
->
db
;
char
*
table_name
=
table_list
->
name
;
char
*
table_name
=
table_list
->
real_
name
;
char
key
[
MAX_DBKEY_LENGTH
];
char
key
[
MAX_DBKEY_LENGTH
];
uint
key_length
;
uint
key_length
;
key_length
=
(
uint
)
(
strmov
(
strmov
(
key
,
db
)
+
1
,
table_name
)
-
key
)
+
1
;
key_length
=
(
uint
)
(
strmov
(
strmov
(
key
,
db
)
+
1
,
table_name
)
-
key
)
+
1
;
...
@@ -1287,7 +1287,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db,
...
@@ -1287,7 +1287,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db,
TABLE_LIST
table_list
;
TABLE_LIST
table_list
;
table_list
.
db
=
(
char
*
)
db
;
table_list
.
db
=
(
char
*
)
db
;
table_list
.
name
=
(
char
*
)
name
;
table_list
.
real_
name
=
(
char
*
)
name
;
table_list
.
next
=
0
;
table_list
.
next
=
0
;
safe_mutex_assert_owner
(
&
LOCK_open
);
safe_mutex_assert_owner
(
&
LOCK_open
);
...
@@ -1359,7 +1359,7 @@ int open_tables(THD *thd,TABLE_LIST *start)
...
@@ -1359,7 +1359,7 @@ int open_tables(THD *thd,TABLE_LIST *start)
!
(
tables
->
table
=
open_table
(
thd
,
!
(
tables
->
table
=
open_table
(
thd
,
tables
->
db
,
tables
->
db
,
tables
->
real_name
,
tables
->
real_name
,
tables
->
name
,
&
refresh
)))
tables
->
alias
,
&
refresh
)))
{
{
if
(
refresh
)
// Refresh in progress
if
(
refresh
)
// Refresh in progress
{
{
...
@@ -1415,7 +1415,7 @@ TABLE *open_ltable(THD *thd, TABLE_LIST *table_list, thr_lock_type lock_type)
...
@@ -1415,7 +1415,7 @@ TABLE *open_ltable(THD *thd, TABLE_LIST *table_list, thr_lock_type lock_type)
thd
->
proc_info
=
"Opening table"
;
thd
->
proc_info
=
"Opening table"
;
while
(
!
(
table
=
open_table
(
thd
,
table_list
->
db
,
while
(
!
(
table
=
open_table
(
thd
,
table_list
->
db
,
table_list
->
real_name
,
table_list
->
name
,
table_list
->
real_name
,
table_list
->
alias
,
&
refresh
))
&&
refresh
)
;
&
refresh
))
&&
refresh
)
;
if
(
table
)
if
(
table
)
{
{
...
@@ -1439,7 +1439,7 @@ TABLE *open_ltable(THD *thd, TABLE_LIST *table_list, thr_lock_type lock_type)
...
@@ -1439,7 +1439,7 @@ TABLE *open_ltable(THD *thd, TABLE_LIST *table_list, thr_lock_type lock_type)
{
{
my_printf_error
(
ER_TABLE_NOT_LOCKED_FOR_WRITE
,
my_printf_error
(
ER_TABLE_NOT_LOCKED_FOR_WRITE
,
ER
(
ER_TABLE_NOT_LOCKED_FOR_WRITE
),
ER
(
ER_TABLE_NOT_LOCKED_FOR_WRITE
),
MYF
(
0
),
table_list
->
name
);
MYF
(
0
),
table_list
->
alias
);
table
=
0
;
table
=
0
;
}
}
else
if
((
error
=
table
->
file
->
start_stmt
(
thd
)))
else
if
((
error
=
table
->
file
->
start_stmt
(
thd
)))
...
@@ -1635,7 +1635,7 @@ find_field_in_tables(THD *thd,Item_field *item,TABLE_LIST *tables)
...
@@ -1635,7 +1635,7 @@ find_field_in_tables(THD *thd,Item_field *item,TABLE_LIST *tables)
bool
found_table
=
0
;
bool
found_table
=
0
;
for
(;
tables
;
tables
=
tables
->
next
)
for
(;
tables
;
tables
=
tables
->
next
)
{
{
if
(
!
strcmp
(
tables
->
name
,
table_name
)
&&
if
(
!
strcmp
(
tables
->
alias
,
table_name
)
&&
(
!
db
||
!
strcmp
(
db
,
tables
->
db
)))
(
!
db
||
!
strcmp
(
db
,
tables
->
db
)))
{
{
found_table
=
1
;
found_table
=
1
;
...
@@ -1900,7 +1900,7 @@ insert_fields(THD *thd,TABLE_LIST *tables, const char *db_name,
...
@@ -1900,7 +1900,7 @@ insert_fields(THD *thd,TABLE_LIST *tables, const char *db_name,
if
(
grant_option
&&
!
thd
->
master_access
&&
if
(
grant_option
&&
!
thd
->
master_access
&&
check_grant_all_columns
(
thd
,
SELECT_ACL
,
table
)
)
check_grant_all_columns
(
thd
,
SELECT_ACL
,
table
)
)
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
-
1
);
if
(
!
table_name
||
(
!
strcmp
(
table_name
,
tables
->
name
)
&&
if
(
!
table_name
||
(
!
strcmp
(
table_name
,
tables
->
alias
)
&&
(
!
db_name
||
!
strcmp
(
tables
->
db
,
db_name
))))
(
!
db_name
||
!
strcmp
(
tables
->
db
,
db_name
))))
{
{
Field
**
ptr
=
table
->
field
,
*
field
;
Field
**
ptr
=
table
->
field
,
*
field
;
...
...
sql/sql_cache.cc
View file @
8a5ef8dc
...
@@ -963,12 +963,12 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
...
@@ -963,12 +963,12 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
Query_cache_table
*
table
=
block_table
->
parent
;
Query_cache_table
*
table
=
block_table
->
parent
;
table_list
.
db
=
table
->
db
();
table_list
.
db
=
table
->
db
();
table_list
.
name
=
table_list
.
real_name
=
table
->
table
();
table_list
.
alias
=
table_list
.
real_name
=
table
->
table
();
if
(
check_table_access
(
thd
,
SELECT_ACL
,
&
table_list
,
1
))
if
(
check_table_access
(
thd
,
SELECT_ACL
,
&
table_list
,
1
))
{
{
DBUG_PRINT
(
"qcache"
,
DBUG_PRINT
(
"qcache"
,
(
"probably no SELECT access to %s.%s => return to normal processing"
,
(
"probably no SELECT access to %s.%s => return to normal processing"
,
table_list
.
db
,
table_list
.
name
));
table_list
.
db
,
table_list
.
alias
));
refused
++
;
// This is actually a hit
refused
++
;
// This is actually a hit
STRUCT_UNLOCK
(
&
structure_guard_mutex
);
STRUCT_UNLOCK
(
&
structure_guard_mutex
);
thd
->
safe_to_cache_query
=
0
;
// Don't try to cache this
thd
->
safe_to_cache_query
=
0
;
// Don't try to cache this
...
@@ -978,7 +978,7 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
...
@@ -978,7 +978,7 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
if
(
table_list
.
grant
.
want_privilege
)
if
(
table_list
.
grant
.
want_privilege
)
{
{
DBUG_PRINT
(
"qcache"
,
(
"Need to check column privileges for %s.%s"
,
DBUG_PRINT
(
"qcache"
,
(
"Need to check column privileges for %s.%s"
,
table_list
.
db
,
table_list
.
name
));
table_list
.
db
,
table_list
.
alias
));
BLOCK_UNLOCK_RD
(
query_block
);
BLOCK_UNLOCK_RD
(
query_block
);
thd
->
safe_to_cache_query
=
0
;
// Don't try to cache this
thd
->
safe_to_cache_query
=
0
;
// Don't try to cache this
goto
err_unlock
;
// Parse query
goto
err_unlock
;
// Parse query
...
...
sql/sql_handler.cc
View file @
8a5ef8dc
...
@@ -57,7 +57,7 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
...
@@ -57,7 +57,7 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
// there can be only one table in *tables
// there can be only one table in *tables
if
(
!
(
tables
->
table
->
file
->
table_flags
()
&
HA_CAN_SQL_HANDLER
))
if
(
!
(
tables
->
table
->
file
->
table_flags
()
&
HA_CAN_SQL_HANDLER
))
{
{
my_printf_error
(
ER_ILLEGAL_HA
,
ER
(
ER_ILLEGAL_HA
),
MYF
(
0
),
tables
->
name
);
my_printf_error
(
ER_ILLEGAL_HA
,
ER
(
ER_ILLEGAL_HA
),
MYF
(
0
),
tables
->
alias
);
mysql_ha_close
(
thd
,
tables
,
1
);
mysql_ha_close
(
thd
,
tables
,
1
);
return
-
1
;
return
-
1
;
}
}
...
@@ -68,7 +68,7 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
...
@@ -68,7 +68,7 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
int
mysql_ha_close
(
THD
*
thd
,
TABLE_LIST
*
tables
,
bool
dont_send_ok
)
int
mysql_ha_close
(
THD
*
thd
,
TABLE_LIST
*
tables
,
bool
dont_send_ok
)
{
{
TABLE
**
ptr
=
find_table_ptr_by_name
(
thd
,
tables
->
db
,
tables
->
name
);
TABLE
**
ptr
=
find_table_ptr_by_name
(
thd
,
tables
->
db
,
tables
->
alias
);
if
(
*
ptr
)
if
(
*
ptr
)
{
{
...
@@ -79,7 +79,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
...
@@ -79,7 +79,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
else
else
{
{
my_printf_error
(
ER_UNKNOWN_TABLE
,
ER
(
ER_UNKNOWN_TABLE
),
MYF
(
0
),
my_printf_error
(
ER_UNKNOWN_TABLE
,
ER
(
ER_UNKNOWN_TABLE
),
MYF
(
0
),
tables
->
name
,
"HANDLER"
);
tables
->
alias
,
"HANDLER"
);
return
-
1
;
return
-
1
;
}
}
if
(
!
dont_send_ok
)
if
(
!
dont_send_ok
)
...
@@ -97,11 +97,11 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -97,11 +97,11 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
ha_rows
select_limit
,
ha_rows
offset_limit
)
ha_rows
select_limit
,
ha_rows
offset_limit
)
{
{
int
err
,
keyno
=-
1
;
int
err
,
keyno
=-
1
;
TABLE
*
table
=*
find_table_ptr_by_name
(
thd
,
tables
->
db
,
tables
->
name
);
TABLE
*
table
=*
find_table_ptr_by_name
(
thd
,
tables
->
db
,
tables
->
alias
);
if
(
!
table
)
if
(
!
table
)
{
{
my_printf_error
(
ER_UNKNOWN_TABLE
,
ER
(
ER_UNKNOWN_TABLE
),
MYF
(
0
),
my_printf_error
(
ER_UNKNOWN_TABLE
,
ER
(
ER_UNKNOWN_TABLE
),
MYF
(
0
),
tables
->
name
,
"HANDLER"
);
tables
->
alias
,
"HANDLER"
);
return
-
1
;
return
-
1
;
}
}
tables
->
table
=
table
;
tables
->
table
=
table
;
...
@@ -114,7 +114,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -114,7 +114,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
if
((
keyno
=
find_type
(
keyname
,
&
table
->
keynames
,
1
+
2
)
-
1
)
<
0
)
if
((
keyno
=
find_type
(
keyname
,
&
table
->
keynames
,
1
+
2
)
-
1
)
<
0
)
{
{
my_printf_error
(
ER_KEY_DOES_NOT_EXITS
,
ER
(
ER_KEY_DOES_NOT_EXITS
),
MYF
(
0
),
my_printf_error
(
ER_KEY_DOES_NOT_EXITS
,
ER
(
ER_KEY_DOES_NOT_EXITS
),
MYF
(
0
),
keyname
,
tables
->
name
);
keyname
,
tables
->
alias
);
return
-
1
;
return
-
1
;
}
}
table
->
file
->
index_init
(
keyno
);
table
->
file
->
index_init
(
keyno
);
...
@@ -126,7 +126,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -126,7 +126,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
uint
num_rows
;
uint
num_rows
;
it
++
;
it
++
;
insert_fields
(
thd
,
tables
,
tables
->
db
,
tables
->
name
,
&
it
);
insert_fields
(
thd
,
tables
,
tables
->
db
,
tables
->
alias
,
&
it
);
table
->
file
->
init_table_handle_for_HANDLER
();
// Only InnoDB requires it
table
->
file
->
init_table_handle_for_HANDLER
();
// Only InnoDB requires it
...
@@ -258,7 +258,7 @@ err0:
...
@@ -258,7 +258,7 @@ err0:
here for alias, not real table name
here for alias, not real table name
*/
*/
static
TABLE
**
find_table_ptr_by_name
(
THD
*
thd
,
const
char
*
db
,
static
TABLE
**
find_table_ptr_by_name
(
THD
*
thd
,
const
char
*
db
,
const
char
*
table_name
)
const
char
*
alias
)
{
{
int
dblen
;
int
dblen
;
TABLE
**
ptr
;
TABLE
**
ptr
;
...
@@ -271,7 +271,7 @@ static TABLE **find_table_ptr_by_name(THD *thd, const char *db,
...
@@ -271,7 +271,7 @@ static TABLE **find_table_ptr_by_name(THD *thd, const char *db,
for
(
TABLE
*
table
=*
ptr
;
table
;
table
=*
ptr
)
for
(
TABLE
*
table
=*
ptr
;
table
;
table
=*
ptr
)
{
{
if
(
!
memcmp
(
table
->
table_cache_key
,
db
,
dblen
)
&&
if
(
!
memcmp
(
table
->
table_cache_key
,
db
,
dblen
)
&&
!
my_strcasecmp
(
table
->
table_name
,
table_name
))
!
my_strcasecmp
(
table
->
table_name
,
alias
))
break
;
break
;
ptr
=&
(
table
->
next
);
ptr
=&
(
table
->
next
);
}
}
...
...
sql/sql_insert.cc
View file @
8a5ef8dc
...
@@ -74,7 +74,7 @@ check_insert_fields(THD *thd,TABLE *table,List<Item> &fields,
...
@@ -74,7 +74,7 @@ check_insert_fields(THD *thd,TABLE *table,List<Item> &fields,
TABLE_LIST
table_list
;
TABLE_LIST
table_list
;
bzero
((
char
*
)
&
table_list
,
sizeof
(
table_list
));
bzero
((
char
*
)
&
table_list
,
sizeof
(
table_list
));
table_list
.
db
=
table
->
table_cache_key
;
table_list
.
db
=
table
->
table_cache_key
;
table_list
.
name
=
table
->
table_name
;
table_list
.
real_name
=
table_list
.
alias
=
table
->
table_name
;
table_list
.
table
=
table
;
table_list
.
table
=
table
;
table_list
.
grant
=
table
->
grant
;
table_list
.
grant
=
table
->
grant
;
...
@@ -655,7 +655,7 @@ static TABLE *delayed_get_table(THD *thd,TABLE_LIST *table_list)
...
@@ -655,7 +655,7 @@ static TABLE *delayed_get_table(THD *thd,TABLE_LIST *table_list)
}
}
tmp
->
table_list
=
*
table_list
;
// Needed to open table
tmp
->
table_list
=
*
table_list
;
// Needed to open table
tmp
->
table_list
.
db
=
tmp
->
thd
.
db
;
tmp
->
table_list
.
db
=
tmp
->
thd
.
db
;
tmp
->
table_list
.
name
=
tmp
->
table_list
.
real_name
=
tmp
->
thd
.
query
;
tmp
->
table_list
.
alias
=
tmp
->
table_list
.
real_name
=
tmp
->
thd
.
query
;
tmp
->
lock
();
tmp
->
lock
();
pthread_mutex_lock
(
&
tmp
->
mutex
);
pthread_mutex_lock
(
&
tmp
->
mutex
);
if
((
error
=
pthread_create
(
&
tmp
->
thd
.
real_id
,
&
connection_attrib
,
if
((
error
=
pthread_create
(
&
tmp
->
thd
.
real_id
,
&
connection_attrib
,
...
...
sql/sql_parse.cc
View file @
8a5ef8dc
...
@@ -804,7 +804,7 @@ int mysql_table_dump(THD* thd, char* db, char* tbl_name, int fd)
...
@@ -804,7 +804,7 @@ int mysql_table_dump(THD* thd, char* db, char* tbl_name, int fd)
if
(
!
(
table_list
=
(
TABLE_LIST
*
)
thd
->
calloc
(
sizeof
(
TABLE_LIST
))))
if
(
!
(
table_list
=
(
TABLE_LIST
*
)
thd
->
calloc
(
sizeof
(
TABLE_LIST
))))
DBUG_RETURN
(
1
);
// out of memory
DBUG_RETURN
(
1
);
// out of memory
table_list
->
db
=
db
;
table_list
->
db
=
db
;
table_list
->
real_name
=
table_list
->
name
=
tbl_name
;
table_list
->
real_name
=
table_list
->
alias
=
tbl_name
;
table_list
->
lock_type
=
TL_READ_NO_INSERT
;
table_list
->
lock_type
=
TL_READ_NO_INSERT
;
table_list
->
next
=
0
;
table_list
->
next
=
0
;
remove_escape
(
table_list
->
real_name
);
remove_escape
(
table_list
->
real_name
);
...
@@ -1022,7 +1022,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
...
@@ -1022,7 +1022,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
break
;
break
;
}
}
thd
->
free_list
=
0
;
thd
->
free_list
=
0
;
table_list
.
name
=
table_list
.
real_name
=
thd
->
strdup
(
packet
);
table_list
.
alias
=
table_list
.
real_name
=
thd
->
strdup
(
packet
);
packet
=
strend
(
packet
)
+
1
;
packet
=
strend
(
packet
)
+
1
;
// command not cachable => no gap for data base name
// command not cachable => no gap for data base name
if
(
!
(
thd
->
query
=
fields
=
thd
->
memdup
(
packet
,
thd
->
query_length
+
1
)))
if
(
!
(
thd
->
query
=
fields
=
thd
->
memdup
(
packet
,
thd
->
query_length
+
1
)))
...
@@ -1485,9 +1485,9 @@ mysql_execute_command(void)
...
@@ -1485,9 +1485,9 @@ mysql_execute_command(void)
if
(
error
)
if
(
error
)
goto
error
;
goto
error
;
}
}
if
(
strlen
(
tables
->
name
)
>
NAME_LEN
)
if
(
strlen
(
tables
->
real_
name
)
>
NAME_LEN
)
{
{
net_printf
(
&
thd
->
net
,
ER_WRONG_TABLE_NAME
,
tables
->
name
);
net_printf
(
&
thd
->
net
,
ER_WRONG_TABLE_NAME
,
tables
->
real_
name
);
break
;
break
;
}
}
LOCK_ACTIVE_MI
;
LOCK_ACTIVE_MI
;
...
@@ -1521,9 +1521,9 @@ mysql_execute_command(void)
...
@@ -1521,9 +1521,9 @@ mysql_execute_command(void)
if
(
error
)
if
(
error
)
goto
error
;
goto
error
;
}
}
if
(
strlen
(
tables
->
name
)
>
NAME_LEN
)
if
(
strlen
(
tables
->
real_
name
)
>
NAME_LEN
)
{
{
net_printf
(
&
thd
->
net
,
ER_WRONG_TABLE_NAME
,
tables
->
name
);
net_printf
(
&
thd
->
net
,
ER_WRONG_TABLE_NAME
,
tables
->
alias
);
res
=
0
;
res
=
0
;
break
;
break
;
}
}
...
@@ -1532,9 +1532,9 @@ mysql_execute_command(void)
...
@@ -1532,9 +1532,9 @@ mysql_execute_command(void)
#else
#else
/* Fix names if symlinked tables */
/* Fix names if symlinked tables */
if
(
append_file_to_dir
(
thd
,
&
lex
->
create_info
.
data_file_name
,
if
(
append_file_to_dir
(
thd
,
&
lex
->
create_info
.
data_file_name
,
tables
->
name
)
||
tables
->
real_
name
)
||
append_file_to_dir
(
thd
,
&
lex
->
create_info
.
index_file_name
,
append_file_to_dir
(
thd
,
&
lex
->
create_info
.
index_file_name
,
tables
->
name
))
tables
->
real_
name
))
{
{
res
=-
1
;
res
=-
1
;
break
;
break
;
...
@@ -2135,7 +2135,7 @@ mysql_execute_command(void)
...
@@ -2135,7 +2135,7 @@ mysql_execute_command(void)
goto
error
;
/* purecov: inspected */
goto
error
;
/* purecov: inspected */
}
}
remove_escape
(
db
);
// Fix escaped '_'
remove_escape
(
db
);
// Fix escaped '_'
remove_escape
(
tables
->
name
);
remove_escape
(
tables
->
real_
name
);
if
(
check_access
(
thd
,
SELECT_ACL
|
EXTRA_ACL
,
db
,
&
thd
->
col_access
))
if
(
check_access
(
thd
,
SELECT_ACL
|
EXTRA_ACL
,
db
,
&
thd
->
col_access
))
goto
error
;
/* purecov: inspected */
goto
error
;
/* purecov: inspected */
tables
->
grant
.
privilege
=
thd
->
col_access
;
tables
->
grant
.
privilege
=
thd
->
col_access
;
...
@@ -2160,7 +2160,7 @@ mysql_execute_command(void)
...
@@ -2160,7 +2160,7 @@ mysql_execute_command(void)
goto
error
;
/* purecov: inspected */
goto
error
;
/* purecov: inspected */
}
}
remove_escape
(
db
);
// Fix escaped '_'
remove_escape
(
db
);
// Fix escaped '_'
remove_escape
(
tables
->
name
);
remove_escape
(
tables
->
real_
name
);
if
(
!
tables
->
db
)
if
(
!
tables
->
db
)
tables
->
db
=
thd
->
db
;
tables
->
db
=
thd
->
db
;
if
(
check_access
(
thd
,
SELECT_ACL
,
db
,
&
thd
->
col_access
))
if
(
check_access
(
thd
,
SELECT_ACL
,
db
,
&
thd
->
col_access
))
...
@@ -3218,7 +3218,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
...
@@ -3218,7 +3218,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
ptr
->
db_length
=
0
;
ptr
->
db_length
=
0
;
}
}
ptr
->
name
=
alias_str
;
ptr
->
alias
=
alias_str
;
if
(
lower_case_table_names
)
if
(
lower_case_table_names
)
{
{
casedn_str
(
ptr
->
db
);
casedn_str
(
ptr
->
db
);
...
@@ -3242,7 +3242,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
...
@@ -3242,7 +3242,7 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
tables
;
tables
;
tables
=
tables
->
next
)
tables
=
tables
->
next
)
{
{
if
(
!
strcmp
(
alias_str
,
tables
->
name
)
&&
!
strcmp
(
ptr
->
db
,
tables
->
db
))
if
(
!
strcmp
(
alias_str
,
tables
->
alias
)
&&
!
strcmp
(
ptr
->
db
,
tables
->
db
))
{
{
net_printf
(
&
thd
->
net
,
ER_NONUNIQ_TABLE
,
alias_str
);
/* purecov: tested */
net_printf
(
&
thd
->
net
,
ER_NONUNIQ_TABLE
,
alias_str
);
/* purecov: tested */
DBUG_RETURN
(
0
);
/* purecov: tested */
DBUG_RETURN
(
0
);
/* purecov: tested */
...
@@ -3291,7 +3291,7 @@ static bool create_total_list(THD *thd, LEX *lex, TABLE_LIST **result)
...
@@ -3291,7 +3291,7 @@ static bool create_total_list(THD *thd, LEX *lex, TABLE_LIST **result)
for
(
cursor
=
*
result
;
cursor
;
cursor
=
cursor
->
next
)
for
(
cursor
=
*
result
;
cursor
;
cursor
=
cursor
->
next
)
if
(
!
strcmp
(
cursor
->
db
,
aux
->
db
)
&&
if
(
!
strcmp
(
cursor
->
db
,
aux
->
db
)
&&
!
strcmp
(
cursor
->
real_name
,
aux
->
real_name
)
&&
!
strcmp
(
cursor
->
real_name
,
aux
->
real_name
)
&&
!
strcmp
(
cursor
->
name
,
aux
->
name
))
!
strcmp
(
cursor
->
alias
,
aux
->
alias
))
break
;
break
;
if
(
!
cursor
)
if
(
!
cursor
)
{
{
...
...
sql/sql_show.cc
View file @
8a5ef8dc
...
@@ -307,7 +307,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
...
@@ -307,7 +307,7 @@ int mysqld_extend_show_tables(THD *thd,const char *db,const char *wild)
packet
->
length
(
0
);
packet
->
length
(
0
);
net_store_data
(
packet
,
convert
,
file_name
);
net_store_data
(
packet
,
convert
,
file_name
);
table_list
.
db
=
(
char
*
)
db
;
table_list
.
db
=
(
char
*
)
db
;
table_list
.
real_name
=
table_list
.
name
=
file_name
;
table_list
.
real_name
=
table_list
.
alias
=
file_name
;
if
(
!
(
table
=
open_ltable
(
thd
,
&
table_list
,
TL_READ
)))
if
(
!
(
table
=
open_ltable
(
thd
,
&
table_list
,
TL_READ
)))
{
{
for
(
uint
i
=
0
;
i
<
field_list
.
elements
;
i
++
)
for
(
uint
i
=
0
;
i
<
field_list
.
elements
;
i
++
)
...
...
sql/sql_table.cc
View file @
8a5ef8dc
...
@@ -905,7 +905,7 @@ static int send_check_errmsg(THD* thd, TABLE_LIST* table,
...
@@ -905,7 +905,7 @@ static int send_check_errmsg(THD* thd, TABLE_LIST* table,
String
*
packet
=
&
thd
->
packet
;
String
*
packet
=
&
thd
->
packet
;
packet
->
length
(
0
);
packet
->
length
(
0
);
net_store_data
(
packet
,
table
->
name
);
net_store_data
(
packet
,
table
->
alias
);
net_store_data
(
packet
,
(
char
*
)
operator_name
);
net_store_data
(
packet
,
(
char
*
)
operator_name
);
net_store_data
(
packet
,
"error"
);
net_store_data
(
packet
,
"error"
);
net_store_data
(
packet
,
errmsg
);
net_store_data
(
packet
,
errmsg
);
...
@@ -993,7 +993,7 @@ static int prepare_for_repair(THD* thd, TABLE_LIST* table,
...
@@ -993,7 +993,7 @@ static int prepare_for_repair(THD* thd, TABLE_LIST* table,
char
from
[
FN_REFLEN
],
tmp
[
FN_REFLEN
];
char
from
[
FN_REFLEN
],
tmp
[
FN_REFLEN
];
char
*
db
=
thd
->
db
?
thd
->
db
:
table
->
db
;
char
*
db
=
thd
->
db
?
thd
->
db
:
table
->
db
;
sprintf
(
from
,
"%s/%s/%s"
,
mysql_real_data_home
,
db
,
table
->
name
);
sprintf
(
from
,
"%s/%s/%s"
,
mysql_real_data_home
,
db
,
table
->
real_
name
);
fn_format
(
from
,
from
,
""
,
MI_NAME_DEXT
,
4
);
fn_format
(
from
,
from
,
""
,
MI_NAME_DEXT
,
4
);
sprintf
(
tmp
,
"%s-%lx_%lx"
,
from
,
current_pid
,
thd
->
thread_id
);
sprintf
(
tmp
,
"%s-%lx_%lx"
,
from
,
current_pid
,
thd
->
thread_id
);
...
@@ -1077,7 +1077,7 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables,
...
@@ -1077,7 +1077,7 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables,
char
table_name
[
NAME_LEN
*
2
+
2
];
char
table_name
[
NAME_LEN
*
2
+
2
];
char
*
db
=
(
table
->
db
)
?
table
->
db
:
thd
->
db
;
char
*
db
=
(
table
->
db
)
?
table
->
db
:
thd
->
db
;
bool
fatal_error
=
0
;
bool
fatal_error
=
0
;
strxmov
(
table_name
,
db
?
db
:
""
,
"."
,
table
->
name
,
NullS
);
strxmov
(
table_name
,
db
?
db
:
""
,
"."
,
table
->
real_
name
,
NullS
);
thd
->
open_options
|=
extra_open_options
;
thd
->
open_options
|=
extra_open_options
;
table
->
table
=
open_ltable
(
thd
,
table
,
lock_type
);
table
->
table
=
open_ltable
(
thd
,
table
,
lock_type
);
...
@@ -1985,7 +1985,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
...
@@ -1985,7 +1985,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
MYF
(
MY_FAE
|
MY_ZEROFILL
));
MYF
(
MY_FAE
|
MY_ZEROFILL
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
.
table
=
from
;
tables
.
table
=
from
;
tables
.
name
=
tables
.
real_name
=
from
->
real_name
;
tables
.
alias
=
tables
.
real_name
=
from
->
real_name
;
tables
.
db
=
from
->
table_cache_key
;
tables
.
db
=
from
->
table_cache_key
;
error
=
1
;
error
=
1
;
...
...
sql/sql_udf.cc
View file @
8a5ef8dc
...
@@ -141,7 +141,7 @@ void udf_init()
...
@@ -141,7 +141,7 @@ void udf_init()
new_thd
->
db_length
=
5
;
new_thd
->
db_length
=
5
;
bzero
((
gptr
)
&
tables
,
sizeof
(
tables
));
bzero
((
gptr
)
&
tables
,
sizeof
(
tables
));
tables
.
name
=
tables
.
real_name
=
(
char
*
)
"func"
;
tables
.
alias
=
tables
.
real_name
=
(
char
*
)
"func"
;
tables
.
lock_type
=
TL_READ
;
tables
.
lock_type
=
TL_READ
;
tables
.
db
=
new_thd
->
db
;
tables
.
db
=
new_thd
->
db
;
...
@@ -415,7 +415,7 @@ int mysql_create_function(THD *thd,udf_func *udf)
...
@@ -415,7 +415,7 @@ int mysql_create_function(THD *thd,udf_func *udf)
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
.
db
=
(
char
*
)
"mysql"
;
tables
.
db
=
(
char
*
)
"mysql"
;
tables
.
real_name
=
tables
.
name
=
(
char
*
)
"func"
;
tables
.
real_name
=
tables
.
alias
=
(
char
*
)
"func"
;
/* Allow creation of functions even if we can't open func table */
/* Allow creation of functions even if we can't open func table */
if
(
!
(
table
=
open_ltable
(
thd
,
&
tables
,
TL_WRITE
)))
if
(
!
(
table
=
open_ltable
(
thd
,
&
tables
,
TL_WRITE
)))
goto
err
;
goto
err
;
...
@@ -474,7 +474,7 @@ int mysql_drop_function(THD *thd,const char *udf_name)
...
@@ -474,7 +474,7 @@ int mysql_drop_function(THD *thd,const char *udf_name)
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
bzero
((
char
*
)
&
tables
,
sizeof
(
tables
));
tables
.
db
=
(
char
*
)
"mysql"
;
tables
.
db
=
(
char
*
)
"mysql"
;
tables
.
real_name
=
tables
.
name
=
(
char
*
)
"func"
;
tables
.
real_name
=
tables
.
alias
=
(
char
*
)
"func"
;
if
(
!
(
table
=
open_ltable
(
thd
,
&
tables
,
TL_WRITE
)))
if
(
!
(
table
=
open_ltable
(
thd
,
&
tables
,
TL_WRITE
)))
goto
err
;
goto
err
;
if
(
!
table
->
file
->
index_read_idx
(
table
->
record
[
0
],
0
,(
byte
*
)
udf_name
,
if
(
!
table
->
file
->
index_read_idx
(
table
->
record
[
0
],
0
,(
byte
*
)
udf_name
,
...
...
sql/sql_union.cc
View file @
8a5ef8dc
...
@@ -130,7 +130,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
...
@@ -130,7 +130,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
table
->
file
->
extra
(
HA_EXTRA_IGNORE_DUP_KEY
);
table
->
file
->
extra
(
HA_EXTRA_IGNORE_DUP_KEY
);
bzero
((
char
*
)
&
result_table_list
,
sizeof
(
result_table_list
));
bzero
((
char
*
)
&
result_table_list
,
sizeof
(
result_table_list
));
result_table_list
.
db
=
(
char
*
)
""
;
result_table_list
.
db
=
(
char
*
)
""
;
result_table_list
.
real_name
=
result_table_list
.
name
=
(
char
*
)
"union"
;
result_table_list
.
real_name
=
result_table_list
.
alias
=
(
char
*
)
"union"
;
result_table_list
.
table
=
table
;
result_table_list
.
table
=
table
;
if
(
!
(
union_result
=
new
select_union
(
table
)))
if
(
!
(
union_result
=
new
select_union
(
table
)))
...
...
sql/sql_yacc.yy
View file @
8a5ef8dc
...
@@ -2033,8 +2033,8 @@ join_table_list:
...
@@ -2033,8 +2033,8 @@ join_table_list:
| join_table_list INNER_SYM JOIN_SYM join_table
| join_table_list INNER_SYM JOIN_SYM join_table
{
{
SELECT_LEX *sel=Select;
SELECT_LEX *sel=Select;
sel->db1=$1->db; sel->table1=$1->
name
;
sel->db1=$1->db; sel->table1=$1->
alias
;
sel->db2=$4->db; sel->table2=$4->
name
;
sel->db2=$4->db; sel->table2=$4->
alias
;
}
}
USING '(' using_list ')'
USING '(' using_list ')'
{ add_join_on($4,$8); $$=$4; }
{ add_join_on($4,$8); $$=$4; }
...
@@ -2043,8 +2043,8 @@ join_table_list:
...
@@ -2043,8 +2043,8 @@ join_table_list:
| join_table_list LEFT opt_outer JOIN_SYM join_table
| join_table_list LEFT opt_outer JOIN_SYM join_table
{
{
SELECT_LEX *sel=Select;
SELECT_LEX *sel=Select;
sel->db1=$1->db; sel->table1=$1->
name
;
sel->db1=$1->db; sel->table1=$1->
alias
;
sel->db2=$5->db; sel->table2=$5->
name
;
sel->db2=$5->db; sel->table2=$5->
alias
;
}
}
USING '(' using_list ')'
USING '(' using_list ')'
{ add_join_on($5,$9); $5->outer_join|=JOIN_TYPE_LEFT; $$=$5; }
{ add_join_on($5,$9); $5->outer_join|=JOIN_TYPE_LEFT; $$=$5; }
...
@@ -2055,8 +2055,8 @@ join_table_list:
...
@@ -2055,8 +2055,8 @@ join_table_list:
| join_table_list RIGHT opt_outer JOIN_SYM join_table
| join_table_list RIGHT opt_outer JOIN_SYM join_table
{
{
SELECT_LEX *sel=Select;
SELECT_LEX *sel=Select;
sel->db1=$1->db; sel->table1=$1->
name
;
sel->db1=$1->db; sel->table1=$1->
alias
;
sel->db2=$5->db; sel->table2=$5->
name
;
sel->db2=$5->db; sel->table2=$5->
alias
;
}
}
USING '(' using_list ')'
USING '(' using_list ')'
{ add_join_on($1,$9); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$1; }
{ add_join_on($1,$9); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$1; }
...
...
sql/table.h
View file @
8a5ef8dc
...
@@ -138,20 +138,20 @@ struct st_table {
...
@@ -138,20 +138,20 @@ struct st_table {
typedef
struct
st_table_list
typedef
struct
st_table_list
{
{
struct
st_table_list
*
next
;
struct
st_table_list
*
next
;
char
*
db
,
*
name
,
*
real_name
;
char
*
db
,
*
alias
,
*
real_name
;
uint32
db_length
,
real_name_length
;
Item
*
on_expr
;
/* Used with outer join */
Item
*
on_expr
;
/* Used with outer join */
struct
st_table_list
*
natural_join
;
/* natural join on this table*/
struct
st_table_list
*
natural_join
;
/* natural join on this table*/
/* ... join ... USE INDEX ... IGNORE INDEX */
/* ... join ... USE INDEX ... IGNORE INDEX */
List
<
String
>
*
use_index
,
*
ignore_index
;
List
<
String
>
*
use_index
,
*
ignore_index
;
TABLE
*
table
;
TABLE
*
table
;
GRANT_INFO
grant
;
GRANT_INFO
grant
;
thr_lock_type
lock_type
;
thr_lock_type
lock_type
;
uint
outer_join
;
/* Which join type */
uint
outer_join
;
/* Which join type */
bool
straight
;
/* optimize with prev table */
uint32
db_length
,
real_name_length
;
bool
updating
;
/* for replicate-do/ignore table */
bool
straight
;
/* optimize with prev table */
bool
shared
;
/* Used twice in union */
bool
updating
;
/* for replicate-do/ignore table */
bool
do_redirect
;
/* To get the struct in UNION's */
bool
shared
;
/* Used twice in union */
bool
do_redirect
;
/* To get the struct in UNION's */
}
TABLE_LIST
;
}
TABLE_LIST
;
...
...
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