Merge branch '5.5' into 10.0
This commit is contained in:
commit
b58f28725b
@ -6577,8 +6577,6 @@ static inline bool is_escape_char(char c, char in_string)
|
||||
|
||||
SYNOPSIS
|
||||
read_line
|
||||
buf buffer for the read line
|
||||
size size of the buffer i.e max size to read
|
||||
|
||||
DESCRIPTION
|
||||
This function actually reads several lines and adds them to the
|
||||
@ -6596,10 +6594,15 @@ static inline bool is_escape_char(char c, char in_string)
|
||||
|
||||
*/
|
||||
|
||||
int read_line(char *buf, int size)
|
||||
static char *read_command_buf= NULL;
|
||||
static size_t read_command_buflen= 0;
|
||||
static const size_t max_multibyte_length= 6;
|
||||
|
||||
int read_line()
|
||||
{
|
||||
char c, last_quote=0, last_char= 0;
|
||||
char *p= buf, *buf_end= buf + size - 1;
|
||||
char *p= read_command_buf;
|
||||
char *buf_end= read_command_buf + read_command_buflen - max_multibyte_length;
|
||||
int skip_char= 0;
|
||||
my_bool have_slash= FALSE;
|
||||
|
||||
@ -6607,10 +6610,21 @@ int read_line(char *buf, int size)
|
||||
R_COMMENT, R_LINE_START} state= R_LINE_START;
|
||||
DBUG_ENTER("read_line");
|
||||
|
||||
*p= 0;
|
||||
start_lineno= cur_file->lineno;
|
||||
DBUG_PRINT("info", ("Starting to read at lineno: %d", start_lineno));
|
||||
for (; p < buf_end ;)
|
||||
while (1)
|
||||
{
|
||||
if (p >= buf_end)
|
||||
{
|
||||
my_ptrdiff_t off= p - read_command_buf;
|
||||
read_command_buf= (char*)my_realloc(read_command_buf,
|
||||
read_command_buflen*2, MYF(MY_FAE));
|
||||
p= read_command_buf + off;
|
||||
read_command_buflen*= 2;
|
||||
buf_end= read_command_buf + read_command_buflen - max_multibyte_length;
|
||||
}
|
||||
|
||||
skip_char= 0;
|
||||
c= my_getc(cur_file->file);
|
||||
if (feof(cur_file->file))
|
||||
@ -6646,7 +6660,7 @@ int read_line(char *buf, int size)
|
||||
cur_file->lineno++;
|
||||
|
||||
/* Convert cr/lf to lf */
|
||||
if (p != buf && *(p-1) == '\r')
|
||||
if (p != read_command_buf && *(p-1) == '\r')
|
||||
p--;
|
||||
}
|
||||
|
||||
@ -6661,9 +6675,9 @@ int read_line(char *buf, int size)
|
||||
}
|
||||
else if ((c == '{' &&
|
||||
(!my_strnncoll_simple(charset_info, (const uchar*) "while", 5,
|
||||
(uchar*) buf, MY_MIN(5, p - buf), 0) ||
|
||||
(uchar*) read_command_buf, MY_MIN(5, p - read_command_buf), 0) ||
|
||||
!my_strnncoll_simple(charset_info, (const uchar*) "if", 2,
|
||||
(uchar*) buf, MY_MIN(2, p - buf), 0))))
|
||||
(uchar*) read_command_buf, MY_MIN(2, p - read_command_buf), 0))))
|
||||
{
|
||||
/* Only if and while commands can be terminated by { */
|
||||
*p++= c;
|
||||
@ -6797,8 +6811,6 @@ int read_line(char *buf, int size)
|
||||
*p++= c;
|
||||
}
|
||||
}
|
||||
die("The input buffer is too small for this query.x\n" \
|
||||
"check your query or increase MAX_QUERY and recompile");
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
@ -6943,12 +6955,8 @@ bool is_delimiter(const char* p)
|
||||
terminated by new line '\n' regardless how many "delimiter" it contain.
|
||||
*/
|
||||
|
||||
#define MAX_QUERY (256*1024*2) /* 256K -- a test in sp-big is >128K */
|
||||
static char read_command_buf[MAX_QUERY];
|
||||
|
||||
int read_command(struct st_command** command_ptr)
|
||||
{
|
||||
char *p= read_command_buf;
|
||||
struct st_command* command;
|
||||
DBUG_ENTER("read_command");
|
||||
|
||||
@ -6964,8 +6972,7 @@ int read_command(struct st_command** command_ptr)
|
||||
die("Out of memory");
|
||||
command->type= Q_UNKNOWN;
|
||||
|
||||
read_command_buf[0]= 0;
|
||||
if (read_line(read_command_buf, sizeof(read_command_buf)))
|
||||
if (read_line())
|
||||
{
|
||||
check_eol_junk(read_command_buf);
|
||||
DBUG_RETURN(1);
|
||||
@ -6974,6 +6981,7 @@ int read_command(struct st_command** command_ptr)
|
||||
if (opt_result_format_version == 1)
|
||||
convert_to_format_v1(read_command_buf);
|
||||
|
||||
char *p= read_command_buf;
|
||||
DBUG_PRINT("info", ("query: '%s'", read_command_buf));
|
||||
if (*p == '#')
|
||||
{
|
||||
@ -9126,6 +9134,8 @@ int main(int argc, char **argv)
|
||||
init_win_path_patterns();
|
||||
#endif
|
||||
|
||||
read_command_buf= (char*)my_malloc(read_command_buflen= 65536, MYF(MY_FAE));
|
||||
|
||||
init_dynamic_string(&ds_res, "", 2048, 2048);
|
||||
init_alloc_root(&require_file_root, 1024, 1024, MYF(0));
|
||||
|
||||
|
@ -437,7 +437,7 @@ while (1)
|
||||
|
||||
if ($key eq 'C')
|
||||
{
|
||||
if ( $HAS_COLOR )
|
||||
if ( $HAS_COLOR )
|
||||
{
|
||||
$HAS_COLOR = 0;
|
||||
}
|
||||
@ -817,11 +817,11 @@ sub GetData()
|
||||
if ($config{header})
|
||||
{
|
||||
my @recs = "";
|
||||
if ( $db_release > 4 )
|
||||
if ( $db_release > 4 )
|
||||
{
|
||||
@recs = Hashes("show global status");
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
@recs = Hashes("show status");
|
||||
}
|
||||
@ -978,7 +978,7 @@ sub GetData()
|
||||
# print("q_diff: $STATUS{Questions} - $OLD_STATUS{Questions} / $t_delta = $q_diff\n");
|
||||
|
||||
printf(" Sorts: %5.0f qps now: %4.0f Slow qps: %3.1f Threads: %4.0f (%4.0f/%4.0f) %02.0f/%02.0f/%02.0f/%02.0f\n",
|
||||
( $STATUS{Sort_rows} - $OLD_STATUS{Sort_rows} ) / $t_delta,
|
||||
( $STATUS{Sort_rows} - $OLD_STATUS{Sort_rows} ) / $t_delta,
|
||||
( $STATUS{Questions} - $OLD_STATUS{Questions} ) / $t_delta,
|
||||
( # slow now (qps)
|
||||
($STATUS{Slow_queries} ) ?
|
||||
@ -989,7 +989,7 @@ sub GetData()
|
||||
$STATUS{Threads_running},
|
||||
$STATUS{Threads_cached},
|
||||
|
||||
(100 * ($STATUS{Com_select} - $OLD_STATUS{Com_select} +
|
||||
(100 * ($STATUS{Com_select} - $OLD_STATUS{Com_select} +
|
||||
($STATUS{Qcache_hits}||0) - ($OLD_STATUS{Qcache_hits}||0)
|
||||
) ) / ($q_diff ),
|
||||
(100 * ($STATUS{Com_insert} - $OLD_STATUS{Com_insert} +
|
||||
@ -1075,7 +1075,7 @@ sub GetData()
|
||||
$t_delta,
|
||||
($STATUS{Rows_tmp_read} - $OLD_STATUS{Rows_tmp_read}) /
|
||||
$t_delta,
|
||||
($STATUS{Handler_tmp_write}
|
||||
($STATUS{Handler_tmp_write}
|
||||
-$OLD_STATUS{Handler_tmp_write})/$t_delta,
|
||||
($STATUS{Handler_tmp_update} -
|
||||
$OLD_STATUS{Handler_tmp_update})/$t_delta);
|
||||
@ -1119,6 +1119,7 @@ sub GetData()
|
||||
}
|
||||
}
|
||||
print " Replication ";
|
||||
print "Master:$data->{Master_Host} ";
|
||||
print "IO:$data->{Slave_IO_Running} ";
|
||||
print "SQL:$data->{Slave_SQL_Running} ";
|
||||
print RESET() if ($HAS_COLOR);
|
||||
@ -1225,9 +1226,9 @@ sub GetData()
|
||||
$thread->{State} ||= "";
|
||||
$thread->{Progress} ||= 0;
|
||||
|
||||
## alter double hyphen comments so they don't break
|
||||
## alter double hyphen comments so they don't break
|
||||
## the query when newlines are removed - http://freshmeat.net/users/jerjones
|
||||
$thread->{Info} =~ s~\s--(.*)$~ /* $1 */ ~mg;
|
||||
$thread->{Info} =~ s~\s--(.*)$~ /* $1 */ ~mg;
|
||||
|
||||
## Normalize spaces -- mostly disabled for now. This can
|
||||
## break EXPLAIN if you try to explain a mangled query. It
|
||||
|
Loading…
x
Reference in New Issue
Block a user