Merge branch '10.0' into 10.1
This commit is contained in:
commit
8e8d42ddf0
@ -149,7 +149,7 @@ static my_bool ignore_errors=0,wait_flag=0,quick=0,
|
||||
default_pager_set= 0, opt_sigint_ignore= 0,
|
||||
auto_vertical_output= 0,
|
||||
show_warnings= 0, executing_query= 0,
|
||||
ignore_spaces= 0, opt_progress_reports;
|
||||
ignore_spaces= 0, opt_binhex= 0, opt_progress_reports;
|
||||
static my_bool debug_info_flag, debug_check_flag, batch_abort_on_error;
|
||||
static my_bool column_types_flag;
|
||||
static my_bool preserve_comments= 0;
|
||||
@ -1492,6 +1492,8 @@ static struct my_option my_long_options[] =
|
||||
{"batch", 'B',
|
||||
"Don't use history file. Disable interactive behavior. (Enables --silent.)",
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"binary-as-hex", 'b', "Print binary data as hex", &opt_binhex, &opt_binhex,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"character-sets-dir", OPT_CHARSETS_DIR,
|
||||
"Directory for character set files.", &charsets_dir,
|
||||
&charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
@ -3314,7 +3316,8 @@ com_go(String *buffer,char *line __attribute__((unused)))
|
||||
print_table_data_html(result);
|
||||
else if (opt_xml)
|
||||
print_table_data_xml(result);
|
||||
else if (vertical || (auto_vertical_output && (terminal_width < get_result_width(result))))
|
||||
else if (vertical || (auto_vertical_output &&
|
||||
(terminal_width < get_result_width(result))))
|
||||
print_table_data_vertically(result);
|
||||
else if (opt_silent && verbose <= 2 && !output_tables)
|
||||
print_tab_data(result);
|
||||
@ -3533,6 +3536,41 @@ print_field_types(MYSQL_RES *result)
|
||||
}
|
||||
|
||||
|
||||
/* Used to determine if we should invoke print_as_hex for this field */
|
||||
|
||||
static bool
|
||||
is_binary_field(MYSQL_FIELD *field)
|
||||
{
|
||||
if ((field->charsetnr == 63) &&
|
||||
(field->type == MYSQL_TYPE_BIT ||
|
||||
field->type == MYSQL_TYPE_BLOB ||
|
||||
field->type == MYSQL_TYPE_LONG_BLOB ||
|
||||
field->type == MYSQL_TYPE_MEDIUM_BLOB ||
|
||||
field->type == MYSQL_TYPE_TINY_BLOB ||
|
||||
field->type == MYSQL_TYPE_VAR_STRING ||
|
||||
field->type == MYSQL_TYPE_STRING ||
|
||||
field->type == MYSQL_TYPE_VARCHAR ||
|
||||
field->type == MYSQL_TYPE_GEOMETRY))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Print binary value as hex literal (0x ...) */
|
||||
|
||||
static void
|
||||
print_as_hex(FILE *output_file, const char *str, ulong len, ulong total_bytes_to_send)
|
||||
{
|
||||
const char *ptr= str, *end= ptr+len;
|
||||
ulong i;
|
||||
fprintf(output_file, "0x");
|
||||
for(; ptr < end; ptr++)
|
||||
fprintf(output_file, "%02X", *((uchar*)ptr));
|
||||
for (i= 2*len+2; i < total_bytes_to_send; i++)
|
||||
tee_putc((int)' ', output_file);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
print_table_data(MYSQL_RES *result)
|
||||
{
|
||||
@ -3559,6 +3597,8 @@ print_table_data(MYSQL_RES *result)
|
||||
length= MY_MAX(length,field->max_length);
|
||||
if (length < 4 && !IS_NOT_NULL(field->flags))
|
||||
length=4; // Room for "NULL"
|
||||
if (opt_binhex && is_binary_field(field))
|
||||
length= 2 + length * 2;
|
||||
field->max_length=length;
|
||||
num_flag[mysql_field_tell(result) - 1]= IS_NUM(field->type);
|
||||
separator.fill(separator.length()+length+2,'-');
|
||||
@ -3626,9 +3666,11 @@ print_table_data(MYSQL_RES *result)
|
||||
many extra padding-characters we should send with the printing function.
|
||||
*/
|
||||
visible_length= charset_info->cset->numcells(charset_info, buffer, buffer + data_length);
|
||||
extra_padding= data_length - visible_length;
|
||||
extra_padding= (uint) (data_length - visible_length);
|
||||
|
||||
if (field_max_length > MAX_COLUMN_LENGTH)
|
||||
if (opt_binhex && is_binary_field(field))
|
||||
print_as_hex(PAGER, cur[off], lengths[off], field_max_length);
|
||||
else if (field_max_length > MAX_COLUMN_LENGTH)
|
||||
tee_print_sized_data(buffer, data_length, MAX_COLUMN_LENGTH+extra_padding, FALSE);
|
||||
else
|
||||
{
|
||||
@ -3762,11 +3804,15 @@ print_table_data_html(MYSQL_RES *result)
|
||||
if (interrupted_query)
|
||||
break;
|
||||
ulong *lengths=mysql_fetch_lengths(result);
|
||||
field= mysql_fetch_fields(result);
|
||||
(void) tee_fputs("<TR>", PAGER);
|
||||
for (uint i=0; i < mysql_num_fields(result); i++)
|
||||
{
|
||||
(void) tee_fputs("<TD>", PAGER);
|
||||
xmlencode_print(cur[i], lengths[i]);
|
||||
if (opt_binhex && is_binary_field(&field[i]))
|
||||
print_as_hex(PAGER, cur[i], lengths[i], lengths[i]);
|
||||
else
|
||||
xmlencode_print(cur[i], lengths[i]);
|
||||
(void) tee_fputs("</TD>", PAGER);
|
||||
}
|
||||
(void) tee_fputs("</TR>", PAGER);
|
||||
@ -3802,7 +3848,10 @@ print_table_data_xml(MYSQL_RES *result)
|
||||
if (cur[i])
|
||||
{
|
||||
tee_fprintf(PAGER, "\">");
|
||||
xmlencode_print(cur[i], lengths[i]);
|
||||
if (opt_binhex && is_binary_field(&fields[i]))
|
||||
print_as_hex(PAGER, cur[i], lengths[i], lengths[i]);
|
||||
else
|
||||
xmlencode_print(cur[i], lengths[i]);
|
||||
tee_fprintf(PAGER, "</field>\n");
|
||||
}
|
||||
else
|
||||
@ -3849,23 +3898,28 @@ print_table_data_vertically(MYSQL_RES *result)
|
||||
{
|
||||
unsigned int i;
|
||||
const char *p;
|
||||
|
||||
if (opt_binhex && is_binary_field(field))
|
||||
fprintf(PAGER, "0x");
|
||||
for (i= 0, p= cur[off]; i < lengths[off]; i+= 1, p+= 1)
|
||||
{
|
||||
if (*p == '\0')
|
||||
tee_putc((int)' ', PAGER);
|
||||
if (opt_binhex && is_binary_field(field))
|
||||
fprintf(PAGER, "%02X", *((uchar*)p));
|
||||
else
|
||||
tee_putc((int)*p, PAGER);
|
||||
{
|
||||
if (*p == '\0')
|
||||
tee_putc((int)' ', PAGER);
|
||||
else
|
||||
tee_putc((int)*p, PAGER);
|
||||
}
|
||||
}
|
||||
tee_putc('\n', PAGER);
|
||||
}
|
||||
else
|
||||
else
|
||||
tee_fprintf(PAGER, "NULL\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* print_warnings should be called right after executing a statement */
|
||||
|
||||
static void print_warnings()
|
||||
@ -4002,11 +4056,19 @@ print_tab_data(MYSQL_RES *result)
|
||||
while ((cur = mysql_fetch_row(result)))
|
||||
{
|
||||
lengths=mysql_fetch_lengths(result);
|
||||
safe_put_field(cur[0],lengths[0]);
|
||||
field= mysql_fetch_fields(result);
|
||||
if (opt_binhex && is_binary_field(&field[0]))
|
||||
print_as_hex(PAGER, cur[0], lengths[0], lengths[0]);
|
||||
else
|
||||
safe_put_field(cur[0],lengths[0]);
|
||||
|
||||
for (uint off=1 ; off < mysql_num_fields(result); off++)
|
||||
{
|
||||
(void) tee_fputs("\t", PAGER);
|
||||
safe_put_field(cur[off], lengths[off]);
|
||||
if (opt_binhex && field && is_binary_field(&field[off]))
|
||||
print_as_hex(PAGER, cur[off], lengths[off], lengths[off]);
|
||||
else
|
||||
safe_put_field(cur[off], lengths[off]);
|
||||
}
|
||||
(void) tee_fputs("\n", PAGER);
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2009, 2012, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2011, 2017, MariaDB Corporation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -11,7 +12,7 @@
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
# We support different versions of SSL:
|
||||
# - "bundled" uses source code in <source dir>/extra/yassl
|
||||
@ -207,7 +208,7 @@ MACRO (MYSQL_CHECK_SSL)
|
||||
HAVE_EncryptAes128Gcm)
|
||||
ELSE()
|
||||
IF(WITH_SSL STREQUAL "system")
|
||||
MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
|
||||
MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
|
||||
ENDIF()
|
||||
MYSQL_USE_BUNDLED_SSL()
|
||||
ENDIF()
|
||||
|
2
debian/compat
vendored
2
debian/compat
vendored
@ -1 +1 @@
|
||||
5
|
||||
9
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2001, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2013, Monty Program Ab.
|
||||
Copyright (c) 2009, 2017, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -439,9 +439,8 @@ extern "C" int madvise(void *addr, size_t len, int behav);
|
||||
#define SIGNAL_HANDLER_RESET_ON_DELIVERY
|
||||
#endif
|
||||
|
||||
#ifndef STDERR_FILENO
|
||||
#define STDERR_FILENO fileno(stderr)
|
||||
#endif
|
||||
/* don't assume that STDERR_FILENO is 2, mysqld can freopen */
|
||||
#undef STDERR_FILENO
|
||||
|
||||
#ifndef SO_EXT
|
||||
#ifdef _WIN32
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2016, Monty Program Ab.
|
||||
Copyright (c) 2010, 2017, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -36,7 +36,7 @@
|
||||
#define VERSION_progress_report 0x0100
|
||||
#define VERSION_thd_alloc 0x0100
|
||||
#define VERSION_thd_autoinc 0x0100
|
||||
#define VERSION_thd_error_context 0x0100
|
||||
#define VERSION_thd_error_context 0x0200
|
||||
#define VERSION_thd_rnd 0x0100
|
||||
#define VERSION_thd_specifics 0x0100
|
||||
#define VERSION_thd_timezone 0x0100
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2014, SkySQL Ab.
|
||||
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates
|
||||
Copyright (c) 2009, 2017, MariaDB Corporation
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -4919,4 +4919,3 @@ ulong STDCALL mysql_net_field_length(uchar **packet)
|
||||
{
|
||||
return net_field_length(packet);
|
||||
}
|
||||
|
||||
|
@ -66,6 +66,13 @@ if (!$slave_skip_counter) {
|
||||
}
|
||||
source include/start_slave.inc;
|
||||
|
||||
# start_slave.inc returns when Slave_SQL_Running=Yes. But the slave
|
||||
# thread sets it before clearing Last_SQL_Errno. So we have to wait
|
||||
# for Last_SQL_Errno=0 separately.
|
||||
|
||||
let $slave_param= Last_SQL_Errno;
|
||||
let $slave_param_value= 0;
|
||||
source include/wait_for_slave_param.inc;
|
||||
|
||||
--let $include_filename= wait_for_slave_sql_error_and_skip.inc [errno=$slave_sql_errno]
|
||||
--source include/end_include_file.inc
|
||||
|
@ -2,7 +2,7 @@
|
||||
# -*- cperl -*-
|
||||
|
||||
# Copyright (c) 2004, 2014, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2009, 2014, Monty Program Ab
|
||||
# Copyright (c) 2009, 2017, MariaDB Corporation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -1267,10 +1267,6 @@ sub command_line_setup {
|
||||
|
||||
fix_vs_config_dir();
|
||||
|
||||
# Respect MTR_BINDIR variable, which is typically set in to the
|
||||
# build directory in out-of-source builds.
|
||||
$bindir=$ENV{MTR_BINDIR}||$basedir;
|
||||
|
||||
# Look for the client binaries directory
|
||||
if ($path_client_bindir)
|
||||
{
|
||||
|
117
mysql-test/r/binary_to_hex.result
Normal file
117
mysql-test/r/binary_to_hex.result
Normal file
@ -0,0 +1,117 @@
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (c1 TINYBLOB,
|
||||
c2 BLOB,
|
||||
c3 MEDIUMBLOB,
|
||||
c4 LONGBLOB,
|
||||
c5 TEXT,
|
||||
c6 BIT(1),
|
||||
c7 CHAR,
|
||||
c8 VARCHAR(10),
|
||||
c9 GEOMETRY) CHARACTER SET = binary;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` tinyblob,
|
||||
`c2` blob,
|
||||
`c3` mediumblob,
|
||||
`c4` longblob,
|
||||
`c5` blob,
|
||||
`c6` bit(1) DEFAULT NULL,
|
||||
`c7` binary(1) DEFAULT NULL,
|
||||
`c8` varbinary(10) DEFAULT NULL,
|
||||
`c9` geometry DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=binary
|
||||
INSERT INTO t1 VALUES ('tinyblob-text readable', 'blob-text readable',
|
||||
'mediumblob-text readable', 'longblob-text readable',
|
||||
'text readable', b'1', 'c', 'variable',
|
||||
POINT(1, 1));
|
||||
CREATE TABLE t2(id int, `col1` binary(10),`col2` blob);
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`col1` binary(10) DEFAULT NULL,
|
||||
`col2` blob
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
INSERT INTO t2 VALUES (1, X'AB1234', X'123ABC'), (2, X'DE1234', X'123DEF');
|
||||
#Print the table contents when binary-as-hex option is off.
|
||||
SELECT * FROM t1;
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9
|
||||
tinyblob-text readable blob-text readable mediumblob-text readable longblob-text readable text readable # c variable #
|
||||
SELECT * FROM t2;
|
||||
id col1 col2
|
||||
1 # #
|
||||
2 # #
|
||||
#Print the table contents after turning on the binary-as-hex option
|
||||
|
||||
#Print the table contents in tab format
|
||||
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9
|
||||
0x74696E79626C6F622D74657874207265616461626C65 0x626C6F622D74657874207265616461626C65 0x6D656469756D626C6F622D74657874207265616461626C65 0x6C6F6E67626C6F622D74657874207265616461626C65 0x74657874207265616461626C65 0x01 0x63 0x7661726961626C65 0x000000000101000000000000000000F03F000000000000F03F
|
||||
id col1 col2
|
||||
1 0xAB123400000000000000 0x123ABC
|
||||
2 0xDE123400000000000000 0x123DEF
|
||||
|
||||
#Print the table contents in table format
|
||||
|
||||
+------------------------------------------------+----------------------------------------+----------------------------------------------------+------------------------------------------------+------------------------------+------------+------------+--------------------+------------------------------------------------------+
|
||||
| c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 | c9 |
|
||||
+------------------------------------------------+----------------------------------------+----------------------------------------------------+------------------------------------------------+------------------------------+------------+------------+--------------------+------------------------------------------------------+
|
||||
| 0x74696E79626C6F622D74657874207265616461626C65 | 0x626C6F622D74657874207265616461626C65 | 0x6D656469756D626C6F622D74657874207265616461626C65 | 0x6C6F6E67626C6F622D74657874207265616461626C65 | 0x74657874207265616461626C65 | 0x01 | 0x63 | 0x7661726961626C65 | 0x000000000101000000000000000000F03F000000000000F03F |
|
||||
+------------------------------------------------+----------------------------------------+----------------------------------------------------+------------------------------------------------+------------------------------+------------+------------+--------------------+------------------------------------------------------+
|
||||
+------+------------------------+------------+
|
||||
| id | col1 | col2 |
|
||||
+------+------------------------+------------+
|
||||
| 1 | 0xAB123400000000000000 | 0x123ABC |
|
||||
+------+------------------------+------------+
|
||||
|
||||
#Print the table contents vertically
|
||||
|
||||
*************************** 1. row ***************************
|
||||
c1: 0x74696E79626C6F622D74657874207265616461626C65
|
||||
c2: 0x626C6F622D74657874207265616461626C65
|
||||
c3: 0x6D656469756D626C6F622D74657874207265616461626C65
|
||||
c4: 0x6C6F6E67626C6F622D74657874207265616461626C65
|
||||
c5: 0x74657874207265616461626C65
|
||||
c6: 0x01
|
||||
c7: 0x63
|
||||
c8: 0x7661726961626C65
|
||||
c9: 0x000000000101000000000000000000F03F000000000000F03F
|
||||
|
||||
#Print the table contents in xml format
|
||||
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<resultset statement="SELECT * FROM t1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<row>
|
||||
<field name="c1">0x74696E79626C6F622D74657874207265616461626C65</field>
|
||||
<field name="c2">0x626C6F622D74657874207265616461626C65</field>
|
||||
<field name="c3">0x6D656469756D626C6F622D74657874207265616461626C65</field>
|
||||
<field name="c4">0x6C6F6E67626C6F622D74657874207265616461626C65</field>
|
||||
<field name="c5">0x74657874207265616461626C65</field>
|
||||
<field name="c6">0x01</field>
|
||||
<field name="c7">0x63</field>
|
||||
<field name="c8">0x7661726961626C65</field>
|
||||
<field name="c9">0x000000000101000000000000000000F03F000000000000F03F</field>
|
||||
</row>
|
||||
</resultset>
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<resultset statement="SELECT * FROM t2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<row>
|
||||
<field name="id">1</field>
|
||||
<field name="col1">0xAB123400000000000000</field>
|
||||
<field name="col2">0x123ABC</field>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<field name="id">2</field>
|
||||
<field name="col1">0xDE123400000000000000</field>
|
||||
<field name="col2">0x123DEF</field>
|
||||
</row>
|
||||
</resultset>
|
||||
|
||||
#Print the table contents in html format
|
||||
|
||||
<TABLE BORDER=1><TR><TH>c1</TH><TH>c2</TH><TH>c3</TH><TH>c4</TH><TH>c5</TH><TH>c6</TH><TH>c7</TH><TH>c8</TH><TH>c9</TH></TR><TR><TD>0x74696E79626C6F622D74657874207265616461626C65</TD><TD>0x626C6F622D74657874207265616461626C65</TD><TD>0x6D656469756D626C6F622D74657874207265616461626C65</TD><TD>0x6C6F6E67626C6F622D74657874207265616461626C65</TD><TD>0x74657874207265616461626C65</TD><TD>0x01</TD><TD>0x63</TD><TD>0x7661726961626C65</TD><TD>0x000000000101000000000000000000F03F000000000000F03F</TD></TR></TABLE><TABLE BORDER=1><TR><TH>id</TH><TH>col1</TH><TH>col2</TH></TR><TR><TD>1</TD><TD>0xAB123400000000000000</TD><TD>0x123ABC</TD></TR><TR><TD>2</TD><TD>0xDE123400000000000000</TD><TD>0x123DEF</TD></TR></TABLE>DROP TABLE t1, t2;
|
@ -94,3 +94,15 @@ count(distinct i)
|
||||
2
|
||||
drop table t1;
|
||||
drop view v1;
|
||||
create table t1 (user_id char(64) character set utf8);
|
||||
insert t1 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17);
|
||||
set @@tmp_table_size = 1024;
|
||||
select count(distinct user_id) from t1;
|
||||
count(distinct user_id)
|
||||
17
|
||||
alter table t1 modify user_id char(128) character set utf8;
|
||||
select count(distinct user_id) from t1;
|
||||
count(distinct user_id)
|
||||
17
|
||||
drop table t1;
|
||||
set @@tmp_table_size = default;
|
||||
|
@ -883,6 +883,38 @@ SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,
|
||||
1
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT CONCAT(REPEAT('100,',133),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
CONCAT(REPEAT('100,',133),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'
|
||||
1
|
||||
SELECT CONCAT(REPEAT('100,',200),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
CONCAT(REPEAT('100,',200),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$'
|
||||
0
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
REGEXP_INSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')
|
||||
1
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
REGEXP_INSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$')
|
||||
0
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'))
|
||||
535
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'))
|
||||
0
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''))
|
||||
0
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''))
|
||||
803
|
||||
Warnings:
|
||||
Warning 1139 Got error 'pcre_exec: recursion limit of NUM exceeded' from regexp
|
||||
SELECT REGEXP_INSTR('a_kollision', 'oll');
|
||||
REGEXP_INSTR('a_kollision', 'oll')
|
||||
4
|
||||
|
@ -60,3 +60,25 @@ fid AsText(g)
|
||||
45 LINESTRING(51 51,60 60)
|
||||
DROP TABLE t1;
|
||||
End of 5.5 tests.
|
||||
CREATE TABLE t1 (
|
||||
coordinate point NOT NULL,
|
||||
SPATIAL KEY coordinate (coordinate)
|
||||
) ENGINE=Aria DEFAULT CHARSET=ascii PAGE_CHECKSUM=1;
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
coordinate point NO MUL NULL
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 0)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 0)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 10)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 10)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(5 5)"));
|
||||
SELECT astext(coordinate) FROM t1 WHERE ST_Intersects(ST_LineFromText("LINESTRING(0 0, 10 0, 10 10, 0 10)"), coordinate);
|
||||
astext(coordinate)
|
||||
POINT(0 0)
|
||||
POINT(10 0)
|
||||
POINT(10 10)
|
||||
POINT(0 10)
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
coordinate point NO MUL NULL
|
||||
DROP TABLE t1;
|
||||
|
@ -331,8 +331,8 @@ fid IsClosed(g)
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.58852775304245 17.426536064113982)
|
||||
118 POINT(55.58852775304245 17.426536064113982)
|
||||
117 POINT(57.98031067576927 17.854754130800433)
|
||||
118 POINT(57.98031067576927 17.854754130800433)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon;
|
||||
fid Area(g)
|
||||
@ -682,11 +682,11 @@ insert into t1 values ('85984',GeomFromText('MULTIPOLYGON(((-115.006363
|
||||
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
|
||||
t1 where object_id=85998;
|
||||
object_id geometrytype(geo) ISSIMPLE(GEO) ASTEXT(centroid(geo))
|
||||
85998 MULTIPOLYGON 1 POINT(115.31877315203187 -36.23747282102153)
|
||||
85998 MULTIPOLYGON 1 POINT(115.2970604672862 -36.23335610879993)
|
||||
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
|
||||
t1 where object_id=85984;
|
||||
object_id geometrytype(geo) ISSIMPLE(GEO) ASTEXT(centroid(geo))
|
||||
85984 MULTIPOLYGON 1 POINT(-114.87787186923313 36.33101763469059)
|
||||
85984 MULTIPOLYGON 1 POINT(-114.86854472054372 36.34725218253213)
|
||||
drop table t1;
|
||||
create table t1 (fl geometry not null);
|
||||
insert into t1 values (1);
|
||||
|
@ -2609,6 +2609,33 @@ select a from t1 group by a having a > 1;
|
||||
a
|
||||
drop table t1;
|
||||
set sql_mode= @save_sql_mode;
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (5),(9);
|
||||
create table t2 (f2 int);
|
||||
insert into t2 values (0),(6);
|
||||
create table t3 (f3 int);
|
||||
insert into t3 values (6),(3);
|
||||
create table t4 (f4 int);
|
||||
insert into t4 values (1),(0);
|
||||
select
|
||||
(select min(f1) from t1 where f1 in (select min(f4) from t2)) as field7,
|
||||
(select count(*) from t3 where f3 in (select max(f4) from t2 group by field7))
|
||||
from t4;
|
||||
ERROR 42S22: Reference 'field7' not supported (reference to group function)
|
||||
drop table t1, t2, t3, t4;
|
||||
create table t1 (i1 int);
|
||||
insert into t1 values (1);
|
||||
create table t2 (i int);
|
||||
insert into t2 values (2);
|
||||
select 1 from t1 left join t2 b on b.i = (select max(b.i) from t2);
|
||||
1
|
||||
1
|
||||
drop table t1, t2;
|
||||
create table t1 (c1 int, c2 int);
|
||||
create table t2 (c1 int, c2 int);
|
||||
select t1.c1 as c1, t2.c2 as c1 from t1, t2 where t1.c1 < 20 and t2.c2 > 5 group by t1.c1, t2.c2 having t1.c1 < 3;
|
||||
c1 c1
|
||||
drop table t1, t2;
|
||||
#
|
||||
# Bug #58782
|
||||
# Missing rows with SELECT .. WHERE .. IN subquery
|
||||
|
@ -5,10 +5,10 @@ load xml infile '../../std_data/loadxml.dat' into table t1
|
||||
rows identified by '<row>';
|
||||
select * from t1 order by a;
|
||||
a b
|
||||
1 b1
|
||||
2 b2
|
||||
3 b3
|
||||
11 b11
|
||||
1 b1
|
||||
2 b2
|
||||
3 b3
|
||||
11 b11
|
||||
111 b111
|
||||
112 b112 & < > " ' &unknown; -- check entities
|
||||
212 b212
|
||||
@ -81,17 +81,17 @@ LOAD XML INFILE '../../std_data/loadxml.dat' INTO TABLE t1
|
||||
ROWS IDENTIFIED BY '<row>' (a,@b) SET b=concat('!',@b);
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a b
|
||||
1 !b1
|
||||
11 !b11
|
||||
1 ! b1
|
||||
11 ! b11
|
||||
111 !b111
|
||||
112 !b112 & < > " ' &unknown; -- check entities
|
||||
2 !b2
|
||||
2 ! b2
|
||||
212 !b212
|
||||
213 !b213
|
||||
214 !b214
|
||||
215 !b215
|
||||
216 !&bb b;
|
||||
3 !b3
|
||||
3 ! b3
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#16171518 LOAD XML DOES NOT HANDLE EMPTY ELEMENTS
|
||||
|
@ -474,6 +474,29 @@ even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@loca
|
||||
even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@localhost
|
||||
DROP USER very_long_user_name_number_1, very_long_user_name_number_2, even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@localhost;
|
||||
DROP PROCEDURE test.pr;
|
||||
use test;
|
||||
call mtr.add_suppression('Column last_update in table "mysql"."innodb_table_stats" is INT NOT NULL but should be');
|
||||
alter table mysql.innodb_table_stats modify last_update int not null;
|
||||
create table extralongname_extralongname_extralongname_extralongname_ext (
|
||||
id int(10) unsigned not null,
|
||||
created_date date not null,
|
||||
created timestamp not null,
|
||||
primary key (created,id,created_date)
|
||||
) engine=innodb stats_persistent=1 default charset=latin1
|
||||
partition by range (year(created_date))
|
||||
subpartition by hash (month(created_date))
|
||||
subpartitions 2 (
|
||||
partition p2007 values less than (2008),
|
||||
partition p2008 values less than (2009)
|
||||
);
|
||||
select length(table_name) from mysql.innodb_table_stats;
|
||||
length(table_name)
|
||||
79
|
||||
79
|
||||
79
|
||||
79
|
||||
drop table extralongname_extralongname_extralongname_extralongname_ext;
|
||||
End of 10.0 tests
|
||||
set sql_mode=default;
|
||||
# Droping the previously created mysql_upgrade_info file..
|
||||
create table test.t1(a int) engine=MyISAM;
|
||||
@ -536,4 +559,4 @@ t1 CREATE TABLE `t1` (
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE test.t1;
|
||||
SET GLOBAL enforce_storage_engine=NULL;
|
||||
End of tests
|
||||
End of 10.1 tests
|
||||
|
@ -34,6 +34,8 @@ create temporary table t3 (a int);
|
||||
create temporary table t4 (a int) select * from t3;
|
||||
insert into t3 values(1);
|
||||
insert into t4 select * from t3;
|
||||
create table t3 (a int);
|
||||
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
|
||||
update t1,t3 set t1.a=t3.a+1 where t1.a=t3.a;
|
||||
ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement
|
||||
update t1,t3 set t3.a=t1.a+1 where t1.a=t3.a;
|
||||
|
@ -7195,6 +7195,21 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
(SELECT MAX(sq.f2) FROM t1)
|
||||
NULL
|
||||
#
|
||||
# Disable this query till MDEV-13399 is resolved
|
||||
#
|
||||
# INSERT t2 VALUES (9);
|
||||
# --error ER_SUBQUERY_NO_1_ROW
|
||||
# SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
#
|
||||
drop table t1, t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops
|
||||
|
@ -7195,6 +7195,21 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
(SELECT MAX(sq.f2) FROM t1)
|
||||
NULL
|
||||
#
|
||||
# Disable this query till MDEV-13399 is resolved
|
||||
#
|
||||
# INSERT t2 VALUES (9);
|
||||
# --error ER_SUBQUERY_NO_1_ROW
|
||||
# SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
#
|
||||
drop table t1, t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops
|
||||
|
@ -7188,6 +7188,21 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
(SELECT MAX(sq.f2) FROM t1)
|
||||
NULL
|
||||
#
|
||||
# Disable this query till MDEV-13399 is resolved
|
||||
#
|
||||
# INSERT t2 VALUES (9);
|
||||
# --error ER_SUBQUERY_NO_1_ROW
|
||||
# SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
#
|
||||
drop table t1, t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops
|
||||
|
@ -7186,6 +7186,21 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
(SELECT MAX(sq.f2) FROM t1)
|
||||
NULL
|
||||
#
|
||||
# Disable this query till MDEV-13399 is resolved
|
||||
#
|
||||
# INSERT t2 VALUES (9);
|
||||
# --error ER_SUBQUERY_NO_1_ROW
|
||||
# SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
#
|
||||
drop table t1, t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops
|
||||
|
@ -7201,6 +7201,21 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
(SELECT MAX(sq.f2) FROM t1)
|
||||
NULL
|
||||
#
|
||||
# Disable this query till MDEV-13399 is resolved
|
||||
#
|
||||
# INSERT t2 VALUES (9);
|
||||
# --error ER_SUBQUERY_NO_1_ROW
|
||||
# SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
#
|
||||
drop table t1, t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops
|
||||
|
@ -7186,6 +7186,21 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
(SELECT MAX(sq.f2) FROM t1)
|
||||
NULL
|
||||
#
|
||||
# Disable this query till MDEV-13399 is resolved
|
||||
#
|
||||
# INSERT t2 VALUES (9);
|
||||
# --error ER_SUBQUERY_NO_1_ROW
|
||||
# SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
#
|
||||
drop table t1, t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-9487: Server crashes in Time_and_counter_tracker::incr_loops
|
||||
|
@ -115,3 +115,9 @@ k d1 d2
|
||||
set optimizer_switch= @tmp_subselect_nulls;
|
||||
drop table x1;
|
||||
drop table x2;
|
||||
select (select 1, 2) in (select 3, 4);
|
||||
(select 1, 2) in (select 3, 4)
|
||||
0
|
||||
select (select NULL, NULL) in (select 3, 4);
|
||||
(select NULL, NULL) in (select 3, 4)
|
||||
NULL
|
||||
|
@ -2051,6 +2051,24 @@ d
|
||||
2016-06-04 00:00:00
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
create table t1 (a int, b int);
|
||||
insert into t1 values (1,1),(2,2),(3,3);
|
||||
create table t2 (c varchar(30), d varchar(30));
|
||||
insert into t1 values ('1','1'),('2','2'),('4','4');
|
||||
create table t3 (e int, f int);
|
||||
insert into t3 values (1,1),(2,2),(31,31),(32,32);
|
||||
select e,f, (e , f) in (select e,b from t1 union select c,d from t2) as sub from t3;
|
||||
e f sub
|
||||
1 1 1
|
||||
2 2 1
|
||||
31 31 0
|
||||
32 32 0
|
||||
select avg(f), (e , f) in (select e,b from t1 union select c,d from t2) as sub from t3 group by sub;
|
||||
avg(f) sub
|
||||
31.5000 0
|
||||
1.5000 1
|
||||
drop table t1,t2,t3;
|
||||
End of 5.5 tests
|
||||
#
|
||||
# WL#1763 Avoid creating temporary table in UNION ALL
|
||||
#
|
||||
|
@ -5651,6 +5651,20 @@ Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`c` AS `c`,`test`.`t2`.`d` AS `d`,`test`.`t3`.`e` AS `e`,`test`.`t3`.`f` AS `f` from `test`.`t1` left join (`test`.`t2` join `test`.`t3`) on(((`test`.`t2`.`c` = `test`.`t1`.`b`) and (`test`.`t3`.`f` = `test`.`t1`.`a`) and (`test`.`t2`.`d` = `test`.`t3`.`e`) and (`test`.`t1`.`a` is not null) and (`test`.`t1`.`a` is not null) and (`test`.`t1`.`b` is not null))) where (`test`.`t1`.`a` < 5)
|
||||
drop view v1;
|
||||
drop table t1,t2,t3;
|
||||
#
|
||||
# MDEV-11240: Server crashes in check_view_single_update or
|
||||
# Assertion `derived->table' failed in mysql_derived_merge_for_insert
|
||||
#
|
||||
CREATE TABLE t3 (a INT);
|
||||
CREATE ALGORITHM = MERGE VIEW v1 AS SELECT t2.a FROM t3 AS t1, t3 AS t2;
|
||||
CREATE ALGORITHM = MERGE VIEW v2 AS SELECT * FROM v1;
|
||||
PREPARE stmt FROM 'REPLACE INTO v2 SELECT a FROM t3';
|
||||
EXECUTE stmt;
|
||||
ERROR HY000: Can not insert into join view 'test.v2' without fields list
|
||||
EXECUTE stmt;
|
||||
ERROR HY000: Can not insert into join view 'test.v2' without fields list
|
||||
drop view v1,v2;
|
||||
drop table t3;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.5 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
@ -9,19 +9,19 @@
|
||||
<table_data name="t1">
|
||||
<row>
|
||||
<field name="a">1</field>
|
||||
<field name="b">b1</field>
|
||||
<field name="b"> b1</field>
|
||||
</row>
|
||||
<row>
|
||||
<field name="a">2</field>
|
||||
<field name="b">b2</field>
|
||||
<field name="b"> b2</field>
|
||||
</row>
|
||||
<row>
|
||||
<field name="a">3</field>
|
||||
<field name="b">b3</field>
|
||||
<field name="b"> b3</field>
|
||||
</row>
|
||||
<row>
|
||||
<field name="a">11</field>
|
||||
<field name="b">b11</field>
|
||||
<field name="b"> b11</field>
|
||||
</row>
|
||||
|
||||
<!-- Check field values as tags -->
|
||||
|
@ -326,8 +326,8 @@ fid IsClosed(g)
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.58852775304245 17.426536064113982)
|
||||
118 POINT(55.58852775304245 17.426536064113982)
|
||||
117 POINT(57.98031067576927 17.854754130800433)
|
||||
118 POINT(57.98031067576927 17.854754130800433)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
|
||||
fid Area(g)
|
||||
|
@ -1,14 +1,14 @@
|
||||
#### Setup tables ####
|
||||
CREATE TABLE t0 (a CHAR(100));
|
||||
CREATE TABLE t1 (a CHAR(100));
|
||||
CREATE TABLE t2 (a CHAR(100));
|
||||
CREATE TABLE t3 (a CHAR(100));
|
||||
CREATE TABLE ta0 (a CHAR(100));
|
||||
CREATE TABLE ta1 (a CHAR(100));
|
||||
CREATE TABLE ta2 (a CHAR(100));
|
||||
CREATE TABLE ta3 (a CHAR(100));
|
||||
CREATE TABLE t0 (a CHAR(200));
|
||||
CREATE TABLE t1 (a CHAR(200));
|
||||
CREATE TABLE t2 (a CHAR(200));
|
||||
CREATE TABLE t3 (a CHAR(200));
|
||||
CREATE TABLE ta0 (a CHAR(200));
|
||||
CREATE TABLE ta1 (a CHAR(200));
|
||||
CREATE TABLE ta2 (a CHAR(200));
|
||||
CREATE TABLE ta3 (a CHAR(200));
|
||||
CREATE TABLE autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT);
|
||||
CREATE TABLE data_table (a CHAR(100));
|
||||
CREATE TABLE data_table (a CHAR(200));
|
||||
INSERT INTO data_table VALUES ('foo');
|
||||
CREATE TABLE trigger_table_1 (a INT);
|
||||
CREATE TABLE trigger_table_2 (a INT);
|
||||
@ -2392,7 +2392,7 @@ Note 1592 Unsafe statement written to the binary log using statement format sinc
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a VARCHAR(100), b VARCHAR(100));
|
||||
CREATE TABLE t1 (a VARCHAR(200), b VARCHAR(200));
|
||||
INSERT INTO t1 VALUES ('a','b');
|
||||
UPDATE t1 SET b = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s' WHERE a = 'a' LIMIT 1;
|
||||
Warnings:
|
||||
@ -2423,7 +2423,7 @@ CREATE FUNCTION fun_check_log_bin() RETURNS INT
|
||||
BEGIN
|
||||
SET @@SQL_LOG_BIN = 0;
|
||||
INSERT INTO t1 VALUES(@@global.sync_binlog);
|
||||
RETURN 100;
|
||||
RETURN 200;
|
||||
END|
|
||||
"One unsafe warning should be issued in the following statement"
|
||||
SELECT fun_check_log_bin();
|
||||
|
@ -106,16 +106,16 @@ call mtr.add_suppression("Unsafe statement written to the binary log using state
|
||||
|
||||
--echo #### Setup tables ####
|
||||
|
||||
CREATE TABLE t0 (a CHAR(100));
|
||||
CREATE TABLE t1 (a CHAR(100));
|
||||
CREATE TABLE t2 (a CHAR(100));
|
||||
CREATE TABLE t3 (a CHAR(100));
|
||||
CREATE TABLE ta0 (a CHAR(100));
|
||||
CREATE TABLE ta1 (a CHAR(100));
|
||||
CREATE TABLE ta2 (a CHAR(100));
|
||||
CREATE TABLE ta3 (a CHAR(100));
|
||||
CREATE TABLE t0 (a CHAR(200));
|
||||
CREATE TABLE t1 (a CHAR(200));
|
||||
CREATE TABLE t2 (a CHAR(200));
|
||||
CREATE TABLE t3 (a CHAR(200));
|
||||
CREATE TABLE ta0 (a CHAR(200));
|
||||
CREATE TABLE ta1 (a CHAR(200));
|
||||
CREATE TABLE ta2 (a CHAR(200));
|
||||
CREATE TABLE ta3 (a CHAR(200));
|
||||
CREATE TABLE autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT);
|
||||
CREATE TABLE data_table (a CHAR(100));
|
||||
CREATE TABLE data_table (a CHAR(200));
|
||||
INSERT INTO data_table VALUES ('foo');
|
||||
CREATE TABLE trigger_table_1 (a INT);
|
||||
CREATE TABLE trigger_table_2 (a INT);
|
||||
@ -429,7 +429,7 @@ DROP TABLE t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(100), b VARCHAR(100));
|
||||
CREATE TABLE t1 (a VARCHAR(200), b VARCHAR(200));
|
||||
INSERT INTO t1 VALUES ('a','b');
|
||||
UPDATE t1 SET b = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s' WHERE a = 'a' LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
@ -467,7 +467,7 @@ CREATE FUNCTION fun_check_log_bin() RETURNS INT
|
||||
BEGIN
|
||||
SET @@SQL_LOG_BIN = 0;
|
||||
INSERT INTO t1 VALUES(@@global.sync_binlog);
|
||||
RETURN 100;
|
||||
RETURN 200;
|
||||
END|
|
||||
DELIMITER ;|
|
||||
--echo "One unsafe warning should be issued in the following statement"
|
||||
|
@ -326,8 +326,8 @@ fid IsClosed(g)
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon ORDER by fid;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.58852775304245 17.426536064113982)
|
||||
118 POINT(55.58852775304245 17.426536064113982)
|
||||
117 POINT(57.98031067576927 17.854754130800433)
|
||||
118 POINT(57.98031067576927 17.854754130800433)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon ORDER by fid;
|
||||
fid Area(g)
|
||||
|
29
mysql-test/suite/rpl/r/rpl_reset_slave_fail.result
Normal file
29
mysql-test/suite/rpl/r/rpl_reset_slave_fail.result
Normal file
@ -0,0 +1,29 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
CREATE TABLE t1 (c1 INT);
|
||||
INSERT INTO t1 (c1) VALUES (1);
|
||||
include/stop_slave_sql.inc
|
||||
FLUSH LOGS;
|
||||
FLUSH LOGS;
|
||||
INSERT INTO t1 (c1) VALUES (2);
|
||||
include/sync_slave_io_with_master.inc
|
||||
call mtr.add_suppression("File '.*slave-relay-bin.");
|
||||
call mtr.add_suppression("Could not open log file");
|
||||
call mtr.add_suppression("Failed to open the relay log");
|
||||
call mtr.add_suppression("Failed to initialize the master info structure");
|
||||
include/rpl_stop_server.inc [server_number=2]
|
||||
# Removing file(s)
|
||||
include/rpl_start_server.inc [server_number=2]
|
||||
START SLAVE;
|
||||
ERROR HY000: Could not initialize master info structure for ''; more error messages can be found in the MariaDB error log
|
||||
START SLAVE;
|
||||
ERROR HY000: Could not initialize master info structure for ''; more error messages can be found in the MariaDB error log
|
||||
RESET SLAVE;
|
||||
DROP TABLE t1;
|
||||
START SLAVE UNTIL MASTER_LOG_FILE= 'MASTER_LOG_FILE', MASTER_LOG_POS= MASTER_LOG_POS;;
|
||||
include/wait_for_slave_sql_to_stop.inc
|
||||
include/stop_slave_io.inc
|
||||
include/start_slave.inc
|
||||
include/diff_tables.inc [master:t1, slave:t1]
|
||||
DROP TABLE t1;
|
||||
include/rpl_end.inc
|
91
mysql-test/suite/rpl/t/rpl_reset_slave_fail.test
Normal file
91
mysql-test/suite/rpl/t/rpl_reset_slave_fail.test
Normal file
@ -0,0 +1,91 @@
|
||||
###############################################################################
|
||||
# Bug#24901077: RESET SLAVE ALL DOES NOT ALWAYS RESET SLAVE
|
||||
#
|
||||
# Problem:
|
||||
# =======
|
||||
# If you have a relay log index file that has ended up with
|
||||
# some relay log files that do not exists, then RESET SLAVE
|
||||
# ALL is not enough to get back to a clean state.
|
||||
###############################################################################
|
||||
# Remove all slave-relay-bin.0* files (do not remove slave-relay-bin.index)
|
||||
# During server restart rli initialization will fail as there are no
|
||||
# relay logs. In case of bug RESET SLAVE will not do the required clean up
|
||||
# as rli is not inited and subsequent START SLAVE will fail.
|
||||
# Disable "Warning 1612 Being purged log ./slave-relay-bin.0* was not found"
|
||||
# because it is different on Unix and Windows systems.
|
||||
|
||||
--source include/have_binlog_format_mixed.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
--connection master
|
||||
CREATE TABLE t1 (c1 INT);
|
||||
INSERT INTO t1 (c1) VALUES (1);
|
||||
--sync_slave_with_master
|
||||
|
||||
--connection slave
|
||||
--source include/stop_slave_sql.inc
|
||||
--let $MYSQLD_SLAVE_DATADIR= `select @@datadir`
|
||||
|
||||
--connection master
|
||||
# Generate more relay logs on slave.
|
||||
FLUSH LOGS;
|
||||
FLUSH LOGS;
|
||||
INSERT INTO t1 (c1) VALUES (2);
|
||||
|
||||
--source include/sync_slave_io_with_master.inc
|
||||
call mtr.add_suppression("File '.*slave-relay-bin.");
|
||||
call mtr.add_suppression("Could not open log file");
|
||||
call mtr.add_suppression("Failed to open the relay log");
|
||||
call mtr.add_suppression("Failed to initialize the master info structure");
|
||||
|
||||
# Stop slave
|
||||
--let $rpl_server_number= 2
|
||||
--source include/rpl_stop_server.inc
|
||||
|
||||
# Delete file(s)
|
||||
--echo # Removing $remove_pattern file(s)
|
||||
--let $remove_pattern= slave-relay-bin.0*
|
||||
--remove_files_wildcard $MYSQLD_SLAVE_DATADIR $remove_pattern
|
||||
|
||||
# Start slave
|
||||
--let $rpl_server_number= 2
|
||||
--source include/rpl_start_server.inc
|
||||
|
||||
# Start slave must fail because of the removed file(s).
|
||||
--error ER_MASTER_INFO
|
||||
START SLAVE;
|
||||
|
||||
# Try a second time, it must fail again.
|
||||
--error ER_MASTER_INFO
|
||||
START SLAVE;
|
||||
|
||||
# Retrieve master executed position before reset slave.
|
||||
--let $master_exec_file= query_get_value("SHOW SLAVE STATUS", Relay_Master_Log_File, 1)
|
||||
--let $master_exec_pos= query_get_value("SHOW SLAVE STATUS", Exec_Master_Log_Pos, 1)
|
||||
|
||||
# Reset slave.
|
||||
# Disable "Warning 1612 Being purged log ./slave-relay-bin.0* was not found"
|
||||
# because it is different on Unix and Windows systems.
|
||||
--disable_warnings
|
||||
RESET SLAVE;
|
||||
--enable_warnings
|
||||
DROP TABLE t1;
|
||||
--replace_result $master_exec_file MASTER_LOG_FILE $master_exec_pos MASTER_LOG_POS
|
||||
--eval START SLAVE UNTIL MASTER_LOG_FILE= '$master_exec_file', MASTER_LOG_POS= $master_exec_pos;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--source include/stop_slave_io.inc
|
||||
|
||||
# Start slave.
|
||||
--source include/start_slave.inc
|
||||
|
||||
--connection master
|
||||
--sync_slave_with_master
|
||||
# Check consistency.
|
||||
--let $diff_tables= master:t1, slave:t1
|
||||
--source include/diff_tables.inc
|
||||
|
||||
# Cleanup
|
||||
--connection master
|
||||
DROP TABLE t1;
|
||||
--sync_slave_with_master
|
||||
--source include/rpl_end.inc
|
@ -350,8 +350,8 @@ fid IsClosed(g)
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.58852775304245 17.426536064113982)
|
||||
118 POINT(55.58852775304245 17.426536064113982)
|
||||
117 POINT(57.98031067576927 17.854754130800433)
|
||||
118 POINT(57.98031067576927 17.854754130800433)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon;
|
||||
fid Area(g)
|
||||
|
@ -350,8 +350,8 @@ fid IsClosed(g)
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.58852775304245 17.426536064113982)
|
||||
118 POINT(55.58852775304245 17.426536064113982)
|
||||
117 POINT(57.98031067576927 17.854754130800433)
|
||||
118 POINT(57.98031067576927 17.854754130800433)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon;
|
||||
fid Area(g)
|
||||
@ -1050,8 +1050,8 @@ fid IsClosed(g)
|
||||
116 0
|
||||
SELECT fid, AsText(Centroid(g)) FROM gis_multi_polygon;
|
||||
fid AsText(Centroid(g))
|
||||
117 POINT(55.58852775304245 17.426536064113982)
|
||||
118 POINT(55.58852775304245 17.426536064113982)
|
||||
117 POINT(57.98031067576927 17.854754130800433)
|
||||
118 POINT(57.98031067576927 17.854754130800433)
|
||||
119 POINT(2 2)
|
||||
SELECT fid, Area(g) FROM gis_multi_polygon;
|
||||
fid Area(g)
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- suite/sys_vars/r/sysvars_innodb.result 2016-05-06 14:03:16.000000000 +0300
|
||||
+++ suite/sys_vars/r/sysvars_innodb,32bit.reject 2016-05-08 13:28:44.312418574 +0300
|
||||
--- suite/sys_vars/r/sysvars_innodb.result
|
||||
+++ suite/sys_vars/r/sysvars_innodb,32bit.reject
|
||||
@@ -47,13 +47,27 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY NO
|
||||
@ -298,7 +298,7 @@
|
||||
VARIABLE_NAME INNODB_DATA_FILE_PATH
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE ibdata1:12M:autoextend
|
||||
@@ -753,7 +893,7 @@
|
||||
@@ -767,7 +907,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 120
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -307,7 +307,7 @@
|
||||
VARIABLE_COMMENT Number of pages reserved in doublewrite buffer for batch flushing
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 127
|
||||
@@ -761,6 +901,20 @@
|
||||
@@ -775,6 +915,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -328,7 +328,7 @@
|
||||
VARIABLE_NAME INNODB_ENCRYPTION_ROTATE_KEY_AGE
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 1
|
||||
@@ -831,13 +985,27 @@
|
||||
@@ -845,13 +999,27 @@
|
||||
ENUM_VALUE_LIST OFF,ON,FORCE
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -357,7 +357,7 @@
|
||||
VARIABLE_COMMENT Speeds up the shutdown process of the InnoDB storage engine. Possible values are 0, 1 (faster) or 2 (fastest - crash-like).
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 2
|
||||
@@ -851,7 +1019,7 @@
|
||||
@@ -865,7 +1033,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 600
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -366,7 +366,7 @@
|
||||
VARIABLE_COMMENT Maximum number of seconds that semaphore times out in InnoDB.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -921,7 +1089,7 @@
|
||||
@@ -935,7 +1103,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -375,7 +375,7 @@
|
||||
VARIABLE_COMMENT Make the first page of the given tablespace dirty.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -935,7 +1103,7 @@
|
||||
@@ -949,7 +1117,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 30
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -384,7 +384,7 @@
|
||||
VARIABLE_COMMENT Number of iterations over which the background flushing is averaged.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1000
|
||||
@@ -958,12 +1126,12 @@
|
||||
@@ -972,12 +1140,12 @@
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
VARIABLE_NAME INNODB_FLUSH_LOG_AT_TRX_COMMIT
|
||||
@ -400,7 +400,7 @@
|
||||
VARIABLE_COMMENT Controls the durability/speed trade-off for commits. Set to 0 (write and flush redo log to disk only once per second), 1 (flush to disk at each commit), 2 (write to log at commit but flush to disk only once per second) or 3 (flush to disk at prepare and at commit, slower and usually redundant). 1 and 3 guarantees that after a crash, committed transactions will not be lost and will be consistent with the binlog and other transactional engines. 2 can get inconsistent and lose transactions if there is a power failure or kernel crash but not if mysqld crashes. 0 has no guarantees in case of crash. 0 and 2 can be faster than 1 or 3.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 3
|
||||
@@ -991,7 +1159,7 @@
|
||||
@@ -1005,7 +1173,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -409,7 +409,7 @@
|
||||
VARIABLE_COMMENT Set to 0 (don't flush neighbors from buffer pool), 1 (flush contiguous neighbors from buffer pool) or 2 (flush neighbors from buffer pool), when flushing a block
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 2
|
||||
@@ -1033,7 +1201,7 @@
|
||||
@@ -1047,7 +1215,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -575,7 +575,7 @@
|
||||
VARIABLE_NAME INNODB_LOCKS_UNSAFE_FOR_BINLOG
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -1341,7 +1551,7 @@
|
||||
@@ -1355,7 +1565,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 50
|
||||
VARIABLE_SCOPE SESSION
|
||||
@ -584,7 +584,7 @@
|
||||
VARIABLE_COMMENT Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1073741824
|
||||
@@ -1349,35 +1559,105 @@
|
||||
@@ -1363,37 +1573,107 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
@ -620,7 +620,8 @@
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
-VARIABLE_NAME INNODB_LOG_COMPRESSED_PAGES
|
||||
+VARIABLE_NAME INNODB_LOG_ARCH_DIR
|
||||
+SESSION_VALUE NULL
|
||||
SESSION_VALUE NULL
|
||||
-GLOBAL_VALUE ON
|
||||
+GLOBAL_VALUE PATH
|
||||
+GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
+DEFAULT_VALUE
|
||||
@ -704,10 +705,12 @@
|
||||
+READ_ONLY NO
|
||||
+COMMAND_LINE_ARGUMENT REQUIRED
|
||||
+VARIABLE_NAME INNODB_LOG_COMPRESSED_PAGES
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE ON
|
||||
+SESSION_VALUE NULL
|
||||
+GLOBAL_VALUE ON
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
@@ -1397,7 +1677,7 @@
|
||||
DEFAULT_VALUE ON
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@@ -1411,7 +1691,7 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 2
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -716,7 +719,7 @@
|
||||
VARIABLE_COMMENT Number of log files in the log group. InnoDB writes to the files in a circular fashion.
|
||||
NUMERIC_MIN_VALUE 2
|
||||
NUMERIC_MAX_VALUE 100
|
||||
@@ -1439,9 +1719,37 @@
|
||||
@@ -1453,9 +1733,37 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 1024
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -755,7 +758,7 @@
|
||||
NUMERIC_MAX_VALUE 18446744073709551615
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -1481,10 +1789,10 @@
|
||||
@@ -1495,10 +1803,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -768,7 +771,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1495,7 +1803,7 @@
|
||||
@@ -1509,7 +1817,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -777,7 +780,7 @@
|
||||
VARIABLE_COMMENT Maximum delay of user threads in micro-seconds
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 10000000
|
||||
@@ -1509,7 +1817,7 @@
|
||||
@@ -1523,7 +1831,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -786,7 +789,7 @@
|
||||
VARIABLE_COMMENT Number of identical copies of log groups we keep for the database. Currently this should be set to 1.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 10
|
||||
@@ -1579,7 +1887,7 @@
|
||||
@@ -1593,7 +1901,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 8
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -795,7 +798,7 @@
|
||||
VARIABLE_COMMENT Number of multi-threaded flush threads
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1635,10 +1943,10 @@
|
||||
@@ -1649,10 +1957,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -808,7 +811,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
@@ -1663,7 +1971,7 @@
|
||||
@@ -1677,7 +1985,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 16
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -817,7 +820,7 @@
|
||||
VARIABLE_COMMENT Number of rw_locks protecting buffer pool page_hash. Rounded up to the next power of 2
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1024
|
||||
@@ -1677,7 +1985,7 @@
|
||||
@@ -1691,7 +1999,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 16384
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -826,8 +829,8 @@
|
||||
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
|
||||
NUMERIC_MIN_VALUE 4096
|
||||
NUMERIC_MAX_VALUE 65536
|
||||
@@ -1713,13 +2021,69 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -1727,13 +2035,69 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
+VARIABLE_NAME INNODB_PRIORITY_CLEANER
|
||||
@ -897,7 +900,7 @@
|
||||
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 5000
|
||||
@@ -1761,7 +2125,7 @@
|
||||
@@ -1775,7 +2139,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -906,7 +909,7 @@
|
||||
VARIABLE_COMMENT Purge threads can be from 1 to 32. Default is 1.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 32
|
||||
@@ -1789,7 +2153,7 @@
|
||||
@@ -1803,7 +2167,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 56
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -915,7 +918,7 @@
|
||||
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1803,7 +2167,7 @@
|
||||
@@ -1817,7 +2181,7 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 4
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -924,7 +927,7 @@
|
||||
VARIABLE_COMMENT Number of background read I/O threads in InnoDB.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1831,10 +2195,10 @@
|
||||
@@ -1845,10 +2209,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -937,7 +940,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1859,7 +2223,7 @@
|
||||
@@ -1873,7 +2237,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 128
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -946,7 +949,7 @@
|
||||
VARIABLE_COMMENT Number of undo logs to use (deprecated).
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 128
|
||||
@@ -1873,7 +2237,7 @@
|
||||
@@ -1887,7 +2251,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -955,7 +958,7 @@
|
||||
VARIABLE_COMMENT An InnoDB page number.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -1881,6 +2245,48 @@
|
||||
@@ -1895,6 +2259,48 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -1004,7 +1007,7 @@
|
||||
VARIABLE_NAME INNODB_SCRUB_LOG
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -1909,6 +2315,34 @@
|
||||
@@ -1923,6 +2329,34 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -1039,7 +1042,7 @@
|
||||
VARIABLE_NAME INNODB_SIMULATE_COMP_FAILURES
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 0
|
||||
@@ -1929,7 +2363,7 @@
|
||||
@@ -1943,7 +2377,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1048576
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1048,7 +1051,7 @@
|
||||
VARIABLE_COMMENT Memory buffer size for index creation
|
||||
NUMERIC_MIN_VALUE 65536
|
||||
NUMERIC_MAX_VALUE 67108864
|
||||
@@ -1943,10 +2377,10 @@
|
||||
@@ -1957,10 +2391,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 6
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1061,7 +1064,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1972,7 +2406,7 @@
|
||||
@@ -2000,7 +2434,7 @@
|
||||
DEFAULT_VALUE nulls_equal
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
VARIABLE_TYPE ENUM
|
||||
@ -1070,7 +1073,7 @@
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
@@ -2139,7 +2573,7 @@
|
||||
@@ -2167,7 +2601,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1079,7 +1082,7 @@
|
||||
VARIABLE_COMMENT Size of the mutex/lock wait array.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1024
|
||||
@@ -2153,10 +2587,10 @@
|
||||
@@ -2181,10 +2615,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 30
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1092,7 +1095,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -2181,7 +2615,7 @@
|
||||
@@ -2209,7 +2643,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1101,7 +1104,7 @@
|
||||
VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 1000
|
||||
@@ -2195,7 +2629,7 @@
|
||||
@@ -2223,7 +2657,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 10000
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1110,7 +1113,7 @@
|
||||
VARIABLE_COMMENT Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0 disable a sleep
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 1000000
|
||||
@@ -2217,6 +2651,34 @@
|
||||
@@ -2245,6 +2679,34 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -1145,7 +1148,7 @@
|
||||
VARIABLE_NAME INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -2265,7 +2727,7 @@
|
||||
@@ -2293,7 +2755,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 128
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1154,7 +1157,7 @@
|
||||
VARIABLE_COMMENT Number of undo logs to use.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 128
|
||||
@@ -2279,7 +2741,7 @@
|
||||
@@ -2307,7 +2769,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1163,7 +1166,7 @@
|
||||
VARIABLE_COMMENT Number of undo tablespaces to use.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 126
|
||||
@@ -2294,7 +2756,7 @@
|
||||
@@ -2322,7 +2784,7 @@
|
||||
DEFAULT_VALUE OFF
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
VARIABLE_TYPE BOOLEAN
|
||||
@ -1172,8 +1175,8 @@
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
@@ -2315,6 +2777,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -2343,6 +2805,20 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT NONE
|
||||
+VARIABLE_NAME INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
|
||||
@ -1193,8 +1196,8 @@
|
||||
VARIABLE_NAME INNODB_USE_MTFLUSH
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -2329,6 +2805,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -2357,6 +2833,20 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT NONE
|
||||
+VARIABLE_NAME INNODB_USE_STACKTRACE
|
||||
@ -1214,12 +1217,12 @@
|
||||
VARIABLE_NAME INNODB_USE_SYS_MALLOC
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE ON
|
||||
@@ -2359,12 +2849,12 @@
|
||||
@@ -2387,12 +2877,12 @@
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
VARIABLE_NAME INNODB_VERSION
|
||||
SESSION_VALUE NULL
|
||||
-GLOBAL_VALUE 5.6.36
|
||||
+GLOBAL_VALUE 5.6.36-82.0
|
||||
-GLOBAL_VALUE 5.6.37
|
||||
+GLOBAL_VALUE 5.6.36-82.1
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE NULL
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -1229,7 +1232,7 @@
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
@@ -2377,7 +2867,7 @@
|
||||
@@ -2405,7 +2895,7 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 4
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
@ -125,7 +125,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -753,7 +753,7 @@
|
||||
@@ -767,7 +767,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 120
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -134,7 +134,7 @@
|
||||
VARIABLE_COMMENT Number of pages reserved in doublewrite buffer for batch flushing
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 127
|
||||
@@ -837,7 +837,7 @@
|
||||
@@ -851,7 +851,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -143,7 +143,7 @@
|
||||
VARIABLE_COMMENT Speeds up the shutdown process of the InnoDB storage engine. Possible values are 0, 1 (faster) or 2 (fastest - crash-like).
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 2
|
||||
@@ -851,7 +851,7 @@
|
||||
@@ -865,7 +865,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 600
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -152,7 +152,7 @@
|
||||
VARIABLE_COMMENT Maximum number of seconds that semaphore times out in InnoDB.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -921,7 +921,7 @@
|
||||
@@ -935,7 +935,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -161,7 +161,7 @@
|
||||
VARIABLE_COMMENT Make the first page of the given tablespace dirty.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -935,7 +935,7 @@
|
||||
@@ -949,7 +949,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 30
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -170,7 +170,7 @@
|
||||
VARIABLE_COMMENT Number of iterations over which the background flushing is averaged.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1000
|
||||
@@ -963,7 +963,7 @@
|
||||
@@ -977,7 +977,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -179,7 +179,7 @@
|
||||
VARIABLE_COMMENT Controls the durability/speed trade-off for commits. Set to 0 (write and flush redo log to disk only once per second), 1 (flush to disk at each commit), 2 (write to log at commit but flush to disk only once per second) or 3 (flush to disk at prepare and at commit, slower and usually redundant). 1 and 3 guarantees that after a crash, committed transactions will not be lost and will be consistent with the binlog and other transactional engines. 2 can get inconsistent and lose transactions if there is a power failure or kernel crash but not if mysqld crashes. 0 has no guarantees in case of crash. 0 and 2 can be faster than 1 or 3.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 3
|
||||
@@ -991,7 +991,7 @@
|
||||
@@ -1005,7 +1005,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -188,7 +188,7 @@
|
||||
VARIABLE_COMMENT Set to 0 (don't flush neighbors from buffer pool), 1 (flush contiguous neighbors from buffer pool) or 2 (flush neighbors from buffer pool), when flushing a block
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 2
|
||||
@@ -1033,7 +1033,7 @@
|
||||
@@ -1047,7 +1047,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -298,7 +298,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1341,7 +1341,7 @@
|
||||
@@ -1355,7 +1355,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 50
|
||||
VARIABLE_SCOPE SESSION
|
||||
@ -307,7 +307,7 @@
|
||||
VARIABLE_COMMENT Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1073741824
|
||||
@@ -1355,10 +1355,10 @@
|
||||
@@ -1369,10 +1369,10 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 16777216
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -320,7 +320,7 @@
|
||||
NUMERIC_BLOCK_SIZE 1024
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
@@ -1397,7 +1397,7 @@
|
||||
@@ -1411,7 +1411,7 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 2
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -329,7 +329,7 @@
|
||||
VARIABLE_COMMENT Number of log files in the log group. InnoDB writes to the files in a circular fashion.
|
||||
NUMERIC_MIN_VALUE 2
|
||||
NUMERIC_MAX_VALUE 100
|
||||
@@ -1439,10 +1439,10 @@
|
||||
@@ -1453,10 +1453,10 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 1024
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -342,7 +342,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1481,10 +1481,10 @@
|
||||
@@ -1495,10 +1495,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -355,7 +355,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1495,7 +1495,7 @@
|
||||
@@ -1509,7 +1509,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -364,7 +364,7 @@
|
||||
VARIABLE_COMMENT Maximum delay of user threads in micro-seconds
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 10000000
|
||||
@@ -1509,7 +1509,7 @@
|
||||
@@ -1523,7 +1523,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -373,7 +373,7 @@
|
||||
VARIABLE_COMMENT Number of identical copies of log groups we keep for the database. Currently this should be set to 1.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 10
|
||||
@@ -1579,7 +1579,7 @@
|
||||
@@ -1593,7 +1593,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 8
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -382,7 +382,7 @@
|
||||
VARIABLE_COMMENT Number of multi-threaded flush threads
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1635,10 +1635,10 @@
|
||||
@@ -1649,10 +1649,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -395,7 +395,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
@@ -1663,7 +1663,7 @@
|
||||
@@ -1677,7 +1677,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 16
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -404,7 +404,7 @@
|
||||
VARIABLE_COMMENT Number of rw_locks protecting buffer pool page_hash. Rounded up to the next power of 2
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1024
|
||||
@@ -1677,7 +1677,7 @@
|
||||
@@ -1691,7 +1691,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 16384
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -413,7 +413,7 @@
|
||||
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
|
||||
NUMERIC_MIN_VALUE 4096
|
||||
NUMERIC_MAX_VALUE 65536
|
||||
@@ -1719,7 +1719,7 @@
|
||||
@@ -1733,7 +1733,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 300
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -422,7 +422,7 @@
|
||||
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 5000
|
||||
@@ -1761,7 +1761,7 @@
|
||||
@@ -1775,7 +1775,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -431,7 +431,7 @@
|
||||
VARIABLE_COMMENT Purge threads can be from 1 to 32. Default is 1.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 32
|
||||
@@ -1789,7 +1789,7 @@
|
||||
@@ -1803,7 +1803,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 56
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -440,7 +440,7 @@
|
||||
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1803,7 +1803,7 @@
|
||||
@@ -1817,7 +1817,7 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 4
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -449,7 +449,7 @@
|
||||
VARIABLE_COMMENT Number of background read I/O threads in InnoDB.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1831,10 +1831,10 @@
|
||||
@@ -1845,10 +1845,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -462,7 +462,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1859,7 +1859,7 @@
|
||||
@@ -1873,7 +1873,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 128
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -471,7 +471,7 @@
|
||||
VARIABLE_COMMENT Number of undo logs to use (deprecated).
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 128
|
||||
@@ -1873,7 +1873,7 @@
|
||||
@@ -1887,7 +1887,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -480,7 +480,7 @@
|
||||
VARIABLE_COMMENT An InnoDB page number.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -1929,7 +1929,7 @@
|
||||
@@ -1943,7 +1943,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1048576
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -489,7 +489,7 @@
|
||||
VARIABLE_COMMENT Memory buffer size for index creation
|
||||
NUMERIC_MIN_VALUE 65536
|
||||
NUMERIC_MAX_VALUE 67108864
|
||||
@@ -1943,10 +1943,10 @@
|
||||
@@ -1957,10 +1957,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 6
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -502,7 +502,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -2139,7 +2139,7 @@
|
||||
@@ -2167,7 +2167,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -511,7 +511,7 @@
|
||||
VARIABLE_COMMENT Size of the mutex/lock wait array.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1024
|
||||
@@ -2153,10 +2153,10 @@
|
||||
@@ -2181,10 +2181,10 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 30
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -524,7 +524,7 @@
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -2181,7 +2181,7 @@
|
||||
@@ -2209,7 +2209,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -533,7 +533,7 @@
|
||||
VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 1000
|
||||
@@ -2195,7 +2195,7 @@
|
||||
@@ -2223,7 +2223,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 10000
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -542,7 +542,7 @@
|
||||
VARIABLE_COMMENT Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0 disable a sleep
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 1000000
|
||||
@@ -2251,7 +2251,7 @@
|
||||
@@ -2293,7 +2293,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 128
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -551,7 +551,7 @@
|
||||
VARIABLE_COMMENT Number of undo logs to use.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 128
|
||||
@@ -2265,7 +2265,7 @@
|
||||
@@ -2307,7 +2307,7 @@
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
@ -560,7 +560,7 @@
|
||||
VARIABLE_COMMENT Number of undo tablespaces to use.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 126
|
||||
@@ -2363,7 +2363,7 @@
|
||||
@@ -2405,7 +2405,7 @@
|
||||
GLOBAL_VALUE_ORIGIN CONFIG
|
||||
DEFAULT_VALUE 4
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
@ -1,7 +1,7 @@
|
||||
--- suite/sys_vars/r/sysvars_innodb.result
|
||||
+++ suite/sys_vars/r/sysvars_innodb,xtradb.reject
|
||||
@@ -47,6 +47,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
+VARIABLE_NAME INNODB_ADAPTIVE_HASH_INDEX_PARTITIONS
|
||||
@ -22,7 +22,7 @@
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 150000
|
||||
@@ -355,6 +369,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
+VARIABLE_NAME INNODB_BUFFER_POOL_POPULATE
|
||||
@ -177,7 +177,7 @@
|
||||
VARIABLE_NAME INNODB_DATA_FILE_PATH
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE ibdata1:12M:autoextend
|
||||
@@ -761,6 +901,20 @@
|
||||
@@ -775,6 +915,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -198,7 +198,7 @@
|
||||
VARIABLE_NAME INNODB_ENCRYPTION_ROTATE_KEY_AGE
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 1
|
||||
@@ -831,6 +985,20 @@
|
||||
@@ -845,6 +999,20 @@
|
||||
ENUM_VALUE_LIST OFF,ON,FORCE
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -219,7 +219,7 @@
|
||||
VARIABLE_NAME INNODB_FAST_SHUTDOWN
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 1
|
||||
@@ -958,11 +1126,11 @@
|
||||
@@ -972,11 +1140,11 @@
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
VARIABLE_NAME INNODB_FLUSH_LOG_AT_TRX_COMMIT
|
||||
@ -296,7 +296,7 @@
|
||||
VARIABLE_NAME INNODB_LOCKS_UNSAFE_FOR_BINLOG
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -1349,6 +1559,62 @@
|
||||
@@ -1363,6 +1573,62 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
@ -359,8 +359,8 @@
|
||||
VARIABLE_NAME INNODB_LOG_BUFFER_SIZE
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 1048576
|
||||
@@ -1377,6 +1643,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -1391,6 +1657,20 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
+VARIABLE_NAME INNODB_LOG_CHECKSUM_ALGORITHM
|
||||
@ -380,7 +380,7 @@
|
||||
VARIABLE_NAME INNODB_LOG_COMPRESSED_PAGES
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE ON
|
||||
@@ -1447,6 +1727,34 @@
|
||||
@@ -1461,6 +1741,34 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
@ -415,8 +415,8 @@
|
||||
VARIABLE_NAME INNODB_MAX_DIRTY_PAGES_PCT
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 75.000000
|
||||
@@ -1713,6 +2021,62 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -1727,6 +2035,62 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
+VARIABLE_NAME INNODB_PRIORITY_CLEANER
|
||||
@ -478,7 +478,7 @@
|
||||
VARIABLE_NAME INNODB_PURGE_BATCH_SIZE
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 300
|
||||
@@ -1881,6 +2245,48 @@
|
||||
@@ -1895,6 +2259,48 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -527,7 +527,7 @@
|
||||
VARIABLE_NAME INNODB_SCRUB_LOG
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -1909,6 +2315,34 @@
|
||||
@@ -1923,6 +2329,34 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -562,7 +562,7 @@
|
||||
VARIABLE_NAME INNODB_SIMULATE_COMP_FAILURES
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 0
|
||||
@@ -1972,7 +2406,7 @@
|
||||
@@ -2000,7 +2434,7 @@
|
||||
DEFAULT_VALUE nulls_equal
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
VARIABLE_TYPE ENUM
|
||||
@ -571,7 +571,7 @@
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
@@ -2217,6 +2651,34 @@
|
||||
@@ -2245,6 +2679,34 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
@ -606,7 +606,7 @@
|
||||
VARIABLE_NAME INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -2294,7 +2756,7 @@
|
||||
@@ -2322,7 +2784,7 @@
|
||||
DEFAULT_VALUE OFF
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
VARIABLE_TYPE BOOLEAN
|
||||
@ -615,8 +615,8 @@
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
@@ -2315,6 +2777,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -2343,6 +2805,20 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT NONE
|
||||
+VARIABLE_NAME INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
|
||||
@ -636,8 +636,8 @@
|
||||
VARIABLE_NAME INNODB_USE_MTFLUSH
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE OFF
|
||||
@@ -2329,6 +2805,20 @@
|
||||
ENUM_VALUE_LIST NULL
|
||||
@@ -2357,6 +2833,20 @@
|
||||
ENUM_VALUE_LIST OFF,ON
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT NONE
|
||||
+VARIABLE_NAME INNODB_USE_STACKTRACE
|
||||
@ -657,12 +657,12 @@
|
||||
VARIABLE_NAME INNODB_USE_SYS_MALLOC
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE ON
|
||||
@@ -2359,12 +2849,12 @@
|
||||
@@ -2387,12 +2877,12 @@
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
VARIABLE_NAME INNODB_VERSION
|
||||
SESSION_VALUE NULL
|
||||
-GLOBAL_VALUE 5.6.36
|
||||
+GLOBAL_VALUE 5.6.36-82.0
|
||||
-GLOBAL_VALUE 5.6.37
|
||||
+GLOBAL_VALUE 5.6.36-82.1
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE NULL
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
@ -2387,7 +2387,7 @@ READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||
VARIABLE_NAME INNODB_VERSION
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE 5.6.36
|
||||
GLOBAL_VALUE 5.6.37
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE NULL
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
@ -285,6 +285,8 @@ CREATE TABLE t1 (a LONGTEXT COLLATE latin1_general_ci);
|
||||
ALTER TABLE t1 MODIFY a LONGTEXT COLLATE latin1_swedish_ci, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 10.0 tests
|
||||
|
||||
#
|
||||
# MDEV-11335 Changing delay_key_write option for MyISAM table should not copy rows
|
||||
#
|
||||
@ -306,3 +308,5 @@ flush tables;
|
||||
insert t1 values (1,2),(2,3),(3,4);
|
||||
show status like 'Feature_delay_key_write';
|
||||
drop table t1;
|
||||
|
||||
# End of 10.1 tests
|
||||
|
76
mysql-test/t/binary_to_hex.test
Normal file
76
mysql-test/t/binary_to_hex.test
Normal file
@ -0,0 +1,76 @@
|
||||
# === Purpose ===
|
||||
# The purpose of this test case is to make
|
||||
# sure that the binary data in tables is printed
|
||||
# as hex when the option binary-as-hex is enabled.
|
||||
#
|
||||
# === Related bugs and/or worklogs ===
|
||||
# Bug #25340722 - PRINT BINARY DATA AS HEX IN THE MYSQL
|
||||
# CLIENT (CONTRIBUTION)
|
||||
#
|
||||
|
||||
# Save the initial number of concurrent sessions
|
||||
--source include/count_sessions.inc
|
||||
--source include/not_embedded.inc
|
||||
|
||||
USE test;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (c1 TINYBLOB,
|
||||
c2 BLOB,
|
||||
c3 MEDIUMBLOB,
|
||||
c4 LONGBLOB,
|
||||
c5 TEXT,
|
||||
c6 BIT(1),
|
||||
c7 CHAR,
|
||||
c8 VARCHAR(10),
|
||||
c9 GEOMETRY) CHARACTER SET = binary;
|
||||
|
||||
SHOW CREATE TABLE t1;
|
||||
|
||||
INSERT INTO t1 VALUES ('tinyblob-text readable', 'blob-text readable',
|
||||
'mediumblob-text readable', 'longblob-text readable',
|
||||
'text readable', b'1', 'c', 'variable',
|
||||
POINT(1, 1));
|
||||
|
||||
CREATE TABLE t2(id int, `col1` binary(10),`col2` blob);
|
||||
|
||||
SHOW CREATE TABLE t2;
|
||||
|
||||
INSERT INTO t2 VALUES (1, X'AB1234', X'123ABC'), (2, X'DE1234', X'123DEF');
|
||||
|
||||
--echo #Print the table contents when binary-as-hex option is off.
|
||||
--replace_column 6 # 9 #
|
||||
SELECT * FROM t1;
|
||||
|
||||
--replace_column 2 # 3 #
|
||||
SELECT * FROM t2;
|
||||
|
||||
--echo #Print the table contents after turning on the binary-as-hex option
|
||||
--echo
|
||||
--echo #Print the table contents in tab format
|
||||
--echo
|
||||
--exec $MYSQL test --binary-as-hex -e "SELECT * FROM t1; SELECT * FROM t2;"
|
||||
--echo
|
||||
--echo #Print the table contents in table format
|
||||
--echo
|
||||
--exec $MYSQL test --binary-as-hex --table -e "SELECT * FROM t1; SELECT * FROM t2 WHERE col2=0x123ABC;"
|
||||
--echo
|
||||
--echo #Print the table contents vertically
|
||||
--echo
|
||||
--exec $MYSQL test --binary-as-hex --vertical -e "SELECT * FROM t1;"
|
||||
--echo
|
||||
--echo #Print the table contents in xml format
|
||||
--echo
|
||||
--exec $MYSQL test --binary-as-hex --xml -e "SELECT * FROM t1; SELECT * FROM t2;"
|
||||
--echo
|
||||
--echo #Print the table contents in html format
|
||||
--echo
|
||||
--exec $MYSQL test --binary-as-hex --html -e "SELECT * FROM t1; SELECT * FROM t2;"
|
||||
|
||||
#Cleanup
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
# Wait till all disconnects are completed
|
||||
--source include/wait_until_count_sessions.inc
|
@ -107,3 +107,19 @@ create view v1 as select * from t1;
|
||||
select count(distinct i) from v1;
|
||||
drop table t1;
|
||||
drop view v1;
|
||||
|
||||
#
|
||||
# MDEV-12136 SELECT COUNT(DISTINCT) returns the wrong value when tmp_table_size is limited
|
||||
#
|
||||
create table t1 (user_id char(64) character set utf8);
|
||||
insert t1 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17);
|
||||
set @@tmp_table_size = 1024;
|
||||
select count(distinct user_id) from t1;
|
||||
alter table t1 modify user_id char(128) character set utf8;
|
||||
select count(distinct user_id) from t1;
|
||||
drop table t1;
|
||||
set @@tmp_table_size = default;
|
||||
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -431,6 +431,25 @@ SELECT CAST(0xE001 AS BINARY) REGEXP @regCheck;
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,Golf,Hotel,India,Juliet,Kilo,Lima,Mike,StrataL3,November,Oscar,StrataL2,Sand,P3,P4SwitchTest,Arsys,Poppa,ExtensionMgr,Arp,Quebec,Romeo,StrataApiV2,PtReyes,Sierra,SandAcl,Arrow,Artools,BridgeTest,Tango,SandT,PAlaska,Namespace,Agent,Qos,PatchPanel,ProjectReport,Ark,Gimp,Agent,SliceAgent,Arnet,Bgp,Ale,Tommy,Central,AsicPktTestLib,Hsc,SandL3,Abuild,Pca9555,Standby,ControllerDut,CalSys,SandLib,Sb820,PointV2,BfnLib,Evpn,BfnSdk,Sflow,ManagementActive,AutoTest,GatedTest,Bgp,Sand,xinetd,BfnAgentLib,bf-utils,Hello,BfnState,Eos,Artest,Qos,Scd,ThermoMgr,Uniform,EosUtils,Eb,FanController,Central,BfnL3,BfnL2,tcp_wrappers,Victor,Environment,Route,Failover,Whiskey,Xray,Gimp,BfnFixed,Strata,SoCal,XApi,Msrp,XpProfile,tcpdump,PatchPanel,ArosTest,FhTest,Arbus,XpAcl,MacConc,XpApi,telnet,QosTest,Alpha2,BfnVlan,Stp,VxlanControllerTest,MplsAgent,Bravo2,Lanz,BfnMbb,Intf,XCtrl,Unicast,SandTunnel,L3Unicast,Ipsec,MplsTest,Rsvp,EthIntf,StageMgr,Sol,MplsUtils,Nat,Ira,P4NamespaceDut,Counters,Charlie2,Aqlc,Mlag,Power,OpenFlow,Lag,RestApi,BfdTest,strongs,Sfa,CEosUtils,Adt746,MaintenanceMode,MlagDut,EosImage,IpEth,MultiProtocol,Launcher,Max3179,Snmp,Acl,IpEthTest,PhyEee,bf-syslibs,tacc,XpL2,p4-ar-switch,p4-bf-switch,LdpTest,BfnPhy,Mirroring,Phy6,Ptp' REGEXP '^((?!\b(Strata|StrataApi|StrataApiV2)\b).)*$');
|
||||
|
||||
#
|
||||
# MDEV-13173 An RLIKE that previously worked on 10.0 now returns "Got error 'pcre_exec: recursion limit of 100 exceeded' from regexp"
|
||||
#
|
||||
SELECT CONCAT(REPEAT('100,',133),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT CONCAT(REPEAT('100,',200),'101') RLIKE '^(([1-9][0-9]*),)*[1-9][0-9]*$';
|
||||
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT REGEXP_INSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$');
|
||||
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT LENGTH(REGEXP_SUBSTR(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$'));
|
||||
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',133),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
--replace_regex /[0-9]+ exceeded/NUM exceeded/
|
||||
SELECT LENGTH(REGEXP_REPLACE(CONCAT(REPEAT('100,',200),'101'), '^(([1-9][0-9]*),)*[1-9][0-9]*$', ''));
|
||||
|
||||
#
|
||||
# MDEV-12942 REGEXP_INSTR returns 1 when using brackets
|
||||
#
|
||||
|
@ -62,3 +62,25 @@ SELECT fid, AsText(g) FROM t1 WHERE ST_Within(g,
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.5 tests.
|
||||
|
||||
#
|
||||
# MDEV-12078 Using spatial index changes type from point to geometry.
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
coordinate point NOT NULL,
|
||||
SPATIAL KEY coordinate (coordinate)
|
||||
) ENGINE=Aria DEFAULT CHARSET=ascii PAGE_CHECKSUM=1;
|
||||
|
||||
SHOW COLUMNS FROM t1;
|
||||
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 0)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 0)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(10 10)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(0 10)"));
|
||||
INSERT INTO t1 (coordinate) VALUES(ST_PointFromText("POINT(5 5)"));
|
||||
|
||||
SELECT astext(coordinate) FROM t1 WHERE ST_Intersects(ST_LineFromText("LINESTRING(0 0, 10 0, 10 10, 0 10)"), coordinate);
|
||||
|
||||
SHOW COLUMNS FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
@ -351,15 +351,15 @@ insert into t1 values ('85984',GeomFromText('MULTIPOLYGON(((-115.006363
|
||||
36.248666,-115.263639 36.247466,-115.263839 36.252766,-115.261439
|
||||
36.252666,-115.261439 36.247366,-115.247239 36.247066)))'));
|
||||
|
||||
# Expected result is 115.31877315203187, but IA64 returns 115.31877315203188
|
||||
# due to fused multiply-add instructions.
|
||||
--replace_result 115.31877315203188 115.31877315203187
|
||||
# Expected results are 115.2970604672862 and 36.23335610879993, but IA64 returns
|
||||
# slightly different values due to fused multiply-add instructions.
|
||||
--replace_result 115.29706047613604 115.2970604672862 36.23335611157958 36.23335610879993
|
||||
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
|
||||
t1 where object_id=85998;
|
||||
|
||||
# Expected result is 36.3310176346905, but IA64 returns 36.3310176346904
|
||||
# Expected result is 36.34725218253213, but IA64 returns 36.34725217627852
|
||||
# due to fused multiply-add instructions.
|
||||
--replace_result 36.3310176346904 36.3310176346905 -114.87787186923326 -114.87787186923313 36.33101763469053 36.33101763469059 36.33101763469043 36.33101763469059
|
||||
--replace_result 36.34725217627852 36.34725218253213 -114.86854470090232 -114.86854472054372
|
||||
select object_id, geometrytype(geo), ISSIMPLE(GEO), ASTEXT(centroid(geo)) from
|
||||
t1 where object_id=85984;
|
||||
|
||||
|
@ -1726,6 +1726,44 @@ select a as x from t1 group by x having x > 1;
|
||||
select a from t1 group by a having a > 1;
|
||||
drop table t1;
|
||||
set sql_mode= @save_sql_mode;
|
||||
|
||||
#
|
||||
# MDEV-7826 Server crashes in Item_subselect::enumerate_field_refs_processor
|
||||
#
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (5),(9);
|
||||
create table t2 (f2 int);
|
||||
insert into t2 values (0),(6);
|
||||
create table t3 (f3 int);
|
||||
insert into t3 values (6),(3);
|
||||
create table t4 (f4 int);
|
||||
insert into t4 values (1),(0);
|
||||
--error ER_ILLEGAL_REFERENCE
|
||||
select
|
||||
(select min(f1) from t1 where f1 in (select min(f4) from t2)) as field7,
|
||||
(select count(*) from t3 where f3 in (select max(f4) from t2 group by field7))
|
||||
from t4;
|
||||
drop table t1, t2, t3, t4;
|
||||
|
||||
#
|
||||
# MDEV-13180 Unused left join causes server crash
|
||||
#
|
||||
create table t1 (i1 int);
|
||||
insert into t1 values (1);
|
||||
create table t2 (i int);
|
||||
insert into t2 values (2);
|
||||
select 1 from t1 left join t2 b on b.i = (select max(b.i) from t2);
|
||||
drop table t1, t2;
|
||||
|
||||
|
||||
#
|
||||
# MDEV-12489 The select stmt may fail due to "having clause is ambiguous" unexpected
|
||||
#
|
||||
create table t1 (c1 int, c2 int);
|
||||
create table t2 (c1 int, c2 int);
|
||||
select t1.c1 as c1, t2.c2 as c1 from t1, t2 where t1.c1 < 20 and t2.c2 > 5 group by t1.c1, t2.c2 having t1.c1 < 3;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# End of MariaDB 5.5 tests
|
||||
#
|
||||
|
@ -1,6 +1,7 @@
|
||||
-- source include/mysql_upgrade_preparation.inc
|
||||
-- source include/have_working_dns.inc
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/have_partition.inc
|
||||
|
||||
set sql_mode="";
|
||||
|
||||
@ -168,6 +169,31 @@ SELECT grantor FROM mysql.tables_priv WHERE db = 'mysql' AND table_name = 'user'
|
||||
DROP USER very_long_user_name_number_1, very_long_user_name_number_2, even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@localhost;
|
||||
DROP PROCEDURE test.pr;
|
||||
|
||||
#
|
||||
# MDEV-13274 mysql_upgrade fails if dbname+tablename+partioname > 64 chars
|
||||
#
|
||||
use test;
|
||||
call mtr.add_suppression('Column last_update in table "mysql"."innodb_table_stats" is INT NOT NULL but should be');
|
||||
alter table mysql.innodb_table_stats modify last_update int not null;
|
||||
|
||||
create table extralongname_extralongname_extralongname_extralongname_ext (
|
||||
id int(10) unsigned not null,
|
||||
created_date date not null,
|
||||
created timestamp not null,
|
||||
primary key (created,id,created_date)
|
||||
) engine=innodb stats_persistent=1 default charset=latin1
|
||||
partition by range (year(created_date))
|
||||
subpartition by hash (month(created_date))
|
||||
subpartitions 2 (
|
||||
partition p2007 values less than (2008),
|
||||
partition p2008 values less than (2009)
|
||||
);
|
||||
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||
select length(table_name) from mysql.innodb_table_stats;
|
||||
drop table extralongname_extralongname_extralongname_extralongname_ext;
|
||||
|
||||
--echo End of 10.0 tests
|
||||
|
||||
set sql_mode=default;
|
||||
|
||||
#
|
||||
@ -192,4 +218,4 @@ DROP TABLE test.t1;
|
||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
||||
SET GLOBAL enforce_storage_engine=NULL;
|
||||
|
||||
--echo End of tests
|
||||
--echo End of 10.1 tests
|
||||
|
@ -84,6 +84,9 @@ insert into t3 values(1);
|
||||
|
||||
insert into t4 select * from t3;
|
||||
|
||||
--error ER_OPTION_PREVENTS_STATEMENT
|
||||
create table t3 (a int);
|
||||
|
||||
# a non-temp table updated:
|
||||
--error ER_OPTION_PREVENTS_STATEMENT
|
||||
update t1,t3 set t1.a=t3.a+1 where t1.a=t3.a;
|
||||
|
@ -6055,6 +6055,23 @@ SELECT ( SELECT MAX(f1) FROM t2 ) FROM t1;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# MDEV-7828 Assertion `key_read == 0' failed in TABLE::enable_keyread with SELECT SQ and WHERE SQ
|
||||
#
|
||||
CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=MyISAM;
|
||||
INSERT t1 VALUES (4),(8);
|
||||
CREATE TABLE t2 (f2 INT, KEY(f2)) ENGINE=MyISAM;
|
||||
INSERT t2 VALUES (6);
|
||||
SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
--echo #
|
||||
--echo # Disable this query till MDEV-13399 is resolved
|
||||
--echo #
|
||||
--echo # INSERT t2 VALUES (9);
|
||||
--echo # --error ER_SUBQUERY_NO_1_ROW
|
||||
--echo # SELECT (SELECT MAX(sq.f2) FROM t1) FROM (SELECT * FROM t2) AS sq WHERE f2 = 2;
|
||||
--echo #
|
||||
drop table t1, t2;
|
||||
|
||||
--echo # End of 10.0 tests
|
||||
|
||||
--echo #
|
||||
|
@ -97,3 +97,9 @@ set optimizer_switch= @tmp_subselect_nulls;
|
||||
|
||||
drop table x1;
|
||||
drop table x2;
|
||||
|
||||
#
|
||||
# MDEV-7339 Server crashes in Item_func_trig_cond::val_int
|
||||
#
|
||||
select (select 1, 2) in (select 3, 4);
|
||||
select (select NULL, NULL) in (select 3, 4);
|
||||
|
@ -1405,6 +1405,20 @@ drop table t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
# Bug #24595639: INCORRECT BEHAVIOR IN QUERY WITH UNION AND GROUP BY
|
||||
#
|
||||
create table t1 (a int, b int);
|
||||
insert into t1 values (1,1),(2,2),(3,3);
|
||||
create table t2 (c varchar(30), d varchar(30));
|
||||
insert into t1 values ('1','1'),('2','2'),('4','4');
|
||||
create table t3 (e int, f int);
|
||||
insert into t3 values (1,1),(2,2),(31,31),(32,32);
|
||||
select e,f, (e , f) in (select e,b from t1 union select c,d from t2) as sub from t3;
|
||||
select avg(f), (e , f) in (select e,b from t1 union select c,d from t2) as sub from t3 group by sub;
|
||||
drop table t1,t2,t3;
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
||||
--echo #
|
||||
--echo # WL#1763 Avoid creating temporary table in UNION ALL
|
||||
|
@ -5577,6 +5577,22 @@ select *
|
||||
drop view v1;
|
||||
drop table t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-11240: Server crashes in check_view_single_update or
|
||||
--echo # Assertion `derived->table' failed in mysql_derived_merge_for_insert
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t3 (a INT);
|
||||
CREATE ALGORITHM = MERGE VIEW v1 AS SELECT t2.a FROM t3 AS t1, t3 AS t2;
|
||||
CREATE ALGORITHM = MERGE VIEW v2 AS SELECT * FROM v1;
|
||||
PREPARE stmt FROM 'REPLACE INTO v2 SELECT a FROM t3';
|
||||
--error ER_VIEW_NO_INSERT_FIELD_LIST
|
||||
EXECUTE stmt;
|
||||
--error ER_VIEW_NO_INSERT_FIELD_LIST
|
||||
EXECUTE stmt;
|
||||
drop view v1,v2;
|
||||
drop table t3;
|
||||
|
||||
--echo # -----------------------------------------------------------------
|
||||
--echo # -- End of 5.5 tests.
|
||||
--echo # -----------------------------------------------------------------
|
||||
|
@ -142,7 +142,7 @@ static int no_close(void *cookie __attribute__((unused)))
|
||||
/*
|
||||
A hack around a race condition in the implementation of freopen.
|
||||
|
||||
The race condition steams from the fact that the current fd of
|
||||
The race condition stems from the fact that the current fd of
|
||||
the stream is closed before its number is used to duplicate the
|
||||
new file descriptor. This defeats the desired atomicity of the
|
||||
close and duplicate of dup2().
|
||||
|
@ -765,7 +765,7 @@ int my_safe_print_str(const char *val, int len)
|
||||
|
||||
size_t my_write_stderr(const void *buf, size_t count)
|
||||
{
|
||||
return (size_t) write(STDERR_FILENO, buf, count);
|
||||
return (size_t) write(fileno(stderr), buf, count);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4,6 +4,53 @@ ChangeLog for PCRE
|
||||
Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All
|
||||
development is happening in the PCRE2 10.xx series.
|
||||
|
||||
Version 8.41 05-July-2017
|
||||
-------------------------
|
||||
|
||||
1. Fixed typo in CMakeLists.txt (wrong number of arguments for
|
||||
PCRE_STATIC_RUNTIME (affects MSVC only).
|
||||
|
||||
2. Issue 1 for 8.40 below was not correctly fixed. If pcregrep in multiline
|
||||
mode with --only-matching matched several lines, it restarted scanning at the
|
||||
next line instead of moving on to the end of the matched string, which can be
|
||||
several lines after the start.
|
||||
|
||||
3. Fix a missing else in the JIT compiler reported by 'idaifish'.
|
||||
|
||||
4. A (?# style comment is now ignored between a basic quantifier and a
|
||||
following '+' or '?' (example: /X+(?#comment)?Y/.
|
||||
|
||||
5. Avoid use of a potentially overflowing buffer in pcregrep (patch by Petr
|
||||
Pisar).
|
||||
|
||||
6. Fuzzers have reported issues in pcretest. These are NOT serious (it is,
|
||||
after all, just a test program). However, to stop the reports, some easy ones
|
||||
are fixed:
|
||||
|
||||
(a) Check for values < 256 when calling isprint() in pcretest.
|
||||
(b) Give an error for too big a number after \O.
|
||||
|
||||
7. In the 32-bit library in non-UTF mode, an attempt to find a Unicode
|
||||
property for a character with a code point greater than 0x10ffff (the Unicode
|
||||
maximum) caused a crash.
|
||||
|
||||
8. The alternative matching function, pcre_dfa_exec() misbehaved if it
|
||||
encountered a character class with a possessive repeat, for example [a-f]{3}+.
|
||||
|
||||
9. When pcretest called pcre_copy_substring() in 32-bit mode, it set the buffer
|
||||
length incorrectly, which could result in buffer overflow.
|
||||
|
||||
10. Remove redundant line of code (accidentally left in ages ago).
|
||||
|
||||
11. Applied C++ patch from Irfan Adilovic to guard 'using std::' directives
|
||||
with namespace pcrecpp (Bugzilla #2084).
|
||||
|
||||
12. Remove a duplication typo in pcre_tables.c.
|
||||
|
||||
13. Fix returned offsets from regexec() when REG_STARTEND is used with a
|
||||
starting offset greater than zero.
|
||||
|
||||
|
||||
Version 8.40 11-January-2017
|
||||
----------------------------
|
||||
|
||||
|
@ -1,6 +1,12 @@
|
||||
News about PCRE releases
|
||||
------------------------
|
||||
|
||||
Release 8.41 13-June-2017
|
||||
-------------------------
|
||||
|
||||
This is a bug-fix release.
|
||||
|
||||
|
||||
Release 8.40 11-January-2017
|
||||
----------------------------
|
||||
|
||||
|
@ -9,18 +9,18 @@ dnl The PCRE_PRERELEASE feature is for identifying release candidates. It might
|
||||
dnl be defined as -RC2, for example. For real releases, it should be empty.
|
||||
|
||||
m4_define(pcre_major, [8])
|
||||
m4_define(pcre_minor, [40])
|
||||
m4_define(pcre_minor, [41])
|
||||
m4_define(pcre_prerelease, [])
|
||||
m4_define(pcre_date, [2017-01-11])
|
||||
m4_define(pcre_date, [2017-07-05])
|
||||
|
||||
# NOTE: The CMakeLists.txt file searches for the above variables in the first
|
||||
# 50 lines of this file. Please update that if the variables above are moved.
|
||||
|
||||
# Libtool shared library interface versions (current:revision:age)
|
||||
m4_define(libpcre_version, [3:8:2])
|
||||
m4_define(libpcre16_version, [2:8:2])
|
||||
m4_define(libpcre32_version, [0:8:0])
|
||||
m4_define(libpcreposix_version, [0:4:0])
|
||||
m4_define(libpcre_version, [3:9:2])
|
||||
m4_define(libpcre16_version, [2:9:2])
|
||||
m4_define(libpcre32_version, [0:9:0])
|
||||
m4_define(libpcreposix_version, [0:5:0])
|
||||
m4_define(libpcrecpp_version, [0:1:0])
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
|
@ -79,9 +79,12 @@ API that is JIT-specific.
|
||||
</P>
|
||||
<P>
|
||||
If your program may sometimes be linked with versions of PCRE that are older
|
||||
than 8.20, but you want to use JIT when it is available, you can test
|
||||
the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such
|
||||
as PCRE_CONFIG_JIT, for compile-time control of your code.
|
||||
than 8.20, but you want to use JIT when it is available, you can test the
|
||||
values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such as
|
||||
PCRE_CONFIG_JIT, for compile-time control of your code. Also beware that the
|
||||
<b>pcre_jit_exec()</b> function was not available at all before 8.32,
|
||||
and may not be available at all if PCRE isn't compiled with
|
||||
--enable-jit. See the "JIT FAST PATH API" section below for details.
|
||||
</P>
|
||||
<br><a name="SEC4" href="#TOC1">SIMPLE USE OF JIT</a><br>
|
||||
<P>
|
||||
@ -119,6 +122,20 @@ when you call <b>pcre_study()</b>:
|
||||
PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE
|
||||
PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE
|
||||
</pre>
|
||||
If using <b>pcre_jit_exec()</b> and supporting a pre-8.32 version of
|
||||
PCRE, you can insert:
|
||||
<pre>
|
||||
#if PCRE_MAJOR >= 8 && PCRE_MINOR >= 32
|
||||
pcre_jit_exec(...);
|
||||
#else
|
||||
pcre_exec(...)
|
||||
#endif
|
||||
</pre>
|
||||
but as described in the "JIT FAST PATH API" section below this assumes
|
||||
version 8.32 and later are compiled with --enable-jit, which may
|
||||
break.
|
||||
<br>
|
||||
<br>
|
||||
The JIT compiler generates different optimized code for each of the three
|
||||
modes (normal, soft partial, hard partial). When <b>pcre_exec()</b> is called,
|
||||
the appropriate code is run if it is available. Otherwise, the pattern is
|
||||
@ -428,6 +445,36 @@ fast path, and if invalid data is passed, the result is undefined.
|
||||
Bypassing the sanity checks and the <b>pcre_exec()</b> wrapping can give
|
||||
speedups of more than 10%.
|
||||
</P>
|
||||
<P>
|
||||
Note that the <b>pcre_jit_exec()</b> function is not available in versions of
|
||||
PCRE before 8.32 (released in November 2012). If you need to support versions
|
||||
that old you must either use the slower <b>pcre_exec()</b>, or switch between
|
||||
the two codepaths by checking the values of PCRE_MAJOR and PCRE_MINOR.
|
||||
</P>
|
||||
<P>
|
||||
Due to an unfortunate implementation oversight, even in versions 8.32
|
||||
and later there will be no <b>pcre_jit_exec()</b> stub function defined
|
||||
when PCRE is compiled with --disable-jit, which is the default, and
|
||||
there's no way to detect whether PCRE was compiled with --enable-jit
|
||||
via a macro.
|
||||
</P>
|
||||
<P>
|
||||
If you need to support versions older than 8.32, or versions that may
|
||||
not build with --enable-jit, you must either use the slower
|
||||
<b>pcre_exec()</b>, or switch between the two codepaths by checking the
|
||||
values of PCRE_MAJOR and PCRE_MINOR.
|
||||
</P>
|
||||
<P>
|
||||
Switching between the two by checking the version assumes that all the
|
||||
versions being targeted are built with --enable-jit. To also support
|
||||
builds that may use --disable-jit either <b>pcre_exec()</b> must be
|
||||
used, or a compile-time check for JIT via <b>pcre_config()</b> (which
|
||||
assumes the runtime environment will be the same), or as the Git
|
||||
project decided to do, simply assume that <b>pcre_jit_exec()</b> is
|
||||
present in 8.32 or later unless a compile-time flag is provided, see
|
||||
the "grep: un-break building with PCRE >= 8.32 without --enable-jit"
|
||||
commit in git.git for an example of that.
|
||||
</P>
|
||||
<br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>
|
||||
<P>
|
||||
<b>pcreapi</b>(3)
|
||||
@ -443,9 +490,9 @@ Cambridge CB2 3QH, England.
|
||||
</P>
|
||||
<br><a name="SEC14" href="#TOC1">REVISION</a><br>
|
||||
<P>
|
||||
Last updated: 17 March 2013
|
||||
Last updated: 05 July 2017
|
||||
<br>
|
||||
Copyright © 1997-2013 University of Cambridge.
|
||||
Copyright © 1997-2017 University of Cambridge.
|
||||
<br>
|
||||
<p>
|
||||
Return to the <a href="index.html">PCRE index page</a>.
|
||||
|
@ -74,6 +74,11 @@ newline as data characters. However, in some Windows environments character 26
|
||||
maximum portability, therefore, it is safest to use only ASCII characters in
|
||||
<b>pcretest</b> input files.
|
||||
</P>
|
||||
<P>
|
||||
The input is processed using using C's string functions, so must not
|
||||
contain binary zeroes, even though in Unix-like environments, <b>fgets()</b>
|
||||
treats any bytes other than newline as data characters.
|
||||
</P>
|
||||
<br><a name="SEC3" href="#TOC1">PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES</a><br>
|
||||
<P>
|
||||
From release 8.30, two separate PCRE libraries can be built. The original one
|
||||
@ -1149,9 +1154,9 @@ Cambridge CB2 3QH, England.
|
||||
</P>
|
||||
<br><a name="SEC17" href="#TOC1">REVISION</a><br>
|
||||
<P>
|
||||
Last updated: 09 February 2014
|
||||
Last updated: 23 February 2017
|
||||
<br>
|
||||
Copyright © 1997-2014 University of Cambridge.
|
||||
Copyright © 1997-2017 University of Cambridge.
|
||||
<br>
|
||||
<p>
|
||||
Return to the <a href="index.html">PCRE index page</a>.
|
||||
|
@ -8365,7 +8365,11 @@ AVAILABILITY OF JIT SUPPORT
|
||||
If your program may sometimes be linked with versions of PCRE that are
|
||||
older than 8.20, but you want to use JIT when it is available, you can
|
||||
test the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT
|
||||
macro such as PCRE_CONFIG_JIT, for compile-time control of your code.
|
||||
macro such as PCRE_CONFIG_JIT, for compile-time control of your code.
|
||||
Also beware that the pcre_jit_exec() function was not available at all
|
||||
before 8.32, and may not be available at all if PCRE isn't compiled
|
||||
with --enable-jit. See the "JIT FAST PATH API" section below for
|
||||
details.
|
||||
|
||||
|
||||
SIMPLE USE OF JIT
|
||||
@ -8407,6 +8411,18 @@ SIMPLE USE OF JIT
|
||||
PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE
|
||||
PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE
|
||||
|
||||
If using pcre_jit_exec() and supporting a pre-8.32 version of PCRE, you
|
||||
can insert:
|
||||
|
||||
#if PCRE_MAJOR >= 8 && PCRE_MINOR >= 32
|
||||
pcre_jit_exec(...);
|
||||
#else
|
||||
pcre_exec(...)
|
||||
#endif
|
||||
|
||||
but as described in the "JIT FAST PATH API" section below this assumes
|
||||
version 8.32 and later are compiled with --enable-jit, which may break.
|
||||
|
||||
The JIT compiler generates different optimized code for each of the
|
||||
three modes (normal, soft partial, hard partial). When pcre_exec() is
|
||||
called, the appropriate code is run if it is available. Otherwise, the
|
||||
@ -8696,6 +8712,33 @@ JIT FAST PATH API
|
||||
Bypassing the sanity checks and the pcre_exec() wrapping can give
|
||||
speedups of more than 10%.
|
||||
|
||||
Note that the pcre_jit_exec() function is not available in versions of
|
||||
PCRE before 8.32 (released in November 2012). If you need to support
|
||||
versions that old you must either use the slower pcre_exec(), or switch
|
||||
between the two codepaths by checking the values of PCRE_MAJOR and
|
||||
PCRE_MINOR.
|
||||
|
||||
Due to an unfortunate implementation oversight, even in versions 8.32
|
||||
and later there will be no pcre_jit_exec() stub function defined when
|
||||
PCRE is compiled with --disable-jit, which is the default, and there's
|
||||
no way to detect whether PCRE was compiled with --enable-jit via a
|
||||
macro.
|
||||
|
||||
If you need to support versions older than 8.32, or versions that may
|
||||
not build with --enable-jit, you must either use the slower
|
||||
pcre_exec(), or switch between the two codepaths by checking the values
|
||||
of PCRE_MAJOR and PCRE_MINOR.
|
||||
|
||||
Switching between the two by checking the version assumes that all the
|
||||
versions being targeted are built with --enable-jit. To also support
|
||||
builds that may use --disable-jit either pcre_exec() must be used, or a
|
||||
compile-time check for JIT via pcre_config() (which assumes the runtime
|
||||
environment will be the same), or as the Git project decided to do,
|
||||
simply assume that pcre_jit_exec() is present in 8.32 or later unless a
|
||||
compile-time flag is provided, see the "grep: un-break building with
|
||||
PCRE >= 8.32 without --enable-jit" commit in git.git for an example of
|
||||
that.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
|
||||
@ -8711,8 +8754,8 @@ AUTHOR
|
||||
|
||||
REVISION
|
||||
|
||||
Last updated: 17 March 2013
|
||||
Copyright (c) 1997-2013 University of Cambridge.
|
||||
Last updated: 05 July 2017
|
||||
Copyright (c) 1997-2017 University of Cambridge.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH PCREJIT 3 "17 March 2013" "PCRE 8.33"
|
||||
.TH PCREJIT 3 "05 July 2017" "PCRE 8.41"
|
||||
.SH NAME
|
||||
PCRE - Perl-compatible regular expressions
|
||||
.SH "PCRE JUST-IN-TIME COMPILER SUPPORT"
|
||||
@ -54,9 +54,12 @@ programs that need the best possible performance, there is also a "fast path"
|
||||
API that is JIT-specific.
|
||||
.P
|
||||
If your program may sometimes be linked with versions of PCRE that are older
|
||||
than 8.20, but you want to use JIT when it is available, you can test
|
||||
the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such
|
||||
as PCRE_CONFIG_JIT, for compile-time control of your code.
|
||||
than 8.20, but you want to use JIT when it is available, you can test the
|
||||
values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such as
|
||||
PCRE_CONFIG_JIT, for compile-time control of your code. Also beware that the
|
||||
\fBpcre_jit_exec()\fP function was not available at all before 8.32,
|
||||
and may not be available at all if PCRE isn't compiled with
|
||||
--enable-jit. See the "JIT FAST PATH API" section below for details.
|
||||
.
|
||||
.
|
||||
.SH "SIMPLE USE OF JIT"
|
||||
@ -96,6 +99,19 @@ when you call \fBpcre_study()\fP:
|
||||
PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE
|
||||
PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE
|
||||
.sp
|
||||
If using \fBpcre_jit_exec()\fP and supporting a pre-8.32 version of
|
||||
PCRE, you can insert:
|
||||
.sp
|
||||
#if PCRE_MAJOR >= 8 && PCRE_MINOR >= 32
|
||||
pcre_jit_exec(...);
|
||||
#else
|
||||
pcre_exec(...)
|
||||
#endif
|
||||
.sp
|
||||
but as described in the "JIT FAST PATH API" section below this assumes
|
||||
version 8.32 and later are compiled with --enable-jit, which may
|
||||
break.
|
||||
.sp
|
||||
The JIT compiler generates different optimized code for each of the three
|
||||
modes (normal, soft partial, hard partial). When \fBpcre_exec()\fP is called,
|
||||
the appropriate code is run if it is available. Otherwise, the pattern is
|
||||
@ -404,6 +420,32 @@ fast path, and if invalid data is passed, the result is undefined.
|
||||
.P
|
||||
Bypassing the sanity checks and the \fBpcre_exec()\fP wrapping can give
|
||||
speedups of more than 10%.
|
||||
.P
|
||||
Note that the \fBpcre_jit_exec()\fP function is not available in versions of
|
||||
PCRE before 8.32 (released in November 2012). If you need to support versions
|
||||
that old you must either use the slower \fBpcre_exec()\fP, or switch between
|
||||
the two codepaths by checking the values of PCRE_MAJOR and PCRE_MINOR.
|
||||
.P
|
||||
Due to an unfortunate implementation oversight, even in versions 8.32
|
||||
and later there will be no \fBpcre_jit_exec()\fP stub function defined
|
||||
when PCRE is compiled with --disable-jit, which is the default, and
|
||||
there's no way to detect whether PCRE was compiled with --enable-jit
|
||||
via a macro.
|
||||
.P
|
||||
If you need to support versions older than 8.32, or versions that may
|
||||
not build with --enable-jit, you must either use the slower
|
||||
\fBpcre_exec()\fP, or switch between the two codepaths by checking the
|
||||
values of PCRE_MAJOR and PCRE_MINOR.
|
||||
.P
|
||||
Switching between the two by checking the version assumes that all the
|
||||
versions being targeted are built with --enable-jit. To also support
|
||||
builds that may use --disable-jit either \fBpcre_exec()\fP must be
|
||||
used, or a compile-time check for JIT via \fBpcre_config()\fP (which
|
||||
assumes the runtime environment will be the same), or as the Git
|
||||
project decided to do, simply assume that \fBpcre_jit_exec()\fP is
|
||||
present in 8.32 or later unless a compile-time flag is provided, see
|
||||
the "grep: un-break building with PCRE >= 8.32 without --enable-jit"
|
||||
commit in git.git for an example of that.
|
||||
.
|
||||
.
|
||||
.SH "SEE ALSO"
|
||||
@ -426,6 +468,6 @@ Cambridge CB2 3QH, England.
|
||||
.rs
|
||||
.sp
|
||||
.nf
|
||||
Last updated: 17 March 2013
|
||||
Copyright (c) 1997-2013 University of Cambridge.
|
||||
Last updated: 05 July 2017
|
||||
Copyright (c) 1997-2017 University of Cambridge.
|
||||
.fi
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH PCRETEST 1 "09 February 2014" "PCRE 8.35"
|
||||
.TH PCRETEST 1 "23 February 2017" "PCRE 8.41"
|
||||
.SH NAME
|
||||
pcretest - a program for testing Perl-compatible regular expressions.
|
||||
.SH SYNOPSIS
|
||||
@ -50,6 +50,10 @@ newline as data characters. However, in some Windows environments character 26
|
||||
(hex 1A) causes an immediate end of file, and no further data is read. For
|
||||
maximum portability, therefore, it is safest to use only ASCII characters in
|
||||
\fBpcretest\fP input files.
|
||||
.P
|
||||
The input is processed using using C's string functions, so must not
|
||||
contain binary zeroes, even though in Unix-like environments, \fBfgets()\fP
|
||||
treats any bytes other than newline as data characters.
|
||||
.
|
||||
.
|
||||
.SH "PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES"
|
||||
@ -1151,6 +1155,6 @@ Cambridge CB2 3QH, England.
|
||||
.rs
|
||||
.sp
|
||||
.nf
|
||||
Last updated: 09 February 2014
|
||||
Copyright (c) 1997-2014 University of Cambridge.
|
||||
Last updated: 23 February 2017
|
||||
Copyright (c) 1997-2017 University of Cambridge.
|
||||
.fi
|
||||
|
@ -39,6 +39,10 @@ INPUT DATA FORMAT
|
||||
For maximum portability, therefore, it is safest to use only ASCII
|
||||
characters in pcretest input files.
|
||||
|
||||
The input is processed using using C's string functions, so must not
|
||||
contain binary zeroes, even though in Unix-like environments, fgets()
|
||||
treats any bytes other than newline as data characters.
|
||||
|
||||
|
||||
PCRE's 8-BIT, 16-BIT AND 32-BIT LIBRARIES
|
||||
|
||||
@ -1083,5 +1087,5 @@ AUTHOR
|
||||
|
||||
REVISION
|
||||
|
||||
Last updated: 09 February 2014
|
||||
Copyright (c) 1997-2014 University of Cambridge.
|
||||
Last updated: 23 February 2017
|
||||
Copyright (c) 1997-2017 University of Cambridge.
|
||||
|
@ -5739,6 +5739,21 @@ for (;; ptr++)
|
||||
ptr = p - 1; /* Character before the next significant one. */
|
||||
}
|
||||
|
||||
/* We also need to skip over (?# comments, which are not dependent on
|
||||
extended mode. */
|
||||
|
||||
if (ptr[1] == CHAR_LEFT_PARENTHESIS && ptr[2] == CHAR_QUESTION_MARK &&
|
||||
ptr[3] == CHAR_NUMBER_SIGN)
|
||||
{
|
||||
ptr += 4;
|
||||
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++;
|
||||
if (*ptr == CHAR_NULL)
|
||||
{
|
||||
*errorcodeptr = ERR18;
|
||||
goto FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
/* If the next character is '+', we have a possessive quantifier. This
|
||||
implies greediness, whatever the setting of the PCRE_UNGREEDY option.
|
||||
If the next character is '?' this is a minimizing repeat, by default,
|
||||
@ -8210,7 +8225,6 @@ for (;; ptr++)
|
||||
|
||||
if (mclength == 1 || req_caseopt == 0)
|
||||
{
|
||||
firstchar = mcbuffer[0] | req_caseopt;
|
||||
firstchar = mcbuffer[0];
|
||||
firstcharflags = req_caseopt;
|
||||
|
||||
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language (but see
|
||||
below for why this module is different).
|
||||
|
||||
Written by Philip Hazel
|
||||
Copyright (c) 1997-2014 University of Cambridge
|
||||
Copyright (c) 1997-2017 University of Cambridge
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -2625,7 +2625,7 @@ for (;;)
|
||||
if (isinclass)
|
||||
{
|
||||
int max = (int)GET2(ecode, 1 + IMM2_SIZE);
|
||||
if (*ecode == OP_CRPOSRANGE)
|
||||
if (*ecode == OP_CRPOSRANGE && count >= (int)GET2(ecode, 1))
|
||||
{
|
||||
active_count--; /* Remove non-match possibility */
|
||||
next_active_state--;
|
||||
|
@ -669,7 +669,7 @@ if (ecode == NULL)
|
||||
return match((PCRE_PUCHAR)&rdepth, NULL, NULL, 0, NULL, NULL, 1);
|
||||
else
|
||||
{
|
||||
int len = (char *)&rdepth - (char *)eptr;
|
||||
int len = (int)((char *)&rdepth - (char *)eptr);
|
||||
return (len > 0)? -len : len;
|
||||
}
|
||||
}
|
||||
|
@ -2772,6 +2772,9 @@ extern const pcre_uint8 PRIV(ucd_stage1)[];
|
||||
extern const pcre_uint16 PRIV(ucd_stage2)[];
|
||||
extern const pcre_uint32 PRIV(ucp_gentype)[];
|
||||
extern const pcre_uint32 PRIV(ucp_gbtable)[];
|
||||
#ifdef COMPILE_PCRE32
|
||||
extern const ucd_record PRIV(dummy_ucd_record)[];
|
||||
#endif
|
||||
#ifdef SUPPORT_JIT
|
||||
extern const int PRIV(ucp_typerange)[];
|
||||
#endif
|
||||
@ -2780,10 +2783,16 @@ extern const int PRIV(ucp_typerange)[];
|
||||
/* UCD access macros */
|
||||
|
||||
#define UCD_BLOCK_SIZE 128
|
||||
#define GET_UCD(ch) (PRIV(ucd_records) + \
|
||||
#define REAL_GET_UCD(ch) (PRIV(ucd_records) + \
|
||||
PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \
|
||||
UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE])
|
||||
|
||||
#ifdef COMPILE_PCRE32
|
||||
#define GET_UCD(ch) ((ch > 0x10ffff)? PRIV(dummy_ucd_record) : REAL_GET_UCD(ch))
|
||||
#else
|
||||
#define GET_UCD(ch) REAL_GET_UCD(ch)
|
||||
#endif
|
||||
|
||||
#define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype
|
||||
#define UCD_SCRIPT(ch) GET_UCD(ch)->script
|
||||
#define UCD_CATEGORY(ch) PRIV(ucp_gentype)[UCD_CHARTYPE(ch)]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -57,6 +57,7 @@
|
||||
} while (0)
|
||||
|
||||
using std::vector;
|
||||
using std::string;
|
||||
using pcrecpp::StringPiece;
|
||||
using pcrecpp::Scanner;
|
||||
|
||||
|
@ -52,12 +52,12 @@
|
||||
|
||||
#include <pcre.h>
|
||||
|
||||
namespace pcrecpp {
|
||||
|
||||
using std::memcmp;
|
||||
using std::strlen;
|
||||
using std::string;
|
||||
|
||||
namespace pcrecpp {
|
||||
|
||||
class PCRECPP_EXP_DEFN StringPiece {
|
||||
private:
|
||||
const char* ptr_;
|
||||
|
@ -24,6 +24,7 @@
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
using std::string;
|
||||
using pcrecpp::StringPiece;
|
||||
|
||||
static void CheckSTLComparator() {
|
||||
|
@ -6,7 +6,7 @@
|
||||
and semantics are as close as possible to those of the Perl 5 language.
|
||||
|
||||
Written by Philip Hazel
|
||||
Copyright (c) 1997-2012 University of Cambridge
|
||||
Copyright (c) 1997-2017 University of Cambridge
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -161,7 +161,7 @@ const pcre_uint32 PRIV(ucp_gbtable[]) = {
|
||||
|
||||
(1<<ucp_gbExtend)|(1<<ucp_gbSpacingMark), /* 5 SpacingMark */
|
||||
(1<<ucp_gbExtend)|(1<<ucp_gbSpacingMark)|(1<<ucp_gbL)| /* 6 L */
|
||||
(1<<ucp_gbL)|(1<<ucp_gbV)|(1<<ucp_gbLV)|(1<<ucp_gbLVT),
|
||||
(1<<ucp_gbV)|(1<<ucp_gbLV)|(1<<ucp_gbLVT),
|
||||
|
||||
(1<<ucp_gbExtend)|(1<<ucp_gbSpacingMark)|(1<<ucp_gbV)| /* 7 V */
|
||||
(1<<ucp_gbT),
|
||||
|
@ -38,6 +38,20 @@ const pcre_uint16 PRIV(ucd_stage2)[] = {0};
|
||||
const pcre_uint32 PRIV(ucd_caseless_sets)[] = {0};
|
||||
#else
|
||||
|
||||
/* If the 32-bit library is run in non-32-bit mode, character values
|
||||
greater than 0x10ffff may be encountered. For these we set up a
|
||||
special record. */
|
||||
|
||||
#ifdef COMPILE_PCRE32
|
||||
const ucd_record PRIV(dummy_ucd_record)[] = {{
|
||||
ucp_Common, /* script */
|
||||
ucp_Cn, /* type unassigned */
|
||||
ucp_gbOther, /* grapheme break property */
|
||||
0, /* case set */
|
||||
0, /* other case */
|
||||
}};
|
||||
#endif
|
||||
|
||||
/* When recompiling tables with a new Unicode version, please check the
|
||||
types in this structure definition from pcre_internal.h (the actual
|
||||
field names will be different):
|
||||
|
@ -43,6 +43,7 @@
|
||||
#include <vector>
|
||||
#include "pcrecpp.h"
|
||||
|
||||
using std::string;
|
||||
using pcrecpp::StringPiece;
|
||||
using pcrecpp::RE;
|
||||
using pcrecpp::RE_Options;
|
||||
|
@ -1804,11 +1804,6 @@ while (ptr < endptr)
|
||||
if (line_buffered) fflush(stdout);
|
||||
rc = 0; /* Had some success */
|
||||
|
||||
/* If the current match ended past the end of the line (only possible
|
||||
in multiline mode), we are done with this line. */
|
||||
|
||||
if ((unsigned int)offsets[1] > linelength) goto END_ONE_MATCH;
|
||||
|
||||
startoffset = offsets[1]; /* Restart after the match */
|
||||
if (startoffset <= oldstartoffset)
|
||||
{
|
||||
@ -1818,6 +1813,22 @@ while (ptr < endptr)
|
||||
if (utf8)
|
||||
while ((matchptr[startoffset] & 0xc0) == 0x80) startoffset++;
|
||||
}
|
||||
|
||||
/* If the current match ended past the end of the line (only possible
|
||||
in multiline mode), we must move on to the line in which it did end
|
||||
before searching for more matches. */
|
||||
|
||||
while (startoffset > (int)linelength)
|
||||
{
|
||||
matchptr = ptr += linelength + endlinelength;
|
||||
filepos += (int)(linelength + endlinelength);
|
||||
linenumber++;
|
||||
startoffset -= (int)(linelength + endlinelength);
|
||||
t = end_of_line(ptr, endptr, &endlinelength);
|
||||
linelength = t - ptr - endlinelength;
|
||||
length = (size_t)(endptr - ptr);
|
||||
}
|
||||
|
||||
goto ONLY_MATCHING_RESTART;
|
||||
}
|
||||
}
|
||||
@ -3179,9 +3190,11 @@ for (j = 1, cp = patterns; cp != NULL; j++, cp = cp->next)
|
||||
cp->hint = pcre_study(cp->compiled, study_options, &error);
|
||||
if (error != NULL)
|
||||
{
|
||||
char s[16];
|
||||
if (patterns->next == NULL) s[0] = 0; else sprintf(s, " number %d", j);
|
||||
fprintf(stderr, "pcregrep: Error while studying regex%s: %s\n", s, error);
|
||||
if (patterns->next == NULL)
|
||||
fprintf(stderr, "pcregrep: Error while studying regex: %s\n", error);
|
||||
else
|
||||
fprintf(stderr, "pcregrep: Error while studying regex number %d: %s\n",
|
||||
j, error);
|
||||
goto EXIT2;
|
||||
}
|
||||
#ifdef SUPPORT_PCREGREP_JIT
|
||||
|
@ -6,7 +6,7 @@
|
||||
and semantics are as close as possible to those of the Perl 5 language.
|
||||
|
||||
Written by Philip Hazel
|
||||
Copyright (c) 1997-2016 University of Cambridge
|
||||
Copyright (c) 1997-2017 University of Cambridge
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -389,8 +389,8 @@ if (rc >= 0)
|
||||
{
|
||||
for (i = 0; i < (size_t)rc; i++)
|
||||
{
|
||||
pmatch[i].rm_so = ovector[i*2];
|
||||
pmatch[i].rm_eo = ovector[i*2+1];
|
||||
pmatch[i].rm_so = ovector[i*2] + so;
|
||||
pmatch[i].rm_eo = ovector[i*2+1] + so;
|
||||
}
|
||||
if (allocated_ovector) free(ovector);
|
||||
for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
|
||||
|
@ -177,7 +177,7 @@ that differ in their output from isprint() even in the "C" locale. */
|
||||
#define PRINTABLE(c) ((c) >= 32 && (c) < 127)
|
||||
#endif
|
||||
|
||||
#define PRINTOK(c) (locale_set? isprint(c) : PRINTABLE(c))
|
||||
#define PRINTOK(c) (locale_set? (((c) < 256) && isprint(c)) : PRINTABLE(c))
|
||||
|
||||
/* Posix support is disabled in 16 or 32 bit only mode. */
|
||||
#if !defined SUPPORT_PCRE8 && !defined NOPOSIX
|
||||
@ -426,11 +426,11 @@ argument, the casting might be incorrectly applied. */
|
||||
#define PCRE_COPY_NAMED_SUBSTRING32(rc, re, bptr, offsets, count, \
|
||||
namesptr, cbuffer, size) \
|
||||
rc = pcre32_copy_named_substring((pcre32 *)re, (PCRE_SPTR32)bptr, offsets, \
|
||||
count, (PCRE_SPTR32)namesptr, (PCRE_UCHAR32 *)cbuffer, size/2)
|
||||
count, (PCRE_SPTR32)namesptr, (PCRE_UCHAR32 *)cbuffer, size/4)
|
||||
|
||||
#define PCRE_COPY_SUBSTRING32(rc, bptr, offsets, count, i, cbuffer, size) \
|
||||
rc = pcre32_copy_substring((PCRE_SPTR32)bptr, offsets, count, i, \
|
||||
(PCRE_UCHAR32 *)cbuffer, size/2)
|
||||
(PCRE_UCHAR32 *)cbuffer, size/4)
|
||||
|
||||
#define PCRE_DFA_EXEC32(count, re, extra, bptr, len, start_offset, options, \
|
||||
offsets, size_offsets, workspace, size_workspace) \
|
||||
@ -4834,7 +4834,16 @@ while (!done)
|
||||
continue;
|
||||
|
||||
case 'O':
|
||||
while(isdigit(*p)) n = n * 10 + *p++ - '0';
|
||||
while(isdigit(*p))
|
||||
{
|
||||
if (n > (INT_MAX-10)/10) /* Hack to stop fuzzers */
|
||||
{
|
||||
printf("** \\O argument is too big\n");
|
||||
yield = 1;
|
||||
goto EXIT;
|
||||
}
|
||||
n = n * 10 + *p++ - '0';
|
||||
}
|
||||
if (n > size_offsets_max)
|
||||
{
|
||||
size_offsets_max = n;
|
||||
|
3
pcre/testdata/testinput1
vendored
3
pcre/testdata/testinput1
vendored
@ -5739,4 +5739,7 @@ AbcdCBefgBhiBqz
|
||||
/(?=.*X)X$/
|
||||
\ X
|
||||
|
||||
/X+(?#comment)?/
|
||||
>XXX<
|
||||
|
||||
/-- End of testinput1 --/
|
||||
|
2
pcre/testdata/testinput12
vendored
2
pcre/testdata/testinput12
vendored
@ -104,4 +104,6 @@ and a couple of things that are different with JIT. --/
|
||||
/(.|.)*?bx/
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax
|
||||
|
||||
/((?(?!))x)(?'name')(?1)/S++
|
||||
|
||||
/-- End of testinput12 --/
|
||||
|
3
pcre/testdata/testinput15
vendored
3
pcre/testdata/testinput15
vendored
@ -363,4 +363,7 @@ correctly, but that messes up comparisons). --/
|
||||
|
||||
/abc/89
|
||||
|
||||
//8+L
|
||||
\xf1\xad\xae\xae
|
||||
|
||||
/-- End of testinput15 --/
|
||||
|
3
pcre/testdata/testinput8
vendored
3
pcre/testdata/testinput8
vendored
@ -4845,4 +4845,7 @@
|
||||
aaa\D
|
||||
a\D
|
||||
|
||||
/(02-)?[0-9]{3}-[0-9]{3}/
|
||||
02-123-123
|
||||
|
||||
/-- End of testinput8 --/
|
||||
|
4
pcre/testdata/testoutput1
vendored
4
pcre/testdata/testoutput1
vendored
@ -9442,4 +9442,8 @@ No match
|
||||
\ X
|
||||
0: X
|
||||
|
||||
/X+(?#comment)?/
|
||||
>XXX<
|
||||
0: X
|
||||
|
||||
/-- End of testinput1 --/
|
||||
|
2
pcre/testdata/testoutput12
vendored
2
pcre/testdata/testoutput12
vendored
@ -201,4 +201,6 @@ No match, mark = m (JIT)
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax
|
||||
Error -8 (match limit exceeded)
|
||||
|
||||
/((?(?!))x)(?'name')(?1)/S++
|
||||
|
||||
/-- End of testinput12 --/
|
||||
|
5
pcre/testdata/testoutput15
vendored
5
pcre/testdata/testoutput15
vendored
@ -1136,4 +1136,9 @@ Failed: setting UTF is disabled by the application at offset 0
|
||||
/abc/89
|
||||
Failed: setting UTF is disabled by the application at offset 0
|
||||
|
||||
//8+L
|
||||
\xf1\xad\xae\xae
|
||||
0:
|
||||
0+ \x{6dbae}
|
||||
|
||||
/-- End of testinput15 --/
|
||||
|
4
pcre/testdata/testoutput8
vendored
4
pcre/testdata/testoutput8
vendored
@ -7801,4 +7801,8 @@ No match
|
||||
** Show all captures ignored after DFA matching
|
||||
0: a
|
||||
|
||||
/(02-)?[0-9]{3}-[0-9]{3}/
|
||||
02-123-123
|
||||
0: 02-123-123
|
||||
|
||||
/-- End of testinput8 --/
|
||||
|
@ -555,7 +555,7 @@ int ReplSemiSyncMaster::reportReplyBinlog(uint32 server_id,
|
||||
|
||||
if (need_copy_send_pos)
|
||||
{
|
||||
strcpy(reply_file_name_, log_file_name);
|
||||
strmake_buf(reply_file_name_, log_file_name);
|
||||
reply_file_pos_ = log_file_pos;
|
||||
reply_file_name_inited_ = true;
|
||||
|
||||
@ -663,7 +663,7 @@ int ReplSemiSyncMaster::commitTrx(const char* trx_wait_binlog_name,
|
||||
if (cmp <= 0)
|
||||
{
|
||||
/* This thd has a lower position, let's update the minimum info. */
|
||||
strcpy(wait_file_name_, trx_wait_binlog_name);
|
||||
strmake_buf(wait_file_name_, trx_wait_binlog_name);
|
||||
wait_file_pos_ = trx_wait_binlog_pos;
|
||||
|
||||
rpl_semi_sync_master_wait_pos_backtraverse++;
|
||||
@ -674,7 +674,7 @@ int ReplSemiSyncMaster::commitTrx(const char* trx_wait_binlog_name,
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(wait_file_name_, trx_wait_binlog_name);
|
||||
strmake_buf(wait_file_name_, trx_wait_binlog_name);
|
||||
wait_file_pos_ = trx_wait_binlog_pos;
|
||||
wait_file_name_inited_ = true;
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2006, 2017, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2011, 2017, MariaDB Corporation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -116,6 +117,13 @@ IF(CMAKE_GENERATOR MATCHES "Makefiles|Ninja")
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
SET (PERL_PATH "/usr/local/bin/perl")
|
||||
ELSE()
|
||||
SET (PERL_PATH "/usr/bin/perl")
|
||||
ENDIF()
|
||||
|
||||
IF(UNIX)
|
||||
# FIND_PROC and CHECK_PID are used by mysqld_safe
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
@ -384,4 +392,3 @@ IF(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_FLAGS MATCHES "-static")
|
||||
COMPONENT Development)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
8
scripts/dheadgen.pl
Executable file → Normal file
8
scripts/dheadgen.pl
Executable file → Normal file
@ -1,10 +1,4 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Copyright (c) 2008, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
#
|
||||
|
||||
# Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL_PATH@
|
||||
# -*- cperl -*-
|
||||
#
|
||||
# Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/perl
|
||||
# Copyright (c) 2000-2002, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
#!@PERL_PATH@
|
||||
# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/perl
|
||||
# Copyright (c) 2000, 2004, 2006 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
#!@PERL_PATH@
|
||||
# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,6 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL_PATH@
|
||||
|
||||
# Copyright (c) 2001 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
# Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL_PATH@
|
||||
# -*- cperl -*-
|
||||
#
|
||||
# Copyright (c) 2007, 2013, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2007, 2017, Oracle and/or its affiliates.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL_PATH@
|
||||
# -*- cperl -*-
|
||||
#
|
||||
# Copyright (c) 2007, 2012, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2007, 2017, Oracle and/or its affiliates.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -388,6 +388,3 @@ Thanks for using MySQL!
|
||||
|
||||
|
||||
HERE
|
||||
|
||||
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL_PATH@
|
||||
## Emacs, this is -*- perl -*- mode? :-)
|
||||
|
||||
# Copyright (c) 2000, 2007 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
|
@ -672,6 +672,15 @@ DROP PROCEDURE mysql.count_duplicate_host_names;
|
||||
# Convering the host name to lower case for existing users
|
||||
UPDATE user SET host=LOWER( host ) WHERE LOWER( host ) <> host;
|
||||
|
||||
# fix bad data when upgrading from unfixed InnoDB (MDEV-13360)
|
||||
set @str="delete from innodb_index_stats where length(table_name) > 64";
|
||||
set @str=if(@have_innodb <> 0, @str, "set @dummy = 0");
|
||||
prepare stmt from @str;
|
||||
execute stmt;
|
||||
set @str=replace(@str, "innodb_index_stats", "innodb_table_stats");
|
||||
prepare stmt from @str;
|
||||
execute stmt;
|
||||
|
||||
# update timestamp fields in the innodb stat tables
|
||||
set @str="alter table mysql.innodb_index_stats modify last_update timestamp not null default current_timestamp on update current_timestamp";
|
||||
set @str=if(@have_innodb <> 0, @str, "set @dummy = 0");
|
||||
|
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/perl
|
||||
# Copyright (c) 2000-2002, 2004, 2006 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
#!@PERL_PATH@
|
||||
# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/perl
|
||||
#!@PERL_PATH@
|
||||
|
||||
# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
@ -477,15 +477,22 @@ MySQLaccess::Report::Print_Header();
|
||||
# *****************************
|
||||
# Read configuration-file
|
||||
MySQLaccess::Debug::Print(1, "Reading configuration file...");
|
||||
if (-f "./$script_conf") {
|
||||
require "./$script_conf";
|
||||
}
|
||||
elsif (-f "@prefix@/$script_conf") {
|
||||
require "@prefix@/$script_conf";
|
||||
}
|
||||
elsif (-f "@sysconfdir@/$script_conf") {
|
||||
if (-f "@sysconfdir@/$script_conf") {
|
||||
print "Configuration file '$script_conf' is found in '@sysconfdir@/'\n";
|
||||
require "@sysconfdir@/$script_conf";
|
||||
}
|
||||
elsif (-f "@prefix@/$script_conf") {
|
||||
print "Configuration file '$script_conf' is found in '@prefix@/'\n";
|
||||
require "@prefix@/$script_conf";
|
||||
}
|
||||
elsif (-f "./$script_conf") {
|
||||
print "\nERROR! Configuration file '$script_conf' is found in the current ";
|
||||
print "directory.\nThe permissible locations for this file are either ";
|
||||
print "@sysconfdir@/ or @prefix@/\n";
|
||||
print "Please move it to one of these locations and retry.\n\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
||||
# ****************************
|
||||
# Read in all parameters
|
||||
|
@ -1,23 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
# Copyright (c) 2000, 2010, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2000-2011 Monty Program Ab, Jani Tolonen
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; version 2
|
||||
# of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Library General Public
|
||||
# License along with this library; if not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA
|
||||
#!@PERL_PATH@
|
||||
|
||||
# Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2010, 2017, MariaDB Corporation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user