mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Merge branch '10.0' of https://github.com/MariaDB/server into ob-10.0
This commit is contained in:
commit
6d2d0a7c37
429 changed files with 12770 additions and 5418 deletions
1
CREDITS
1
CREDITS
|
|
@ -10,6 +10,7 @@ Visma http://visma.com (2015 - 2016)
|
|||
Acronis http://acronis.com (2016)
|
||||
Nexedi https://www.nexedi.com (2016)
|
||||
Automattic https://automattic.com (2014 - 2016)
|
||||
Tencent Game DBA http://tencentdba.com/about (2016)
|
||||
Verkkokauppa.com https://www.verkkokauppa.com (2015 - 2016)
|
||||
Virtuozzo https://virtuozzo.com (2016)
|
||||
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1,3 +1,3 @@
|
|||
MYSQL_VERSION_MAJOR=10
|
||||
MYSQL_VERSION_MINOR=0
|
||||
MYSQL_VERSION_PATCH=28
|
||||
MYSQL_VERSION_PATCH=29
|
||||
|
|
|
|||
|
|
@ -245,7 +245,8 @@ static void end_pager();
|
|||
static void init_tee(const char *);
|
||||
static void end_tee();
|
||||
static const char* construct_prompt();
|
||||
static char *get_arg(char *line, my_bool get_next_arg);
|
||||
enum get_arg_mode { CHECK, GET, GET_NEXT};
|
||||
static char *get_arg(char *line, get_arg_mode mode);
|
||||
static void init_username();
|
||||
static void add_int_to_prompt(int toadd);
|
||||
static int get_result_width(MYSQL_RES *res);
|
||||
|
|
@ -2257,7 +2258,7 @@ static COMMANDS *find_command(char *name)
|
|||
if (!my_strnncoll(&my_charset_latin1, (uchar*) name, len,
|
||||
(uchar*) commands[i].name, len) &&
|
||||
(commands[i].name[len] == '\0') &&
|
||||
(!end || commands[i].takes_params))
|
||||
(!end || (commands[i].takes_params && get_arg(name, CHECK))))
|
||||
{
|
||||
index= i;
|
||||
break;
|
||||
|
|
@ -3177,7 +3178,7 @@ com_charset(String *buffer __attribute__((unused)), char *line)
|
|||
char buff[256], *param;
|
||||
CHARSET_INFO * new_cs;
|
||||
strmake_buf(buff, line);
|
||||
param= get_arg(buff, 0);
|
||||
param= get_arg(buff, GET);
|
||||
if (!param || !*param)
|
||||
{
|
||||
return put_info("Usage: \\C charset_name | charset charset_name",
|
||||
|
|
@ -4263,12 +4264,12 @@ com_connect(String *buffer, char *line)
|
|||
#ifdef EXTRA_DEBUG
|
||||
tmp[1]= 0;
|
||||
#endif
|
||||
tmp= get_arg(buff, 0);
|
||||
tmp= get_arg(buff, GET);
|
||||
if (tmp && *tmp)
|
||||
{
|
||||
my_free(current_db);
|
||||
current_db= my_strdup(tmp, MYF(MY_WME));
|
||||
tmp= get_arg(buff, 1);
|
||||
tmp= get_arg(buff, GET_NEXT);
|
||||
if (tmp)
|
||||
{
|
||||
my_free(current_host);
|
||||
|
|
@ -4371,7 +4372,7 @@ com_delimiter(String *buffer __attribute__((unused)), char *line)
|
|||
char buff[256], *tmp;
|
||||
|
||||
strmake_buf(buff, line);
|
||||
tmp= get_arg(buff, 0);
|
||||
tmp= get_arg(buff, GET);
|
||||
|
||||
if (!tmp || !*tmp)
|
||||
{
|
||||
|
|
@ -4402,7 +4403,7 @@ com_use(String *buffer __attribute__((unused)), char *line)
|
|||
|
||||
bzero(buff, sizeof(buff));
|
||||
strmake_buf(buff, line);
|
||||
tmp= get_arg(buff, 0);
|
||||
tmp= get_arg(buff, GET);
|
||||
if (!tmp || !*tmp)
|
||||
{
|
||||
put_info("USE must be followed by a database name", INFO_ERROR);
|
||||
|
|
@ -4487,23 +4488,22 @@ com_nowarnings(String *buffer __attribute__((unused)),
|
|||
}
|
||||
|
||||
/*
|
||||
Gets argument from a command on the command line. If get_next_arg is
|
||||
not defined, skips the command and returns the first argument. The
|
||||
line is modified by adding zero to the end of the argument. If
|
||||
get_next_arg is defined, then the function searches for end of string
|
||||
first, after found, returns the next argument and adds zero to the
|
||||
end. If you ever wish to use this feature, remember to initialize all
|
||||
items in the array to zero first.
|
||||
Gets argument from a command on the command line. If mode is not GET_NEXT,
|
||||
skips the command and returns the first argument. The line is modified by
|
||||
adding zero to the end of the argument. If mode is GET_NEXT, then the
|
||||
function searches for end of string first, after found, returns the next
|
||||
argument and adds zero to the end. If you ever wish to use this feature,
|
||||
remember to initialize all items in the array to zero first.
|
||||
*/
|
||||
|
||||
char *get_arg(char *line, my_bool get_next_arg)
|
||||
static char *get_arg(char *line, get_arg_mode mode)
|
||||
{
|
||||
char *ptr, *start;
|
||||
my_bool quoted= 0, valid_arg= 0;
|
||||
bool short_cmd= false;
|
||||
char qtype= 0;
|
||||
|
||||
ptr= line;
|
||||
if (get_next_arg)
|
||||
if (mode == GET_NEXT)
|
||||
{
|
||||
for (; *ptr; ptr++) ;
|
||||
if (*(ptr + 1))
|
||||
|
|
@ -4514,7 +4514,7 @@ char *get_arg(char *line, my_bool get_next_arg)
|
|||
/* skip leading white spaces */
|
||||
while (my_isspace(charset_info, *ptr))
|
||||
ptr++;
|
||||
if (*ptr == '\\') // short command was used
|
||||
if ((short_cmd= *ptr == '\\')) // short command was used
|
||||
ptr+= 2;
|
||||
else
|
||||
while (*ptr &&!my_isspace(charset_info, *ptr)) // skip command
|
||||
|
|
@ -4527,24 +4527,28 @@ char *get_arg(char *line, my_bool get_next_arg)
|
|||
if (*ptr == '\'' || *ptr == '\"' || *ptr == '`')
|
||||
{
|
||||
qtype= *ptr;
|
||||
quoted= 1;
|
||||
ptr++;
|
||||
}
|
||||
for (start=ptr ; *ptr; ptr++)
|
||||
{
|
||||
if (*ptr == '\\' && ptr[1]) // escaped character
|
||||
if ((*ptr == '\\' && ptr[1]) || // escaped character
|
||||
(!short_cmd && qtype && *ptr == qtype && ptr[1] == qtype)) // quote
|
||||
{
|
||||
// Remove the backslash
|
||||
strmov_overlapp(ptr, ptr+1);
|
||||
// Remove (or skip) the backslash (or a second quote)
|
||||
if (mode != CHECK)
|
||||
strmov_overlapp(ptr, ptr+1);
|
||||
else
|
||||
ptr++;
|
||||
}
|
||||
else if ((!quoted && *ptr == ' ') || (quoted && *ptr == qtype))
|
||||
else if (*ptr == (qtype ? qtype : ' '))
|
||||
{
|
||||
*ptr= 0;
|
||||
qtype= 0;
|
||||
if (mode != CHECK)
|
||||
*ptr= 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
valid_arg= ptr != start;
|
||||
return valid_arg ? start : NullS;
|
||||
return ptr != start && !qtype ? start : NullS;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -575,9 +575,7 @@ static int dump_all_tablespaces();
|
|||
static int dump_tablespaces_for_tables(char *db, char **table_names, int tables);
|
||||
static int dump_tablespaces_for_databases(char** databases);
|
||||
static int dump_tablespaces(char* ts_where);
|
||||
static void print_comment(FILE *sql_file, my_bool is_error, const char *format,
|
||||
...);
|
||||
|
||||
static void print_comment(FILE *, my_bool, const char *, ...);
|
||||
|
||||
/*
|
||||
Print the supplied message if in verbose mode
|
||||
|
|
@ -655,6 +653,30 @@ static void short_usage(FILE *f)
|
|||
}
|
||||
|
||||
|
||||
/** returns a string fixed to be safely printed inside a -- comment
|
||||
|
||||
that is, any new line in it gets prefixed with --
|
||||
*/
|
||||
static const char *fix_for_comment(const char *ident)
|
||||
{
|
||||
static char buf[1024];
|
||||
char c, *s= buf;
|
||||
|
||||
while ((c= *s++= *ident++))
|
||||
{
|
||||
if (s >= buf + sizeof(buf) - 10)
|
||||
{
|
||||
strmov(s, "...");
|
||||
break;
|
||||
}
|
||||
if (c == '\n')
|
||||
s= strmov(s, "-- ");
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
static void write_header(FILE *sql_file, char *db_name)
|
||||
{
|
||||
if (opt_xml)
|
||||
|
|
@ -677,8 +699,8 @@ static void write_header(FILE *sql_file, char *db_name)
|
|||
DUMP_VERSION, MYSQL_SERVER_VERSION, SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
print_comment(sql_file, 0, "-- Host: %s Database: %s\n",
|
||||
current_host ? current_host : "localhost",
|
||||
db_name ? db_name : "");
|
||||
fix_for_comment(current_host ? current_host : "localhost"),
|
||||
fix_for_comment(db_name ? db_name : ""));
|
||||
print_comment(sql_file, 0,
|
||||
"-- ------------------------------------------------------\n"
|
||||
);
|
||||
|
|
@ -2224,7 +2246,8 @@ static uint dump_events_for_db(char *db)
|
|||
|
||||
/* nice comments */
|
||||
print_comment(sql_file, 0,
|
||||
"\n--\n-- Dumping events for database '%s'\n--\n", db);
|
||||
"\n--\n-- Dumping events for database '%s'\n--\n",
|
||||
fix_for_comment(db));
|
||||
|
||||
/*
|
||||
not using "mysql_query_with_error_report" because we may have not
|
||||
|
|
@ -2436,7 +2459,8 @@ static uint dump_routines_for_db(char *db)
|
|||
|
||||
/* nice comments */
|
||||
print_comment(sql_file, 0,
|
||||
"\n--\n-- Dumping routines for database '%s'\n--\n", db);
|
||||
"\n--\n-- Dumping routines for database '%s'\n--\n",
|
||||
fix_for_comment(db));
|
||||
|
||||
/*
|
||||
not using "mysql_query_with_error_report" because we may have not
|
||||
|
|
@ -2731,11 +2755,11 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
|||
if (strcmp (table_type, "VIEW") == 0) /* view */
|
||||
print_comment(sql_file, 0,
|
||||
"\n--\n-- Temporary table structure for view %s\n--\n\n",
|
||||
result_table);
|
||||
fix_for_comment(result_table));
|
||||
else
|
||||
print_comment(sql_file, 0,
|
||||
"\n--\n-- Table structure for table %s\n--\n\n",
|
||||
result_table);
|
||||
fix_for_comment(result_table));
|
||||
|
||||
if (opt_drop)
|
||||
{
|
||||
|
|
@ -2977,7 +3001,7 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
|||
|
||||
print_comment(sql_file, 0,
|
||||
"\n--\n-- Table structure for table %s\n--\n\n",
|
||||
result_table);
|
||||
fix_for_comment(result_table));
|
||||
if (opt_drop)
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", result_table);
|
||||
if (!opt_xml)
|
||||
|
|
@ -3684,21 +3708,21 @@ static void dump_table(char *table, char *db)
|
|||
{
|
||||
print_comment(md_result_file, 0,
|
||||
"\n--\n-- Dumping data for table %s\n--\n",
|
||||
result_table);
|
||||
fix_for_comment(result_table));
|
||||
|
||||
dynstr_append_checked(&query_string, "SELECT /*!40001 SQL_NO_CACHE */ * FROM ");
|
||||
dynstr_append_checked(&query_string, result_table);
|
||||
|
||||
if (where)
|
||||
{
|
||||
print_comment(md_result_file, 0, "-- WHERE: %s\n", where);
|
||||
print_comment(md_result_file, 0, "-- WHERE: %s\n", fix_for_comment(where));
|
||||
|
||||
dynstr_append_checked(&query_string, " WHERE ");
|
||||
dynstr_append_checked(&query_string, where);
|
||||
}
|
||||
if (order_by)
|
||||
{
|
||||
print_comment(md_result_file, 0, "-- ORDER BY: %s\n", order_by);
|
||||
print_comment(md_result_file, 0, "-- ORDER BY: %s\n", fix_for_comment(order_by));
|
||||
|
||||
dynstr_append_checked(&query_string, " ORDER BY ");
|
||||
dynstr_append_checked(&query_string, order_by);
|
||||
|
|
@ -4208,7 +4232,7 @@ static int dump_tablespaces(char* ts_where)
|
|||
if (first)
|
||||
{
|
||||
print_comment(md_result_file, 0, "\n--\n-- Logfile group: %s\n--\n",
|
||||
row[0]);
|
||||
fix_for_comment(row[0]));
|
||||
|
||||
fprintf(md_result_file, "\nCREATE");
|
||||
}
|
||||
|
|
@ -4277,7 +4301,8 @@ static int dump_tablespaces(char* ts_where)
|
|||
first= 1;
|
||||
if (first)
|
||||
{
|
||||
print_comment(md_result_file, 0, "\n--\n-- Tablespace: %s\n--\n", row[0]);
|
||||
print_comment(md_result_file, 0, "\n--\n-- Tablespace: %s\n--\n",
|
||||
fix_for_comment(row[0]));
|
||||
fprintf(md_result_file, "\nCREATE");
|
||||
}
|
||||
else
|
||||
|
|
@ -4481,7 +4506,8 @@ static int init_dumping(char *database, int init_func(char*))
|
|||
char *qdatabase= quote_name(database,quoted_database_buf,opt_quoted);
|
||||
|
||||
print_comment(md_result_file, 0,
|
||||
"\n--\n-- Current Database: %s\n--\n", qdatabase);
|
||||
"\n--\n-- Current Database: %s\n--\n",
|
||||
fix_for_comment(qdatabase));
|
||||
|
||||
/* Call the view or table specific function */
|
||||
init_func(qdatabase);
|
||||
|
|
@ -5672,7 +5698,7 @@ static my_bool get_view_structure(char *table, char* db)
|
|||
|
||||
print_comment(sql_file, 0,
|
||||
"\n--\n-- Final view structure for view %s\n--\n\n",
|
||||
result_table);
|
||||
fix_for_comment(result_table));
|
||||
|
||||
/* Table might not exist if this view was dumped with --tab. */
|
||||
fprintf(sql_file, "/*!50001 DROP TABLE IF EXISTS %s*/;\n", opt_quoted_table);
|
||||
|
|
|
|||
|
|
@ -1729,11 +1729,11 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename)
|
|||
while((len= my_read(fd, (uchar*)&buff,
|
||||
sizeof(buff)-1, MYF(0))) > 0)
|
||||
{
|
||||
char *p= buff, *start= buff;
|
||||
while (p < buff+len)
|
||||
char *p= buff, *start= buff,*end=buff+len;
|
||||
while (p < end)
|
||||
{
|
||||
/* Convert cr/lf to lf */
|
||||
if (*p == '\r' && *(p+1) && *(p+1)== '\n')
|
||||
if (*p == '\r' && p+1 < end && *(p+1)== '\n')
|
||||
{
|
||||
/* Add fake newline instead of cr and output the line */
|
||||
*p= '\n';
|
||||
|
|
@ -3373,10 +3373,6 @@ void do_exec(struct st_command *command)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
/* exec command is interpreted externally and will not take newlines */
|
||||
while(replace(&ds_cmd, "\n", 1, " ", 1) == 0)
|
||||
;
|
||||
|
||||
DBUG_PRINT("info", ("Executing '%s' as '%s'",
|
||||
command->first_argument, ds_cmd.str));
|
||||
|
||||
|
|
@ -3395,16 +3391,32 @@ void do_exec(struct st_command *command)
|
|||
ds_result= &ds_sorted;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Workaround for CRT bug, MDEV-9409 */
|
||||
_setmode(fileno(res_file), O_BINARY);
|
||||
#endif
|
||||
|
||||
while (fgets(buf, sizeof(buf), res_file))
|
||||
{
|
||||
int len = (int)strlen(buf);
|
||||
#ifdef _WIN32
|
||||
/* Strip '\r' off newlines. */
|
||||
if (len > 1 && buf[len-2] == '\r' && buf[len-1] == '\n')
|
||||
{
|
||||
buf[len-2] = '\n';
|
||||
buf[len-1] = 0;
|
||||
len--;
|
||||
}
|
||||
#endif
|
||||
if (disable_result_log)
|
||||
{
|
||||
buf[strlen(buf)-1]=0;
|
||||
if (len)
|
||||
buf[len-1] = 0;
|
||||
DBUG_PRINT("exec_result",("%s", buf));
|
||||
}
|
||||
else
|
||||
{
|
||||
replace_dynstr_append(ds_result, buf);
|
||||
replace_dynstr_append_mem(ds_result, buf, len);
|
||||
}
|
||||
}
|
||||
error= pclose(res_file);
|
||||
|
|
|
|||
|
|
@ -220,6 +220,9 @@ SETA(CPACK_RPM_test_PACKAGE_PROVIDES
|
|||
"perl(mtr_io.pl)"
|
||||
"perl(mtr_match)"
|
||||
"perl(mtr_misc.pl)"
|
||||
"perl(mtr_gcov.pl)"
|
||||
"perl(mtr_gprof.pl)"
|
||||
"perl(mtr_process.pl)"
|
||||
"perl(mtr_report)"
|
||||
"perl(mtr_results)"
|
||||
"perl(mtr_unique)")
|
||||
|
|
|
|||
|
|
@ -208,6 +208,7 @@ IF(WIN32)
|
|||
FIND_PROGRAM(SIGNTOOL_EXECUTABLE signtool
|
||||
PATHS "$ENV{ProgramFiles}/Microsoft SDKs/Windows/v7.0A/bin"
|
||||
"$ENV{ProgramFiles}/Windows Kits/8.0/bin/x86"
|
||||
"$ENV{ProgramFiles}/Windows Kits/8.1/bin/x86"
|
||||
)
|
||||
IF(NOT SIGNTOOL_EXECUTABLE)
|
||||
MESSAGE(FATAL_ERROR
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ IF(MSVC)
|
|||
|
||||
#TODO: update the code and remove the disabled warnings
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805 /wd4996")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805 /wd4996 /wd4291 /we4099")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805 /wd4996 /wd4291 /wd4577 /we4099")
|
||||
|
||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
# _WIN64 is defined by the compiler itself.
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ IF(NOT VERSION)
|
|||
SET(64BIT 1)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT 64BIT AND CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64")
|
||||
SET(DEFAULT_MACHINE "mips")
|
||||
ENDIF()
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
SET(NEED_DASH_BETWEEN_PLATFORM_AND_MACHINE 0)
|
||||
SET(DEFAULT_PLATFORM "win")
|
||||
|
|
|
|||
|
|
@ -230,5 +230,6 @@ MACRO (MYSQL_CHECK_READLINE)
|
|||
SET(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CMAKE_REQUIRED_INCLUDES)
|
||||
ENDIF(NOT WIN32)
|
||||
CHECK_INCLUDE_FILES ("curses.h;term.h" HAVE_TERM_H)
|
||||
ENDMACRO()
|
||||
|
||||
|
|
|
|||
|
|
@ -228,7 +228,6 @@ CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
|
|||
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
|
||||
CHECK_INCLUDE_FILES (sys/stream.h HAVE_SYS_STREAM_H)
|
||||
CHECK_INCLUDE_FILES (sys/termcap.h HAVE_SYS_TERMCAP_H)
|
||||
CHECK_INCLUDE_FILES ("curses.h;term.h" HAVE_TERM_H)
|
||||
CHECK_INCLUDE_FILES (asm/termbits.h HAVE_ASM_TERMBITS_H)
|
||||
CHECK_INCLUDE_FILES (termbits.h HAVE_TERMBITS_H)
|
||||
CHECK_INCLUDE_FILES (termios.h HAVE_TERMIOS_H)
|
||||
|
|
|
|||
1
debian/control
vendored
1
debian/control
vendored
|
|
@ -9,7 +9,6 @@ Build-Depends: bison,
|
|||
debhelper,
|
||||
dpatch,
|
||||
gawk,
|
||||
hardening-wrapper,
|
||||
libjemalloc-dev (>= 3.0.0),
|
||||
libncurses5-dev (>= 5.0-6),
|
||||
libpam0g-dev,
|
||||
|
|
|
|||
1
debian/dist/Debian/rules
vendored
1
debian/dist/Debian/rules
vendored
|
|
@ -1,7 +1,6 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export DH_VERBOSE=1
|
||||
export DEB_BUILD_HARDENING=1
|
||||
|
||||
PACKAGE=mariadb-10.0
|
||||
|
||||
|
|
|
|||
1
debian/dist/Ubuntu/rules
vendored
1
debian/dist/Ubuntu/rules
vendored
|
|
@ -1,7 +1,6 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export DH_VERBOSE=1
|
||||
export DEB_BUILD_HARDENING=1
|
||||
|
||||
PACKAGE=mariadb-10.0
|
||||
|
||||
|
|
|
|||
|
|
@ -243,10 +243,9 @@ int main(int argc, char **argv)
|
|||
time_t lastt; /* last time */
|
||||
ulint oldcsum, oldcsumfield, csum, csumfield, crc32, logseq, logseqfield;
|
||||
/* ulints for checksum storage */
|
||||
struct stat st; /* for stat, if you couldn't guess */
|
||||
unsigned long long int size; /* size of file (has to be 64 bits) */
|
||||
ulint pages; /* number of pages in file */
|
||||
off_t offset= 0;
|
||||
long long offset= 0;
|
||||
int fd;
|
||||
|
||||
printf("InnoDB offline file checksum utility.\n");
|
||||
|
|
@ -269,6 +268,47 @@ int main(int argc, char **argv)
|
|||
goto error;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Switch off OS file buffering for the file. */
|
||||
|
||||
HANDLE h = CreateFile(filename, GENERIC_READ,
|
||||
FILE_SHARE_READ|FILE_SHARE_WRITE, 0,
|
||||
OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, 0);
|
||||
|
||||
if (!h)
|
||||
{
|
||||
fprintf(stderr, "Error; cant open file\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (!GetFileSizeEx(h, (LARGE_INTEGER *)&size))
|
||||
{
|
||||
fprintf(stderr, "Error; GetFileSize() failed\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
fd = _open_osfhandle ((intptr_t) h, _O_RDONLY);
|
||||
if (fd < 0)
|
||||
{
|
||||
fprintf(stderr, "Error; _open_osfhandle() failed\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
f = _fdopen(fd, "rb");
|
||||
if (!f)
|
||||
{
|
||||
fprintf(stderr, "Error; fdopen() failed\n");
|
||||
goto error;
|
||||
}
|
||||
|
||||
/*
|
||||
Disable stdio buffering (FILE_FLAG_NO_BUFFERING requires properly IO buffers
|
||||
which stdio does not guarantee.
|
||||
*/
|
||||
setvbuf(f, NULL, _IONBF, 0);
|
||||
|
||||
#else
|
||||
struct stat st;
|
||||
/* stat the file to get size and page count */
|
||||
if (stat(filename, &st))
|
||||
{
|
||||
|
|
@ -279,6 +319,8 @@ int main(int argc, char **argv)
|
|||
|
||||
/* Open the file for reading */
|
||||
f= fopen(filename, "rb");
|
||||
#endif
|
||||
|
||||
if (f == NULL)
|
||||
{
|
||||
fprintf(stderr, "Error; %s cannot be opened", filename);
|
||||
|
|
@ -323,7 +365,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
else if (verbose)
|
||||
{
|
||||
printf("file %s = %llu bytes (%lu pages)...\n", filename, size, pages);
|
||||
printf("file %s = %llu bytes (%lu pages)...\n", filename, size, (ulong)pages);
|
||||
if (do_one_page)
|
||||
printf("InnoChecksum; checking page %lu\n", do_page);
|
||||
else
|
||||
|
|
@ -348,9 +390,12 @@ int main(int argc, char **argv)
|
|||
goto error;
|
||||
}
|
||||
|
||||
offset= (off_t)start_page * (off_t)physical_page_size;
|
||||
|
||||
offset= (longlong)start_page * (longlong)physical_page_size;
|
||||
#ifdef _WIN32
|
||||
if (_lseeki64(fd, offset, SEEK_SET) != offset)
|
||||
#else
|
||||
if (lseek(fd, offset, SEEK_SET) != offset)
|
||||
#endif
|
||||
{
|
||||
perror("Error; Unable to seek to necessary offset");
|
||||
goto error;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,24 @@ before calling SSL_new();
|
|||
|
||||
*** end Note ***
|
||||
|
||||
yaSSL Release notes, version 2.4.2 (9/22/2016)
|
||||
This release of yaSSL fixes a medium security vulnerability. A fix for
|
||||
potential AES side channel leaks is included that a local user monitoring
|
||||
the same CPU core cache could exploit. VM users, hyper-threading users,
|
||||
and users where potential attackers have access to the CPU cache will need
|
||||
to update if they utilize AES.
|
||||
|
||||
DSA padding fixes for unusual sizes is included as well. Users with DSA
|
||||
certficiates should update.
|
||||
|
||||
yaSSL Release notes, version 2.4.0 (5/20/2016)
|
||||
This release of yaSSL fixes the OpenSSL compatibility function
|
||||
SSL_CTX_load_verify_locations() when using the path directory to allow
|
||||
unlimited path sizes. Minor Windows build fixes are included.
|
||||
No high level security fixes in this version but we always recommend
|
||||
updating.
|
||||
|
||||
|
||||
yaSSL Release notes, version 2.3.9b (2/03/2016)
|
||||
This release of yaSSL fixes the OpenSSL compatibility function
|
||||
X509_NAME_get_index_by_NID() to use the actual index of the common name
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDqzCCA2ugAwIBAgIJAMGqrgDU6DyhMAkGByqGSM44BAMwgY4xCzAJBgNVBAYT
|
||||
MIIDrzCCA2+gAwIBAgIJAK1zRM7YFcNjMAkGByqGSM44BAMwgZAxCzAJBgNVBAYT
|
||||
AlVTMQ8wDQYDVQQIDAZPcmVnb24xETAPBgNVBAcMCFBvcnRsYW5kMRAwDgYDVQQK
|
||||
DAd3b2xmU1NMMRAwDgYDVQQLDAd0ZXN0aW5nMRYwFAYDVQQDDA13d3cueWFzc2wu
|
||||
Y29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTEzMDQyMjIw
|
||||
MDk0NFoXDTE2MDExNzIwMDk0NFowgY4xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZP
|
||||
cmVnb24xETAPBgNVBAcMCFBvcnRsYW5kMRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYD
|
||||
VQQLDAd0ZXN0aW5nMRYwFAYDVQQDDA13d3cueWFzc2wuY29tMR8wHQYJKoZIhvcN
|
||||
AQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBuDCCASwGByqGSM44BAEwggEfAoGBAL1R
|
||||
7koy4IrH6sbh6nDEUUPPKgfhxxLCWCVexF2+qzANEr+hC9M002haJXFOfeS9DyoO
|
||||
WFbL0qMZOuqv+22CaHnoUWl7q3PjJOAI3JH0P54ZyUPuU1909RzgTdIDp5+ikbr7
|
||||
KYjnltL73FQVMbjTZQKthIpPn3MjYcF+4jp2W2zFAhUAkcntYND6MGf+eYzIJDN2
|
||||
L7SonHUCgYEAklpxErfqznIZjVvqqHFaq+mgAL5J8QrKVmdhYZh/Y8z4jCjoCA8o
|
||||
TDoFKxf7s2ZzgaPKvglaEKiYqLqic9qY78DYJswzQMLFvjsF4sFZ+pYCBdWPQI4N
|
||||
PgxCiznK6Ce+JH9ikSBvMvG+tevjr2UpawDIHX3+AWYaZBZwKADAaboDgYUAAoGB
|
||||
AJ3LY89yHyvQ/TsQ6zlYbovjbk/ogndsMqPdNUvL4RuPTgJP/caaDDa0XJ7ak6A7
|
||||
TJ+QheLNwOXoZPYJC4EGFSDAXpYniGhbWIrVTCGe6lmZDfnx40WXS0kk3m/DHaC0
|
||||
3ElLAiybxVGxyqoUfbT3Zv1JwftWMuiqHH5uADhdXuXVo1AwTjAdBgNVHQ4EFgQU
|
||||
IJjk416o4v8qpH9LBtXlR9v8gccwHwYDVR0jBBgwFoAUIJjk416o4v8qpH9LBtXl
|
||||
R9v8gccwDAYDVR0TBAUwAwEB/zAJBgcqhkjOOAQDAy8AMCwCFCjGKIdOSV12LcTu
|
||||
k08owGM6YkO1AhQe+K173VuaO/OsDNsxZlKpyH8+1g==
|
||||
DAd3b2xmU1NMMRAwDgYDVQQLDAd0ZXN0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
|
||||
bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTYwOTIy
|
||||
MjEyMzA0WhcNMjIwMzE1MjEyMzA0WjCBkDELMAkGA1UEBhMCVVMxDzANBgNVBAgM
|
||||
Bk9yZWdvbjERMA8GA1UEBwwIUG9ydGxhbmQxEDAOBgNVBAoMB3dvbGZTU0wxEDAO
|
||||
BgNVBAsMB3Rlc3RpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
|
||||
SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCAbgwggEsBgcqhkjOOAQBMIIBHwKB
|
||||
gQC9Ue5KMuCKx+rG4epwxFFDzyoH4ccSwlglXsRdvqswDRK/oQvTNNNoWiVxTn3k
|
||||
vQ8qDlhWy9KjGTrqr/ttgmh56FFpe6tz4yTgCNyR9D+eGclD7lNfdPUc4E3SA6ef
|
||||
opG6+ymI55bS+9xUFTG402UCrYSKT59zI2HBfuI6dltsxQIVAJHJ7WDQ+jBn/nmM
|
||||
yCQzdi+0qJx1AoGBAJJacRK36s5yGY1b6qhxWqvpoAC+SfEKylZnYWGYf2PM+Iwo
|
||||
6AgPKEw6BSsX+7Nmc4Gjyr4JWhComKi6onPamO/A2CbMM0DCxb47BeLBWfqWAgXV
|
||||
j0CODT4MQos5yugnviR/YpEgbzLxvrXr469lKWsAyB19/gFmGmQWcCgAwGm6A4GF
|
||||
AAKBgQCdy2PPch8r0P07EOs5WG6L425P6IJ3bDKj3TVLy+Ebj04CT/3Gmgw2tFye
|
||||
2pOgO0yfkIXizcDl6GT2CQuBBhUgwF6WJ4hoW1iK1UwhnupZmQ358eNFl0tJJN5v
|
||||
wx2gtNxJSwIsm8VRscqqFH2092b9ScH7VjLoqhx+bgA4XV7l1aNQME4wHQYDVR0O
|
||||
BBYEFCCY5ONeqOL/KqR/SwbV5Ufb/IHHMB8GA1UdIwQYMBaAFCCY5ONeqOL/KqR/
|
||||
SwbV5Ufb/IHHMAwGA1UdEwQFMAMBAf8wCQYHKoZIzjgEAwMvADAsAhQRYSCVN/Ge
|
||||
agV3mffU3qNZ92fI0QIUPH7Jp+iASI7U1ocaYDc10qXGaGY=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "rsa.h"
|
||||
|
||||
|
||||
#define YASSL_VERSION "2.3.9b"
|
||||
#define YASSL_VERSION "2.4.2"
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ int read_file(SSL_CTX* ctx, const char* file, int format, CertType type)
|
|||
TaoCrypt::DSA_PrivateKey dsaKey;
|
||||
dsaKey.Initialize(dsaSource);
|
||||
|
||||
if (rsaSource.GetError().What()) {
|
||||
if (dsaSource.GetError().What()) {
|
||||
// neither worked
|
||||
ret = SSL_FAILURE;
|
||||
}
|
||||
|
|
@ -785,40 +785,67 @@ int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* file,
|
|||
WIN32_FIND_DATA FindFileData;
|
||||
HANDLE hFind;
|
||||
|
||||
char name[MAX_PATH + 1]; // directory specification
|
||||
strncpy(name, path, MAX_PATH - 3);
|
||||
strncat(name, "\\*", 3);
|
||||
const int DELIMITER_SZ = 2;
|
||||
const int DELIMITER_STAR_SZ = 3;
|
||||
int pathSz = (int)strlen(path);
|
||||
int nameSz = pathSz + DELIMITER_STAR_SZ + 1; // plus 1 for terminator
|
||||
char* name = NEW_YS char[nameSz]; // directory specification
|
||||
memset(name, 0, nameSz);
|
||||
strncpy(name, path, nameSz - DELIMITER_STAR_SZ - 1);
|
||||
strncat(name, "\\*", DELIMITER_STAR_SZ);
|
||||
|
||||
hFind = FindFirstFile(name, &FindFileData);
|
||||
if (hFind == INVALID_HANDLE_VALUE) return SSL_BAD_PATH;
|
||||
if (hFind == INVALID_HANDLE_VALUE) {
|
||||
ysArrayDelete(name);
|
||||
return SSL_BAD_PATH;
|
||||
}
|
||||
|
||||
do {
|
||||
if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY) {
|
||||
strncpy(name, path, MAX_PATH - 2 - HALF_PATH);
|
||||
strncat(name, "\\", 2);
|
||||
strncat(name, FindFileData.cFileName, HALF_PATH);
|
||||
if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
|
||||
int curSz = (int)strlen(FindFileData.cFileName);
|
||||
if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) {
|
||||
ysArrayDelete(name);
|
||||
// plus 1 for terminator
|
||||
nameSz = pathSz + curSz + DELIMITER_SZ + 1;
|
||||
name = NEW_YS char[nameSz];
|
||||
}
|
||||
memset(name, 0, nameSz);
|
||||
strncpy(name, path, nameSz - curSz - DELIMITER_SZ - 1);
|
||||
strncat(name, "\\", DELIMITER_SZ);
|
||||
strncat(name, FindFileData.cFileName,
|
||||
nameSz - pathSz - DELIMITER_SZ - 1);
|
||||
ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA);
|
||||
}
|
||||
} while (ret == SSL_SUCCESS && FindNextFile(hFind, &FindFileData));
|
||||
|
||||
ysArrayDelete(name);
|
||||
FindClose(hFind);
|
||||
|
||||
#else // _WIN32
|
||||
|
||||
const int MAX_PATH = 260;
|
||||
|
||||
DIR* dir = opendir(path);
|
||||
if (!dir) return SSL_BAD_PATH;
|
||||
|
||||
struct dirent* entry;
|
||||
struct stat buf;
|
||||
char name[MAX_PATH + 1];
|
||||
const int DELIMITER_SZ = 1;
|
||||
int pathSz = (int)strlen(path);
|
||||
int nameSz = pathSz + DELIMITER_SZ + 1; //plus 1 for null terminator
|
||||
char* name = NEW_YS char[nameSz]; // directory specification
|
||||
|
||||
while (ret == SSL_SUCCESS && (entry = readdir(dir))) {
|
||||
strncpy(name, path, MAX_PATH - 1 - HALF_PATH);
|
||||
strncat(name, "/", 1);
|
||||
strncat(name, entry->d_name, HALF_PATH);
|
||||
int curSz = (int)strlen(entry->d_name);
|
||||
if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) {
|
||||
ysArrayDelete(name);
|
||||
nameSz = pathSz + DELIMITER_SZ + curSz + 1;
|
||||
name = NEW_YS char[nameSz];
|
||||
}
|
||||
memset(name, 0, nameSz);
|
||||
strncpy(name, path, nameSz - curSz - 1);
|
||||
strncat(name, "/", DELIMITER_SZ);
|
||||
strncat(name, entry->d_name, nameSz - pathSz - DELIMITER_SZ - 1);
|
||||
|
||||
if (stat(name, &buf) < 0) {
|
||||
ysArrayDelete(name);
|
||||
closedir(dir);
|
||||
return SSL_BAD_STAT;
|
||||
}
|
||||
|
|
@ -827,6 +854,7 @@ int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* file,
|
|||
ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA);
|
||||
}
|
||||
|
||||
ysArrayDelete(name);
|
||||
closedir(dir);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ private:
|
|||
|
||||
static const word32 Te[5][256];
|
||||
static const word32 Td[5][256];
|
||||
static const byte CTd4[256];
|
||||
|
||||
static const word32* Te0;
|
||||
static const word32* Te1;
|
||||
|
|
@ -80,11 +81,68 @@ private:
|
|||
|
||||
void ProcessAndXorBlock(const byte*, const byte*, byte*) const;
|
||||
|
||||
word32 PreFetchTe() const;
|
||||
word32 PreFetchTd() const;
|
||||
word32 PreFetchCTd4() const;
|
||||
|
||||
AES(const AES&); // hide copy
|
||||
AES& operator=(const AES&); // and assign
|
||||
};
|
||||
|
||||
|
||||
#if defined(__x86_64__) || defined(_M_X64) || \
|
||||
(defined(__ILP32__) && (__ILP32__ >= 1))
|
||||
#define TC_CACHE_LINE_SZ 64
|
||||
#else
|
||||
/* default cache line size */
|
||||
#define TC_CACHE_LINE_SZ 32
|
||||
#endif
|
||||
|
||||
inline word32 AES::PreFetchTe() const
|
||||
{
|
||||
word32 x = 0;
|
||||
|
||||
/* 4 tables of 256 entries */
|
||||
for (int i = 0; i < 4; i++) {
|
||||
/* each entry is 4 bytes */
|
||||
for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) {
|
||||
x &= Te[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
inline word32 AES::PreFetchTd() const
|
||||
{
|
||||
word32 x = 0;
|
||||
|
||||
/* 4 tables of 256 entries */
|
||||
for (int i = 0; i < 4; i++) {
|
||||
/* each entry is 4 bytes */
|
||||
for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) {
|
||||
x &= Td[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
inline word32 AES::PreFetchCTd4() const
|
||||
{
|
||||
word32 x = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 256; i += TC_CACHE_LINE_SZ) {
|
||||
x &= CTd4[i];
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
typedef BlockCipher<ENCRYPTION, AES, ECB> AES_ECB_Encryption;
|
||||
typedef BlockCipher<DECRYPTION, AES, ECB> AES_ECB_Decryption;
|
||||
|
||||
|
|
|
|||
|
|
@ -119,6 +119,9 @@ namespace TaoCrypt {
|
|||
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#undef max // avoid name clash
|
||||
#endif
|
||||
// general MAX
|
||||
template<typename T> inline
|
||||
const T& max(const T& a, const T& b)
|
||||
|
|
|
|||
|
|
@ -109,10 +109,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
{
|
||||
temp = rk[3];
|
||||
rk[4] = rk[0] ^
|
||||
(Te4[GETBYTE(temp, 2)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(temp, 1)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(temp, 0)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(temp, 3)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(temp, 2)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(temp, 3)] & 0x000000ff) ^
|
||||
rcon_[i];
|
||||
rk[5] = rk[1] ^ rk[4];
|
||||
rk[6] = rk[2] ^ rk[5];
|
||||
|
|
@ -128,10 +128,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
{
|
||||
temp = rk[ 5];
|
||||
rk[ 6] = rk[ 0] ^
|
||||
(Te4[GETBYTE(temp, 2)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(temp, 1)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(temp, 0)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(temp, 3)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(temp, 2)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(temp, 3)] & 0x000000ff) ^
|
||||
rcon_[i];
|
||||
rk[ 7] = rk[ 1] ^ rk[ 6];
|
||||
rk[ 8] = rk[ 2] ^ rk[ 7];
|
||||
|
|
@ -149,10 +149,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
{
|
||||
temp = rk[ 7];
|
||||
rk[ 8] = rk[ 0] ^
|
||||
(Te4[GETBYTE(temp, 2)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(temp, 1)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(temp, 0)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(temp, 3)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(temp, 2)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(temp, 3)] & 0x000000ff) ^
|
||||
rcon_[i];
|
||||
rk[ 9] = rk[ 1] ^ rk[ 8];
|
||||
rk[10] = rk[ 2] ^ rk[ 9];
|
||||
|
|
@ -161,10 +161,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
break;
|
||||
temp = rk[11];
|
||||
rk[12] = rk[ 4] ^
|
||||
(Te4[GETBYTE(temp, 3)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(temp, 2)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(temp, 1)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(temp, 0)] & 0x000000ff);
|
||||
(Te2[GETBYTE(temp, 3)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(temp, 2)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(temp, 1)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(temp, 0)] & 0x000000ff);
|
||||
rk[13] = rk[ 5] ^ rk[12];
|
||||
rk[14] = rk[ 6] ^ rk[13];
|
||||
rk[15] = rk[ 7] ^ rk[14];
|
||||
|
|
@ -191,25 +191,25 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
|
|||
for (i = 1; i < rounds_; i++) {
|
||||
rk += 4;
|
||||
rk[0] =
|
||||
Td0[Te4[GETBYTE(rk[0], 3)] & 0xff] ^
|
||||
Td1[Te4[GETBYTE(rk[0], 2)] & 0xff] ^
|
||||
Td2[Te4[GETBYTE(rk[0], 1)] & 0xff] ^
|
||||
Td3[Te4[GETBYTE(rk[0], 0)] & 0xff];
|
||||
Td0[Te1[GETBYTE(rk[0], 3)] & 0xff] ^
|
||||
Td1[Te1[GETBYTE(rk[0], 2)] & 0xff] ^
|
||||
Td2[Te1[GETBYTE(rk[0], 1)] & 0xff] ^
|
||||
Td3[Te1[GETBYTE(rk[0], 0)] & 0xff];
|
||||
rk[1] =
|
||||
Td0[Te4[GETBYTE(rk[1], 3)] & 0xff] ^
|
||||
Td1[Te4[GETBYTE(rk[1], 2)] & 0xff] ^
|
||||
Td2[Te4[GETBYTE(rk[1], 1)] & 0xff] ^
|
||||
Td3[Te4[GETBYTE(rk[1], 0)] & 0xff];
|
||||
Td0[Te1[GETBYTE(rk[1], 3)] & 0xff] ^
|
||||
Td1[Te1[GETBYTE(rk[1], 2)] & 0xff] ^
|
||||
Td2[Te1[GETBYTE(rk[1], 1)] & 0xff] ^
|
||||
Td3[Te1[GETBYTE(rk[1], 0)] & 0xff];
|
||||
rk[2] =
|
||||
Td0[Te4[GETBYTE(rk[2], 3)] & 0xff] ^
|
||||
Td1[Te4[GETBYTE(rk[2], 2)] & 0xff] ^
|
||||
Td2[Te4[GETBYTE(rk[2], 1)] & 0xff] ^
|
||||
Td3[Te4[GETBYTE(rk[2], 0)] & 0xff];
|
||||
Td0[Te1[GETBYTE(rk[2], 3)] & 0xff] ^
|
||||
Td1[Te1[GETBYTE(rk[2], 2)] & 0xff] ^
|
||||
Td2[Te1[GETBYTE(rk[2], 1)] & 0xff] ^
|
||||
Td3[Te1[GETBYTE(rk[2], 0)] & 0xff];
|
||||
rk[3] =
|
||||
Td0[Te4[GETBYTE(rk[3], 3)] & 0xff] ^
|
||||
Td1[Te4[GETBYTE(rk[3], 2)] & 0xff] ^
|
||||
Td2[Te4[GETBYTE(rk[3], 1)] & 0xff] ^
|
||||
Td3[Te4[GETBYTE(rk[3], 0)] & 0xff];
|
||||
Td0[Te1[GETBYTE(rk[3], 3)] & 0xff] ^
|
||||
Td1[Te1[GETBYTE(rk[3], 2)] & 0xff] ^
|
||||
Td2[Te1[GETBYTE(rk[3], 1)] & 0xff] ^
|
||||
Td3[Te1[GETBYTE(rk[3], 0)] & 0xff];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -244,6 +244,7 @@ void AES::encrypt(const byte* inBlock, const byte* xorBlock,
|
|||
s2 ^= rk[2];
|
||||
s3 ^= rk[3];
|
||||
|
||||
s0 |= PreFetchTe();
|
||||
/*
|
||||
* Nr - 1 full rounds:
|
||||
*/
|
||||
|
|
@ -312,28 +313,28 @@ void AES::encrypt(const byte* inBlock, const byte* xorBlock,
|
|||
*/
|
||||
|
||||
s0 =
|
||||
(Te4[GETBYTE(t0, 3)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(t1, 2)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(t2, 1)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(t3, 0)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(t0, 3)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(t1, 2)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(t2, 1)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(t3, 0)] & 0x000000ff) ^
|
||||
rk[0];
|
||||
s1 =
|
||||
(Te4[GETBYTE(t1, 3)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(t2, 2)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(t3, 1)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(t0, 0)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(t1, 3)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(t2, 2)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(t3, 1)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(t0, 0)] & 0x000000ff) ^
|
||||
rk[1];
|
||||
s2 =
|
||||
(Te4[GETBYTE(t2, 3)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(t3, 2)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(t0, 1)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(t1, 0)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(t2, 3)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(t3, 2)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(t0, 1)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(t1, 0)] & 0x000000ff) ^
|
||||
rk[2];
|
||||
s3 =
|
||||
(Te4[GETBYTE(t3, 3)] & 0xff000000) ^
|
||||
(Te4[GETBYTE(t0, 2)] & 0x00ff0000) ^
|
||||
(Te4[GETBYTE(t1, 1)] & 0x0000ff00) ^
|
||||
(Te4[GETBYTE(t2, 0)] & 0x000000ff) ^
|
||||
(Te2[GETBYTE(t3, 3)] & 0xff000000) ^
|
||||
(Te3[GETBYTE(t0, 2)] & 0x00ff0000) ^
|
||||
(Te0[GETBYTE(t1, 1)] & 0x0000ff00) ^
|
||||
(Te1[GETBYTE(t2, 0)] & 0x000000ff) ^
|
||||
rk[3];
|
||||
|
||||
|
||||
|
|
@ -358,6 +359,8 @@ void AES::decrypt(const byte* inBlock, const byte* xorBlock,
|
|||
s2 ^= rk[2];
|
||||
s3 ^= rk[3];
|
||||
|
||||
s0 |= PreFetchTd();
|
||||
|
||||
/*
|
||||
* Nr - 1 full rounds:
|
||||
*/
|
||||
|
|
@ -423,29 +426,32 @@ void AES::decrypt(const byte* inBlock, const byte* xorBlock,
|
|||
* apply last round and
|
||||
* map cipher state to byte array block:
|
||||
*/
|
||||
|
||||
t0 |= PreFetchCTd4();
|
||||
|
||||
s0 =
|
||||
(Td4[GETBYTE(t0, 3)] & 0xff000000) ^
|
||||
(Td4[GETBYTE(t3, 2)] & 0x00ff0000) ^
|
||||
(Td4[GETBYTE(t2, 1)] & 0x0000ff00) ^
|
||||
(Td4[GETBYTE(t1, 0)] & 0x000000ff) ^
|
||||
((word32)CTd4[GETBYTE(t0, 3)] << 24) ^
|
||||
((word32)CTd4[GETBYTE(t3, 2)] << 16) ^
|
||||
((word32)CTd4[GETBYTE(t2, 1)] << 8) ^
|
||||
((word32)CTd4[GETBYTE(t1, 0)]) ^
|
||||
rk[0];
|
||||
s1 =
|
||||
(Td4[GETBYTE(t1, 3)] & 0xff000000) ^
|
||||
(Td4[GETBYTE(t0, 2)] & 0x00ff0000) ^
|
||||
(Td4[GETBYTE(t3, 1)] & 0x0000ff00) ^
|
||||
(Td4[GETBYTE(t2, 0)] & 0x000000ff) ^
|
||||
((word32)CTd4[GETBYTE(t1, 3)] << 24) ^
|
||||
((word32)CTd4[GETBYTE(t0, 2)] << 16) ^
|
||||
((word32)CTd4[GETBYTE(t3, 1)] << 8) ^
|
||||
((word32)CTd4[GETBYTE(t2, 0)]) ^
|
||||
rk[1];
|
||||
s2 =
|
||||
(Td4[GETBYTE(t2, 3)] & 0xff000000) ^
|
||||
(Td4[GETBYTE(t1, 2)] & 0x00ff0000) ^
|
||||
(Td4[GETBYTE(t0, 1)] & 0x0000ff00) ^
|
||||
(Td4[GETBYTE(t3, 0)] & 0x000000ff) ^
|
||||
((word32)CTd4[GETBYTE(t2, 3)] << 24 ) ^
|
||||
((word32)CTd4[GETBYTE(t1, 2)] << 16 ) ^
|
||||
((word32)CTd4[GETBYTE(t0, 1)] << 8 ) ^
|
||||
((word32)CTd4[GETBYTE(t3, 0)]) ^
|
||||
rk[2];
|
||||
s3 =
|
||||
(Td4[GETBYTE(t3, 3)] & 0xff000000) ^
|
||||
(Td4[GETBYTE(t2, 2)] & 0x00ff0000) ^
|
||||
(Td4[GETBYTE(t1, 1)] & 0x0000ff00) ^
|
||||
(Td4[GETBYTE(t0, 0)] & 0x000000ff) ^
|
||||
((word32)CTd4[GETBYTE(t3, 3)] << 24) ^
|
||||
((word32)CTd4[GETBYTE(t2, 2)] << 16) ^
|
||||
((word32)CTd4[GETBYTE(t1, 1)] << 8) ^
|
||||
((word32)CTd4[GETBYTE(t0, 0)]) ^
|
||||
rk[3];
|
||||
|
||||
gpBlock::Put(xorBlock, outBlock)(s0)(s1)(s2)(s3);
|
||||
|
|
@ -1826,18 +1832,52 @@ const word32 AES::Td[5][256] = {
|
|||
}
|
||||
};
|
||||
|
||||
const byte AES::CTd4[256] =
|
||||
{
|
||||
0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
|
||||
0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
|
||||
0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
|
||||
0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
|
||||
0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
|
||||
0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
|
||||
0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
|
||||
0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
|
||||
0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
|
||||
0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
|
||||
0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
|
||||
0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
|
||||
0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
|
||||
0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
|
||||
0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
|
||||
0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
|
||||
0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
|
||||
0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
|
||||
0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
|
||||
0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
|
||||
0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
|
||||
0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
|
||||
0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
|
||||
0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
|
||||
0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
|
||||
0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
|
||||
0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
|
||||
0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
|
||||
0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
|
||||
0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
|
||||
0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
|
||||
0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
|
||||
};
|
||||
|
||||
|
||||
const word32* AES::Te0 = AES::Te[0];
|
||||
const word32* AES::Te1 = AES::Te[1];
|
||||
const word32* AES::Te2 = AES::Te[2];
|
||||
const word32* AES::Te3 = AES::Te[3];
|
||||
const word32* AES::Te4 = AES::Te[4];
|
||||
|
||||
const word32* AES::Td0 = AES::Td[0];
|
||||
const word32* AES::Td1 = AES::Td[1];
|
||||
const word32* AES::Td2 = AES::Td[2];
|
||||
const word32* AES::Td3 = AES::Td[3];
|
||||
const word32* AES::Td4 = AES::Td[4];
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1219,17 +1219,17 @@ word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz)
|
|||
}
|
||||
word32 rLen = GetLength(source);
|
||||
if (rLen != 20) {
|
||||
if (rLen == 21) { // zero at front, eat
|
||||
while (rLen > 20 && source.remaining() > 0) { // zero's at front, eat
|
||||
source.next();
|
||||
--rLen;
|
||||
}
|
||||
else if (rLen == 19) { // add zero to front so 20 bytes
|
||||
if (rLen < 20) { // add zero's to front so 20 bytes
|
||||
word32 tmpLen = rLen;
|
||||
while (tmpLen < 20) {
|
||||
decoded[0] = 0;
|
||||
decoded++;
|
||||
tmpLen++;
|
||||
}
|
||||
else {
|
||||
source.SetError(DSA_SZ_E);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
memcpy(decoded, source.get_buffer() + source.get_index(), rLen);
|
||||
|
|
@ -1242,17 +1242,17 @@ word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz)
|
|||
}
|
||||
word32 sLen = GetLength(source);
|
||||
if (sLen != 20) {
|
||||
if (sLen == 21) {
|
||||
source.next(); // zero at front, eat
|
||||
while (sLen > 20 && source.remaining() > 0) {
|
||||
source.next(); // zero's at front, eat
|
||||
--sLen;
|
||||
}
|
||||
else if (sLen == 19) {
|
||||
decoded[rLen] = 0; // add zero to front so 20 bytes
|
||||
if (sLen < 20) { // add zero's to front so 20 bytes
|
||||
word32 tmpLen = sLen;
|
||||
while (tmpLen < 20) {
|
||||
decoded[rLen] = 0;
|
||||
decoded++;
|
||||
tmpLen++;
|
||||
}
|
||||
else {
|
||||
source.SetError(DSA_SZ_E);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
memcpy(decoded + rLen, source.get_buffer() + source.get_index(), sLen);
|
||||
|
|
|
|||
|
|
@ -172,6 +172,7 @@ word32 DSA_Signer::Sign(const byte* sha_digest, byte* sig,
|
|||
const Integer& q = key_.GetSubGroupOrder();
|
||||
const Integer& g = key_.GetSubGroupGenerator();
|
||||
const Integer& x = key_.GetPrivatePart();
|
||||
byte* tmpPtr = sig; // initial signature output
|
||||
|
||||
Integer k(rng, 1, q - 1);
|
||||
|
||||
|
|
@ -187,22 +188,23 @@ word32 DSA_Signer::Sign(const byte* sha_digest, byte* sig,
|
|||
return (word32) -1;
|
||||
|
||||
int rSz = r_.ByteCount();
|
||||
int tmpSz = rSz;
|
||||
|
||||
if (rSz == 19) {
|
||||
sig[0] = 0;
|
||||
sig++;
|
||||
while (tmpSz++ < SHA::DIGEST_SIZE) {
|
||||
*sig++ = 0;
|
||||
}
|
||||
|
||||
r_.Encode(sig, rSz);
|
||||
|
||||
sig = tmpPtr + SHA::DIGEST_SIZE; // advance sig output to s
|
||||
int sSz = s_.ByteCount();
|
||||
tmpSz = sSz;
|
||||
|
||||
if (sSz == 19) {
|
||||
sig[rSz] = 0;
|
||||
sig++;
|
||||
while (tmpSz++ < SHA::DIGEST_SIZE) {
|
||||
*sig++ = 0;
|
||||
}
|
||||
|
||||
s_.Encode(sig + rSz, sSz);
|
||||
s_.Encode(sig, sSz);
|
||||
|
||||
return 40;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,8 +193,9 @@ DWord() {}
|
|||
"a" (a), "rm" (b) : "cc");
|
||||
|
||||
#elif defined(__mips64)
|
||||
__asm__("dmultu %2,%3" : "=d" (r.halfs_.high), "=l" (r.halfs_.low)
|
||||
: "r" (a), "r" (b));
|
||||
unsigned __int128 t = (unsigned __int128) a * b;
|
||||
r.halfs_.high = t >> 64;
|
||||
r.halfs_.low = (word) t;
|
||||
|
||||
#elif defined(_M_IX86)
|
||||
// for testing
|
||||
|
|
|
|||
|
|
@ -1281,6 +1281,9 @@ int dsa_test()
|
|||
if (!verifier.Verify(digest, decoded))
|
||||
return -90;
|
||||
|
||||
if (!verifier.Verify(digest, signature))
|
||||
return -91;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
#define yaSSL_TEST_HPP
|
||||
|
||||
#include "runtime.hpp"
|
||||
#include "openssl/ssl.h" /* openssl compatibility test */
|
||||
#include "error.hpp"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -56,6 +55,7 @@
|
|||
#endif
|
||||
#define SOCKET_T int
|
||||
#endif /* _WIN32 */
|
||||
#include "openssl/ssl.h" /* openssl compatibility test */
|
||||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
|
|
|||
|
|
@ -27,19 +27,9 @@
|
|||
((uint32) (uchar) (A)[0])))
|
||||
#define sint4korr(A) (*((const long *) (A)))
|
||||
#define uint2korr(A) (*((const uint16 *) (A)))
|
||||
|
||||
/*
|
||||
Attention: Please, note, uint3korr reads 4 bytes (not 3)!
|
||||
It means, that you have to provide enough allocated space.
|
||||
*/
|
||||
#if defined(HAVE_valgrind) && !defined(_WIN32)
|
||||
#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
|
||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||
(((uint32) ((uchar) (A)[2])) << 16))
|
||||
#else
|
||||
#define uint3korr(A) (long) (*((const unsigned int *) (A)) & 0xFFFFFF)
|
||||
#endif
|
||||
|
||||
#define uint4korr(A) (*((const uint32 *) (A)))
|
||||
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
|
||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||
|
|
|
|||
|
|
@ -27,17 +27,9 @@
|
|||
((uint32) (uchar) (A)[0])))
|
||||
#define sint4korr(A) (int32) (*((int32 *) (A)))
|
||||
#define uint2korr(A) (uint16) (*((uint16 *) (A)))
|
||||
/*
|
||||
Attention: Please, note, uint3korr reads 4 bytes (not 3)!
|
||||
It means, that you have to provide enough allocated space.
|
||||
*/
|
||||
#if defined(HAVE_valgrind) && !defined(_WIN32)
|
||||
#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
|
||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||
(((uint32) ((uchar) (A)[2])) << 16))
|
||||
#else
|
||||
#define uint3korr(A) (uint32) (*((unsigned int *) (A)) & 0xFFFFFF)
|
||||
#endif
|
||||
#define uint4korr(A) (uint32) (*((uint32 *) (A)))
|
||||
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
|
||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||
|
|
|
|||
|
|
@ -180,6 +180,9 @@ extern MY_UNI_CTYPE my_uni_ctype[256];
|
|||
/* A helper macros for "need at least n bytes" */
|
||||
#define MY_CS_TOOSMALLN(n) (-100-(n))
|
||||
|
||||
#define MY_CS_IS_TOOSMALL(rc) ((rc) >= MY_CS_TOOSMALL6 && (rc) <= MY_CS_TOOSMALL)
|
||||
|
||||
|
||||
#define MY_SEQ_INTTAIL 1
|
||||
#define MY_SEQ_SPACES 2
|
||||
|
||||
|
|
|
|||
|
|
@ -882,8 +882,7 @@ typedef long long my_ptrdiff_t;
|
|||
and related routines are refactored.
|
||||
*/
|
||||
|
||||
#define my_offsetof(TYPE, MEMBER) \
|
||||
((size_t)((char *)&(((TYPE *)0x10)->MEMBER) - (char*)0x10))
|
||||
#define my_offsetof(TYPE, MEMBER) PTR_BYTE_DIFF(&((TYPE *)0x10)->MEMBER, 0x10)
|
||||
|
||||
#define NullS (char *) 0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2013, Monty Program Ab.
|
||||
Copyright (c) 2010, 2016, Monty Program Ab.
|
||||
|
||||
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
|
||||
|
|
@ -271,7 +271,7 @@ extern my_bool my_use_symdir;
|
|||
extern ulong my_default_record_cache_size;
|
||||
extern my_bool my_disable_locking, my_disable_async_io,
|
||||
my_disable_flush_key_blocks, my_disable_symlinks;
|
||||
extern my_bool my_disable_sync;
|
||||
extern my_bool my_disable_sync, my_disable_copystat_in_redel;
|
||||
extern char wild_many,wild_one,wild_prefix;
|
||||
extern const char *charsets_dir;
|
||||
extern my_bool timed_mutexes;
|
||||
|
|
|
|||
|
|
@ -450,8 +450,9 @@ void read_user_name(char *name)
|
|||
|
||||
void read_user_name(char *name)
|
||||
{
|
||||
char *str=getenv("USER"); /* ODBC will send user variable */
|
||||
strmake(name,str ? str : "ODBC", USERNAME_LENGTH);
|
||||
DWORD len= USERNAME_LENGTH;
|
||||
if (!GetUserName(name, &len))
|
||||
strmov(name,"UNKNOWN_USER");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -753,6 +753,29 @@ suppresses date printing\&
|
|||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.\" mysqldump: dump-slave option
|
||||
.\" dump-slave option: mysqldump
|
||||
\fB\-\-dump\-slave[=\fR\fB\fIvalue\fR\fR\fB]\fR
|
||||
.sp
|
||||
Used for producing a dump file from a replication slave server that can be used to set up another slave server
|
||||
with the same master\&. Causes the binary log position and filename of the master to be appended to the dumped
|
||||
data output\&. Setting the value to 1 (the default) will print it as a CHANGE MASTER command in the dumped data
|
||||
output; if set to 2, that command will be prefixed with a comment symbol\&. This option will turn
|
||||
\-\-lock\-all\-tables on, unless \-\-single-transaction is specified too (in which case a global read lock is only
|
||||
taken a short time at the beginning of the dump \- don't forget to read about \-\-single-transaction below)\&. In
|
||||
all cases any action on logs will happen at the exact moment of the dump\&. Option automatically turns
|
||||
\-\-lock\-tables off\&. Using this option causes mysqldump to stop the slave SQL thread before beginning the dump,
|
||||
and restart it again after completion\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.\" mysqldump: events option
|
||||
.\" events option: mysqldump
|
||||
\fB\-\-events\fR,
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
|
|||
|
||||
# Use '/' instead of '\' in the error message. On windows platform, dir is
|
||||
# formed with '\'.
|
||||
--replace_regex /\\testing_1\\*/\/testing_1\// /66/39/ /17/39/ /File exists/Directory not empty/
|
||||
--replace_regex /\\testing_1\\*/\/testing_1\// /66/39/ /93/39/ /17/39/ /247/39/ /File exists/Directory not empty/
|
||||
--error 1010
|
||||
DROP DATABASE testing_1;
|
||||
let $wait_binlog_event= DROP TABLE IF EXIST;
|
||||
|
|
|
|||
59
mysql-test/extra/table_index_statistics.inc
Normal file
59
mysql-test/extra/table_index_statistics.inc
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# include file to test index and table statstics for specific storage engine
|
||||
# requires includer set the default strorage engine for the session
|
||||
|
||||
# Bug 602047 (wrong rows_read value)
|
||||
|
||||
FLUSH INDEX_STATISTICS;
|
||||
FLUSH TABLE_STATISTICS;
|
||||
|
||||
SET @userstat_old= @@userstat;
|
||||
SET GLOBAL userstat=ON;
|
||||
|
||||
CREATE TABLE t1 (id int(10), PRIMARY KEY (id));
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||
|
||||
# Test that FLUSH clears one table but not another
|
||||
|
||||
FLUSH TABLE_STATISTICS;
|
||||
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||
|
||||
# Test that FLUSH clears both tables now
|
||||
|
||||
FLUSH INDEX_STATISTICS;
|
||||
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||
|
||||
# Test that stats are collected after the FLUSH again
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t1';
|
||||
SELECT ROWS_READ FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME='t1';
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# Bug 1183625 (handler::update_global_table_stats crash).
|
||||
|
||||
CREATE TABLE t2 (c1 INT UNSIGNED);
|
||||
|
||||
ALTER TABLE t2 MODIFY c1 FLOAT;
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t2';
|
||||
|
||||
DROP TABLE t2;
|
||||
|
||||
# Bug 1183625 (handler::update_global_table_stats crash).
|
||||
|
||||
CREATE TABLE t2 (c1 INT UNSIGNED);
|
||||
|
||||
ALTER TABLE t2 MODIFY c1 FLOAT;
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='t2';
|
||||
|
||||
DROP TABLE t2;
|
||||
|
||||
SET GLOBAL userstat= @userstat_old;
|
||||
|
|
@ -60,12 +60,12 @@
|
|||
|
||||
perl;
|
||||
use strict;
|
||||
my $search_file= $ENV{'SEARCH_FILE'} or die "SEARCH_FILE not set";
|
||||
my $search_pattern= $ENV{'SEARCH_PATTERN'} or die "SEARCH_PATTERN not set";
|
||||
my $search_range= $ENV{'SEARCH_RANGE'};
|
||||
my $search_file= $ENV{'SEARCH_FILE'} or die "SEARCH_FILE not set";
|
||||
my $search_pattern= $ENV{'SEARCH_PATTERN'} or die "SEARCH_PATTERN not set";
|
||||
my $search_range= $ENV{'SEARCH_RANGE'};
|
||||
my $file_content;
|
||||
$search_range= 50000 unless $search_range =~ /-?[0-9]+/;
|
||||
open(FILE, "$search_file") or die("Unable to open '$search_file': $!\n");
|
||||
open(FILE, '<', $search_file) or die("Unable to open '$search_file': $!\n");
|
||||
if ($search_range >= 0) {
|
||||
read(FILE, $file_content, $search_range, 0);
|
||||
} else {
|
||||
|
|
@ -75,7 +75,10 @@ perl;
|
|||
read(FILE, $file_content, -$search_range, 0);
|
||||
}
|
||||
close(FILE);
|
||||
if ( not $file_content =~ m{$search_pattern} ) {
|
||||
die("# ERROR: The file '$search_file' does not contain the expected pattern $search_pattern\n->$file_content<-\n");
|
||||
$search_file =~ s{^.*?([^/\\]+)$}{$1};
|
||||
if ($file_content =~ m{$search_pattern}) {
|
||||
print "FOUND /$search_pattern/ in $search_file\n"
|
||||
} else {
|
||||
print "NOT FOUND /$search_pattern/ in $search_file\n"
|
||||
}
|
||||
EOF
|
||||
|
|
|
|||
|
|
@ -261,11 +261,7 @@ sub show {
|
|||
# On Windows, rely on cdb to be there...
|
||||
if (IS_WINDOWS)
|
||||
{
|
||||
# Starting cdb is unsafe when used with --parallel > 1 option
|
||||
if ( $parallel < 2 )
|
||||
{
|
||||
_cdb($core_name);
|
||||
}
|
||||
_cdb($core_name);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ use File::Path;
|
|||
use base qw(Exporter);
|
||||
our @EXPORT= qw(IS_CYGWIN IS_WINDOWS IS_WIN32PERL
|
||||
native_path posix_path mixed_path
|
||||
check_socket_path_length process_alive);
|
||||
check_socket_path_length process_alive open_for_append);
|
||||
|
||||
BEGIN {
|
||||
if ($^O eq "cygwin") {
|
||||
|
|
@ -161,4 +161,51 @@ sub process_alive {
|
|||
}
|
||||
|
||||
|
||||
|
||||
use Symbol qw( gensym );
|
||||
|
||||
use if $^O eq 'MSWin32', 'Win32API::File', qw( CloseHandle CreateFile GetOsFHandle OsFHandleOpen OPEN_ALWAYS FILE_APPEND_DATA
|
||||
FILE_SHARE_READ FILE_SHARE_WRITE FILE_SHARE_DELETE );
|
||||
use if $^O eq 'MSWin32', 'Win32::API';
|
||||
|
||||
use constant WIN32API_FILE_NULL => [];
|
||||
|
||||
# Open a file for append
|
||||
# On Windows we use CreateFile with FILE_APPEND_DATA
|
||||
# to insure that writes are atomic, not interleaved
|
||||
# with writes by another processes.
|
||||
sub open_for_append
|
||||
{
|
||||
my ($file) = @_;
|
||||
my $fh = gensym();
|
||||
|
||||
if (IS_WIN32PERL)
|
||||
{
|
||||
my $handle;
|
||||
if (!($handle = CreateFile(
|
||||
$file,
|
||||
FILE_APPEND_DATA(),
|
||||
FILE_SHARE_READ()|FILE_SHARE_WRITE()|FILE_SHARE_DELETE(),
|
||||
WIN32API_FILE_NULL,
|
||||
OPEN_ALWAYS(),# Create if doesn't exist.
|
||||
0,
|
||||
WIN32API_FILE_NULL,
|
||||
)))
|
||||
{
|
||||
return undef;
|
||||
}
|
||||
|
||||
if (!OsFHandleOpen($fh, $handle, 'wat'))
|
||||
{
|
||||
CloseHandle($handle);
|
||||
return undef;
|
||||
}
|
||||
return $fh;
|
||||
}
|
||||
|
||||
open($fh,">>",$file) or return undef;
|
||||
return $fh;
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -60,8 +60,6 @@ use My::Test;
|
|||
use My::Find;
|
||||
use My::Suite;
|
||||
|
||||
require "mtr_misc.pl";
|
||||
|
||||
# locate plugin suites, depending on whether it's a build tree or installed
|
||||
my @plugin_suitedirs;
|
||||
my $plugin_suitedir_regex;
|
||||
|
|
@ -1122,7 +1120,7 @@ sub get_tags_from_file($$) {
|
|||
$file_to_tags{$file}= $tags;
|
||||
$file_to_master_opts{$file}= $master_opts;
|
||||
$file_to_slave_opts{$file}= $slave_opts;
|
||||
$file_combinations{$file}= [ uniq(@combinations) ];
|
||||
$file_combinations{$file}= [ ::uniq(@combinations) ];
|
||||
$file_in_overlay{$file} = 1 if $in_overlay;
|
||||
return @{$tags};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
use strict;
|
||||
use Carp;
|
||||
use My::Platform;
|
||||
|
||||
sub mtr_fromfile ($);
|
||||
sub mtr_tofile ($@);
|
||||
|
|
@ -45,10 +46,10 @@ sub mtr_fromfile ($) {
|
|||
|
||||
sub mtr_tofile ($@) {
|
||||
my $file= shift;
|
||||
|
||||
open(FILE,">>",$file) or mtr_error("can't open file \"$file\": $!");
|
||||
print FILE join("", @_);
|
||||
close FILE;
|
||||
my $fh= open_for_append $file;
|
||||
mtr_error("can't open file \"$file\": $!") unless defined($fh);
|
||||
print $fh join("", @_);
|
||||
close $fh;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ use mtr_match;
|
|||
use My::Platform;
|
||||
use POSIX qw[ _exit ];
|
||||
use IO::Handle qw[ flush ];
|
||||
require "mtr_io.pl";
|
||||
use mtr_results;
|
||||
|
||||
my $tot_real_time= 0;
|
||||
|
|
@ -92,7 +91,7 @@ sub mtr_report_test_passed ($) {
|
|||
my $timer_str= "";
|
||||
if ( $timer and -f "$::opt_vardir/log/timer" )
|
||||
{
|
||||
$timer_str= mtr_fromfile("$::opt_vardir/log/timer");
|
||||
$timer_str= ::mtr_fromfile("$::opt_vardir/log/timer");
|
||||
$tinfo->{timer}= $timer_str;
|
||||
resfile_test_info('duration', $timer_str) if $::opt_resfile;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,11 +102,11 @@ use mtr_results;
|
|||
use IO::Socket::INET;
|
||||
use IO::Select;
|
||||
|
||||
require "lib/mtr_process.pl";
|
||||
require "lib/mtr_io.pl";
|
||||
require "lib/mtr_gcov.pl";
|
||||
require "lib/mtr_gprof.pl";
|
||||
require "lib/mtr_misc.pl";
|
||||
require "mtr_process.pl";
|
||||
require "mtr_io.pl";
|
||||
require "mtr_gcov.pl";
|
||||
require "mtr_gprof.pl";
|
||||
require "mtr_misc.pl";
|
||||
|
||||
$SIG{INT}= sub { mtr_error("Got ^C signal"); };
|
||||
$SIG{HUP}= sub { mtr_error("Hangup detected on controlling terminal"); };
|
||||
|
|
|
|||
|
|
@ -1535,17 +1535,17 @@ ALTER TABLE t1 ADD INDEX i2(b), ALGORITHM= DEFAULT;
|
|||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i3(b), ALGORITHM= COPY;
|
||||
affected rows: 2
|
||||
info: Records: 2 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i3`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i4(b), ALGORITHM= INPLACE;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i4`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i5(b), ALGORITHM= INVALID;
|
||||
ERROR HY000: Unknown ALGORITHM 'INVALID'
|
||||
ALTER TABLE m1 ENABLE KEYS;
|
||||
|
|
@ -1570,17 +1570,17 @@ ALTER TABLE t1 ADD INDEX i2(b), ALGORITHM= DEFAULT;
|
|||
affected rows: 2
|
||||
info: Records: 2 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i3(b), ALGORITHM= COPY;
|
||||
affected rows: 2
|
||||
info: Records: 2 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i3`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i4(b), ALGORITHM= INPLACE;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i4`. This is deprecated and will be disallowed in a future release.
|
||||
SET SESSION old_alter_table= 0;
|
||||
affected rows: 0
|
||||
ALTER TABLE t1 DROP INDEX i1, DROP INDEX i2, DROP INDEX i3, DROP INDEX i4;
|
||||
|
|
@ -1602,17 +1602,17 @@ ALTER TABLE t1 ADD INDEX i2(b), LOCK= NONE;
|
|||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i3(b), LOCK= SHARED;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i3`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i4(b), LOCK= EXCLUSIVE;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i4`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i5(b), LOCK= INVALID;
|
||||
ERROR HY000: Unknown LOCK type 'INVALID'
|
||||
ALTER TABLE m1 ENABLE KEYS, LOCK= DEFAULT;
|
||||
|
|
@ -1632,24 +1632,24 @@ ALTER TABLE t1 ADD INDEX i2(b), ALGORITHM= INPLACE, LOCK= SHARED;
|
|||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i3(b), ALGORITHM= INPLACE, LOCK= EXCLUSIVE;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i3`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i4(b), ALGORITHM= COPY, LOCK= NONE;
|
||||
ERROR 0A000: LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED.
|
||||
ALTER TABLE t1 ADD INDEX i5(b), ALGORITHM= COPY, LOCK= SHARED;
|
||||
affected rows: 2
|
||||
info: Records: 2 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i5' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i5`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE t1 ADD INDEX i6(b), ALGORITHM= COPY, LOCK= EXCLUSIVE;
|
||||
affected rows: 2
|
||||
info: Records: 2 Duplicates: 0 Warnings: 1
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i6' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i6`. This is deprecated and will be disallowed in a future release.
|
||||
ALTER TABLE m1 ENABLE KEYS, ALGORITHM= INPLACE, LOCK= NONE;
|
||||
ERROR 0A000: LOCK=NONE/SHARED is not supported for this operation. Try LOCK=EXCLUSIVE.
|
||||
ALTER TABLE m1 ENABLE KEYS, ALGORITHM= INPLACE, LOCK= SHARED;
|
||||
|
|
@ -2021,3 +2021,58 @@ ALTER TABLE t1 ADD PRIMARY KEY IF NOT EXISTS event_id (event_id,market_id);
|
|||
Warnings:
|
||||
Note 1061 Multiple primary key defined
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-11126 Crash while altering persistent virtual column
|
||||
#
|
||||
CREATE TABLE `tab1` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`field2` set('option1','option2','option3','option4') NOT NULL,
|
||||
`field3` set('option1','option2','option3','option4','option5') NOT NULL,
|
||||
`field4` set('option1','option2','option3','option4') NOT NULL,
|
||||
`field5` varchar(32) NOT NULL,
|
||||
`field6` varchar(32) NOT NULL,
|
||||
`field7` varchar(32) NOT NULL,
|
||||
`field8` varchar(32) NOT NULL,
|
||||
`field9` int(11) NOT NULL DEFAULT '1',
|
||||
`field10` varchar(16) NOT NULL,
|
||||
`field11` enum('option1','option2','option3') NOT NULL DEFAULT 'option1',
|
||||
`v_col` varchar(128) AS (IF(field11='option1',CONCAT_WS(":","field1",field2,field3,field4,field5,field6,field7,field8,field9,field10), CONCAT_WS(":","field1",field11,field2,field3,field4,field5,field6,field7,field8,field9,field10))) PERSISTENT,
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARSET=latin1;
|
||||
ALTER TABLE `tab1` CHANGE COLUMN v_col `v_col` varchar(128);
|
||||
SHOW CREATE TABLE `tab1`;
|
||||
Table Create Table
|
||||
tab1 CREATE TABLE `tab1` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`field2` set('option1','option2','option3','option4') NOT NULL,
|
||||
`field3` set('option1','option2','option3','option4','option5') NOT NULL,
|
||||
`field4` set('option1','option2','option3','option4') NOT NULL,
|
||||
`field5` varchar(32) NOT NULL,
|
||||
`field6` varchar(32) NOT NULL,
|
||||
`field7` varchar(32) NOT NULL,
|
||||
`field8` varchar(32) NOT NULL,
|
||||
`field9` int(11) NOT NULL DEFAULT '1',
|
||||
`field10` varchar(16) NOT NULL,
|
||||
`field11` enum('option1','option2','option3') NOT NULL DEFAULT 'option1',
|
||||
`v_col` varchar(128) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
ALTER TABLE `tab1` CHANGE COLUMN v_col `v_col` varchar(128) AS (IF(field11='option1',CONCAT_WS(":","field1",field2,field3,field4,field5,field6,field7,field8,field9,field10), CONCAT_WS(":","field1",field11,field2,field3,field4,field5,field6,field7,field8,field9,field10))) PERSISTENT;
|
||||
SHOW CREATE TABLE `tab1`;
|
||||
Table Create Table
|
||||
tab1 CREATE TABLE `tab1` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`field2` set('option1','option2','option3','option4') NOT NULL,
|
||||
`field3` set('option1','option2','option3','option4','option5') NOT NULL,
|
||||
`field4` set('option1','option2','option3','option4') NOT NULL,
|
||||
`field5` varchar(32) NOT NULL,
|
||||
`field6` varchar(32) NOT NULL,
|
||||
`field7` varchar(32) NOT NULL,
|
||||
`field8` varchar(32) NOT NULL,
|
||||
`field9` int(11) NOT NULL DEFAULT '1',
|
||||
`field10` varchar(16) NOT NULL,
|
||||
`field11` enum('option1','option2','option3') NOT NULL DEFAULT 'option1',
|
||||
`v_col` varchar(128) AS (IF(field11='option1',CONCAT_WS(":","field1",field2,field3,field4,field5,field6,field7,field8,field9,field10), CONCAT_WS(":","field1",field11,field2,field3,field4,field5,field6,field7,field8,field9,field10))) PERSISTENT,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE `tab1`;
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@ drop table if exists t1,t2;
|
|||
drop view if exists v1;
|
||||
create table t1(n int not null, key(n), key(n), key(n), key(n));
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'n_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'n_3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'n_4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `n_2`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `n_3`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `n_4`. This is deprecated and will be disallowed in a future release.
|
||||
check table t1 extended;
|
||||
insert into t1 values (200000);
|
||||
Table Op Msg_type Msg_text
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ create table t1 (a int null);
|
|||
alter table t1 add constraint constraint_1 unique (a);
|
||||
alter table t1 add constraint unique key_1(a);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'key_1' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `key_1`. This is deprecated and will be disallowed in a future release.
|
||||
alter table t1 add constraint constraint_2 unique key_2(a);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'key_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `key_2`. This is deprecated and will be disallowed in a future release.
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ Acronis http://www.acronis.com Silver Sponsor of the MariaDB Foundation
|
|||
Auttomattic https://automattic.com Bronze Sponsor of the MariaDB Foundation
|
||||
Verkkokauppa.com https://virtuozzo.com Bronze Sponsor of the MariaDB Foundation
|
||||
Virtuozzo https://virtuozzo.com/ Bronze Sponsor of the MariaDB Foundation
|
||||
Tencent Game DBA http://tencentdba.com/about/ Bronze Sponsor of the MariaDB Foundation
|
||||
Google USA Sponsoring encryption, parallel replication and GTID
|
||||
Facebook USA Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc
|
||||
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
||||
|
|
|
|||
|
|
@ -181,36 +181,36 @@ Warnings:
|
|||
Note 1051 Unknown table 'test.t2'
|
||||
create table t1 (a int not null, b int, primary key(a), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b), key (b));
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'b_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_5' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_6' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_7' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_8' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_9' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_10' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_11' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_12' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_13' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_14' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_15' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_16' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_17' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_18' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_19' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_20' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_21' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_22' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_23' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_24' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_25' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_26' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_27' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_28' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_29' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_30' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_31' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_2`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_3`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_4`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_5`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_6`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_7`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_8`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_9`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_10`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_11`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_12`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_13`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_14`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_15`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_16`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_17`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_18`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_19`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_20`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_21`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_22`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_23`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_24`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_25`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_26`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_27`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_28`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_29`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_30`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_31`. This is deprecated and will be disallowed in a future release.
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
@ -1045,69 +1045,69 @@ key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
|
|||
c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16)
|
||||
);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'a002_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a003_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a004_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a005_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a006_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a007_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a008_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a009_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a010_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a011_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a012_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a013_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a014_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a015_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a016_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a017_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a018_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a019_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a020_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a021_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a022_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a023_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a024_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a025_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a026_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a027_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a028_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a029_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a030_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a031_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a032_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a033_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a034_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a035_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a036_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a037_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a038_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a039_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a040_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a041_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a042_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a043_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a044_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a045_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a046_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a047_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a048_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a049_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a050_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a051_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a052_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a053_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a054_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a055_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a056_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a057_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a058_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a059_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a060_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a061_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a062_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a063_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a064_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a002_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a003_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a004_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a005_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a006_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a007_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a008_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a009_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a010_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a011_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a012_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a013_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a014_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a015_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a016_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a017_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a018_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a019_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a020_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a021_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a022_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a023_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a024_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a025_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a026_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a027_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a028_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a029_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a030_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a031_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a032_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a033_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a034_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a035_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a036_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a037_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a038_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a039_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a040_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a041_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a042_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a043_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a044_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a045_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a046_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a047_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a048_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a049_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a050_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a051_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a052_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a053_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a054_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a055_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a056_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a057_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a058_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a059_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a060_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a061_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a062_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a063_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a064_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
@ -1410,69 +1410,69 @@ c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16),
|
|||
add key a064_long_123456789_123456789_123456789_123456789_123456789_1234 (
|
||||
c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'a002_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a003_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a004_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a005_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a006_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a007_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a008_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a009_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a010_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a011_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a012_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a013_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a014_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a015_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a016_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a017_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a018_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a019_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a020_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a021_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a022_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a023_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a024_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a025_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a026_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a027_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a028_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a029_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a030_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a031_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a032_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a033_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a034_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a035_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a036_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a037_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a038_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a039_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a040_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a041_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a042_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a043_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a044_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a045_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a046_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a047_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a048_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a049_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a050_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a051_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a052_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a053_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a054_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a055_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a056_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a057_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a058_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a059_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a060_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a061_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a062_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a063_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a064_long_123456789_123456789_123456789_123456789_123456789_1234' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a002_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a003_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a004_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a005_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a006_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a007_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a008_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a009_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a010_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a011_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a012_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a013_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a014_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a015_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a016_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a017_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a018_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a019_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a020_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a021_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a022_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a023_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a024_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a025_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a026_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a027_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a028_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a029_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a030_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a031_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a032_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a033_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a034_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a035_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a036_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a037_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a038_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a039_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a040_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a041_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a042_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a043_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a044_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a045_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a046_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a047_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a048_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a049_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a050_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a051_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a052_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a053_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a054_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a055_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a056_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a057_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a058_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a059_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a060_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a061_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a062_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a063_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a064_long_123456789_123456789_123456789_123456789_123456789_1234`. This is deprecated and will be disallowed in a future release.
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
@ -2681,3 +2681,7 @@ drop function f1;
|
|||
End of 5.5 tests
|
||||
create table t1;
|
||||
ERROR 42000: A table must have at least 1 column
|
||||
create table t1 (i int, j int, key(i), key(i)) as select 1 as i, 2 as j;
|
||||
Warnings:
|
||||
Note 1831 Duplicate index `i_2`. This is deprecated and will be disallowed in a future release.
|
||||
drop table t1;
|
||||
|
|
|
|||
|
|
@ -442,3 +442,14 @@ KILL QUERY con_id;
|
|||
ERROR 70100: Query execution was interrupted
|
||||
drop table t1;
|
||||
DROP TABLE t2;
|
||||
#
|
||||
# MDEV-10824 - Crash in CREATE OR REPLACE TABLE t1 AS SELECT spfunc()
|
||||
#
|
||||
CREATE TABLE t1(a INT);
|
||||
CREATE FUNCTION f1() RETURNS VARCHAR(16383) RETURN 'test';
|
||||
CREATE OR REPLACE TABLE t1 AS SELECT f1();
|
||||
LOCK TABLE t1 WRITE;
|
||||
CREATE OR REPLACE TABLE t1 AS SELECT f1();
|
||||
UNLOCK TABLES;
|
||||
DROP FUNCTION f1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
|||
|
|
@ -1658,6 +1658,9 @@ CHAR_LENGTH(TRIM(BOTH 0x61 FROM _utf32 0x00000061))
|
|||
SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _utf32 0x00000061));
|
||||
CHAR_LENGTH(TRIM(BOTH 0x00 FROM _utf32 0x00000061))
|
||||
1
|
||||
select hex(lower(cast(0xffff0000 as char character set utf32))) as c;
|
||||
c
|
||||
FFFF0000
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -6147,6 +6147,32 @@ SELECT length(data) AS len FROM (SELECT REPEAT('ä', 65537) AS data) AS sub;
|
|||
len
|
||||
131074
|
||||
#
|
||||
# MDEV-10717 Assertion `!null_value' failed in virtual bool Item::send(Protocol*, String*)
|
||||
#
|
||||
CREATE TABLE t1 (i INT, KEY(i));
|
||||
INSERT INTO t1 VALUES (20081205),(20050327);
|
||||
SELECT HEX(i), HEX(CHAR(i USING utf8)) FROM t1;
|
||||
HEX(i) HEX(CHAR(i USING utf8))
|
||||
131F197 0131
|
||||
1326A35 01326A35
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'F197'
|
||||
SET sql_mode='STRICT_ALL_TABLES';
|
||||
SELECT HEX(i), HEX(CHAR(i USING utf8)) FROM t1;
|
||||
HEX(i) HEX(CHAR(i USING utf8))
|
||||
131F197 NULL
|
||||
1326A35 01326A35
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'F197'
|
||||
SELECT CHAR(i USING utf8) FROM t1;
|
||||
CHAR(i USING utf8)
|
||||
###
|
||||
###
|
||||
Warnings:
|
||||
### 1300 Invalid utf8 character string: 'F197'
|
||||
SET sql_mode=DEFAULT;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
|
|
|||
|
|
@ -3356,5 +3356,28 @@ DFFFFFDFFFFF9CFFFF9DFFFF9EFFFF
|
|||
# End of 5.6 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-11343 LOAD DATA INFILE fails to load data with an escape character followed by a multi-byte character
|
||||
#
|
||||
CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4);
|
||||
LOAD DATA INFILE '../../std_data/loaddata/mdev-11343.txt' INTO TABLE t1 CHARACTER SET utf8mb4;
|
||||
SELECT HEX(a) FROM t1;
|
||||
HEX(a)
|
||||
C3A4
|
||||
C3A478
|
||||
78C3A4
|
||||
78C3A478
|
||||
EA99A0
|
||||
EA99A078
|
||||
78EA99A0
|
||||
78EA99A078
|
||||
F09F988E
|
||||
F09F988E78
|
||||
78F09F988E
|
||||
78F09F988E78
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -220,3 +220,44 @@ NULL
|
|||
10
|
||||
drop table t1, t2;
|
||||
End of 5.0 tests.
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-11265 Access defied when CREATE VIIEW v1 AS SELECT DEFAULT(column) FROM t1
|
||||
#
|
||||
CREATE TABLE t1 (a INT DEFAULT 10);
|
||||
INSERT INTO t1 VALUES (11);
|
||||
CREATE VIEW v1 AS SELECT a AS a FROM t1;
|
||||
CREATE VIEW v2 AS SELECT DEFAULT(a) AS a FROM t1;
|
||||
CREATE VIEW v3 AS SELECT VALUES(a) AS a FROM t1;
|
||||
SELECT * FROM v1;
|
||||
a
|
||||
11
|
||||
SELECT * FROM v2;
|
||||
a
|
||||
10
|
||||
SELECT * FROM v3;
|
||||
a
|
||||
NULL
|
||||
UPDATE v2 SET a=123;
|
||||
ERROR HY000: Column 'a' is not updatable
|
||||
UPDATE v3 SET a=123;
|
||||
ERROR HY000: Column 'a' is not updatable
|
||||
DROP VIEW v3;
|
||||
DROP VIEW v2;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-10780 Server crashes in in create_tmp_table
|
||||
#
|
||||
CREATE TABLE t1 (pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ();
|
||||
INSERT INTO t1 VALUES ();
|
||||
SELECT DISTINCT DEFAULT (pk) FROM t1 GROUP BY RAND() WITH ROLLUP;
|
||||
DEFAULT (pk)
|
||||
0
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -950,3 +950,68 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||
DROP TABLES t1,t2;
|
||||
set optimizer_switch=@save_derived_optimizer_switch;
|
||||
#
|
||||
# MDEV-10663: Use of Inline table columns in HAVING clause
|
||||
# throws 1463 Error
|
||||
#
|
||||
set @save_sql_mode = @@sql_mode;
|
||||
set sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
|
||||
CREATE TABLE `example1463` (
|
||||
`Customer` varchar(255) NOT NULL,
|
||||
`DeliveryStatus` varchar(255) NOT NULL,
|
||||
`OrderSize` int(11) NOT NULL
|
||||
);
|
||||
INSERT INTO example1463 VALUES ('Charlie', 'Success', 100);
|
||||
INSERT INTO example1463 VALUES ('David', 'Success', 110);
|
||||
INSERT INTO example1463 VALUES ('Charlie', 'Failed', 200);
|
||||
INSERT INTO example1463 VALUES ('David', 'Success', 100);
|
||||
INSERT INTO example1463 VALUES ('David', 'Unknown', 100);
|
||||
INSERT INTO example1463 VALUES ('Edward', 'Success', 150);
|
||||
INSERT INTO example1463 VALUES ('Edward', 'Pending', 150);
|
||||
SELECT Customer, Success, SUM(OrderSize)
|
||||
FROM (SELECT Customer,
|
||||
CASE WHEN DeliveryStatus='Success' THEN 'Yes' ELSE 'No' END AS Success,
|
||||
OrderSize
|
||||
FROM example1463) as subQ
|
||||
GROUP BY Success, Customer
|
||||
WITH ROLLUP;
|
||||
Customer Success SUM(OrderSize)
|
||||
Charlie No 200
|
||||
David No 100
|
||||
Edward No 150
|
||||
NULL No 450
|
||||
Charlie Yes 100
|
||||
David Yes 210
|
||||
Edward Yes 150
|
||||
NULL Yes 460
|
||||
NULL NULL 910
|
||||
SELECT Customer, Success, SUM(OrderSize)
|
||||
FROM (SELECT Customer,
|
||||
CASE WHEN DeliveryStatus='Success' THEN 'Yes' ELSE 'No' END AS Success,
|
||||
OrderSize
|
||||
FROM example1463) as subQ
|
||||
GROUP BY Success, Customer;
|
||||
Customer Success SUM(OrderSize)
|
||||
Charlie No 200
|
||||
David No 100
|
||||
Edward No 150
|
||||
Charlie Yes 100
|
||||
David Yes 210
|
||||
Edward Yes 150
|
||||
SELECT Customer, Success, SUM(OrderSize)
|
||||
FROM (SELECT Customer,
|
||||
CASE WHEN DeliveryStatus='Success' THEN 'Yes' ELSE 'No' END AS Success,
|
||||
OrderSize
|
||||
FROM example1463) as subQ
|
||||
GROUP BY Success, Customer
|
||||
HAVING Success IS NOT NULL;
|
||||
Customer Success SUM(OrderSize)
|
||||
Charlie No 200
|
||||
David No 100
|
||||
Edward No 150
|
||||
Charlie Yes 100
|
||||
David Yes 210
|
||||
Edward Yes 150
|
||||
DROP TABLE example1463;
|
||||
set sql_mode= @save_sql_mode;
|
||||
# end of 5.5
|
||||
|
|
|
|||
|
|
@ -2506,5 +2506,90 @@ DROP TABLE t1,t2;
|
|||
#
|
||||
# end of 5.3 tests
|
||||
#
|
||||
#
|
||||
# Bug mdev-11161: The second execution of prepared statement
|
||||
# does not use generated key for materialized
|
||||
# derived table / view
|
||||
# (actually this is a 5.3 bug.)
|
||||
#
|
||||
create table t1 (
|
||||
mat_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
matintnum CHAR(6) NOT NULL,
|
||||
test MEDIUMINT UNSIGNED NULL
|
||||
);
|
||||
create table t2 (
|
||||
mat_id MEDIUMINT UNSIGNED NOT NULL,
|
||||
pla_id MEDIUMINT UNSIGNED NOT NULL
|
||||
);
|
||||
insert into t1 values
|
||||
(NULL, 'a', 1), (NULL, 'b', 2), (NULL, 'c', 3), (NULL, 'd', 4),
|
||||
(NULL, 'e', 5), (NULL, 'f', 6), (NULL, 'g', 7), (NULL, 'h', 8),
|
||||
(NULL, 'i', 9);
|
||||
insert into t2 values
|
||||
(1, 100), (1, 101), (1, 102), (2, 100), (2, 103), (2, 104),
|
||||
(3, 101), (3, 102), (3, 105);
|
||||
explain
|
||||
SELECT STRAIGHT_JOIN d.pla_id, m2.mat_id
|
||||
FROM t1 m2
|
||||
INNER JOIN
|
||||
(SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum
|
||||
FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id
|
||||
GROUP BY mp.pla_id) d
|
||||
ON d.matintnum=m2.matintnum;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY m2 ALL NULL NULL NULL NULL 9
|
||||
1 PRIMARY <derived2> ref key0 key0 7 test.m2.matintnum 2
|
||||
2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
|
||||
2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
|
||||
prepare stmt1 from
|
||||
"SELECT STRAIGHT_JOIN d.pla_id, m2.mat_id
|
||||
FROM t1 m2
|
||||
INNER JOIN
|
||||
(SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum
|
||||
FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id
|
||||
GROUP BY mp.pla_id) d
|
||||
ON d.matintnum=m2.matintnum";
|
||||
flush status;
|
||||
execute stmt1;
|
||||
pla_id mat_id
|
||||
102 1
|
||||
101 1
|
||||
100 1
|
||||
104 2
|
||||
103 2
|
||||
105 3
|
||||
show status like '%Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 21
|
||||
Handler_read_last 0
|
||||
Handler_read_next 6
|
||||
Handler_read_prev 0
|
||||
Handler_read_retry 0
|
||||
Handler_read_rnd 6
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 27
|
||||
flush status;
|
||||
execute stmt1;
|
||||
pla_id mat_id
|
||||
102 1
|
||||
101 1
|
||||
100 1
|
||||
104 2
|
||||
103 2
|
||||
105 3
|
||||
show status like '%Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 21
|
||||
Handler_read_last 0
|
||||
Handler_read_next 6
|
||||
Handler_read_prev 0
|
||||
Handler_read_retry 0
|
||||
Handler_read_rnd 6
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 27
|
||||
deallocate prepare stmt1;
|
||||
drop table t1,t2;
|
||||
set optimizer_switch=@exit_optimizer_switch;
|
||||
set join_cache_level=@exit_join_cache_level;
|
||||
|
|
|
|||
|
|
@ -209,3 +209,9 @@ INSERT INTO table1 VALUES (1);
|
|||
ERROR 42S02: Unknown table 't.notable'
|
||||
DROP TABLE table1,table2;
|
||||
# End BUG#34750
|
||||
#
|
||||
# MDEV-11105 Table named 'db' has weird side effect.
|
||||
#
|
||||
CREATE DATABASE mysqltest;
|
||||
CREATE TABLE mysqltest.db(id INT);
|
||||
DROP DATABASE mysqltest;
|
||||
|
|
|
|||
|
|
@ -99,45 +99,45 @@ KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
|||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b),
|
||||
KEY(b),KEY(b),KEY(b),KEY(b),KEY(b));
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'b_2' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_3' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_4' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_5' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_6' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_7' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_8' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_9' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_10' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_11' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_12' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_13' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_14' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_15' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_16' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_17' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_18' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_19' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_20' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_21' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_22' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_23' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_24' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_25' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_26' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_27' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_28' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_29' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_30' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_31' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_32' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_33' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_34' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_35' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_36' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_37' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_38' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_39' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'b_40' defined on the table 'test.t2'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_2`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_3`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_4`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_5`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_6`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_7`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_8`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_9`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_10`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_11`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_12`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_13`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_14`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_15`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_16`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_17`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_18`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_19`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_20`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_21`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_22`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_23`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_24`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_25`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_26`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_27`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_28`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_29`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_30`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_31`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_32`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_33`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_34`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_35`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_36`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_37`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_38`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_39`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `b_40`. This is deprecated and will be disallowed in a future release.
|
||||
INSERT INTO t2 VALUES (),(),();
|
||||
EXPLAIN SELECT 1 FROM
|
||||
(SELECT 1 FROM t2,t1 WHERE b < c GROUP BY 1 LIMIT 1) AS d2;
|
||||
|
|
|
|||
7
mysql-test/r/fulltext_charsets.result
Normal file
7
mysql-test/r/fulltext_charsets.result
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
set names utf8mb4;
|
||||
create table t1 (a int, b text, fulltext (b)) charset=utf8mb4 collate=utf8mb4_unicode_ci;
|
||||
insert t1 values (1000, 'C͓̙̯͔̩ͅͅi̩̘̜̲a̯̲̬̳̜̖̤o͕͓̜͓̺̖̗,̠̬͚ ̺T͇̲h͈̱e ̬̜D̖o̦̖͔̗͖̩̘c̣̼t̝͉̫̮̗o͉̫̭r̙͎̗.͓̪̥');
|
||||
select a from t1 where match(b) against ('ciao' in boolean mode);
|
||||
a
|
||||
1000
|
||||
drop table t1;
|
||||
|
|
@ -2778,5 +2778,73 @@ Warning 1292 Truncated incorrect time value: '-1441:00:00'
|
|||
Warning 1292 Truncated incorrect time value: '-1441:00:00'
|
||||
Warning 1292 Truncated incorrect time value: '-1441:00:00'
|
||||
#
|
||||
# MDEV-10787 Assertion `ltime->neg == 0' failed in void date_to_datetime(MYSQL_TIME*)
|
||||
#
|
||||
CREATE TABLE t1 (d DATE);
|
||||
INSERT INTO t1 VALUES ('2005-07-20'),('2012-12-21');
|
||||
SELECT REPLACE( ADDDATE( d, INTERVAL 0.6732771076944444 HOUR_SECOND ), '2', 'x' ) FROM t1;
|
||||
REPLACE( ADDDATE( d, INTERVAL 0.6732771076944444 HOUR_SECOND ), '2', 'x' )
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
SELECT REPLACE( ADDDATE( d, INTERVAL '0.6732771076944444' HOUR_SECOND ), '2', 'x' ) FROM t1;
|
||||
REPLACE( ADDDATE( d, INTERVAL '0.6732771076944444' HOUR_SECOND ), '2', 'x' )
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
SELECT CAST(ADDDATE( d, INTERVAL 6732771076944444 SECOND) AS CHAR) FROM t1;
|
||||
CAST(ADDDATE( d, INTERVAL 6732771076944444 SECOND) AS CHAR)
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
SELECT CAST(ADDDATE( d, INTERVAL '67327710769444:44' HOUR_SECOND) AS CHAR) FROM t1;
|
||||
CAST(ADDDATE( d, INTERVAL '67327710769444:44' HOUR_SECOND) AS CHAR)
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
SELECT CAST(ADDDATE( d, INTERVAL '673277107694:44:44' HOUR_SECOND) AS CHAR) FROM t1;
|
||||
CAST(ADDDATE( d, INTERVAL '673277107694:44:44' HOUR_SECOND) AS CHAR)
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
DROP TABLE t1;
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '3652423:23:59:59' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '3652423:23:59:59' DAY_SECOND)
|
||||
9999-12-31 23:59:59
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:87658175:59:59' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '0:87658175:59:59' DAY_SECOND)
|
||||
9999-12-31 23:59:59
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:0:5259490559:59' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '0:0:5259490559:59' DAY_SECOND)
|
||||
9999-12-31 23:59:59
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:0:0:315569433599' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '0:0:0:315569433599' DAY_SECOND)
|
||||
9999-12-31 23:59:59
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '3652423:0:0:315569433559' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '3652423:0:0:315569433559' DAY_SECOND)
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:87658175:0:315569433559' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '0:87658175:0:315569433559' DAY_SECOND)
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
SELECT ADDDATE(DATE'0000-01-01', INTERVAL '0:0:5259490559:315569433599' DAY_SECOND);
|
||||
ADDDATE(DATE'0000-01-01', INTERVAL '0:0:5259490559:315569433599' DAY_SECOND)
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1441 Datetime function: datetime field overflow
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -2518,6 +2518,20 @@ MAX(i) c
|
|||
7 foo
|
||||
drop table t1,t2;
|
||||
#
|
||||
# ONLY_FULL_GROUP_BY references
|
||||
#
|
||||
set @save_sql_mode = @@sql_mode;
|
||||
set sql_mode='ONLY_FULL_GROUP_BY';
|
||||
create table t1 (a int, b int);
|
||||
select a+b as x from t1 group by x having x > 1;
|
||||
x
|
||||
select a as x from t1 group by x having x > 1;
|
||||
x
|
||||
select a from t1 group by a having a > 1;
|
||||
a
|
||||
drop table t1;
|
||||
set sql_mode= @save_sql_mode;
|
||||
#
|
||||
# Bug #58782
|
||||
# Missing rows with SELECT .. WHERE .. IN subquery
|
||||
# with full GROUP BY and no aggr
|
||||
|
|
|
|||
|
|
@ -123,4 +123,14 @@ id xtext optionen
|
|||
2 number 22,25
|
||||
1 select Kabel mit Stecker 5-polig,Kabel ohne Stecker
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-11162: Assertion `num_records == m_idx_array.size()' failed in Filesort_buffer::alloc_sort_buffer(uint, uint)
|
||||
#
|
||||
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
|
||||
SELECT ( SELECT DISTINCT GROUP_CONCAT(SLEEP(0)) FROM t1 GROUP BY i );
|
||||
( SELECT DISTINCT GROUP_CONCAT(SLEEP(0)) FROM t1 GROUP BY i )
|
||||
NULL
|
||||
SELECT i FROM t1 order by i LIMIT 1;
|
||||
i
|
||||
DROP TABLE t1;
|
||||
# End of tests
|
||||
|
|
|
|||
|
|
@ -2562,7 +2562,7 @@ a MIN(b) MAX(b) AVG(b)
|
|||
DROP TABLE t1;
|
||||
create table t1 (a int, b int, key (a,b), key `index` (a,b)) engine=MyISAM;
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'index' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `index`. This is deprecated and will be disallowed in a future release.
|
||||
insert into t1 (a,b) values
|
||||
(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),
|
||||
(0,7),(0,8),(0,9),(0,10),(0,11),(0,12),(0,13),
|
||||
|
|
|
|||
|
|
@ -286,3 +286,19 @@ F 28 28
|
|||
F 29 29
|
||||
F 30 30
|
||||
DROP TABLE t0,t1,t2;
|
||||
#
|
||||
# MDEV-MariaDB daemon leaks memory with specific query
|
||||
#
|
||||
CREATE TABLE t1 (`voter_id` int(11) unsigned NOT NULL,
|
||||
`language_id` int(11) unsigned NOT NULL DEFAULT '1'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE t2 (`voter_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`serialized_c` mediumblob) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
insert into t2 values (1,repeat("a",1000)),(2,repeat("a",1000)),(3,repeat("b",1000)),(4,repeat("c",1000)),(4,repeat("b",1000));
|
||||
SELECT GROUP_CONCAT(t1.language_id SEPARATOR ',') AS `translation_resources`, `d`.`serialized_c` FROM t2 AS `d` LEFT JOIN t1 ON `d`.`voter_id` = t1.`voter_id` GROUP BY `d`.`voter_id` ORDER BY 10-d.voter_id+RAND()*0;
|
||||
translation_resources serialized_c
|
||||
NULL cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
|
||||
NULL bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
||||
NULL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
NULL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
drop table t1,t2;
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ index i2_1(key2, key2_1),
|
|||
index i2_2(key2, key2_1)
|
||||
);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2_2' defined on the table 'test.t4'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2_2`. This is deprecated and will be disallowed in a future release.
|
||||
insert into t4 select key1,key1,key1 div 10, key1 % 10, key1 % 10, key1 from t0;
|
||||
select * from t4 where key1a = 3 or key1b = 4;
|
||||
key1a key1b key2 key2_1 key2_2 key3
|
||||
|
|
|
|||
|
|
@ -478,10 +478,10 @@ create table t1 (a int null, primary key(a));
|
|||
alter table t1 add constraint constraint_1 unique (a);
|
||||
alter table t1 add constraint unique key_1(a);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'key_1' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `key_1`. This is deprecated and will be disallowed in a future release.
|
||||
alter table t1 add constraint constraint_2 unique key_2(a);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'key_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `key_2`. This is deprecated and will be disallowed in a future release.
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
@ -1004,19 +1004,19 @@ show grants;
|
|||
Grants for user3@localhost
|
||||
GRANT USAGE ON *.* TO 'user3'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.* TO 'user3'@'localhost'
|
||||
select * from information_schema.column_privileges where grantee like '%user%'
|
||||
select * from information_schema.column_privileges where grantee like '\'user%'
|
||||
order by grantee;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'user1'@'localhost' def mysqltest t1 f1 SELECT NO
|
||||
select * from information_schema.table_privileges where grantee like '%user%'
|
||||
select * from information_schema.table_privileges where grantee like '\'user%'
|
||||
order by grantee;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'user2'@'localhost' def mysqltest t2 SELECT NO
|
||||
select * from information_schema.schema_privileges where grantee like '%user%'
|
||||
select * from information_schema.schema_privileges where grantee like '\'user%'
|
||||
order by grantee;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'user3'@'localhost' def mysqltest SELECT NO
|
||||
select * from information_schema.user_privileges where grantee like '%user%'
|
||||
select * from information_schema.user_privileges where grantee like '\'user%'
|
||||
order by grantee;
|
||||
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'user1'@'localhost' def USAGE NO
|
||||
|
|
|
|||
|
|
@ -712,8 +712,8 @@ b INT, c INT, d DATE NOT NULL, e VARCHAR(1),
|
|||
KEY (c), KEY (d), KEY k2(b), KEY k3(b), KEY k4(b)
|
||||
);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'k3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'k4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `k3`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `k4`. This is deprecated and will be disallowed in a future release.
|
||||
INSERT INTO t1 (b,c,d,e) VALUES
|
||||
(6,5,'2006-05-25','y'),(1,5,'2008-01-23','t'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ SET DEBUG_SYNC= 'now SIGNAL continue3';
|
|||
# Connection default
|
||||
# Reaping ALTER TABLE ...
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2`. This is deprecated and will be disallowed in a future release.
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
DELETE FROM t1 WHERE a= 3;
|
||||
#
|
||||
|
|
@ -358,7 +358,7 @@ SET DEBUG_SYNC= 'now SIGNAL continue4';
|
|||
# Connection default
|
||||
# Reaping ALTER TABLE ...
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i4`. This is deprecated and will be disallowed in a future release.
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
DROP TABLE t1;
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
|
|
|
|||
|
|
@ -428,7 +428,7 @@ index i5 (c1, c2, c3, c4),
|
|||
primary key (c2, c3),
|
||||
index (c2, c4));
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i1' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i1`. This is deprecated and will be disallowed in a future release.
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
|
@ -448,17 +448,17 @@ t1 CREATE TABLE `t1` (
|
|||
alter table t1 drop index c1;
|
||||
alter table t1 add index (c1);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'c1' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `c1`. This is deprecated and will be disallowed in a future release.
|
||||
alter table t1 add index (c1);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'c1_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `c1_2`. This is deprecated and will be disallowed in a future release.
|
||||
alter table t1 drop index i3;
|
||||
alter table t1 add index i3 (c3);
|
||||
alter table t1 drop index i2, drop index i4;
|
||||
alter table t1 add index i2 (c2), add index i4 (c4);
|
||||
alter table t1 drop index i2, drop index i4, add index i6 (c2, c4);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i6' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i6`. This is deprecated and will be disallowed in a future release.
|
||||
alter table t1 add index i2 (c2), add index i4 (c4), drop index i6;
|
||||
alter table t1 drop index i2, drop index i4, add unique i4 (c4);
|
||||
alter table t1 add index i2 (c2), drop index i4, add index i4 (c4);
|
||||
|
|
|
|||
|
|
@ -552,7 +552,8 @@ CREATE DATABASE d2 CHARSET utf8;
|
|||
USE d2;
|
||||
CREATE TABLE t1 (val TEXT);
|
||||
LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1;
|
||||
ERROR HY000: Invalid utf8 character string: 'Ã"RT @niouzechun: \9058\221A'
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF5\x80\x81\xAE\xE7\xB9...' for column 'val' at row 1
|
||||
DROP TABLE d1.t1, d2.t1;
|
||||
DROP DATABASE d1;
|
||||
DROP DATABASE d2;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#
|
||||
# Bug#20198490 : LOWER_CASE_TABLE_NAMES=0 ON WINDOWS LEADS TO PROBLEMS
|
||||
#
|
||||
FOUND /\[ERROR\] The server option \'lower_case_table_names\' is configured to use case sensitive table names/ in my_restart.err
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ Tables_in_test (T1%)
|
|||
T1
|
||||
alter table t1 add index (A);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'A_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `A_2`. This is deprecated and will be disallowed in a future release.
|
||||
show tables like 't1%';
|
||||
Tables_in_test (t1%)
|
||||
t1
|
||||
|
|
|
|||
|
|
@ -3832,6 +3832,23 @@ test.m1 repair error Corrupt
|
|||
# Clean-up.
|
||||
drop tables m1, t1, t4;
|
||||
drop view t3;
|
||||
#
|
||||
# MDEV-10424 - Assertion `ticket == __null' failed in
|
||||
# MDL_request::set_type
|
||||
#
|
||||
CREATE TABLE t1 (f1 INT) ENGINE=MyISAM;
|
||||
CREATE TABLE tmerge (f1 INT) ENGINE=MERGE UNION=(t1);
|
||||
PREPARE stmt FROM "ANALYZE TABLE tmerge, t1";
|
||||
EXECUTE stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.tmerge analyze note The storage engine for the table doesn't support analyze
|
||||
test.t1 analyze status Table is already up to date
|
||||
EXECUTE stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.tmerge analyze note The storage engine for the table doesn't support analyze
|
||||
test.t1 analyze status Table is already up to date
|
||||
DEALLOCATE PREPARE stmt;
|
||||
DROP TABLE t1, tmerge;
|
||||
End of 5.5 tests
|
||||
#
|
||||
# Additional coverage for refactoring which is made as part
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ drop table t1;
|
|||
CREATE TABLE t1 (a int not null, b int not null,c int not null,
|
||||
key(a),primary key(a,b), unique(c),key(a),unique(b)) ENGINE = MyISAM;
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'a_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a_2`. This is deprecated and will be disallowed in a future release.
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A # NULL NULL BTREE
|
||||
|
|
@ -1550,7 +1550,7 @@ alter table t1 add unique(v);
|
|||
ERROR 23000: Duplicate entry '{ ' for key 'v_2'
|
||||
alter table t1 add key(v);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'v_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `v_2`. This is deprecated and will be disallowed in a future release.
|
||||
select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
|
||||
qq
|
||||
*a*a*a*
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ alter table t1 add unique(v);
|
|||
ERROR 23000: Duplicate entry '{ ' for key 'v_2'
|
||||
alter table t1 add key(v);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'v_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `v_2`. This is deprecated and will be disallowed in a future release.
|
||||
select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
|
||||
qq
|
||||
*a*a*a*
|
||||
|
|
|
|||
|
|
@ -1243,7 +1243,7 @@ alter table t1 add unique(v);
|
|||
ERROR 23000: Duplicate entry '{ ' for key 'v_2'
|
||||
alter table t1 add key(v);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'v_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `v_2`. This is deprecated and will be disallowed in a future release.
|
||||
select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
|
||||
qq
|
||||
*a*a*a*
|
||||
|
|
@ -2442,8 +2442,8 @@ SET myisam_repair_threads=2;
|
|||
SET myisam_sort_buffer_size=4096;
|
||||
CREATE TABLE t1(a CHAR(255), KEY(a), KEY(a), KEY(a));
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'a_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'a_3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a_2`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a_3`. This is deprecated and will be disallowed in a future release.
|
||||
INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(0),(1),(2),(3);
|
||||
REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
|
|
|
|||
|
|
@ -716,8 +716,8 @@ b INT, c INT, d DATE NOT NULL, e VARCHAR(1),
|
|||
KEY (c), KEY (d), KEY k2(b), KEY k3(b), KEY k4(b)
|
||||
);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'k3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index 'k4' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `k3`. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `k4`. This is deprecated and will be disallowed in a future release.
|
||||
INSERT INTO t1 (b,c,d,e) VALUES
|
||||
(6,5,'2006-05-25','y'),(1,5,'2008-01-23','t'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
|
|
|
|||
|
|
@ -512,6 +512,14 @@ DROP DATABASE connected_db;
|
|||
create database `aa``bb````cc`;
|
||||
DATABASE()
|
||||
aa`bb``cc
|
||||
DATABASE()
|
||||
test
|
||||
DATABASE()
|
||||
aa`bb``cc
|
||||
DATABASE()
|
||||
test
|
||||
DATABASE()
|
||||
aa`bb``cc
|
||||
drop database `aa``bb````cc`;
|
||||
a
|
||||
>>\ndelimiter\n<<
|
||||
|
|
|
|||
|
|
@ -3,3 +3,9 @@ a
|
|||
1
|
||||
|
||||
End of tests
|
||||
1
|
||||
1
|
||||
2
|
||||
2
|
||||
X
|
||||
3
|
||||
|
|
|
|||
126
mysql-test/r/mysqldump-nl.result
Normal file
126
mysql-test/r/mysqldump-nl.result
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
create database `mysqltest1
|
||||
1tsetlqsym`;
|
||||
use `mysqltest1
|
||||
1tsetlqsym`;
|
||||
create table `t1
|
||||
1t` (`foobar
|
||||
raboof` int);
|
||||
create view `v1
|
||||
1v` as select * from `t1
|
||||
1t`;
|
||||
create procedure sp() select * from `v1
|
||||
1v`;
|
||||
flush tables;
|
||||
use test;
|
||||
|
||||
--
|
||||
-- Current Database: `mysqltest1
|
||||
-- 1tsetlqsym`
|
||||
--
|
||||
|
||||
/*!40000 DROP DATABASE IF EXISTS `mysqltest1
|
||||
1tsetlqsym`*/;
|
||||
|
||||
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysqltest1
|
||||
1tsetlqsym` /*!40100 DEFAULT CHARACTER SET latin1 */;
|
||||
|
||||
USE `mysqltest1
|
||||
1tsetlqsym`;
|
||||
|
||||
--
|
||||
-- Table structure for table `t1
|
||||
-- 1t`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t1
|
||||
1t` (
|
||||
`foobar
|
||||
raboof` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `t1
|
||||
-- 1t`
|
||||
--
|
||||
|
||||
--
|
||||
-- Temporary table structure for view `v1
|
||||
-- 1v`
|
||||
--
|
||||
|
||||
SET @saved_cs_client = @@character_set_client;
|
||||
SET character_set_client = utf8;
|
||||
/*!50001 CREATE TABLE `v1
|
||||
1v` (
|
||||
`foobar
|
||||
raboof` tinyint NOT NULL
|
||||
) ENGINE=MyISAM */;
|
||||
SET character_set_client = @saved_cs_client;
|
||||
|
||||
--
|
||||
-- Dumping routines for database 'mysqltest1
|
||||
-- 1tsetlqsym'
|
||||
--
|
||||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||||
/*!50003 SET character_set_client = latin1 */ ;
|
||||
/*!50003 SET character_set_results = latin1 */ ;
|
||||
/*!50003 SET collation_connection = latin1_swedish_ci */ ;
|
||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||
/*!50003 SET sql_mode = '' */ ;
|
||||
DELIMITER ;;
|
||||
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp`()
|
||||
select * from `v1
|
||||
1v` ;;
|
||||
DELIMITER ;
|
||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||||
|
||||
--
|
||||
-- Current Database: `mysqltest1
|
||||
-- 1tsetlqsym`
|
||||
--
|
||||
|
||||
USE `mysqltest1
|
||||
1tsetlqsym`;
|
||||
|
||||
--
|
||||
-- Final view structure for view `v1
|
||||
-- 1v`
|
||||
--
|
||||
|
||||
/*!50001 DROP TABLE IF EXISTS `v1
|
||||
1v`*/;
|
||||
/*!50001 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!50001 SET @saved_cs_results = @@character_set_results */;
|
||||
/*!50001 SET @saved_col_connection = @@collation_connection */;
|
||||
/*!50001 SET character_set_client = latin1 */;
|
||||
/*!50001 SET character_set_results = latin1 */;
|
||||
/*!50001 SET collation_connection = latin1_swedish_ci */;
|
||||
/*!50001 CREATE ALGORITHM=UNDEFINED */
|
||||
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
|
||||
/*!50001 VIEW `v1
|
||||
1v` AS select `t1
|
||||
1t`.`foobar
|
||||
raboof` AS `foobar
|
||||
raboof` from `t1
|
||||
1t` */;
|
||||
/*!50001 SET character_set_client = @saved_cs_client */;
|
||||
/*!50001 SET character_set_results = @saved_cs_results */;
|
||||
/*!50001 SET collation_connection = @saved_col_connection */;
|
||||
show tables from `mysqltest1
|
||||
1tsetlqsym`;
|
||||
Tables_in_mysqltest1
|
||||
1tsetlqsym
|
||||
t1
|
||||
1t
|
||||
v1
|
||||
1v
|
||||
drop database `mysqltest1
|
||||
1tsetlqsym`;
|
||||
|
|
@ -5236,9 +5236,6 @@ SET @@global.log_output="TABLE";
|
|||
SET @@global.general_log='OFF';
|
||||
SET @@global.slow_query_log='OFF';
|
||||
DROP DATABASE mysql;
|
||||
Warnings:
|
||||
Error 1146 Table 'mysql.proc' doesn't exist
|
||||
Error 1146 Table 'mysql.event' doesn't exist
|
||||
SHOW CREATE TABLE mysql.general_log;
|
||||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
|
|
|
|||
|
|
@ -269,12 +269,6 @@ source database
|
|||
echo message echo message
|
||||
|
||||
mysqltest: At line 1: Missing argument in exec
|
||||
1
|
||||
1
|
||||
2
|
||||
2
|
||||
X
|
||||
3
|
||||
MySQL
|
||||
"MySQL"
|
||||
MySQL: The
|
||||
|
|
|
|||
|
|
@ -2154,3 +2154,4 @@ Privat (Private Nutzung) Mobilfunk
|
|||
Warnings:
|
||||
Warning 1052 Column 'kundentyp' in group statement is ambiguous
|
||||
drop table t1;
|
||||
FOUND /\[ERROR\] Create named pipe failed/ in second-mysqld.err
|
||||
|
|
|
|||
|
|
@ -663,3 +663,12 @@ select 1<<!0, 1 << !0;
|
|||
select 0<!0, 0 < ! 0;
|
||||
0<!0 0 < ! 0
|
||||
1 1
|
||||
#
|
||||
# MDEV-11171 Assertion `m_cpp_buf <= ptr && ptr <= m_cpp_buf + m_buf_length' failed in Lex_input_stream::body_utf8_append(const char*, const char*)
|
||||
#
|
||||
CREATE TABLE t1 (id INT);
|
||||
CREATE TRIGGER tr AFTER DELETE ON t1 FOR EACH ROW SET @a = 1\;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\' at line 1
|
||||
PREPARE stmt FROM 'CREATE TRIGGER tr AFTER DELETE ON t1 FOR EACH ROW SET @a = 1\\';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\' at line 1
|
||||
DROP TABLE t1;
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ create index i on t1 (a);
|
|||
ERROR 42000: Duplicate key name 'i'
|
||||
create index i2 on t1 (a);
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'i2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `i2`. This is deprecated and will be disallowed in a future release.
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a INT, FOREIGN KEY (a) REFERENCES t0 (a))
|
||||
ENGINE=MyISAM
|
||||
|
|
|
|||
|
|
@ -609,7 +609,7 @@ c INT,
|
|||
PRIMARY KEY (c,a), KEY (a),KEY (a)
|
||||
) ENGINE=INNODB PARTITION BY KEY () PARTITIONS 2;
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'a_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `a_2`. This is deprecated and will be disallowed in a future release.
|
||||
INSERT INTO t1 VALUES (1,5,1),(2,4,1),(3,3,1),(4,2,1),(5,1,1);
|
||||
UPDATE t1 SET b = 0, c=1 WHERE a <=>0;
|
||||
SELECT * FROM t1;
|
||||
|
|
|
|||
|
|
@ -4076,4 +4076,35 @@ id value
|
|||
deallocate prepare stmt;
|
||||
SET SESSION sql_mode = @save_sql_mode;
|
||||
DROP TABLE t1,t2;
|
||||
# End of 10.0 tests
|
||||
#
|
||||
# MDEV-8833: Crash of server on prepared statement with
|
||||
# conversion to semi-join
|
||||
#
|
||||
CREATE TABLE t1 (column1 INT);
|
||||
INSERT INTO t1 VALUES (3),(9);
|
||||
CREATE TABLE t2 (column2 INT);
|
||||
INSERT INTO t2 VALUES (1),(4);
|
||||
CREATE TABLE t3 (column3 INT);
|
||||
INSERT INTO t3 VALUES (6),(8);
|
||||
CREATE TABLE t4 (column4 INT);
|
||||
INSERT INTO t4 VALUES (2),(5);
|
||||
PREPARE stmt FROM "SELECT ( SELECT MAX( table1.column1 ) AS field1
|
||||
FROM t1 AS table1
|
||||
WHERE table3.column3 IN ( SELECT table2.column2 AS field2 FROM t2 AS table2 )
|
||||
) AS sq
|
||||
FROM t3 AS table3, t4 AS table4";
|
||||
EXECUTE stmt;
|
||||
sq
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
EXECUTE stmt;
|
||||
sq
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
deallocate prepare stmt;
|
||||
drop table t1,t2,t3,t4;
|
||||
# End of 5.5 tests
|
||||
|
|
|
|||
|
|
@ -1446,3 +1446,95 @@ a b i
|
|||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
DROP TABLE t1,t2;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# Bug mdev-11096: range condition over column without statistical data
|
||||
#
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=3;
|
||||
create table t1(col1 char(32));
|
||||
insert into t1 values ('a'),('b'),('c'),('d'), ('e'),('f'),('g'),('h');
|
||||
analyze table t1 persistent for columns () indexes ();
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
explain extended
|
||||
select * from t1 where col1 > 'b' and col1 < 'e';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`col1` AS `col1` from `test`.`t1` where ((`test`.`t1`.`col1` > 'b') and (`test`.`t1`.`col1` < 'e'))
|
||||
select * from t1 where col1 > 'b' and col1 < 'e';
|
||||
col1
|
||||
c
|
||||
d
|
||||
drop table t1;
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# Bug mdev-9628: unindexed blob column without min-max statistics
|
||||
# with optimizer_use_condition_selectivity=3
|
||||
#
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=3;
|
||||
create table t1(col1 char(32));
|
||||
insert into t1 values ('a'),('b'),('c'),('d'), ('e'),('f'),('g'),('h');
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
create table t2(col1 text);
|
||||
insert into t2 values ('a'),('b'),('c'),('d'), ('e'),('f'),('g'),('h');
|
||||
analyze table t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
select * from t1 where col1 > 'b' and col1 < 'd';
|
||||
col1
|
||||
c
|
||||
explain extended
|
||||
select * from t1 where col1 > 'b' and col1 < 'd';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 28.57 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`col1` AS `col1` from `test`.`t1` where ((`test`.`t1`.`col1` > 'b') and (`test`.`t1`.`col1` < 'd'))
|
||||
select * from t2 where col1 > 'b' and col1 < 'd';
|
||||
col1
|
||||
c
|
||||
explain extended
|
||||
select * from t2 where col1 > 'b' and col1 < 'd';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`col1` AS `col1` from `test`.`t2` where ((`test`.`t2`.`col1` > 'b') and (`test`.`t2`.`col1` < 'd'))
|
||||
select * from t2 where col1 < 'b' and col1 > 'd';
|
||||
col1
|
||||
explain extended
|
||||
select * from t2 where col1 < 'b' and col1 > 'd';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`col1` AS `col1` from `test`.`t2` where 0
|
||||
drop table t1,t2;
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# Bug mdev-11364: IS NULL over not nullable datetime column
|
||||
# in mergeable derived
|
||||
#
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
set HISTOGRAM_SIZE = 255;
|
||||
CREATE TABLE t1 (t TIME, d DATE NOT NULL);
|
||||
INSERT INTO t1 VALUES ('10:00:00', '0000-00-00'),('11:00:00','0000-00-00');
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
SELECT * FROM (SELECT t FROM t1 WHERE d IS NULL) sq;
|
||||
t
|
||||
10:00:00
|
||||
11:00:00
|
||||
DROP TABLE t1;
|
||||
set histogram_size=@save_histogram_size;
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
|
|
|
|||
|
|
@ -802,9 +802,9 @@ insert into t2 values (2),(3);
|
|||
explain extended
|
||||
select * from t1 where a in ( select b from t2 ) AND ( a > 3 );
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 1 0.00 Using where
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 0.00
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t1`.`a` > 3))
|
||||
select * from t1 where a in ( select b from t2 ) AND ( a > 3 );
|
||||
|
|
@ -1450,6 +1450,98 @@ a b i
|
|||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
DROP TABLE t1,t2;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# Bug mdev-11096: range condition over column without statistical data
|
||||
#
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=3;
|
||||
create table t1(col1 char(32));
|
||||
insert into t1 values ('a'),('b'),('c'),('d'), ('e'),('f'),('g'),('h');
|
||||
analyze table t1 persistent for columns () indexes ();
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
explain extended
|
||||
select * from t1 where col1 > 'b' and col1 < 'e';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`col1` AS `col1` from `test`.`t1` where ((`test`.`t1`.`col1` > 'b') and (`test`.`t1`.`col1` < 'e'))
|
||||
select * from t1 where col1 > 'b' and col1 < 'e';
|
||||
col1
|
||||
c
|
||||
d
|
||||
drop table t1;
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# Bug mdev-9628: unindexed blob column without min-max statistics
|
||||
# with optimizer_use_condition_selectivity=3
|
||||
#
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=3;
|
||||
create table t1(col1 char(32));
|
||||
insert into t1 values ('a'),('b'),('c'),('d'), ('e'),('f'),('g'),('h');
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
create table t2(col1 text);
|
||||
insert into t2 values ('a'),('b'),('c'),('d'), ('e'),('f'),('g'),('h');
|
||||
analyze table t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
select * from t1 where col1 > 'b' and col1 < 'd';
|
||||
col1
|
||||
c
|
||||
explain extended
|
||||
select * from t1 where col1 > 'b' and col1 < 'd';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 28.57 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`col1` AS `col1` from `test`.`t1` where ((`test`.`t1`.`col1` > 'b') and (`test`.`t1`.`col1` < 'd'))
|
||||
select * from t2 where col1 > 'b' and col1 < 'd';
|
||||
col1
|
||||
c
|
||||
explain extended
|
||||
select * from t2 where col1 > 'b' and col1 < 'd';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`col1` AS `col1` from `test`.`t2` where ((`test`.`t2`.`col1` > 'b') and (`test`.`t2`.`col1` < 'd'))
|
||||
select * from t2 where col1 < 'b' and col1 > 'd';
|
||||
col1
|
||||
explain extended
|
||||
select * from t2 where col1 < 'b' and col1 > 'd';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`col1` AS `col1` from `test`.`t2` where 0
|
||||
drop table t1,t2;
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
#
|
||||
# Bug mdev-11364: IS NULL over not nullable datetime column
|
||||
# in mergeable derived
|
||||
#
|
||||
set use_stat_tables='preferably';
|
||||
set optimizer_use_condition_selectivity=4;
|
||||
set HISTOGRAM_SIZE = 255;
|
||||
CREATE TABLE t1 (t TIME, d DATE NOT NULL);
|
||||
INSERT INTO t1 VALUES ('10:00:00', '0000-00-00'),('11:00:00','0000-00-00');
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
SELECT * FROM (SELECT t FROM t1 WHERE d IS NULL) sq;
|
||||
t
|
||||
10:00:00
|
||||
11:00:00
|
||||
DROP TABLE t1;
|
||||
set histogram_size=@save_histogram_size;
|
||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
set use_stat_tables=@save_use_stat_tables;
|
||||
set optimizer_switch=@save_optimizer_switch_for_selectivity_test;
|
||||
set @tmp_ust= @@use_stat_tables;
|
||||
set @tmp_oucs= @@optimizer_use_condition_selectivity;
|
||||
|
|
@ -1536,6 +1628,44 @@ where t1.child_user_id=t3.id and t1.child_group_id is null and t2.lower_group_na
|
|||
parent_id child_group_id child_user_id id lower_group_name directory_id id
|
||||
drop table t1,t2,t3;
|
||||
#
|
||||
# MDEV-9187: duplicate of bug mdev-9628
|
||||
#
|
||||
set use_stat_tables = preferably;
|
||||
set optimizer_use_condition_selectivity=3;
|
||||
CREATE TABLE t1 (f1 char(32)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES ('foo'),('bar'),('qux');
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
SELECT * FROM t1 WHERE f1 < 'm';
|
||||
f1
|
||||
foo
|
||||
bar
|
||||
EXPLAIN EXTENDED
|
||||
SELECT * FROM t1 WHERE f1 < 'm';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 72.09 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`f1` AS `f1` from `test`.`t1` where (`test`.`t1`.`f1` < 'm')
|
||||
CREATE TABLE t2 (f1 TEXT) ENGINE=InnoDB;
|
||||
INSERT INTO t2 VALUES ('foo'),('bar'),('qux');
|
||||
ANALYZE TABLE t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
SELECT * FROM t2 WHERE f1 <> 'qux';
|
||||
f1
|
||||
foo
|
||||
bar
|
||||
EXPLAIN EXTENDED
|
||||
SELECT * FROM t2 WHERE f1 <> 'qux';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`f1` AS `f1` from `test`.`t2` where (`test`.`t2`.`f1` <> 'qux')
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
set use_stat_tables= @tmp_ust;
|
||||
|
|
|
|||
|
|
@ -7859,6 +7859,45 @@ v1
|
|||
6
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-10713: signal 11 error on multi-table update - crash in
|
||||
# handler::increment_statistics or in make_select or assertion
|
||||
# failure pfs_thread == ((PFS_thread*) pthread_getspecific((THR_PFS)))
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`CLOSE_YN` varchar(10) COLLATE utf8_bin DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
|
||||
CREATE TABLE `t2` (
|
||||
`ap_close_to` varchar(8) COLLATE utf8_bin DEFAULT NULL
|
||||
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
|
||||
insert t1 values (1);
|
||||
CREATE FUNCTION `f1`(`P_DC_CD` VARBINARY(50), `P_SYS_DATE` DATETIME) RETURNS datetime
|
||||
DETERMINISTIC
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
DECLARE V_SYS_DATE DATETIME;
|
||||
SELECT now() AS LOC_DATE INTO V_SYS_DATE ;
|
||||
RETURN v_sys_date ;
|
||||
END $$
|
||||
update t1 S
|
||||
JOIN
|
||||
(
|
||||
SELECT CASE
|
||||
WHEN DATE_FORMAT( f1('F01', NOW()) , '%Y%m%d') <= CLOSE_YMD
|
||||
THEN '99991231'
|
||||
ELSE '' END ACCOUNT_APPLY_YYYYMMDD
|
||||
FROM (
|
||||
select case
|
||||
when 'AP'='AP'
|
||||
then ap_close_to
|
||||
end AS CLOSE_YMD
|
||||
from t2
|
||||
) A
|
||||
) X
|
||||
SET S.CLOSE_YN = ''
|
||||
where 1=1;
|
||||
drop function if exists f1;
|
||||
drop table t1,t2;
|
||||
# End of 5.5 test
|
||||
#
|
||||
# MDEV-7040: Crash in field_conv, memcpy_field_possible, part#2
|
||||
|
|
|
|||
|
|
@ -7102,6 +7102,17 @@ a
|
|||
DROP TABLE t1;
|
||||
SET SESSION big_tables=0;
|
||||
#
|
||||
# MDEV-10776: Server crash on query
|
||||
#
|
||||
create table t1 (field1 int);
|
||||
insert into t1 values (1);
|
||||
select round((select 1 from t1 limit 1))
|
||||
from t1
|
||||
group by round((select 1 from t1 limit 1));
|
||||
round((select 1 from t1 limit 1))
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7930: Assertion `table_share->tmp_table != NO_TMP_TABLE ||
|
||||
# m_lock_type != 2' failed in handler::ha_index_read_map
|
||||
#
|
||||
|
|
|
|||
|
|
@ -7102,6 +7102,17 @@ a
|
|||
DROP TABLE t1;
|
||||
SET SESSION big_tables=0;
|
||||
#
|
||||
# MDEV-10776: Server crash on query
|
||||
#
|
||||
create table t1 (field1 int);
|
||||
insert into t1 values (1);
|
||||
select round((select 1 from t1 limit 1))
|
||||
from t1
|
||||
group by round((select 1 from t1 limit 1));
|
||||
round((select 1 from t1 limit 1))
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7930: Assertion `table_share->tmp_table != NO_TMP_TABLE ||
|
||||
# m_lock_type != 2' failed in handler::ha_index_read_map
|
||||
#
|
||||
|
|
|
|||
|
|
@ -7095,6 +7095,17 @@ a
|
|||
DROP TABLE t1;
|
||||
SET SESSION big_tables=0;
|
||||
#
|
||||
# MDEV-10776: Server crash on query
|
||||
#
|
||||
create table t1 (field1 int);
|
||||
insert into t1 values (1);
|
||||
select round((select 1 from t1 limit 1))
|
||||
from t1
|
||||
group by round((select 1 from t1 limit 1));
|
||||
round((select 1 from t1 limit 1))
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7930: Assertion `table_share->tmp_table != NO_TMP_TABLE ||
|
||||
# m_lock_type != 2' failed in handler::ha_index_read_map
|
||||
#
|
||||
|
|
|
|||
|
|
@ -7093,6 +7093,17 @@ a
|
|||
DROP TABLE t1;
|
||||
SET SESSION big_tables=0;
|
||||
#
|
||||
# MDEV-10776: Server crash on query
|
||||
#
|
||||
create table t1 (field1 int);
|
||||
insert into t1 values (1);
|
||||
select round((select 1 from t1 limit 1))
|
||||
from t1
|
||||
group by round((select 1 from t1 limit 1));
|
||||
round((select 1 from t1 limit 1))
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7930: Assertion `table_share->tmp_table != NO_TMP_TABLE ||
|
||||
# m_lock_type != 2' failed in handler::ha_index_read_map
|
||||
#
|
||||
|
|
|
|||
|
|
@ -7108,6 +7108,17 @@ a
|
|||
DROP TABLE t1;
|
||||
SET SESSION big_tables=0;
|
||||
#
|
||||
# MDEV-10776: Server crash on query
|
||||
#
|
||||
create table t1 (field1 int);
|
||||
insert into t1 values (1);
|
||||
select round((select 1 from t1 limit 1))
|
||||
from t1
|
||||
group by round((select 1 from t1 limit 1));
|
||||
round((select 1 from t1 limit 1))
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7930: Assertion `table_share->tmp_table != NO_TMP_TABLE ||
|
||||
# m_lock_type != 2' failed in handler::ha_index_read_map
|
||||
#
|
||||
|
|
|
|||
|
|
@ -7093,6 +7093,17 @@ a
|
|||
DROP TABLE t1;
|
||||
SET SESSION big_tables=0;
|
||||
#
|
||||
# MDEV-10776: Server crash on query
|
||||
#
|
||||
create table t1 (field1 int);
|
||||
insert into t1 values (1);
|
||||
select round((select 1 from t1 limit 1))
|
||||
from t1
|
||||
group by round((select 1 from t1 limit 1));
|
||||
round((select 1 from t1 limit 1))
|
||||
1
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7930: Assertion `table_share->tmp_table != NO_TMP_TABLE ||
|
||||
# m_lock_type != 2' failed in handler::ha_index_read_map
|
||||
#
|
||||
|
|
|
|||
|
|
@ -221,7 +221,6 @@ drop table t1;
|
|||
create table t1 (a decimal(10,2) unsigned);
|
||||
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 2
|
||||
Warning 1264 Out of range value for column 'a' at row 6
|
||||
insert into t1 values ("-.1"),("+.1"),(".1");
|
||||
Warnings:
|
||||
|
|
@ -280,7 +279,6 @@ drop table t1;
|
|||
create table t1 (a decimal(10,2) zerofill);
|
||||
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 2
|
||||
Warning 1264 Out of range value for column 'a' at row 6
|
||||
insert into t1 values ("-.1"),("+.1"),(".1");
|
||||
Warnings:
|
||||
|
|
@ -1012,6 +1010,9 @@ SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE
|
|||
COLUMN_NAME DATA_TYPE COLUMN_TYPE
|
||||
a decimal decimal(10,2)/*old*/
|
||||
DROP TABLE t1dec102;
|
||||
select cast('-0.0' as decimal(5,1)) < 0;
|
||||
cast('-0.0' as decimal(5,1)) < 0
|
||||
0
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -86,10 +86,10 @@ t1 1 options 2 flags A NULL NULL NULL BTREE
|
|||
CREATE UNIQUE INDEX test on t1 ( auto ) ;
|
||||
CREATE INDEX test2 on t1 ( ulonglong,ulong) ;
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'test2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `test2`. This is deprecated and will be disallowed in a future release.
|
||||
CREATE INDEX test3 on t1 ( medium ) ;
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'test3' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `test3`. This is deprecated and will be disallowed in a future release.
|
||||
DROP INDEX test ON t1;
|
||||
insert into t1 values (10, 1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
|
||||
insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,NULL,2,2,'two','two,one');
|
||||
|
|
@ -308,7 +308,7 @@ const int(1) NULL NO 0 #
|
|||
drop table t1,t2,t3;
|
||||
create table t1 ( myfield INT NOT NULL, UNIQUE INDEX (myfield), unique (myfield), index(myfield));
|
||||
Warnings:
|
||||
Note 1831 Duplicate index 'myfield_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||||
Note 1831 Duplicate index `myfield_2`. This is deprecated and will be disallowed in a future release.
|
||||
drop table t1;
|
||||
create table t1 ( id integer unsigned not null primary key );
|
||||
create table t2 ( id integer unsigned not null primary key );
|
||||
|
|
|
|||
|
|
@ -14,6 +14,25 @@ this
|
|||
0
|
||||
4294967295
|
||||
drop table t1;
|
||||
create table t1 (a bigint unsigned, b mediumint unsigned);
|
||||
insert t1 values (1,2),(0xffffffffffffffff,0xffffff);
|
||||
select coalesce(a,b), coalesce(b,a) from t1;
|
||||
coalesce(a,b) coalesce(b,a)
|
||||
1 2
|
||||
18446744073709551615 16777215
|
||||
create table t2 as select a from t1 union select b from t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` bigint(20) unsigned DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select * from t2;
|
||||
a
|
||||
1
|
||||
18446744073709551615
|
||||
2
|
||||
16777215
|
||||
drop table t1, t2;
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -5432,6 +5432,7 @@ DROP FUNCTION f1;
|
|||
DROP VIEW v1;
|
||||
DROP TABLE t1, t2;
|
||||
create view v1 as select 1;
|
||||
FOUND /mariadb-version/ in v1.frm
|
||||
drop view v1;
|
||||
#
|
||||
# MDEV-7260: Crash in get_best_combination when executing multi-table
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
set global log_warnings=2;
|
||||
set @@wait_timeout=1;
|
||||
FOUND /Aborted.*Got timeout reading communication packets/ in mysqld.1.err
|
||||
set global log_warnings=@@log_warnings;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue