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
fb25dc11
Commit
fb25dc11
authored
Jan 20, 2006
by
cps@outpost.site
Browse files
Options
Browse Files
Download
Plain Diff
Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into outpost.site:/home/cps/mysql/devel/test-6
parents
9d3f0364
c08d4aa7
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
103 additions
and
34 deletions
+103
-34
config/ac-macros/storage.m4
config/ac-macros/storage.m4
+4
-1
configure.in
configure.in
+2
-2
sql/ha_myisam.cc
sql/ha_myisam.cc
+4
-1
sql/ha_myisam.h
sql/ha_myisam.h
+4
-1
sql/handler.cc
sql/handler.cc
+6
-0
sql/handler.h
sql/handler.h
+9
-1
sql/item.h
sql/item.h
+2
-1
sql/lock.cc
sql/lock.cc
+5
-2
sql/mysql_priv.h
sql/mysql_priv.h
+14
-0
sql/sql_class.cc
sql/sql_class.cc
+19
-0
sql/sql_class.h
sql/sql_class.h
+5
-1
sql/sql_lex.h
sql/sql_lex.h
+6
-0
storage/csv/Makefile.am
storage/csv/Makefile.am
+6
-7
storage/csv/ha_tina.cc
storage/csv/ha_tina.cc
+13
-16
storage/csv/ha_tina.h
storage/csv/ha_tina.h
+4
-1
No files found.
config/ac-macros/storage.m4
View file @
fb25dc11
...
...
@@ -39,7 +39,10 @@ then
AC_DEFINE([$5])
mysql_se_decls="${mysql_se_decls},$6"
mysql_se_htons="${mysql_se_htons},&$6"
mysql_se_objs="$mysql_se_objs $8"
if test "$8" != "no"
then
mysql_se_objs="$mysql_se_objs $8"
fi
mysql_se_dirs="$mysql_se_dirs $7"
mysql_se_libs="$mysql_se_libs $9"
else
...
...
configure.in
View file @
fb25dc11
...
...
@@ -2437,8 +2437,8 @@ MYSQL_STORAGE_ENGINE(archive,,,,,,storage/archive,,
\$
(
top_builddir
)
/storage/archive/libarchive.a,
[
AC_CONFIG_FILES
(
storage/archive/Makefile
)
])
MYSQL_STORAGE_ENGINE
(
csv,,,
"yes"
,,tina_hton,storage/csv,
../storage/csv/ha_tina.o,
,[
MYSQL_STORAGE_ENGINE
(
csv,,,
"yes"
,,tina_hton,storage/csv,
no,
\$
(
top_builddir
)
/storage/csv/libcsv.a
,[
AC_CONFIG_FILES
(
storage/csv/Makefile
)
])
MYSQL_STORAGE_ENGINE
(
blackhole
)
...
...
sql/ha_myisam.cc
View file @
fb25dc11
...
...
@@ -296,7 +296,10 @@ err:
#endif
/* HAVE_REPLICATION */
bool
ha_myisam
::
check_if_locking_is_allowed
(
THD
*
thd
,
TABLE
*
table
,
uint
count
)
bool
ha_myisam
::
check_if_locking_is_allowed
(
uint
sql_command
,
ulong
type
,
TABLE
*
table
,
uint
count
,
bool
called_by_logger_thread
)
{
/*
To be able to open and lock for reading system tables like 'mysql.proc',
...
...
sql/ha_myisam.h
View file @
fb25dc11
...
...
@@ -60,7 +60,10 @@ class ha_myisam: public handler
uint
max_supported_key_part_length
()
const
{
return
MI_MAX_KEY_LENGTH
;
}
uint
checksum
()
const
;
virtual
bool
check_if_locking_is_allowed
(
THD
*
thd
,
TABLE
*
table
,
uint
count
);
virtual
bool
check_if_locking_is_allowed
(
uint
sql_command
,
ulong
type
,
TABLE
*
table
,
uint
count
,
bool
called_by_logger_thread
);
int
open
(
const
char
*
name
,
int
mode
,
uint
test_if_locked
);
int
close
(
void
);
int
write_row
(
byte
*
buf
);
...
...
sql/handler.cc
View file @
fb25dc11
...
...
@@ -1425,6 +1425,12 @@ int ha_delete_table(THD *thd, handlerton *table_type, const char *path,
** General handler functions
****************************************************************************/
void
handler
::
ha_statistic_increment
(
ulong
SSV
::*
offset
)
const
{
statistic_increment
(
table
->
in_use
->
status_var
.
*
offset
,
&
LOCK_status
);
}
/*
Open database-handler.
...
...
sql/handler.h
View file @
fb25dc11
...
...
@@ -1006,6 +1006,8 @@ typedef struct st_handler_buffer
byte
*
end_of_used_area
;
/* End of area that was used by handler */
}
HANDLER_BUFFER
;
typedef
struct
system_status_var
SSV
;
class
handler
:
public
Sql_alloc
{
#ifdef WITH_PARTITION_STORAGE_ENGINE
...
...
@@ -1027,6 +1029,9 @@ class handler :public Sql_alloc
virtual
int
rnd_init
(
bool
scan
)
=
0
;
virtual
int
rnd_end
()
{
return
0
;
}
void
ha_statistic_increment
(
ulong
SSV
::*
offset
)
const
;
private:
virtual
int
reset
()
{
return
extra
(
HA_EXTRA_RESET
);
}
public:
...
...
@@ -1109,7 +1114,10 @@ public:
TRUE Locking is allowed
FALSE Locking is not allowed. The error was thrown.
*/
virtual
bool
check_if_locking_is_allowed
(
THD
*
thd
,
TABLE
*
table
,
uint
count
)
virtual
bool
check_if_locking_is_allowed
(
uint
sql_command
,
ulong
type
,
TABLE
*
table
,
uint
count
,
bool
called_by_logger_thread
)
{
return
TRUE
;
}
...
...
sql/item.h
View file @
fb25dc11
...
...
@@ -1932,7 +1932,7 @@ public:
virtual
Item
*
real_item
()
{
return
ref
;
}
};
#ifdef MYSQL_SERVER
#include "gstream.h"
#include "spatial.h"
#include "item_sum.h"
...
...
@@ -1945,6 +1945,7 @@ public:
#include "item_uniq.h"
#include "item_subselect.h"
#include "item_xmlfunc.h"
#endif
class
Item_copy_string
:
public
Item
{
...
...
sql/lock.cc
View file @
fb25dc11
...
...
@@ -617,8 +617,11 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
Check if we can lock the table. For some tables we cannot do that
beacause of handler-specific locking issues.
*/
if
(
!
table_ptr
[
i
]
->
file
->
check_if_locking_is_allowed
(
thd
,
table_ptr
[
i
],
count
))
if
(
!
table_ptr
[
i
]
->
file
->
check_if_locking_is_allowed
(
thd
->
lex
->
sql_command
,
thd
->
lex
->
type
,
table_ptr
[
i
],
count
,
(
thd
==
logger
.
get_general_log_thd
())
||
(
thd
==
logger
.
get_slow_log_thd
())))
return
0
;
}
...
...
sql/mysql_priv.h
View file @
fb25dc11
...
...
@@ -477,6 +477,11 @@ inline THD *_current_thd(void)
}
#define current_thd _current_thd()
/* below functions are required for plugins as THD class is opaque */
my_bool
thd_in_lock_tables
(
const
THD
*
thd
);
my_bool
thd_tablespace_op
(
const
THD
*
thd
);
const
char
*
thd_proc_info
(
THD
*
thd
,
const
char
*
info
);
/*
External variables
*/
...
...
@@ -507,7 +512,9 @@ enum enum_var_type
class
sys_var
;
#include "item.h"
extern
my_decimal
decimal_zero
;
#ifdef MYSQL_SERVER
typedef
Comp_creator
*
(
*
chooser_compare_func_creator
)(
bool
invert
);
#endif
/* sql_parse.cc */
void
free_items
(
Item
*
item
);
void
cleanup_items
(
Item
*
item
);
...
...
@@ -545,6 +552,7 @@ Item *negate_expression(THD *thd, Item *expr);
#include "sql_class.h"
#include "sql_acl.h"
#include "tztime.h"
#ifdef MYSQL_SERVER
#include "opt_range.h"
#ifdef HAVE_QUERY_CACHE
...
...
@@ -841,6 +849,8 @@ find_field_in_table(THD *thd, TABLE *table, const char *name, uint length,
Field
*
find_field_in_table_sef
(
TABLE
*
table
,
const
char
*
name
);
#endif
/* MYSQL_SERVER */
#ifdef HAVE_OPENSSL
#include <openssl/des.h>
struct
st_des_keyblock
...
...
@@ -858,6 +868,7 @@ extern pthread_mutex_t LOCK_des_key_file;
bool
load_des_key_file
(
const
char
*
file_name
);
#endif
/* HAVE_OPENSSL */
#ifdef MYSQL_SERVER
/* sql_do.cc */
bool
mysql_do
(
THD
*
thd
,
List
<
Item
>
&
values
);
...
...
@@ -1169,6 +1180,7 @@ int key_cmp(KEY_PART_INFO *key_part, const byte *key, uint key_length);
int
key_rec_cmp
(
void
*
key_info
,
byte
*
a
,
byte
*
b
);
bool
init_errmessage
(
void
);
#endif
/* MYSQL_SERVER */
void
sql_perror
(
const
char
*
message
);
int
vprint_msg_to_log
(
enum
loglevel
level
,
const
char
*
format
,
va_list
args
);
...
...
@@ -1191,6 +1203,7 @@ bool general_log_print(THD *thd, enum enum_server_command command,
bool
fn_format_relative_to_data_home
(
my_string
to
,
const
char
*
name
,
const
char
*
dir
,
const
char
*
extension
);
#ifdef MYSQL_SERVER
File
open_binlog
(
IO_CACHE
*
log
,
const
char
*
log_file_name
,
const
char
**
errmsg
);
...
...
@@ -1739,4 +1752,5 @@ inline void kill_delayed_threads(void) {}
#define check_stack_overrun(A, B, C) 0
#endif
#endif
/* MYSQL_SERVER */
#endif
/* MYSQL_CLIENT */
sql/sql_class.cc
View file @
fb25dc11
...
...
@@ -167,6 +167,25 @@ Open_tables_state::Open_tables_state(ulong version_arg)
reset_open_tables_state
();
}
my_bool
thd_in_lock_tables
(
const
THD
*
thd
)
{
return
thd
->
in_lock_tables
;
}
my_bool
thd_tablespace_op
(
const
THD
*
thd
)
{
return
thd
->
tablespace_op
;
}
const
char
*
thd_proc_info
(
THD
*
thd
,
const
char
*
info
)
{
const
char
*
old_info
=
thd
->
proc_info
;
thd
->
proc_info
=
info
;
return
old_info
;
}
/*
Pass nominal parameters to Statement constructor only to ensure that
...
...
sql/sql_class.h
View file @
fb25dc11
...
...
@@ -171,6 +171,7 @@ public:
class
delayed_insert
;
class
select_result
;
class
Time_zone
;
#define THD_SENTRY_MAGIC 0xfeedd1ff
#define THD_SENTRY_GONE 0xdeadbeef
...
...
@@ -344,6 +345,8 @@ typedef struct system_status_var
#define last_system_status_var com_stmt_close
#ifdef MYSQL_SERVER
void
free_tmp_table
(
THD
*
thd
,
TABLE
*
entry
);
...
...
@@ -354,7 +357,6 @@ void free_tmp_table(THD *thd, TABLE *entry);
#define INIT_ARENA_DBUG_INFO
#endif
class
Query_arena
{
public:
...
...
@@ -1905,3 +1907,5 @@ public:
/* Functions in sql_class.cc */
void
add_to_status
(
STATUS_VAR
*
to_var
,
STATUS_VAR
*
from_var
);
#endif
/* MYSQL_SERVER */
sql/sql_lex.h
View file @
fb25dc11
...
...
@@ -29,6 +29,7 @@ class st_alter_tablespace;
class
partition_info
;
class
event_timed
;
#ifdef MYSQL_SERVER
/*
The following hack is needed because mysql_yacc.cc does not define
YYSTYPE before including this file
...
...
@@ -43,6 +44,7 @@ class event_timed;
#include "sql_yacc.h"
#define LEX_YYSTYPE YYSTYPE *
#endif
#endif
/*
When a command is added here, be sure it's also added in mysqld.cc
...
...
@@ -115,6 +117,8 @@ enum enum_sql_command {
*/
#define DESCRIBE_PARTITIONS 4
#ifdef MYSQL_SERVER
enum
enum_sp_suid_behaviour
{
SP_IS_DEFAULT_SUID
=
0
,
...
...
@@ -1109,3 +1113,5 @@ extern int yylex(void *arg, void *yythd);
extern
pthread_key
(
LEX
*
,
THR_LEX
);
#define current_lex (current_thd->lex)
#endif
storage/csv/Makefile.am
View file @
fb25dc11
...
...
@@ -24,17 +24,16 @@ INCLUDES = -I$(top_srcdir)/include \
-I
$(top_srcdir)
/regex
\
-I
$(top_srcdir)
/sql
\
-I
$(srcdir)
WRAPLIBS
=
pkglib_LTLIBRARIES
=
ha_csv.la
ha_csv_la_LDFLAGS
=
-module
noinst_HEADERS
=
ha_tina.h
ha_csv_la_SOURCES
=
ha_tina.cc
pkglib_LIBRARIES
=
libcsv.a
LDADD
=
DEFS
=
-DMYSQL_SERVER
@DEFS@
DEFS
=
@DEFS@
libcsv_a_CXXFLAGS
=
$(AM_CFLAGS)
noinst_HEADERS
=
ha_tina.h
libcsv_a_SOURCES
=
ha_tina.cc
# Don't update the files from bitkeeper
%
::
SCCS/s.%
storage/csv/ha_tina.cc
View file @
fb25dc11
...
...
@@ -590,7 +590,10 @@ void ha_tina::update_status()
}
bool
ha_tina
::
check_if_locking_is_allowed
(
THD
*
thd
,
TABLE
*
table
,
uint
count
)
bool
ha_tina
::
check_if_locking_is_allowed
(
uint
sql_command
,
ulong
type
,
TABLE
*
table
,
uint
count
,
bool
called_by_logger_thread
)
{
/*
Deny locking of the log tables, which is incompatible with
...
...
@@ -598,11 +601,10 @@ bool ha_tina::check_if_locking_is_allowed(THD *thd, TABLE *table, uint count)
general_log_thd or slow_log_thd.
*/
if
(
table
->
s
->
log_table
&&
thd
->
lex
->
sql_command
!=
SQLCOM_TRUNCATE
&&
!
(
thd
->
lex
->
sql_command
==
SQLCOM_FLUSH
&&
thd
->
lex
->
type
&
REFRESH_LOG
)
&&
(
thd
!=
logger
.
get_general_log_thd
())
&&
(
thd
!=
logger
.
get_slow_log_thd
())
&&
sql_command
!=
SQLCOM_TRUNCATE
&&
!
(
sql_command
==
SQLCOM_FLUSH
&&
type
&
REFRESH_LOG
)
&&
!
called_by_logger_thread
&&
(
table
->
reginfo
.
lock_type
>=
TL_READ_NO_INSERT
))
{
/*
...
...
@@ -665,7 +667,7 @@ int ha_tina::write_row(byte * buf)
int
size
;
DBUG_ENTER
(
"ha_tina::write_row"
);
statistic_increment
(
table
->
in_use
->
status_var
.
ha_write_count
,
&
LOCK_status
);
ha_statistic_increment
(
&
SSV
::
ha_write_count
);
if
(
table
->
timestamp_field_type
&
TIMESTAMP_AUTO_SET_ON_INSERT
)
table
->
timestamp_field
->
set_time
();
...
...
@@ -714,9 +716,7 @@ int ha_tina::update_row(const byte * old_data, byte * new_data)
int
size
;
DBUG_ENTER
(
"ha_tina::update_row"
);
statistic_increment
(
table
->
in_use
->
status_var
.
ha_read_rnd_next_count
,
&
LOCK_status
);
ha_statistic_increment
(
&
SSV
::
ha_read_rnd_next_count
);
if
(
table
->
timestamp_field_type
&
TIMESTAMP_AUTO_SET_ON_UPDATE
)
table
->
timestamp_field
->
set_time
();
...
...
@@ -751,8 +751,7 @@ int ha_tina::update_row(const byte * old_data, byte * new_data)
int
ha_tina
::
delete_row
(
const
byte
*
buf
)
{
DBUG_ENTER
(
"ha_tina::delete_row"
);
statistic_increment
(
table
->
in_use
->
status_var
.
ha_delete_count
,
&
LOCK_status
);
ha_statistic_increment
(
&
SSV
::
ha_delete_count
);
if
(
chain_append
())
DBUG_RETURN
(
-
1
);
...
...
@@ -903,8 +902,7 @@ int ha_tina::rnd_next(byte *buf)
{
DBUG_ENTER
(
"ha_tina::rnd_next"
);
statistic_increment
(
table
->
in_use
->
status_var
.
ha_read_rnd_next_count
,
&
LOCK_status
);
ha_statistic_increment
(
&
SSV
::
ha_read_rnd_next_count
);
current_position
=
next_position
;
if
(
!
share
->
mapped_file
)
...
...
@@ -941,8 +939,7 @@ void ha_tina::position(const byte *record)
int
ha_tina
::
rnd_pos
(
byte
*
buf
,
byte
*
pos
)
{
DBUG_ENTER
(
"ha_tina::rnd_pos"
);
statistic_increment
(
table
->
in_use
->
status_var
.
ha_read_rnd_next_count
,
&
LOCK_status
);
ha_statistic_increment
(
&
SSV
::
ha_read_rnd_next_count
);
current_position
=
my_get_ptr
(
pos
,
ref_length
);
DBUG_RETURN
(
find_current_row
(
buf
));
}
...
...
storage/csv/ha_tina.h
View file @
fb25dc11
...
...
@@ -104,7 +104,10 @@ public:
*/
ha_rows
estimate_rows_upper_bound
()
{
return
HA_POS_ERROR
;
}
virtual
bool
check_if_locking_is_allowed
(
THD
*
thd
,
TABLE
*
table
,
uint
count
);
virtual
bool
check_if_locking_is_allowed
(
uint
sql_command
,
ulong
type
,
TABLE
*
table
,
uint
count
,
bool
called_by_logger_thread
);
int
open
(
const
char
*
name
,
int
mode
,
uint
test_if_locked
);
int
close
(
void
);
int
write_row
(
byte
*
buf
);
...
...
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