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
dfb3e31c
Commit
dfb3e31c
authored
Aug 10, 2001
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/home/bk/mysql into serg.mysql.com:/usr/home/serg/Abk/mysql
parents
37c41731
dfb1566f
Changes
19
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
11833 additions
and
11145 deletions
+11833
-11145
BitKeeper/etc/logging_ok
BitKeeper/etc/logging_ok
+3
-14
Docs/manual.texi
Docs/manual.texi
+11720
-11104
innobase/btr/btr0cur.c
innobase/btr/btr0cur.c
+11
-0
innobase/buf/buf0flu.c
innobase/buf/buf0flu.c
+1
-0
innobase/ibuf/ibuf0ibuf.c
innobase/ibuf/ibuf0ibuf.c
+1
-2
innobase/row/row0upd.c
innobase/row/row0upd.c
+2
-2
innobase/trx/trx0purge.c
innobase/trx/trx0purge.c
+2
-0
ltmain.sh
ltmain.sh
+3
-0
sql/ha_innobase.cc
sql/ha_innobase.cc
+36
-5
sql/ha_innobase.h
sql/ha_innobase.h
+1
-0
sql/ha_myisam.cc
sql/ha_myisam.cc
+1
-1
sql/mysql_priv.h
sql/mysql_priv.h
+10
-3
sql/mysqld.cc
sql/mysqld.cc
+31
-5
sql/sql_class.cc
sql/sql_class.cc
+1
-0
sql/sql_class.h
sql/sql_class.h
+1
-1
sql/sql_lex.cc
sql/sql_lex.cc
+2
-2
sql/sql_parse.cc
sql/sql_parse.cc
+2
-2
sql/sql_select.cc
sql/sql_select.cc
+3
-2
sql/sql_yacc.yy
sql/sql_yacc.yy
+2
-2
No files found.
BitKeeper/etc/logging_ok
View file @
dfb3e31c
heikki@donna.mysql.fi
heikki@donna.mysql.fi
jani@janikt.pp.saunalahti.fi
jani@hynda.mysql.fi
miguel@light.local
monty@hundin.mysql.fi
monty@tik.mysql.fi
monty@work.mysql.com
mwagner@evoq.mwagner.org
paul@central.snake.net
paul@teton.kitebird.com
sasha@mysql.sashanet.com
serg@serg.mysql.com
tim@threads.polyesthetic.msg
tim@white.box
jcole@tetra.spaceapes.com
jcole@tetra.spaceapes.com
davida@isil
.mysql.com
tim@work
.mysql.com
tonu@x153.internalnet
serg@serg.mysql.com
Docs/manual.texi
View file @
dfb3e31c
This diff is collapsed.
Click to expand it.
innobase/btr/btr0cur.c
View file @
dfb3e31c
...
@@ -2351,6 +2351,7 @@ btr_estimate_n_rows_in_range(
...
@@ -2351,6 +2351,7 @@ btr_estimate_n_rows_in_range(
btr_path_t
*
slot1
;
btr_path_t
*
slot1
;
btr_path_t
*
slot2
;
btr_path_t
*
slot2
;
ibool
diverged
;
ibool
diverged
;
ulint
divergence_level
;
ulint
n_rows
;
ulint
n_rows
;
ulint
i
;
ulint
i
;
mtr_t
mtr
;
mtr_t
mtr
;
...
@@ -2393,6 +2394,7 @@ btr_estimate_n_rows_in_range(
...
@@ -2393,6 +2394,7 @@ btr_estimate_n_rows_in_range(
n_rows
=
1
;
n_rows
=
1
;
diverged
=
FALSE
;
diverged
=
FALSE
;
divergence_level
=
1000000
;
for
(
i
=
0
;
;
i
++
)
{
for
(
i
=
0
;
;
i
++
)
{
ut_ad
(
i
<
BTR_PATH_ARRAY_N_SLOTS
);
ut_ad
(
i
<
BTR_PATH_ARRAY_N_SLOTS
);
...
@@ -2403,6 +2405,13 @@ btr_estimate_n_rows_in_range(
...
@@ -2403,6 +2405,13 @@ btr_estimate_n_rows_in_range(
if
(
slot1
->
nth_rec
==
ULINT_UNDEFINED
if
(
slot1
->
nth_rec
==
ULINT_UNDEFINED
||
slot2
->
nth_rec
==
ULINT_UNDEFINED
)
{
||
slot2
->
nth_rec
==
ULINT_UNDEFINED
)
{
if
(
i
>
divergence_level
+
1
)
{
/* In trees whose height is > 1 our algorithm
tends to underestimate: multiply the estimate
by 2: */
n_rows
=
n_rows
*
2
;
}
return
(
n_rows
);
return
(
n_rows
);
}
}
...
@@ -2417,6 +2426,8 @@ btr_estimate_n_rows_in_range(
...
@@ -2417,6 +2426,8 @@ btr_estimate_n_rows_in_range(
return
(
10
);
return
(
10
);
}
}
divergence_level
=
i
;
diverged
=
TRUE
;
diverged
=
TRUE
;
}
else
if
(
diverged
)
{
}
else
if
(
diverged
)
{
n_rows
=
(
n_rows
*
(
slot1
->
n_recs
+
slot2
->
n_recs
))
n_rows
=
(
n_rows
*
(
slot1
->
n_recs
+
slot2
->
n_recs
))
...
...
innobase/buf/buf0flu.c
View file @
dfb3e31c
...
@@ -21,6 +21,7 @@ Created 11/11/1995 Heikki Tuuri
...
@@ -21,6 +21,7 @@ Created 11/11/1995 Heikki Tuuri
#include "ibuf0ibuf.h"
#include "ibuf0ibuf.h"
#include "log0log.h"
#include "log0log.h"
#include "os0file.h"
#include "os0file.h"
#include "trx0sys.h"
/* When flushed, dirty blocks are searched in neigborhoods of this size, and
/* When flushed, dirty blocks are searched in neigborhoods of this size, and
flushed along with the original page. */
flushed along with the original page. */
...
...
innobase/ibuf/ibuf0ibuf.c
View file @
dfb3e31c
...
@@ -1698,8 +1698,7 @@ loop:
...
@@ -1698,8 +1698,7 @@ loop:
btr_pcur_open_at_rnd_pos
(
data
->
index
,
BTR_SEARCH_LEAF
,
&
pcur
,
&
mtr
);
btr_pcur_open_at_rnd_pos
(
data
->
index
,
BTR_SEARCH_LEAF
,
&
pcur
,
&
mtr
);
if
(
data
->
size
==
1
if
(
0
==
page_get_n_recs
(
btr_pcur_get_page
(
&
pcur
)))
{
&&
0
==
page_get_n_recs
(
btr_pcur_get_page
(
&
pcur
)))
{
/* This tree is empty */
/* This tree is empty */
...
...
innobase/row/row0upd.c
View file @
dfb3e31c
...
@@ -789,8 +789,8 @@ row_upd_store_row(
...
@@ -789,8 +789,8 @@ row_upd_store_row(
node
->
row
=
row_build
(
ROW_COPY_DATA
,
clust_index
,
rec
,
node
->
heap
);
node
->
row
=
row_build
(
ROW_COPY_DATA
,
clust_index
,
rec
,
node
->
heap
);
node
->
ext_vec
=
mem_heap_alloc
(
node
->
heap
,
rec_get_n_fields
(
rec
));
node
->
ext_vec
=
mem_heap_alloc
(
node
->
heap
,
sizeof
(
ulint
)
*
rec_get_n_fields
(
rec
));
if
(
node
->
is_delete
)
{
if
(
node
->
is_delete
)
{
update
=
NULL
;
update
=
NULL
;
}
else
{
}
else
{
...
...
innobase/trx/trx0purge.c
View file @
dfb3e31c
...
@@ -678,6 +678,8 @@ trx_purge_choose_next_log(void)
...
@@ -678,6 +678,8 @@ trx_purge_choose_next_log(void)
rseg
=
UT_LIST_GET_FIRST
(
trx_sys
->
rseg_list
);
rseg
=
UT_LIST_GET_FIRST
(
trx_sys
->
rseg_list
);
min_trx_no
=
ut_dulint_max
;
min_rseg
=
NULL
;
min_rseg
=
NULL
;
while
(
rseg
)
{
while
(
rseg
)
{
...
...
ltmain.sh
View file @
dfb3e31c
...
@@ -1798,6 +1798,9 @@ compiler."
...
@@ -1798,6 +1798,9 @@ compiler."
*
-
*
-cygwin
*
|
*
-
*
-mingw
*
|
*
-
*
-os2
*
|
*
-
*
-beos
*
)
*
-
*
-cygwin
*
|
*
-
*
-mingw
*
|
*
-
*
-os2
*
|
*
-
*
-beos
*
)
# these systems don't actually have a c library (as such)!
# these systems don't actually have a c library (as such)!
;;
;;
*
-
*
-freebsd
*
)
#FreeBSD needs to handle -lc and -lc_r itself
;;
*
-
*
-rhapsody
*
)
*
-
*
-rhapsody
*
)
# rhapsody is a little odd...
# rhapsody is a little odd...
deplibs
=
"
$deplibs
-framework System"
deplibs
=
"
$deplibs
-framework System"
...
...
sql/ha_innobase.cc
View file @
dfb3e31c
...
@@ -822,11 +822,11 @@ ha_innobase::open(
...
@@ -822,11 +822,11 @@ ha_innobase::open(
if
(
NULL
==
(
ib_table
=
dict_table_get
(
norm_name
,
NULL
)))
{
if
(
NULL
==
(
ib_table
=
dict_table_get
(
norm_name
,
NULL
)))
{
fprintf
(
stderr
,
"\
fprintf
(
stderr
,
Cannot find table %s from the internal data dictionary
\n
\
"Cannot find table %s from the internal data dictionary
\n
"
of InnoDB though the .frm file for the table exists. Maybe you have deleted
\n
\
"of InnoDB though the .frm file for the table exists. Maybe you have deleted
\n
"
and created again an InnoDB database but forgotten to delete the
\n
\
"and created again an InnoDB database but forgotten to delete the
\n
"
corresponding .frm files of old InnoDB tables?
\n
"
,
"
corresponding .frm files of old InnoDB tables?
\n
"
,
norm_name
);
norm_name
);
free_share
(
share
);
free_share
(
share
);
...
@@ -2659,6 +2659,37 @@ ha_innobase::records_in_range(
...
@@ -2659,6 +2659,37 @@ ha_innobase::records_in_range(
DBUG_RETURN
((
ha_rows
)
n_rows
);
DBUG_RETURN
((
ha_rows
)
n_rows
);
}
}
/*************************************************************************
Gives an UPPER BOUND to the number of rows in a table. This is used in
filesort.cc and the upper bound must hold. TODO: Since the number of
rows in a table may change after this function is called, we still may
get a 'Sort aborted' error in filesort.cc of MySQL. The ultimate fix is to
improve the algorithm of filesort.cc. */
ha_rows
ha_innobase
::
estimate_number_of_rows
(
void
)
/*======================================*/
/* out: upper bound of rows, currently 32-bit int
or uint */
{
row_prebuilt_t
*
prebuilt
=
(
row_prebuilt_t
*
)
innobase_prebuilt
;
dict_table_t
*
ib_table
;
DBUG_ENTER
(
"info"
);
ib_table
=
prebuilt
->
table
;
dict_update_statistics
(
ib_table
);
data_file_length
=
((
ulonglong
)
ib_table
->
stat_clustered_index_size
)
*
UNIV_PAGE_SIZE
;
/* The minimum clustered index record size is 20 bytes */
return
((
ha_rows
)
(
1000
+
data_file_length
/
20
));
}
/*************************************************************************
/*************************************************************************
How many seeks it will take to read through the table. This is to be
How many seeks it will take to read through the table. This is to be
comparable to the number returned by records_in_range so that we can
comparable to the number returned by records_in_range so that we can
...
...
sql/ha_innobase.h
View file @
dfb3e31c
...
@@ -137,6 +137,7 @@ class ha_innobase: public handler
...
@@ -137,6 +137,7 @@ class ha_innobase: public handler
enum
ha_rkey_function
start_search_flag
,
enum
ha_rkey_function
start_search_flag
,
const
byte
*
end_key
,
uint
end_key_len
,
const
byte
*
end_key
,
uint
end_key_len
,
enum
ha_rkey_function
end_search_flag
);
enum
ha_rkey_function
end_search_flag
);
ha_rows
estimate_number_of_rows
();
int
create
(
const
char
*
name
,
register
TABLE
*
form
,
int
create
(
const
char
*
name
,
register
TABLE
*
form
,
HA_CREATE_INFO
*
create_info
);
HA_CREATE_INFO
*
create_info
);
...
...
sql/ha_myisam.cc
View file @
dfb3e31c
...
@@ -35,7 +35,7 @@ ulong myisam_recover_options= HA_RECOVER_NONE;
...
@@ -35,7 +35,7 @@ ulong myisam_recover_options= HA_RECOVER_NONE;
/* bits in myisam_recover_options */
/* bits in myisam_recover_options */
const
char
*
myisam_recover_names
[]
=
const
char
*
myisam_recover_names
[]
=
{
"DEFAULT"
,
"BACKUP"
,
"FORCE"
,
"QUICK"
};
{
"DEFAULT"
,
"BACKUP"
,
"FORCE"
,
"QUICK"
,
NullS
};
TYPELIB
myisam_recover_typelib
=
{
array_elements
(
myisam_recover_names
),
""
,
TYPELIB
myisam_recover_typelib
=
{
array_elements
(
myisam_recover_names
),
""
,
myisam_recover_names
};
myisam_recover_names
};
...
...
sql/mysql_priv.h
View file @
dfb3e31c
...
@@ -156,8 +156,7 @@ void kill_one_thread(THD *thd, ulong id);
...
@@ -156,8 +156,7 @@ void kill_one_thread(THD *thd, ulong id);
#define OPTION_LOW_PRIORITY_UPDATES 8192
#define OPTION_LOW_PRIORITY_UPDATES 8192
#define OPTION_WARNINGS 16384
#define OPTION_WARNINGS 16384
#define OPTION_AUTO_IS_NULL 32768
#define OPTION_AUTO_IS_NULL 32768
#define OPTION_ANSI_MODE 65536L
#define OPTION_SAFE_UPDATES 65536L*2
#define OPTION_SAFE_UPDATES OPTION_ANSI_MODE*2
#define OPTION_BUFFER_RESULT OPTION_SAFE_UPDATES*2
#define OPTION_BUFFER_RESULT OPTION_SAFE_UPDATES*2
#define OPTION_BIN_LOG OPTION_BUFFER_RESULT*2
#define OPTION_BIN_LOG OPTION_BUFFER_RESULT*2
#define OPTION_NOT_AUTO_COMMIT OPTION_BIN_LOG*2
#define OPTION_NOT_AUTO_COMMIT OPTION_BIN_LOG*2
...
@@ -173,6 +172,14 @@ void kill_one_thread(THD *thd, ulong id);
...
@@ -173,6 +172,14 @@ void kill_one_thread(THD *thd, ulong id);
#define QUERY_NO_INDEX_USED OPTION_STATUS_NO_TRANS_UPDATE*2
#define QUERY_NO_INDEX_USED OPTION_STATUS_NO_TRANS_UPDATE*2
#define QUERY_NO_GOOD_INDEX_USED QUERY_NO_INDEX_USED*2
#define QUERY_NO_GOOD_INDEX_USED QUERY_NO_INDEX_USED*2
/* Bits for different SQL modes modes (including ANSI mode) */
#define MODE_REAL_AS_FLOAT 1
#define MODE_PIPES_AS_CONCAT 2
#define MODE_ANSI_QUOTES 4
#define MODE_IGNORE_SPACE 8
#define MODE_SERIALIZABLE 16
#define MODE_ONLY_FULL_GROUP_BY 32
#define RAID_BLOCK_SIZE 1024
#define RAID_BLOCK_SIZE 1024
/* BINLOG_DUMP options */
/* BINLOG_DUMP options */
...
@@ -530,7 +537,7 @@ extern ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
...
@@ -530,7 +537,7 @@ extern ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
what_to_log
,
flush_time
,
what_to_log
,
flush_time
,
max_tmp_tables
,
max_heap_table_size
,
query_buff_size
,
max_tmp_tables
,
max_heap_table_size
,
query_buff_size
,
lower_case_table_names
,
thread_stack
,
thread_stack_min
,
lower_case_table_names
,
thread_stack
,
thread_stack_min
,
binlog_cache_size
,
max_binlog_cache_size
;
binlog_cache_size
,
max_binlog_cache_size
,
opt_sql_mode
;
extern
ulong
specialflag
,
current_pid
;
extern
ulong
specialflag
,
current_pid
;
extern
bool
low_priority_updates
,
using_update_log
;
extern
bool
low_priority_updates
,
using_update_log
;
extern
bool
opt_sql_bin_update
,
opt_safe_show_db
,
opt_warnings
;
extern
bool
opt_sql_bin_update
,
opt_safe_show_db
,
opt_warnings
;
...
...
sql/mysqld.cc
View file @
dfb3e31c
...
@@ -211,7 +211,7 @@ static char mysql_home[FN_REFLEN],pidfile_name[FN_REFLEN];
...
@@ -211,7 +211,7 @@ static char mysql_home[FN_REFLEN],pidfile_name[FN_REFLEN];
static
pthread_t
select_thread
;
static
pthread_t
select_thread
;
static
bool
opt_log
,
opt_update_log
,
opt_bin_log
,
opt_slow_log
,
opt_noacl
,
static
bool
opt_log
,
opt_update_log
,
opt_bin_log
,
opt_slow_log
,
opt_noacl
,
opt_disable_networking
=
0
,
opt_bootstrap
=
0
,
opt_skip_show_db
=
0
,
opt_disable_networking
=
0
,
opt_bootstrap
=
0
,
opt_skip_show_db
=
0
,
opt_
ansi_mode
=
0
,
opt_
myisam_log
=
0
,
opt_myisam_log
=
0
,
opt_large_files
=
sizeof
(
my_off_t
)
>
4
;
opt_large_files
=
sizeof
(
my_off_t
)
>
4
;
bool
opt_sql_bin_update
=
0
,
opt_log_slave_updates
=
0
,
opt_safe_show_db
=
0
;
bool
opt_sql_bin_update
=
0
,
opt_log_slave_updates
=
0
,
opt_safe_show_db
=
0
;
FILE
*
bootstrap_file
=
0
;
FILE
*
bootstrap_file
=
0
;
...
@@ -307,6 +307,7 @@ char server_version[SERVER_VERSION_LENGTH]=MYSQL_SERVER_VERSION;
...
@@ -307,6 +307,7 @@ char server_version[SERVER_VERSION_LENGTH]=MYSQL_SERVER_VERSION;
const
char
*
first_keyword
=
"first"
;
const
char
*
first_keyword
=
"first"
;
const
char
**
errmesg
;
/* Error messages */
const
char
**
errmesg
;
/* Error messages */
const
char
*
myisam_recover_options_str
=
"OFF"
;
const
char
*
myisam_recover_options_str
=
"OFF"
;
const
char
*
sql_mode_str
=
"OFF"
;
const
char
*
default_tx_isolation_name
;
const
char
*
default_tx_isolation_name
;
enum_tx_isolation
default_tx_isolation
=
ISO_READ_COMMITTED
;
enum_tx_isolation
default_tx_isolation
=
ISO_READ_COMMITTED
;
...
@@ -320,6 +321,12 @@ double log_10[32]; /* 10 potences */
...
@@ -320,6 +321,12 @@ double log_10[32]; /* 10 potences */
I_List
<
THD
>
threads
,
thread_cache
;
I_List
<
THD
>
threads
,
thread_cache
;
time_t
start_time
;
time_t
start_time
;
ulong
opt_sql_mode
=
0L
;
const
char
*
sql_mode_names
[]
=
{
"REAL_AS_FLOAT"
,
"PIPES_AS_CONCAT"
,
"ANSI_QUOTES"
,
"IGNORE_SPACE"
,
"SERIALIZE"
,
"ONLY_FULL_GROUP_BY"
,
NullS
};
TYPELIB
sql_mode_typelib
=
{
array_elements
(
sql_mode_names
),
""
,
sql_mode_names
};
MY_BITMAP
temp_pool
;
MY_BITMAP
temp_pool
;
bool
use_temp_pool
=
0
;
bool
use_temp_pool
=
0
;
...
@@ -2471,7 +2478,8 @@ enum options {
...
@@ -2471,7 +2478,8 @@ enum options {
OPT_GEMINI_FLUSH_LOG
,
OPT_GEMINI_RECOVER
,
OPT_GEMINI_FLUSH_LOG
,
OPT_GEMINI_RECOVER
,
OPT_GEMINI_UNBUFFERED_IO
,
OPT_SKIP_SAFEMALLOC
,
OPT_GEMINI_UNBUFFERED_IO
,
OPT_SKIP_SAFEMALLOC
,
OPT_SKIP_STACK_TRACE
,
OPT_SKIP_SYMLINKS
,
OPT_SKIP_STACK_TRACE
,
OPT_SKIP_SYMLINKS
,
OPT_MAX_BINLOG_DUMP_EVENTS
,
OPT_SPORADIC_BINLOG_DUMP_FAIL
OPT_MAX_BINLOG_DUMP_EVENTS
,
OPT_SPORADIC_BINLOG_DUMP_FAIL
,
OPT_SQL_MODE
};
};
static
struct
option
long_options
[]
=
{
static
struct
option
long_options
[]
=
{
...
@@ -2604,6 +2612,7 @@ static struct option long_options[] = {
...
@@ -2604,6 +2612,7 @@ static struct option long_options[] = {
{
"skip-symlink"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_SYMLINKS
},
{
"skip-symlink"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_SYMLINKS
},
{
"skip-thread-priority"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_PRIOR
},
{
"skip-thread-priority"
,
no_argument
,
0
,
(
int
)
OPT_SKIP_PRIOR
},
{
"sql-bin-update-same"
,
no_argument
,
0
,
(
int
)
OPT_SQL_BIN_UPDATE_SAME
},
{
"sql-bin-update-same"
,
no_argument
,
0
,
(
int
)
OPT_SQL_BIN_UPDATE_SAME
},
{
"sql-mode"
,
required_argument
,
0
,
(
int
)
OPT_SQL_MODE
},
#include "sslopt-longopts.h"
#include "sslopt-longopts.h"
#ifdef __WIN__
#ifdef __WIN__
{
"standalone"
,
no_argument
,
0
,
(
int
)
OPT_STANDALONE
},
{
"standalone"
,
no_argument
,
0
,
(
int
)
OPT_STANDALONE
},
...
@@ -2764,7 +2773,6 @@ CHANGEABLE_VAR changeable_vars[] = {
...
@@ -2764,7 +2773,6 @@ CHANGEABLE_VAR changeable_vars[] = {
struct
show_var_st
init_vars
[]
=
{
struct
show_var_st
init_vars
[]
=
{
{
"ansi_mode"
,
(
char
*
)
&
opt_ansi_mode
,
SHOW_BOOL
},
{
"back_log"
,
(
char
*
)
&
back_log
,
SHOW_LONG
},
{
"back_log"
,
(
char
*
)
&
back_log
,
SHOW_LONG
},
{
"basedir"
,
mysql_home
,
SHOW_CHAR
},
{
"basedir"
,
mysql_home
,
SHOW_CHAR
},
#ifdef HAVE_BERKELEY_DB
#ifdef HAVE_BERKELEY_DB
...
@@ -2866,6 +2874,7 @@ struct show_var_st init_vars[]= {
...
@@ -2866,6 +2874,7 @@ struct show_var_st init_vars[]= {
{
"slow_launch_time"
,
(
char
*
)
&
slow_launch_time
,
SHOW_LONG
},
{
"slow_launch_time"
,
(
char
*
)
&
slow_launch_time
,
SHOW_LONG
},
{
"socket"
,
(
char
*
)
&
mysql_unix_port
,
SHOW_CHAR_PTR
},
{
"socket"
,
(
char
*
)
&
mysql_unix_port
,
SHOW_CHAR_PTR
},
{
"sort_buffer"
,
(
char
*
)
&
sortbuff_size
,
SHOW_LONG
},
{
"sort_buffer"
,
(
char
*
)
&
sortbuff_size
,
SHOW_LONG
},
{
"sql_mode"
,
(
char
*
)
&
sql_mode_str
,
SHOW_CHAR_PTR
},
{
"table_cache"
,
(
char
*
)
&
table_cache_size
,
SHOW_LONG
},
{
"table_cache"
,
(
char
*
)
&
table_cache_size
,
SHOW_LONG
},
{
"table_type"
,
(
char
*
)
&
default_table_type_name
,
SHOW_CHAR_PTR
},
{
"table_type"
,
(
char
*
)
&
default_table_type_name
,
SHOW_CHAR_PTR
},
{
"thread_cache_size"
,
(
char
*
)
&
thread_cache_size
,
SHOW_LONG
},
{
"thread_cache_size"
,
(
char
*
)
&
thread_cache_size
,
SHOW_LONG
},
...
@@ -3049,6 +3058,9 @@ static void usage(void)
...
@@ -3049,6 +3058,9 @@ static void usage(void)
Don't give threads different priorities.
\n
\
Don't give threads different priorities.
\n
\
--socket=... Socket file to use for connection
\n
\
--socket=... Socket file to use for connection
\n
\
-t, --tmpdir=path Path for temporary files
\n
\
-t, --tmpdir=path Path for temporary files
\n
\
--sql-mode=option[,option[,option...]] where option can be one of:
\n
\
REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES,
\n
\
IGNORE_SPACE, SERIALIZE, ONLY_FULL_GROUP_BY.
\n
\
--transaction-isolation
\n
\
--transaction-isolation
\n
\
Default transaction isolation level
\n
\
Default transaction isolation level
\n
\
--temp-pool Use a pool of temporary files
\n
\
--temp-pool Use a pool of temporary files
\n
\
...
@@ -3202,8 +3214,9 @@ static void get_options(int argc,char **argv)
...
@@ -3202,8 +3214,9 @@ static void get_options(int argc,char **argv)
opt_warnings
=
1
;
opt_warnings
=
1
;
break
;
break
;
case
'a'
:
case
'a'
:
opt_ansi_mode
=
1
;
opt_sql_mode
=
(
MODE_REAL_AS_FLOAT
|
MODE_PIPES_AS_CONCAT
|
thd_startup_options
|=
OPTION_ANSI_MODE
;
MODE_ANSI_QUOTES
|
MODE_IGNORE_SPACE
|
MODE_SERIALIZABLE
|
MODE_ONLY_FULL_GROUP_BY
);
default_tx_isolation
=
ISO_SERIALIZABLE
;
default_tx_isolation
=
ISO_SERIALIZABLE
;
break
;
break
;
case
'b'
:
case
'b'
:
...
@@ -3726,6 +3739,19 @@ static void get_options(int argc,char **argv)
...
@@ -3726,6 +3739,19 @@ static void get_options(int argc,char **argv)
ha_open_options
|=
HA_OPEN_ABORT_IF_CRASHED
;
ha_open_options
|=
HA_OPEN_ABORT_IF_CRASHED
;
break
;
break
;
}
}
case
OPT_SQL_MODE
:
{
sql_mode_str
=
optarg
;
if
((
opt_sql_mode
=
find_bit_type
(
optarg
,
&
sql_mode_typelib
))
==
~
(
ulong
)
0
)
{
fprintf
(
stderr
,
"Unknown option to sql-mode: %s
\n
"
,
optarg
);
exit
(
1
);
}
if
(
opt_sql_mode
&
MODE_SERIALIZABLE
)
default_tx_isolation
=
ISO_SERIALIZABLE
;
break
;
}
case
OPT_MASTER_HOST
:
case
OPT_MASTER_HOST
:
master_host
=
optarg
;
master_host
=
optarg
;
break
;
break
;
...
...
sql/sql_class.cc
View file @
dfb3e31c
...
@@ -120,6 +120,7 @@ THD::THD():user_time(0),fatal_error(0),last_insert_id_used(0),
...
@@ -120,6 +120,7 @@ THD::THD():user_time(0),fatal_error(0),last_insert_id_used(0),
server_status
=
SERVER_STATUS_AUTOCOMMIT
;
server_status
=
SERVER_STATUS_AUTOCOMMIT
;
update_lock_default
=
low_priority_updates
?
TL_WRITE_LOW_PRIORITY
:
TL_WRITE
;
update_lock_default
=
low_priority_updates
?
TL_WRITE_LOW_PRIORITY
:
TL_WRITE
;
options
=
thd_startup_options
;
options
=
thd_startup_options
;
sql_mode
=
(
uint
)
opt_sql_mode
;
inactive_timeout
=
net_wait_timeout
;
inactive_timeout
=
net_wait_timeout
;
open_options
=
ha_open_options
;
open_options
=
ha_open_options
;
tx_isolation
=
session_tx_isolation
=
default_tx_isolation
;
tx_isolation
=
session_tx_isolation
=
default_tx_isolation
;
...
...
sql/sql_class.h
View file @
dfb3e31c
...
@@ -232,7 +232,7 @@ public:
...
@@ -232,7 +232,7 @@ public:
char
*
query
,
*
thread_stack
;
char
*
query
,
*
thread_stack
;
char
*
host
,
*
user
,
*
priv_user
,
*
db
,
*
ip
;
char
*
host
,
*
user
,
*
priv_user
,
*
db
,
*
ip
;
const
char
*
proc_info
;
const
char
*
proc_info
;
uint
client_capabilities
,
max_packet_length
;
uint
client_capabilities
,
sql_mode
,
max_packet_length
;
uint
master_access
,
db_access
;
uint
master_access
,
db_access
;
TABLE
*
open_tables
,
*
temporary_tables
;
TABLE
*
open_tables
,
*
temporary_tables
;
MYSQL_LOCK
*
lock
,
*
locked_tables
;
MYSQL_LOCK
*
lock
,
*
locked_tables
;
...
...
sql/sql_lex.cc
View file @
dfb3e31c
...
@@ -121,7 +121,7 @@ void lex_init(void)
...
@@ -121,7 +121,7 @@ void lex_init(void)
state_map
[(
uchar
)
'*'
]
=
(
uchar
)
STATE_END_LONG_COMMENT
;
state_map
[(
uchar
)
'*'
]
=
(
uchar
)
STATE_END_LONG_COMMENT
;
state_map
[(
uchar
)
'@'
]
=
(
uchar
)
STATE_USER_END
;
state_map
[(
uchar
)
'@'
]
=
(
uchar
)
STATE_USER_END
;
state_map
[(
uchar
)
'`'
]
=
(
uchar
)
STATE_USER_VARIABLE_DELIMITER
;
state_map
[(
uchar
)
'`'
]
=
(
uchar
)
STATE_USER_VARIABLE_DELIMITER
;
if
(
thd_startup_options
&
OPTION_ANSI_MODE
)
if
(
opt_sql_mode
&
MODE_ANSI_QUOTES
)
{
{
state_map
[(
uchar
)
'"'
]
=
STATE_USER_VARIABLE_DELIMITER
;
state_map
[(
uchar
)
'"'
]
=
STATE_USER_VARIABLE_DELIMITER
;
}
}
...
@@ -149,7 +149,7 @@ LEX *lex_start(THD *thd, uchar *buf,uint length)
...
@@ -149,7 +149,7 @@ LEX *lex_start(THD *thd, uchar *buf,uint length)
lex
->
ftfunc_list
.
empty
();
lex
->
ftfunc_list
.
empty
();
lex
->
convert_set
=
(
lex
->
thd
=
thd
)
->
convert_set
;
lex
->
convert_set
=
(
lex
->
thd
=
thd
)
->
convert_set
;
lex
->
yacc_yyss
=
lex
->
yacc_yyvs
=
0
;
lex
->
yacc_yyss
=
lex
->
yacc_yyvs
=
0
;
lex
->
ignore_space
=
test
(
thd
->
client_capabilities
&
CLIENT
_IGNORE_SPACE
);
lex
->
ignore_space
=
test
(
thd
->
sql_mode
&
MODE
_IGNORE_SPACE
);
return
lex
;
return
lex
;
}
}
...
...
sql/sql_parse.cc
View file @
dfb3e31c
...
@@ -412,6 +412,8 @@ check_connections(THD *thd)
...
@@ -412,6 +412,8 @@ check_connections(THD *thd)
return
(
ER_OUT_OF_RESOURCES
);
return
(
ER_OUT_OF_RESOURCES
);
thd
->
client_capabilities
=
uint2korr
(
net
->
read_pos
);
thd
->
client_capabilities
=
uint2korr
(
net
->
read_pos
);
if
(
thd
->
client_capabilities
&
CLIENT_IGNORE_SPACE
)
thd
->
sql_mode
|=
MODE_IGNORE_SPACE
;
#ifdef HAVE_OPENSSL
#ifdef HAVE_OPENSSL
DBUG_PRINT
(
"info"
,
DBUG_PRINT
(
"info"
,
(
"pkt_len:%d, client capabilities: %d"
,
(
"pkt_len:%d, client capabilities: %d"
,
...
@@ -538,8 +540,6 @@ pthread_handler_decl(handle_one_connection,arg)
...
@@ -538,8 +540,6 @@ pthread_handler_decl(handle_one_connection,arg)
thd
->
options
|=
OPTION_BIG_SELECTS
;
thd
->
options
|=
OPTION_BIG_SELECTS
;
if
(
thd
->
client_capabilities
&
CLIENT_COMPRESS
)
if
(
thd
->
client_capabilities
&
CLIENT_COMPRESS
)
net
->
compress
=
1
;
// Use compression
net
->
compress
=
1
;
// Use compression
if
(
thd
->
options
&
OPTION_ANSI_MODE
)
thd
->
client_capabilities
|=
CLIENT_IGNORE_SPACE
;
thd
->
proc_info
=
0
;
// Remove 'login'
thd
->
proc_info
=
0
;
// Remove 'login'
thd
->
command
=
COM_SLEEP
;
thd
->
command
=
COM_SLEEP
;
...
...
sql/sql_select.cc
View file @
dfb3e31c
...
@@ -5425,6 +5425,7 @@ static int remove_dup_with_compare(THD *thd, TABLE *table, Field **first_field,
...
@@ -5425,6 +5425,7 @@ static int remove_dup_with_compare(THD *thd, TABLE *table, Field **first_field,
{
{
if
((
error
=
file
->
delete_row
(
record
)))
if
((
error
=
file
->
delete_row
(
record
)))
goto
err
;
goto
err
;
error
=
file
->
rnd_next
(
record
);
continue
;
continue
;
}
}
if
(
copy_blobs
(
first_field
))
if
(
copy_blobs
(
first_field
))
...
@@ -5936,7 +5937,7 @@ setup_group(THD *thd,TABLE_LIST *tables,List<Item> &fields,
...
@@ -5936,7 +5937,7 @@ setup_group(THD *thd,TABLE_LIST *tables,List<Item> &fields,
if
(
!
order
)
if
(
!
order
)
return
0
;
/* Everything is ok */
return
0
;
/* Everything is ok */
if
(
thd
->
options
&
OPTION_ANSI_MODE
)
if
(
thd
->
sql_mode
&
MODE_ONLY_FULL_GROUP_BY
)
{
{
Item
*
item
;
Item
*
item
;
List_iterator
<
Item
>
li
(
fields
);
List_iterator
<
Item
>
li
(
fields
);
...
@@ -5958,7 +5959,7 @@ setup_group(THD *thd,TABLE_LIST *tables,List<Item> &fields,
...
@@ -5958,7 +5959,7 @@ setup_group(THD *thd,TABLE_LIST *tables,List<Item> &fields,
return
1
;
return
1
;
}
}
}
}
if
(
thd
->
options
&
OPTION_ANSI_MODE
)
if
(
thd
->
sql_mode
&
MODE_ONLY_FULL_GROUP_BY
)
{
{
/* Don't allow one to use fields that is not used in GROUP BY */
/* Don't allow one to use fields that is not used in GROUP BY */
Item
*
item
;
Item
*
item
;
...
...
sql/sql_yacc.yy
View file @
dfb3e31c
...
@@ -34,7 +34,7 @@ int yylex(void *yylval);
...
@@ -34,7 +34,7 @@ int yylex(void *yylval);
inline Item *or_or_concat(Item* A, Item* B)
inline Item *or_or_concat(Item* A, Item* B)
{
{
return (current_thd->
options & OPTION_ANSI_MODE
?
return (current_thd->
sql_mode & MODE_PIPES_AS_CONCAT
?
(Item*) new Item_func_concat(A,B) : (Item*) new Item_cond_or(A,B));
(Item*) new Item_func_concat(A,B) : (Item*) new Item_cond_or(A,B));
}
}
...
@@ -915,7 +915,7 @@ int_type:
...
@@ -915,7 +915,7 @@ int_type:
| BIGINT { $$=FIELD_TYPE_LONGLONG; }
| BIGINT { $$=FIELD_TYPE_LONGLONG; }
real_type:
real_type:
REAL { $$= current_thd->
options & OPTION_ANSI_MODE
?
REAL { $$= current_thd->
sql_mode & MODE_REAL_AS_FLOAT
?
FIELD_TYPE_FLOAT : FIELD_TYPE_DOUBLE; }
FIELD_TYPE_FLOAT : FIELD_TYPE_DOUBLE; }
| DOUBLE_SYM { $$=FIELD_TYPE_DOUBLE; }
| DOUBLE_SYM { $$=FIELD_TYPE_DOUBLE; }
| DOUBLE_SYM PRECISION { $$=FIELD_TYPE_DOUBLE; }
| DOUBLE_SYM PRECISION { $$=FIELD_TYPE_DOUBLE; }
...
...
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