mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merged from mysql-4.1 to mysql-5.0
client/mysqltest.c: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/t/ndb_autodiscover.test: Auto merged sql/ha_ndbcluster.h: Auto merged sql/item_strfunc.cc: Auto merged client/mysqldump.c: Merge from 4.1 to 5.0 mysql-test/r/ndb_autodiscover.result: Merge ndb/test/ndbapi/create_tab.cpp: Merge sql/ha_ndbcluster.cc: Merge sql/handler.cc: Merge sql/handler.h: Merge sql/sql_base.cc: Merge sql/sql_table.cc: Merge
This commit is contained in:
@ -57,6 +57,7 @@
|
|||||||
#define EX_CONSCHECK 3
|
#define EX_CONSCHECK 3
|
||||||
#define EX_EOM 4
|
#define EX_EOM 4
|
||||||
#define EX_EOF 5 /* ferror for output file was got */
|
#define EX_EOF 5 /* ferror for output file was got */
|
||||||
|
#define EX_ILLEGAL_TABLE 6
|
||||||
|
|
||||||
/* index into 'show fields from table' */
|
/* index into 'show fields from table' */
|
||||||
|
|
||||||
@ -142,14 +143,6 @@ const char *compatible_mode_names[]=
|
|||||||
TYPELIB compatible_mode_typelib= {array_elements(compatible_mode_names) - 1,
|
TYPELIB compatible_mode_typelib= {array_elements(compatible_mode_names) - 1,
|
||||||
"", compatible_mode_names, NULL};
|
"", compatible_mode_names, NULL};
|
||||||
|
|
||||||
#define TABLE_RULE_HASH_SIZE 16
|
|
||||||
|
|
||||||
typedef struct st_table_rule_ent
|
|
||||||
{
|
|
||||||
char* key; /* dbname.tablename */
|
|
||||||
uint key_len;
|
|
||||||
} TABLE_RULE_ENT;
|
|
||||||
|
|
||||||
HASH ignore_table;
|
HASH ignore_table;
|
||||||
|
|
||||||
static struct my_option my_long_options[] =
|
static struct my_option my_long_options[] =
|
||||||
@ -544,29 +537,21 @@ static void write_footer(FILE *sql_file)
|
|||||||
} /* write_footer */
|
} /* write_footer */
|
||||||
|
|
||||||
|
|
||||||
static void free_table_ent(TABLE_RULE_ENT* e)
|
byte* get_table_key(const char *entry, uint *length,
|
||||||
|
my_bool not_used __attribute__((unused)))
|
||||||
{
|
{
|
||||||
my_free((gptr) e, MYF(0));
|
*length= strlen(entry);
|
||||||
}
|
return (byte*) entry;
|
||||||
|
|
||||||
|
|
||||||
static byte* get_table_key(TABLE_RULE_ENT* e, uint* len,
|
|
||||||
my_bool not_used __attribute__((unused)))
|
|
||||||
{
|
|
||||||
*len= e->key_len;
|
|
||||||
return (byte*)e->key;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void init_table_rule_hash(HASH* h)
|
void init_table_rule_hash(HASH* h)
|
||||||
{
|
{
|
||||||
if(hash_init(h, charset_info, TABLE_RULE_HASH_SIZE, 0, 0,
|
if(hash_init(h, charset_info, 16, 0, 0,
|
||||||
(hash_get_key) get_table_key,
|
(hash_get_key) get_table_key, 0, 0))
|
||||||
(hash_free_key) free_table_ent, 0))
|
|
||||||
exit(EX_EOM);
|
exit(EX_EOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static my_bool
|
static my_bool
|
||||||
get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||||
char *argument)
|
char *argument)
|
||||||
@ -639,25 +624,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
break;
|
break;
|
||||||
case (int) OPT_IGNORE_TABLE:
|
case (int) OPT_IGNORE_TABLE:
|
||||||
{
|
{
|
||||||
uint len= (uint)strlen(argument);
|
|
||||||
TABLE_RULE_ENT* e;
|
|
||||||
if (!strchr(argument, '.'))
|
if (!strchr(argument, '.'))
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Illegal use of option --ignore-table=<database>.<table>\n");
|
fprintf(stderr, "Illegal use of option --ignore-table=<database>.<table>\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
/* len is always > 0 because we know the there exists a '.' */
|
|
||||||
e= (TABLE_RULE_ENT*)my_malloc(sizeof(TABLE_RULE_ENT) + len, MYF(MY_WME));
|
|
||||||
if (!e)
|
|
||||||
exit(EX_EOM);
|
|
||||||
e->key= (char*)e + sizeof(TABLE_RULE_ENT);
|
|
||||||
e->key_len= len;
|
|
||||||
memcpy(e->key, argument, len);
|
|
||||||
|
|
||||||
if (!hash_inited(&ignore_table))
|
if (!hash_inited(&ignore_table))
|
||||||
init_table_rule_hash(&ignore_table);
|
init_table_rule_hash(&ignore_table);
|
||||||
|
|
||||||
if(my_hash_insert(&ignore_table, (byte*)e))
|
if (my_hash_insert(&ignore_table, (byte*)my_strdup(argument, MYF(0))))
|
||||||
exit(EX_EOM);
|
exit(EX_EOM);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -980,7 +955,28 @@ static char *quote_name(const char *name, char *buff, my_bool force)
|
|||||||
return buff;
|
return buff;
|
||||||
} /* quote_name */
|
} /* quote_name */
|
||||||
|
|
||||||
|
/*
|
||||||
|
Quote a table name so it can be used in "SHOW TABLES LIKE <tabname>"
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
quote_for_like
|
||||||
|
name - name of the table
|
||||||
|
buff - quoted name of the table
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Quote \, _, ' and % characters
|
||||||
|
|
||||||
|
Note: Because MySQL uses the C escape syntax in strings
|
||||||
|
(for example, '\n' to represent newline), you must double
|
||||||
|
any '\' that you use in your LIKE strings. For example, to
|
||||||
|
search for '\n', specify it as '\\n'. To search for '\', specify
|
||||||
|
it as '\\\\' (the backslashes are stripped once by the parser
|
||||||
|
and another time when the pattern match is done, leaving a
|
||||||
|
single backslash to be matched).
|
||||||
|
|
||||||
|
Example: "t\1" => "t\\\\1"
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
static char *quote_for_like(const char *name, char *buff)
|
static char *quote_for_like(const char *name, char *buff)
|
||||||
{
|
{
|
||||||
@ -988,7 +984,13 @@ static char *quote_for_like(const char *name, char *buff)
|
|||||||
*to++= '\'';
|
*to++= '\'';
|
||||||
while (*name)
|
while (*name)
|
||||||
{
|
{
|
||||||
if (*name == '\'' || *name == '_' || *name == '\\' || *name == '%')
|
if (*name == '\\')
|
||||||
|
{
|
||||||
|
*to++='\\';
|
||||||
|
*to++='\\';
|
||||||
|
*to++='\\';
|
||||||
|
}
|
||||||
|
else if (*name == '\'' || *name == '_' || *name == '%')
|
||||||
*to++= '\\';
|
*to++= '\\';
|
||||||
*to++= *name++;
|
*to++= *name++;
|
||||||
}
|
}
|
||||||
@ -1139,6 +1141,7 @@ static uint get_table_structure(char *table, char *db)
|
|||||||
FILE *sql_file = md_result_file;
|
FILE *sql_file = md_result_file;
|
||||||
int len;
|
int len;
|
||||||
DBUG_ENTER("get_table_structure");
|
DBUG_ENTER("get_table_structure");
|
||||||
|
DBUG_PRINT("enter", ("db: %s, table: %s", db, table));
|
||||||
|
|
||||||
if (!insert_pat_inited)
|
if (!insert_pat_inited)
|
||||||
{
|
{
|
||||||
@ -2327,27 +2330,60 @@ static int get_actual_table_name(const char *old_table_name,
|
|||||||
|
|
||||||
static int dump_selected_tables(char *db, char **table_names, int tables)
|
static int dump_selected_tables(char *db, char **table_names, int tables)
|
||||||
{
|
{
|
||||||
uint numrows;
|
uint numrows, i;
|
||||||
int i;
|
|
||||||
char table_buff[NAME_LEN*+3];
|
char table_buff[NAME_LEN*+3];
|
||||||
|
char new_table_name[NAME_LEN];
|
||||||
|
DYNAMIC_STRING lock_tables_query;
|
||||||
|
HASH dump_tables;
|
||||||
|
|
||||||
|
DBUG_ENTER("dump_selected_tables");
|
||||||
|
|
||||||
if (init_dumping(db))
|
if (init_dumping(db))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
/* Init hash table for storing the actual name of tables to dump */
|
||||||
|
if (hash_init(&dump_tables, charset_info, 16, 0, 0,
|
||||||
|
(hash_get_key) get_table_key, 0, 0))
|
||||||
|
exit(EX_EOM);
|
||||||
|
|
||||||
|
init_dynamic_string(&lock_tables_query, "LOCK TABLES ", 256, 1024);
|
||||||
|
for (; tables > 0 ; tables-- , table_names++)
|
||||||
|
{
|
||||||
|
/* the table name passed on commandline may be wrong case */
|
||||||
|
if (!get_actual_table_name( *table_names,
|
||||||
|
new_table_name, sizeof(new_table_name) ))
|
||||||
|
{
|
||||||
|
/* Add found table name to lock_tables_query */
|
||||||
|
if (lock_tables)
|
||||||
|
{
|
||||||
|
dynstr_append(&lock_tables_query,
|
||||||
|
quote_name(new_table_name, table_buff, 1));
|
||||||
|
dynstr_append(&lock_tables_query, " READ /*!32311 LOCAL */,");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add found table name to dump_tables list */
|
||||||
|
if (my_hash_insert(&dump_tables,
|
||||||
|
(byte*)my_strdup(new_table_name, MYF(0))))
|
||||||
|
exit(EX_EOM);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
my_printf_error(0,"Couldn't find table: \"%s\"\n", MYF(0),
|
||||||
|
*table_names);
|
||||||
|
safe_exit(EX_ILLEGAL_TABLE);
|
||||||
|
/* We shall countinue here, if --force was given */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (lock_tables)
|
if (lock_tables)
|
||||||
{
|
{
|
||||||
DYNAMIC_STRING query;
|
if (mysql_real_query(sock, lock_tables_query.str,
|
||||||
|
lock_tables_query.length-1))
|
||||||
init_dynamic_string(&query, "LOCK TABLES ", 256, 1024);
|
|
||||||
for (i=0 ; i < tables ; i++)
|
|
||||||
{
|
|
||||||
dynstr_append(&query, quote_name(table_names[i], table_buff, 1));
|
|
||||||
dynstr_append(&query, " READ /*!32311 LOCAL */,");
|
|
||||||
}
|
|
||||||
if (mysql_real_query(sock, query.str, query.length-1))
|
|
||||||
DB_error(sock, "when doing LOCK TABLES");
|
DB_error(sock, "when doing LOCK TABLES");
|
||||||
/* We shall countinue here, if --force was given */
|
/* We shall countinue here, if --force was given */
|
||||||
dynstr_free(&query);
|
|
||||||
}
|
}
|
||||||
|
dynstr_free(&lock_tables_query);
|
||||||
if (flush_logs)
|
if (flush_logs)
|
||||||
{
|
{
|
||||||
if (mysql_refresh(sock, REFRESH_LOG))
|
if (mysql_refresh(sock, REFRESH_LOG))
|
||||||
@ -2356,25 +2392,25 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
|
|||||||
}
|
}
|
||||||
if (opt_xml)
|
if (opt_xml)
|
||||||
print_xml_tag1(md_result_file, "", "database name=", db, "\n");
|
print_xml_tag1(md_result_file, "", "database name=", db, "\n");
|
||||||
for (i=0 ; i < tables ; i++)
|
/* Dump each selected table */
|
||||||
|
const char *table_name;
|
||||||
|
for (i= 0; i < dump_tables.records; i++)
|
||||||
{
|
{
|
||||||
char new_table_name[NAME_LEN];
|
table_name= hash_element(&dump_tables, i);
|
||||||
|
DBUG_PRINT("info",("Dumping table %s", table_name));
|
||||||
/* the table name passed on commandline may be wrong case */
|
numrows = get_table_structure(table_name, db);
|
||||||
if (!get_actual_table_name( table_names[i], new_table_name,
|
dump_table(numrows, table_name);
|
||||||
sizeof(new_table_name)))
|
|
||||||
{
|
|
||||||
numrows= get_table_structure(new_table_name, db);
|
|
||||||
dump_table(numrows, new_table_name);
|
|
||||||
}
|
|
||||||
my_free(order_by, MYF(MY_ALLOW_ZERO_PTR));
|
|
||||||
order_by= 0;
|
|
||||||
}
|
}
|
||||||
if (was_views)
|
if (was_views)
|
||||||
{
|
{
|
||||||
for (i=0 ; i < tables ; i++)
|
for(i=0; i < dump_tables.records; i++)
|
||||||
get_view_structure(table_names[i], db);
|
{
|
||||||
|
table_name= hash_element(&dump_tables, i);
|
||||||
|
get_view_structure(table_name, db);
|
||||||
}
|
}
|
||||||
|
hash_free(&dump_tables);
|
||||||
|
my_free(order_by, MYF(MY_ALLOW_ZERO_PTR));
|
||||||
|
order_by= 0;
|
||||||
if (opt_xml)
|
if (opt_xml)
|
||||||
{
|
{
|
||||||
fputs("</database>\n", md_result_file);
|
fputs("</database>\n", md_result_file);
|
||||||
@ -2382,7 +2418,7 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
|
|||||||
}
|
}
|
||||||
if (lock_tables)
|
if (lock_tables)
|
||||||
mysql_query_with_error_report(sock, 0, "UNLOCK TABLES");
|
mysql_query_with_error_report(sock, 0, "UNLOCK TABLES");
|
||||||
return 0;
|
DBUG_RETURN(0);
|
||||||
} /* dump_selected_tables */
|
} /* dump_selected_tables */
|
||||||
|
|
||||||
|
|
||||||
|
@ -986,9 +986,38 @@ static void do_exec(struct st_query* q)
|
|||||||
replace_dynstr_append(ds, buf);
|
replace_dynstr_append(ds, buf);
|
||||||
}
|
}
|
||||||
error= pclose(res_file);
|
error= pclose(res_file);
|
||||||
|
|
||||||
if (error != 0)
|
if (error != 0)
|
||||||
die("command \"%s\" failed", cmd);
|
{
|
||||||
|
uint status= WEXITSTATUS(error);
|
||||||
|
if(q->abort_on_error)
|
||||||
|
die("At line %u: command \"%s\" failed", start_lineno, cmd);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DBUG_PRINT("info",
|
||||||
|
("error: %d, status: %d", error, status));
|
||||||
|
bool ok= 0;
|
||||||
|
uint i;
|
||||||
|
for (i=0 ; (uint) i < q->expected_errors ; i++)
|
||||||
|
{
|
||||||
|
DBUG_PRINT("info", ("expected error: %d", q->expected_errno[i].code.errnum));
|
||||||
|
if ((q->expected_errno[i].type == ERR_ERRNO) &&
|
||||||
|
(q->expected_errno[i].code.errnum == status))
|
||||||
|
ok= 1;
|
||||||
|
verbose_msg("At line %u: command \"%s\" failed with expected error: %d",
|
||||||
|
start_lineno, cmd, status);
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
die("At line: %u: command \"%s\" failed with wrong error: %d",
|
||||||
|
start_lineno, cmd, status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (q->expected_errno[0].type == ERR_ERRNO &&
|
||||||
|
q->expected_errno[0].code.errnum != 0)
|
||||||
|
{
|
||||||
|
/* Error code we wanted was != 0, i.e. not an expected success */
|
||||||
|
die("At line: %u: command \"%s\" succeeded - should have failed with errno %d...",
|
||||||
|
start_lineno, cmd, q->expected_errno[0].code.errnum);
|
||||||
|
}
|
||||||
|
|
||||||
if (!disable_result_log)
|
if (!disable_result_log)
|
||||||
{
|
{
|
||||||
|
4
mysql-test/include/not_openssl.inc
Normal file
4
mysql-test/include/not_openssl.inc
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
-- require r/not_openssl.require
|
||||||
|
disable_query_log;
|
||||||
|
show variables like "have_openssl";
|
||||||
|
enable_query_log;
|
@ -707,6 +707,9 @@ MYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST --no-defaults --testcase --user=root --soc
|
|||||||
if [ "x$USE_EMBEDDED_SERVER" = "x1" ]; then
|
if [ "x$USE_EMBEDDED_SERVER" = "x1" ]; then
|
||||||
MYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST -A --language=$LANGUAGE -A --datadir=$SLAVE_MYDDIR -A --character-sets-dir=$CHARSETSDIR"
|
MYSQL_CLIENT_TEST="$MYSQL_CLIENT_TEST -A --language=$LANGUAGE -A --datadir=$SLAVE_MYDDIR -A --character-sets-dir=$CHARSETSDIR"
|
||||||
fi
|
fi
|
||||||
|
# Save path and name of mysqldump
|
||||||
|
MYSQL_DUMP_DIR="$MYSQL_DUMP"
|
||||||
|
export MYSQL_DUMP_DIR
|
||||||
MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
|
MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
|
||||||
MYSQL_SHOW="$MYSQL_SHOW -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT"
|
MYSQL_SHOW="$MYSQL_SHOW -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLSHOW_OPT"
|
||||||
MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT"
|
MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR --character-sets-dir=$CHARSETSDIR $EXTRA_MYSQLBINLOG_OPT"
|
||||||
|
@ -120,6 +120,60 @@ hello
|
|||||||
select des_decrypt(des_encrypt("hello",4),'password4');
|
select des_decrypt(des_encrypt("hello",4),'password4');
|
||||||
des_decrypt(des_encrypt("hello",4),'password4')
|
des_decrypt(des_encrypt("hello",4),'password4')
|
||||||
hello
|
hello
|
||||||
|
select des_encrypt("hello",10);
|
||||||
|
des_encrypt("hello",10)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_encrypt'
|
||||||
|
select des_encrypt(NULL);
|
||||||
|
des_encrypt(NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_encrypt'
|
||||||
|
select des_encrypt(NULL, 10);
|
||||||
|
des_encrypt(NULL, 10)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_encrypt'
|
||||||
|
select des_encrypt(NULL, NULL);
|
||||||
|
des_encrypt(NULL, NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_encrypt'
|
||||||
|
select des_encrypt(10, NULL);
|
||||||
|
des_encrypt(10, NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_encrypt'
|
||||||
|
select des_encrypt("hello", NULL);
|
||||||
|
des_encrypt("hello", NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_encrypt'
|
||||||
|
select des_decrypt("hello",10);
|
||||||
|
des_decrypt("hello",10)
|
||||||
|
hello
|
||||||
|
select des_decrypt(NULL);
|
||||||
|
des_decrypt(NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_decrypt'
|
||||||
|
select des_decrypt(NULL, 10);
|
||||||
|
des_decrypt(NULL, 10)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_decrypt'
|
||||||
|
select des_decrypt(NULL, NULL);
|
||||||
|
des_decrypt(NULL, NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_decrypt'
|
||||||
|
select des_decrypt(10, NULL);
|
||||||
|
des_decrypt(10, NULL)
|
||||||
|
10
|
||||||
|
select des_decrypt("hello", NULL);
|
||||||
|
des_decrypt("hello", NULL)
|
||||||
|
hello
|
||||||
SET @a=des_decrypt(des_encrypt("hello"));
|
SET @a=des_decrypt(des_encrypt("hello"));
|
||||||
flush des_key_file;
|
flush des_key_file;
|
||||||
select @a = des_decrypt(des_encrypt("hello"));
|
select @a = des_decrypt(des_encrypt("hello"));
|
||||||
@ -134,6 +188,8 @@ NULL
|
|||||||
select hex(des_decrypt(des_encrypt("hello","hidden")));
|
select hex(des_decrypt(des_encrypt("hello","hidden")));
|
||||||
hex(des_decrypt(des_encrypt("hello","hidden")))
|
hex(des_decrypt(des_encrypt("hello","hidden")))
|
||||||
NULL
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1108 Incorrect parameters to procedure 'des_decrypt'
|
||||||
explain extended select des_decrypt(des_encrypt("hello",4),'password2'), des_decrypt(des_encrypt("hello","hidden"));
|
explain extended select des_decrypt(des_encrypt("hello",4),'password2'), des_decrypt(des_encrypt("hello","hidden"));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
93
mysql-test/r/func_encrypt_nossl.result
Normal file
93
mysql-test/r/func_encrypt_nossl.result
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
select des_encrypt("test", 'akeystr');
|
||||||
|
des_encrypt("test", 'akeystr')
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_encrypt("test", 1);
|
||||||
|
des_encrypt("test", 1)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_encrypt("test", 9);
|
||||||
|
des_encrypt("test", 9)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_encrypt("test", 100);
|
||||||
|
des_encrypt("test", 100)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_encrypt("test", NULL);
|
||||||
|
des_encrypt("test", NULL)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt("test", 'anotherkeystr');
|
||||||
|
des_decrypt("test", 'anotherkeystr')
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt(1, 1);
|
||||||
|
des_decrypt(1, 1)
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt(des_encrypt("test", 'thekey'));
|
||||||
|
des_decrypt(des_encrypt("test", 'thekey'))
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello"));
|
||||||
|
hex(des_encrypt("hello")) des_decrypt(des_encrypt("hello"))
|
||||||
|
NULL NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt(des_encrypt("hello",4));
|
||||||
|
des_decrypt(des_encrypt("hello",4))
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt(des_encrypt("hello",'test'),'test');
|
||||||
|
des_decrypt(des_encrypt("hello",'test'),'test')
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password'));
|
||||||
|
hex(des_encrypt("hello")) hex(des_encrypt("hello",5)) hex(des_encrypt("hello",'default_password'))
|
||||||
|
NULL NULL NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
Error 1289 The 'des_encrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt(des_encrypt("hello"),'default_password');
|
||||||
|
des_decrypt(des_encrypt("hello"),'default_password')
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select des_decrypt(des_encrypt("hello",4),'password4');
|
||||||
|
des_decrypt(des_encrypt("hello",4),'password4')
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
SET @a=des_decrypt(des_encrypt("hello"));
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
flush des_key_file;
|
||||||
|
select @a = des_decrypt(des_encrypt("hello"));
|
||||||
|
@a = des_decrypt(des_encrypt("hello"))
|
||||||
|
NULL
|
||||||
|
select hex("hello");
|
||||||
|
hex("hello")
|
||||||
|
68656C6C6F
|
||||||
|
select hex(des_decrypt(des_encrypt("hello",4),'password2'));
|
||||||
|
hex(des_decrypt(des_encrypt("hello",4),'password2'))
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
||||||
|
select hex(des_decrypt(des_encrypt("hello","hidden")));
|
||||||
|
hex(des_decrypt(des_encrypt("hello","hidden")))
|
||||||
|
NULL
|
||||||
|
Warnings:
|
||||||
|
Error 1289 The 'des_decrypt' feature is disabled; you need MySQL built with '--with-openssl' to have it working
|
@ -1,7 +1,4 @@
|
|||||||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa;
|
DROP TABLE IF EXISTS t1, `"t"1`;
|
||||||
drop database if exists mysqldump_test_db;
|
|
||||||
drop database if exists db1;
|
|
||||||
drop view if exists v1, v2;
|
|
||||||
CREATE TABLE t1(a int);
|
CREATE TABLE t1(a int);
|
||||||
INSERT INTO t1 VALUES (1), (2);
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
@ -21,18 +18,16 @@ INSERT INTO t1 VALUES (1), (2);
|
|||||||
</database>
|
</database>
|
||||||
</mysqldump>
|
</mysqldump>
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a decimal(64, 20));
|
CREATE TABLE t1 (a decimal(240, 20));
|
||||||
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||||||
("0987654321098765432109876543210987654321");
|
("0987654321098765432109876543210987654321");
|
||||||
CREATE TABLE `t1` (
|
CREATE TABLE `t1` (
|
||||||
`a` decimal(64,20) default NULL
|
`a` decimal(240,20) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('987654321098765432109876543210987654321.00000000000000000000');
|
INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('0987654321098765432109876543210987654321.00000000000000000000');
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a double);
|
CREATE TABLE t1 (a double);
|
||||||
INSERT INTO t1 VALUES ('-9e999999');
|
INSERT INTO t1 VALUES (-9e999999);
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
|
||||||
CREATE TABLE `t1` (
|
CREATE TABLE `t1` (
|
||||||
`a` double default NULL
|
`a` double default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
@ -113,7 +108,7 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
|
|||||||
<table_structure name="t1">
|
<table_structure name="t1">
|
||||||
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
<field Field="a" Type="int(11)" Null="YES" Key="" Extra="" />
|
||||||
<field Field="b" Type="text" Null="YES" Key="" Extra="" />
|
<field Field="b" Type="text" Null="YES" Key="" Extra="" />
|
||||||
<field Field="c" Type="varchar(3)" Null="YES" Key="" Extra="" />
|
<field Field="c" Type="char(3)" Null="YES" Key="" Extra="" />
|
||||||
</table_structure>
|
</table_structure>
|
||||||
<table_data name="t1">
|
<table_data name="t1">
|
||||||
<row>
|
<row>
|
||||||
@ -357,41 +352,6 @@ CREATE TABLE `t1` (
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(a int);
|
|
||||||
create view v1 as select * from t1;
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
||||||
/*!40101 SET NAMES utf8 */;
|
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
||||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
||||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
||||||
DROP TABLE IF EXISTS `t1`;
|
|
||||||
CREATE TABLE `t1` (
|
|
||||||
`a` int(11) default NULL
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
||||||
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
|
||||||
LOCK TABLES `t1` WRITE;
|
|
||||||
UNLOCK TABLES;
|
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
|
||||||
DROP TABLE IF EXISTS `v1`;
|
|
||||||
DROP VIEW IF EXISTS `v1`;
|
|
||||||
CREATE ALGORITHM=UNDEFINED VIEW `test`.`v1` AS select `test`.`t1`.`a` AS `a` from `test`.`t1`;
|
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
||||||
|
|
||||||
drop view v1;
|
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
@ -600,8 +560,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a char(10));
|
CREATE TABLE t1 (a decimal(240, 20));
|
||||||
INSERT INTO t1 VALUES ('\'');
|
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||||||
|
("0987654321098765432109876543210987654321");
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
@ -613,46 +574,13 @@ INSERT INTO t1 VALUES ('\'');
|
|||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
DROP TABLE IF EXISTS `t1`;
|
DROP TABLE IF EXISTS `t1`;
|
||||||
CREATE TABLE `t1` (
|
CREATE TABLE `t1` (
|
||||||
`a` char(10) default NULL
|
`a` decimal(240,20) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
LOCK TABLES `t1` WRITE;
|
LOCK TABLES `t1` WRITE;
|
||||||
INSERT INTO `t1` VALUES ('\'');
|
INSERT IGNORE INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('0987654321098765432109876543210987654321.00000000000000000000');
|
||||||
UNLOCK TABLES;
|
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
||||||
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1 (a int);
|
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
|
||||||
INSERT INTO t1 VALUES (4),(5),(6);
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
||||||
/*!40101 SET NAMES utf8 */;
|
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
||||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
||||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
||||||
DROP TABLE IF EXISTS `t1`;
|
|
||||||
CREATE TABLE `t1` (
|
|
||||||
`a` int(11) default NULL
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
||||||
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
|
||||||
LOCK TABLES `t1` WRITE;
|
|
||||||
INSERT IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
|
|
||||||
@ -675,14 +603,12 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
DROP TABLE IF EXISTS `t1`;
|
DROP TABLE IF EXISTS `t1`;
|
||||||
CREATE TABLE `t1` (
|
CREATE TABLE `t1` (
|
||||||
`a` int(11) default NULL
|
`a` decimal(240,20) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
LOCK TABLES `t1` WRITE;
|
INSERT DELAYED IGNORE INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('0987654321098765432109876543210987654321.00000000000000000000');
|
||||||
INSERT IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
|
||||||
UNLOCK TABLES;
|
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
@ -1423,18 +1349,12 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
create database db1;
|
CREATE DATABASE mysqldump_test_db;
|
||||||
use db1;
|
USE mysqldump_test_db;
|
||||||
CREATE TABLE t2 (
|
CREATE TABLE t1 ( a INT );
|
||||||
a varchar(30) default NULL,
|
CREATE TABLE t2 ( a INT );
|
||||||
KEY a (a(5))
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
);
|
INSERT INTO t2 VALUES (1), (2);
|
||||||
INSERT INTO t2 VALUES ('alfred');
|
|
||||||
INSERT INTO t2 VALUES ('angie');
|
|
||||||
INSERT INTO t2 VALUES ('bingo');
|
|
||||||
INSERT INTO t2 VALUES ('waffle');
|
|
||||||
INSERT INTO t2 VALUES ('lemon');
|
|
||||||
create view v2 as select * from t2 where a like 'a%' with check option;
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
@ -1444,22 +1364,15 @@ create view v2 as select * from t2 where a like 'a%' with check option;
|
|||||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
DROP TABLE IF EXISTS `t1`;
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`a` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
DROP TABLE IF EXISTS `t2`;
|
DROP TABLE IF EXISTS `t2`;
|
||||||
CREATE TABLE `t2` (
|
CREATE TABLE `t2` (
|
||||||
`a` varchar(30) default NULL,
|
`a` int(11) default NULL
|
||||||
KEY `a` (`a`(5))
|
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
|
||||||
LOCK TABLES `t2` WRITE;
|
|
||||||
INSERT INTO `t2` VALUES ('alfred'),('angie'),('bingo'),('waffle'),('lemon');
|
|
||||||
UNLOCK TABLES;
|
|
||||||
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
|
||||||
DROP TABLE IF EXISTS `v2`;
|
|
||||||
DROP VIEW IF EXISTS `v2`;
|
|
||||||
CREATE ALGORITHM=UNDEFINED VIEW `db1`.`v2` AS select `db1`.`t2`.`a` AS `a` from `db1`.`t2` where (`db1`.`t2`.`a` like _latin1'a%') WITH CASCADED CHECK OPTION;
|
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
@ -1468,6 +1381,58 @@ CREATE ALGORITHM=UNDEFINED VIEW `db1`.`v2` AS select `db1`.`t2`.`a` AS `a` from
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
drop table t2;
|
|
||||||
drop view v2;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
drop database db1;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8 */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
DROP TABLE IF EXISTS `t1`;
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`a` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
DROP TABLE IF EXISTS `t2`;
|
||||||
|
CREATE TABLE `t2` (
|
||||||
|
`a` int(11) default NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
DROP DATABASE mysqldump_test_db;
|
||||||
|
create database mysqldump_test_db;
|
||||||
|
use mysqldump_test_db;
|
||||||
|
create table t1(a varchar(30) primary key, b int not null);
|
||||||
|
create table t2(a varchar(30) primary key, b int not null);
|
||||||
|
create table t3(a varchar(30) primary key, b int not null);
|
||||||
|
test_sequence
|
||||||
|
------ Testing with illegal table names ------
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "\d-2-1.sql"
|
||||||
|
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "\t1"
|
||||||
|
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "\t1"
|
||||||
|
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "\\t1"
|
||||||
|
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "t\1"
|
||||||
|
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "t\1"
|
||||||
|
|
||||||
|
MYSQL_DUMP_DIR: Couldn't find table: "t/1"
|
||||||
|
|
||||||
|
test_sequence
|
||||||
|
------ Testing with illegal database names ------
|
||||||
|
MYSQL_DUMP_DIR: Got error: 1049: Unknown database 'mysqldump_test_d' when selecting the database
|
||||||
|
MYSQL_DUMP_DIR: Got error: 1102: Incorrect database name 'mysqld\ump_test_db' when selecting the database
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
drop database mysqldump_test_db;
|
||||||
|
@ -93,7 +93,7 @@ name char(20), a int, b float, c char(24)
|
|||||||
ERROR 42S01: Table 't3' already exists
|
ERROR 42S01: Table 't3' already exists
|
||||||
show status like 'handler_discover%';
|
show status like 'handler_discover%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_discover 1
|
Handler_discover 0
|
||||||
create table IF NOT EXISTS t3(
|
create table IF NOT EXISTS t3(
|
||||||
id int not null primary key,
|
id int not null primary key,
|
||||||
id2 int not null,
|
id2 int not null,
|
||||||
@ -101,7 +101,7 @@ name char(20)
|
|||||||
) engine=ndb;
|
) engine=ndb;
|
||||||
show status like 'handler_discover%';
|
show status like 'handler_discover%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_discover 2
|
Handler_discover 0
|
||||||
SHOW CREATE TABLE t3;
|
SHOW CREATE TABLE t3;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t3 CREATE TABLE `t3` (
|
t3 CREATE TABLE `t3` (
|
||||||
@ -114,7 +114,7 @@ id name
|
|||||||
1 Explorer
|
1 Explorer
|
||||||
show status like 'handler_discover%';
|
show status like 'handler_discover%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_discover 2
|
Handler_discover 1
|
||||||
drop table t3;
|
drop table t3;
|
||||||
flush status;
|
flush status;
|
||||||
create table t7(
|
create table t7(
|
||||||
@ -373,6 +373,20 @@ use test2;
|
|||||||
drop table t2;
|
drop table t2;
|
||||||
drop database test2;
|
drop database test2;
|
||||||
use test;
|
use test;
|
||||||
|
CREATE TABLE sys.SYSTAB_0 (a int);
|
||||||
|
ERROR 42S01: Table 'SYSTAB_0' already exists
|
||||||
|
select * from sys.SYSTAB_0;
|
||||||
|
ERROR HY000: Failed to open 'SYSTAB_0', error while unpacking from engine
|
||||||
|
CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
|
||||||
|
show warnings;
|
||||||
|
Level Code Message
|
||||||
|
select * from sys.SYSTAB_0;
|
||||||
|
ERROR HY000: Failed to open 'SYSTAB_0', error while unpacking from engine
|
||||||
|
drop table sys.SYSTAB_0;
|
||||||
|
ERROR 42S02: Unknown table 'SYSTAB_0'
|
||||||
|
drop table IF EXISTS sys.SYSTAB_0;
|
||||||
|
Warnings:
|
||||||
|
Note 1051 Unknown table 'SYSTAB_0'
|
||||||
drop database if exists test_only_ndb_tables;
|
drop database if exists test_only_ndb_tables;
|
||||||
create database test_only_ndb_tables;
|
create database test_only_ndb_tables;
|
||||||
use test_only_ndb_tables;
|
use test_only_ndb_tables;
|
||||||
|
2
mysql-test/r/not_openssl.require
Normal file
2
mysql-test/r/not_openssl.require
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Variable_name Value
|
||||||
|
have_openssl NO
|
@ -59,6 +59,22 @@ select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("he
|
|||||||
select des_decrypt(des_encrypt("hello"),'default_password');
|
select des_decrypt(des_encrypt("hello"),'default_password');
|
||||||
select des_decrypt(des_encrypt("hello",4),'password4');
|
select des_decrypt(des_encrypt("hello",4),'password4');
|
||||||
|
|
||||||
|
# Test use of invalid parameters
|
||||||
|
select des_encrypt("hello",10);
|
||||||
|
select des_encrypt(NULL);
|
||||||
|
select des_encrypt(NULL, 10);
|
||||||
|
select des_encrypt(NULL, NULL);
|
||||||
|
select des_encrypt(10, NULL);
|
||||||
|
select des_encrypt("hello", NULL);
|
||||||
|
|
||||||
|
select des_decrypt("hello",10);
|
||||||
|
select des_decrypt(NULL);
|
||||||
|
select des_decrypt(NULL, 10);
|
||||||
|
select des_decrypt(NULL, NULL);
|
||||||
|
select des_decrypt(10, NULL);
|
||||||
|
select des_decrypt("hello", NULL);
|
||||||
|
|
||||||
|
|
||||||
# Test flush
|
# Test flush
|
||||||
SET @a=des_decrypt(des_encrypt("hello"));
|
SET @a=des_decrypt(des_encrypt("hello"));
|
||||||
flush des_key_file;
|
flush des_key_file;
|
||||||
|
36
mysql-test/t/func_encrypt_nossl.test
Normal file
36
mysql-test/t/func_encrypt_nossl.test
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
-- source include/not_openssl.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test output from des_encrypt and des_decrypt when server is
|
||||||
|
# compiled without openssl suuport
|
||||||
|
#
|
||||||
|
select des_encrypt("test", 'akeystr');
|
||||||
|
select des_encrypt("test", 1);
|
||||||
|
select des_encrypt("test", 9);
|
||||||
|
select des_encrypt("test", 100);
|
||||||
|
select des_encrypt("test", NULL);
|
||||||
|
select des_decrypt("test", 'anotherkeystr');
|
||||||
|
select des_decrypt(1, 1);
|
||||||
|
select des_decrypt(des_encrypt("test", 'thekey'));
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test default keys
|
||||||
|
#
|
||||||
|
select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello"));
|
||||||
|
select des_decrypt(des_encrypt("hello",4));
|
||||||
|
select des_decrypt(des_encrypt("hello",'test'),'test');
|
||||||
|
select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password'));
|
||||||
|
select des_decrypt(des_encrypt("hello"),'default_password');
|
||||||
|
select des_decrypt(des_encrypt("hello",4),'password4');
|
||||||
|
|
||||||
|
# Test flush
|
||||||
|
SET @a=des_decrypt(des_encrypt("hello"));
|
||||||
|
flush des_key_file;
|
||||||
|
select @a = des_decrypt(des_encrypt("hello"));
|
||||||
|
|
||||||
|
# Test usage of wrong password
|
||||||
|
select hex("hello");
|
||||||
|
select hex(des_decrypt(des_encrypt("hello",4),'password2'));
|
||||||
|
select hex(des_decrypt(des_encrypt("hello","hidden")));
|
||||||
|
|
@ -2,10 +2,7 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1, `"t"1`, t1aa, t2, t2aa;
|
DROP TABLE IF EXISTS t1, `"t"1`;
|
||||||
drop database if exists mysqldump_test_db;
|
|
||||||
drop database if exists db1;
|
|
||||||
drop view if exists v1, v2;
|
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
# XML output
|
# XML output
|
||||||
@ -19,7 +16,7 @@ DROP TABLE t1;
|
|||||||
# Bug #2005
|
# Bug #2005
|
||||||
#
|
#
|
||||||
|
|
||||||
CREATE TABLE t1 (a decimal(64, 20));
|
CREATE TABLE t1 (a decimal(240, 20));
|
||||||
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||||||
("0987654321098765432109876543210987654321");
|
("0987654321098765432109876543210987654321");
|
||||||
--exec $MYSQL_DUMP --compact test t1
|
--exec $MYSQL_DUMP --compact test t1
|
||||||
@ -30,7 +27,7 @@ DROP TABLE t1;
|
|||||||
#
|
#
|
||||||
|
|
||||||
CREATE TABLE t1 (a double);
|
CREATE TABLE t1 (a double);
|
||||||
INSERT INTO t1 VALUES ('-9e999999');
|
INSERT INTO t1 VALUES (-9e999999);
|
||||||
# The following replaces is here because some systems replaces the above
|
# The following replaces is here because some systems replaces the above
|
||||||
# double with '-inf' and others with MAX_DOUBLE
|
# double with '-inf' and others with MAX_DOUBLE
|
||||||
--replace_result (-1.79769313486232e+308) (RES) (NULL) (RES)
|
--replace_result (-1.79769313486232e+308) (RES) (NULL) (RES)
|
||||||
@ -134,15 +131,6 @@ insert into t1 values (1),(2),(3);
|
|||||||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
|
--exec rm $MYSQL_TEST_DIR/var/tmp/t1.txt
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
|
||||||
# dump of view
|
|
||||||
#
|
|
||||||
create table t1(a int);
|
|
||||||
create view v1 as select * from t1;
|
|
||||||
--exec $MYSQL_DUMP --skip-comments test
|
|
||||||
drop view v1;
|
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #6101: create database problem
|
# Bug #6101: create database problem
|
||||||
#
|
#
|
||||||
@ -197,24 +185,15 @@ INSERT INTO `t1` VALUES (0x602010000280100005E71A);
|
|||||||
--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1
|
--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
|
||||||
# Bug #9756
|
|
||||||
#
|
|
||||||
|
|
||||||
CREATE TABLE t1 (a char(10));
|
|
||||||
INSERT INTO t1 VALUES ('\'');
|
|
||||||
--exec $MYSQL_DUMP --skip-comments test t1
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for --insert-ignore
|
# Test for --insert-ignore
|
||||||
#
|
#
|
||||||
|
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a decimal(240, 20));
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||||||
INSERT INTO t1 VALUES (4),(5),(6);
|
("0987654321098765432109876543210987654321");
|
||||||
--exec $MYSQL_DUMP --skip-comments --insert-ignore test t1
|
--exec $MYSQL_DUMP --insert-ignore --skip-comments test t1
|
||||||
--exec $MYSQL_DUMP --skip-comments --insert-ignore --delayed-insert test t1
|
--exec $MYSQL_DUMP --insert-ignore --skip-comments --delayed-insert test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -565,26 +544,95 @@ INSERT INTO t1 VALUES (1),(2),(3);
|
|||||||
--exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test
|
--exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
# Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
|
||||||
#
|
#
|
||||||
|
|
||||||
create database db1;
|
CREATE DATABASE mysqldump_test_db;
|
||||||
use db1;
|
USE mysqldump_test_db;
|
||||||
|
CREATE TABLE t1 ( a INT );
|
||||||
|
CREATE TABLE t2 ( a INT );
|
||||||
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
|
INSERT INTO t2 VALUES (1), (2);
|
||||||
|
--exec $MYSQL_DUMP --skip-comments --no-data mysqldump_test_db
|
||||||
|
--exec $MYSQL_DUMP --skip-comments --no-data mysqldump_test_db t1 t2
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
DROP DATABASE mysqldump_test_db;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Testing with tables and databases that don't exists
|
||||||
|
# or contains illegal characters
|
||||||
|
# (Bug #9358 mysqldump crashes if tablename starts with \)
|
||||||
|
#
|
||||||
|
create database mysqldump_test_db;
|
||||||
|
use mysqldump_test_db;
|
||||||
|
create table t1(a varchar(30) primary key, b int not null);
|
||||||
|
create table t2(a varchar(30) primary key, b int not null);
|
||||||
|
create table t3(a varchar(30) primary key, b int not null);
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
select '------ Testing with illegal table names ------' as test_sequence ;
|
||||||
|
--enable_query_log
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\d-2-1.sql" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\t1" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\\t1" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\\\\t1" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t\1" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t\\1" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t/1" 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T_1"
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T%1"
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T'1"
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T_1"
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 6
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqldump_test_db" "T_"
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
select '------ Testing with illegal database names ------' as test_sequence ;
|
||||||
|
--enable_query_log
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 2
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_d 2>&1
|
||||||
|
|
||||||
|
--replace_result $MYSQL_DUMP_DIR MYSQL_DUMP_DIR
|
||||||
|
--error 2
|
||||||
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqld\ump_test_db" 2>&1
|
||||||
|
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
drop database mysqldump_test_db;
|
||||||
|
|
||||||
CREATE TABLE t2 (
|
|
||||||
a varchar(30) default NULL,
|
|
||||||
KEY a (a(5))
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO t2 VALUES ('alfred');
|
|
||||||
INSERT INTO t2 VALUES ('angie');
|
|
||||||
INSERT INTO t2 VALUES ('bingo');
|
|
||||||
INSERT INTO t2 VALUES ('waffle');
|
|
||||||
INSERT INTO t2 VALUES ('lemon');
|
|
||||||
create view v2 as select * from t2 where a like 'a%' with check option;
|
|
||||||
--exec $MYSQL_DUMP --skip-comments db1
|
|
||||||
drop table t2;
|
|
||||||
drop view v2;
|
|
||||||
drop database db1;
|
|
||||||
|
@ -494,6 +494,27 @@ select * from t1;
|
|||||||
use test;
|
use test;
|
||||||
drop database test_only_ndb_tables;
|
drop database test_only_ndb_tables;
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Test that it's not possible to create tables
|
||||||
|
# with same name as NDB internal tables
|
||||||
|
# This will also test that it's not possible to create
|
||||||
|
# a table with tha same name as a table that can't be
|
||||||
|
# discovered( for example a table created via NDBAPI)
|
||||||
|
|
||||||
|
--error 1050
|
||||||
|
CREATE TABLE sys.SYSTAB_0 (a int);
|
||||||
|
--error 1105
|
||||||
|
select * from sys.SYSTAB_0;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
|
||||||
|
show warnings;
|
||||||
|
--error 1105
|
||||||
|
select * from sys.SYSTAB_0;
|
||||||
|
|
||||||
|
--error 1051
|
||||||
|
drop table sys.SYSTAB_0;
|
||||||
|
drop table IF EXISTS sys.SYSTAB_0;
|
||||||
|
|
||||||
######################################################
|
######################################################
|
||||||
# Note! This should always be the last step in this
|
# Note! This should always be the last step in this
|
||||||
# file, the table t9 will be used and dropped
|
# file, the table t9 will be used and dropped
|
||||||
|
@ -4445,7 +4445,7 @@ int ndbcluster_discover(THD* thd, const char *db, const char *name,
|
|||||||
{
|
{
|
||||||
const NdbError err= dict->getNdbError();
|
const NdbError err= dict->getNdbError();
|
||||||
if (err.code == 709)
|
if (err.code == 709)
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(-1);
|
||||||
ERR_RETURN(err);
|
ERR_RETURN(err);
|
||||||
}
|
}
|
||||||
DBUG_PRINT("info", ("Found table %s", tab->getName()));
|
DBUG_PRINT("info", ("Found table %s", tab->getName()));
|
||||||
@ -4453,13 +4453,15 @@ int ndbcluster_discover(THD* thd, const char *db, const char *name,
|
|||||||
len= tab->getFrmLength();
|
len= tab->getFrmLength();
|
||||||
if (len == 0 || tab->getFrmData() == NULL)
|
if (len == 0 || tab->getFrmData() == NULL)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("No frm data found",
|
DBUG_PRINT("error", ("No frm data found."));
|
||||||
("Table is probably created via NdbApi"));
|
DBUG_RETURN(1);
|
||||||
DBUG_RETURN(2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unpackfrm(&data, &len, tab->getFrmData()))
|
if (unpackfrm(&data, &len, tab->getFrmData()))
|
||||||
DBUG_RETURN(3);
|
{
|
||||||
|
DBUG_PRINT("error", ("Could not unpack table"));
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
|
|
||||||
*frmlen= len;
|
*frmlen= len;
|
||||||
*frmblob= data;
|
*frmblob= data;
|
||||||
@ -4472,11 +4474,11 @@ int ndbcluster_discover(THD* thd, const char *db, const char *name,
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ndbcluster_table_exists(THD* thd, const char *db, const char *name)
|
int ndbcluster_table_exists_in_engine(THD* thd, const char *db, const char *name)
|
||||||
{
|
{
|
||||||
const NDBTAB* tab;
|
const NDBTAB* tab;
|
||||||
Ndb* ndb;
|
Ndb* ndb;
|
||||||
DBUG_ENTER("ndbcluster_table_exists");
|
DBUG_ENTER("ndbcluster_table_exists_in_engine");
|
||||||
DBUG_PRINT("enter", ("db: %s, name: %s", db, name));
|
DBUG_PRINT("enter", ("db: %s, name: %s", db, name));
|
||||||
|
|
||||||
if (!(ndb= check_ndb_in_thd(thd)))
|
if (!(ndb= check_ndb_in_thd(thd)))
|
||||||
@ -4655,7 +4657,7 @@ int ndbcluster_find_files(THD *thd,const char *db,const char *path,
|
|||||||
DBUG_PRINT("info", ("%s existed on disk", name));
|
DBUG_PRINT("info", ("%s existed on disk", name));
|
||||||
// The .ndb file exists on disk, but it's not in list of tables in ndb
|
// The .ndb file exists on disk, but it's not in list of tables in ndb
|
||||||
// Verify that handler agrees table is gone.
|
// Verify that handler agrees table is gone.
|
||||||
if (ndbcluster_table_exists(thd, db, file_name) == 0)
|
if (ndbcluster_table_exists_in_engine(thd, db, file_name) == 0)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("NDB says %s does not exists", file_name));
|
DBUG_PRINT("info", ("NDB says %s does not exists", file_name));
|
||||||
it.remove();
|
it.remove();
|
||||||
@ -4709,7 +4711,7 @@ int ndbcluster_find_files(THD *thd,const char *db,const char *path,
|
|||||||
while ((file_name=it2++))
|
while ((file_name=it2++))
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("Table %s need discovery", name));
|
DBUG_PRINT("info", ("Table %s need discovery", name));
|
||||||
if (ha_create_table_from_engine(thd, db, file_name, TRUE) == 0)
|
if (ha_create_table_from_engine(thd, db, file_name) == 0)
|
||||||
files->push_back(thd->strdup(file_name));
|
files->push_back(thd->strdup(file_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -681,7 +681,8 @@ int ndbcluster_discover(THD* thd, const char* dbname, const char* name,
|
|||||||
const void** frmblob, uint* frmlen);
|
const void** frmblob, uint* frmlen);
|
||||||
int ndbcluster_find_files(THD *thd,const char *db,const char *path,
|
int ndbcluster_find_files(THD *thd,const char *db,const char *path,
|
||||||
const char *wild, bool dir, List<char> *files);
|
const char *wild, bool dir, List<char> *files);
|
||||||
int ndbcluster_table_exists(THD* thd, const char *db, const char *name);
|
int ndbcluster_table_exists_in_engine(THD* thd,
|
||||||
|
const char *db, const char *name);
|
||||||
int ndbcluster_drop_database(const char* path);
|
int ndbcluster_drop_database(const char* path);
|
||||||
|
|
||||||
void ndbcluster_print_error(int error, const NdbOperation *error_op);
|
void ndbcluster_print_error(int error, const NdbOperation *error_op);
|
||||||
|
105
sql/handler.cc
105
sql/handler.cc
@ -1928,21 +1928,19 @@ int ha_create_table(const char *name, HA_CREATE_INFO *create_info,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Try to discover table from engine and
|
Try to discover table from engine and
|
||||||
if found, write the frm file to disk.
|
if found, write the frm file to disk.
|
||||||
|
|
||||||
RETURN VALUES:
|
RETURN VALUES:
|
||||||
0 : Table existed in engine and created
|
-1 : Table did not exists
|
||||||
on disk if so requested
|
0 : Table created ok
|
||||||
1 : Table does not exist
|
> 0 : Error, table existed but could not be created
|
||||||
>1 : error
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ha_create_table_from_engine(THD* thd,
|
int ha_create_table_from_engine(THD* thd,
|
||||||
const char *db,
|
const char *db,
|
||||||
const char *name,
|
const char *name)
|
||||||
bool create_if_found)
|
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
const void *frmblob;
|
const void *frmblob;
|
||||||
@ -1951,45 +1949,47 @@ int ha_create_table_from_engine(THD* thd,
|
|||||||
HA_CREATE_INFO create_info;
|
HA_CREATE_INFO create_info;
|
||||||
TABLE table;
|
TABLE table;
|
||||||
DBUG_ENTER("ha_create_table_from_engine");
|
DBUG_ENTER("ha_create_table_from_engine");
|
||||||
DBUG_PRINT("enter", ("name '%s'.'%s' create_if_found: %d",
|
DBUG_PRINT("enter", ("name '%s'.'%s'",
|
||||||
db, name, create_if_found));
|
db, name));
|
||||||
|
|
||||||
bzero((char*) &create_info,sizeof(create_info));
|
bzero((char*) &create_info,sizeof(create_info));
|
||||||
|
|
||||||
if ((error= ha_discover(thd, db, name, &frmblob, &frmlen)))
|
if(error= ha_discover(thd, db, name, &frmblob, &frmlen))
|
||||||
DBUG_RETURN(error);
|
|
||||||
/*
|
|
||||||
Table exists in handler
|
|
||||||
frmblob and frmlen are set
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (create_if_found)
|
|
||||||
{
|
{
|
||||||
(void)strxnmov(path,FN_REFLEN,mysql_data_home,"/",db,"/",name,NullS);
|
// Table could not be discovered and thus not created
|
||||||
// Save the frm file
|
DBUG_RETURN(error);
|
||||||
if ((error = writefrm(path, frmblob, frmlen)))
|
|
||||||
goto err_end;
|
|
||||||
|
|
||||||
if (openfrm(thd, path,"",0,(uint) READ_ALL, 0, &table))
|
|
||||||
DBUG_RETURN(1);
|
|
||||||
|
|
||||||
update_create_info_from_table(&create_info, &table);
|
|
||||||
create_info.table_options|= HA_CREATE_FROM_ENGINE;
|
|
||||||
|
|
||||||
if (lower_case_table_names == 2 &&
|
|
||||||
!(table.file->table_flags() & HA_FILE_BASED))
|
|
||||||
{
|
|
||||||
/* Ensure that handler gets name in lower case */
|
|
||||||
my_casedn_str(files_charset_info, path);
|
|
||||||
}
|
|
||||||
|
|
||||||
error=table.file->create(path,&table,&create_info);
|
|
||||||
VOID(closefrm(&table));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err_end:
|
/*
|
||||||
|
Table exists in handler and could be discovered
|
||||||
|
frmblob and frmlen are set, write the frm to disk
|
||||||
|
*/
|
||||||
|
|
||||||
|
(void)strxnmov(path,FN_REFLEN,mysql_data_home,"/",db,"/",name,NullS);
|
||||||
|
// Save the frm file
|
||||||
|
if (writefrm(path, frmblob, frmlen))
|
||||||
|
{
|
||||||
|
my_free((char*) frmblob, MYF(MY_ALLOW_ZERO_PTR));
|
||||||
|
DBUG_RETURN(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (openfrm(thd, path,"",0,(uint) READ_ALL, 0, &table))
|
||||||
|
DBUG_RETURN(3);
|
||||||
|
|
||||||
|
update_create_info_from_table(&create_info, &table);
|
||||||
|
create_info.table_options|= HA_CREATE_FROM_ENGINE;
|
||||||
|
|
||||||
|
if (lower_case_table_names == 2 &&
|
||||||
|
!(table.file->table_flags() & HA_FILE_BASED))
|
||||||
|
{
|
||||||
|
/* Ensure that handler gets name in lower case */
|
||||||
|
my_casedn_str(files_charset_info, path);
|
||||||
|
}
|
||||||
|
error=table.file->create(path,&table,&create_info);
|
||||||
|
VOID(closefrm(&table));
|
||||||
my_free((char*) frmblob, MYF(MY_ALLOW_ZERO_PTR));
|
my_free((char*) frmblob, MYF(MY_ALLOW_ZERO_PTR));
|
||||||
DBUG_RETURN(error);
|
|
||||||
|
DBUG_RETURN(error != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void st_ha_check_opt::init()
|
void st_ha_check_opt::init()
|
||||||
@ -2092,14 +2092,15 @@ int ha_change_key_cache(KEY_CACHE *old_key_cache,
|
|||||||
Try to discover one table from handler(s)
|
Try to discover one table from handler(s)
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
0 ok. In this case *frmblob and *frmlen are set
|
-1 : Table did not exists
|
||||||
1 error. frmblob and frmlen may not be set
|
0 : OK. In this case *frmblob and *frmlen are set
|
||||||
|
>0 : error. frmblob and frmlen may not be set
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ha_discover(THD *thd, const char *db, const char *name,
|
int ha_discover(THD *thd, const char *db, const char *name,
|
||||||
const void **frmblob, uint *frmlen)
|
const void **frmblob, uint *frmlen)
|
||||||
{
|
{
|
||||||
int error= 1; // Table does not exist in any handler
|
int error= -1; // Table does not exist in any handler
|
||||||
DBUG_ENTER("ha_discover");
|
DBUG_ENTER("ha_discover");
|
||||||
DBUG_PRINT("enter", ("db: %s, name: %s", db, name));
|
DBUG_PRINT("enter", ("db: %s, name: %s", db, name));
|
||||||
#ifdef HAVE_NDBCLUSTER_DB
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
@ -2131,11 +2132,8 @@ ha_find_files(THD *thd,const char *db,const char *path,
|
|||||||
error= ndbcluster_find_files(thd, db, path, wild, dir, files);
|
error= ndbcluster_find_files(thd, db, path, wild, dir, files);
|
||||||
#endif
|
#endif
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NOT_YET_USED
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Ask handler if the table exists in engine
|
Ask handler if the table exists in engine
|
||||||
@ -2146,20 +2144,19 @@ ha_find_files(THD *thd,const char *db,const char *path,
|
|||||||
# Error code
|
# Error code
|
||||||
|
|
||||||
*/
|
*/
|
||||||
int ha_table_exists(THD* thd, const char* db, const char* name)
|
int ha_table_exists_in_engine(THD* thd, const char* db, const char* name)
|
||||||
{
|
{
|
||||||
int error= 2;
|
int error= 0;
|
||||||
DBUG_ENTER("ha_table_exists");
|
DBUG_ENTER("ha_table_exists_in_engine");
|
||||||
DBUG_PRINT("enter", ("db: %s, name: %s", db, name));
|
DBUG_PRINT("enter", ("db: %s, name: %s", db, name));
|
||||||
#ifdef HAVE_NDBCLUSTER_DB
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
if (have_ndbcluster == SHOW_OPTION_YES)
|
if (have_ndbcluster == SHOW_OPTION_YES)
|
||||||
error= ndbcluster_table_exists(thd, db, name);
|
error= ndbcluster_table_exists_in_engine(thd, db, name);
|
||||||
#endif
|
#endif
|
||||||
|
DBUG_PRINT("exit", ("error: %d", error));
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Read the first row of a multi-range set.
|
Read the first row of a multi-range set.
|
||||||
|
@ -831,13 +831,12 @@ int ha_delete_table(THD *thd, enum db_type db_type, const char *path,
|
|||||||
const char *alias, bool generate_warning);
|
const char *alias, bool generate_warning);
|
||||||
|
|
||||||
/* discovery */
|
/* discovery */
|
||||||
int ha_create_table_from_engine(THD* thd, const char *db, const char *name,
|
int ha_create_table_from_engine(THD* thd, const char *db, const char *name);
|
||||||
bool create_if_found);
|
|
||||||
int ha_discover(THD* thd, const char* dbname, const char* name,
|
int ha_discover(THD* thd, const char* dbname, const char* name,
|
||||||
const void** frmblob, uint* frmlen);
|
const void** frmblob, uint* frmlen);
|
||||||
int ha_find_files(THD *thd,const char *db,const char *path,
|
int ha_find_files(THD *thd,const char *db,const char *path,
|
||||||
const char *wild, bool dir,List<char>* files);
|
const char *wild, bool dir,List<char>* files);
|
||||||
int ha_table_exists(THD* thd, const char* db, const char* name);
|
int ha_table_exists_in_engine(THD* thd, const char* db, const char* name);
|
||||||
|
|
||||||
/* key cache */
|
/* key cache */
|
||||||
int ha_init_key_cache(const char *name, KEY_CACHE *key_cache);
|
int ha_init_key_cache(const char *name, KEY_CACHE *key_cache);
|
||||||
|
@ -363,6 +363,7 @@ String *Item_func_des_encrypt::val_str(String *str)
|
|||||||
{
|
{
|
||||||
DBUG_ASSERT(fixed == 1);
|
DBUG_ASSERT(fixed == 1);
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
|
uint code= ER_WRONG_PARAMETERS_TO_PROCEDURE;
|
||||||
DES_cblock ivec;
|
DES_cblock ivec;
|
||||||
struct st_des_keyblock keyblock;
|
struct st_des_keyblock keyblock;
|
||||||
struct st_des_keyschedule keyschedule;
|
struct st_des_keyschedule keyschedule;
|
||||||
@ -371,7 +372,7 @@ String *Item_func_des_encrypt::val_str(String *str)
|
|||||||
String *res= args[0]->val_str(str);
|
String *res= args[0]->val_str(str);
|
||||||
|
|
||||||
if ((null_value=args[0]->null_value))
|
if ((null_value=args[0]->null_value))
|
||||||
return 0;
|
goto error;
|
||||||
if ((res_length=res->length()) == 0)
|
if ((res_length=res->length()) == 0)
|
||||||
return &my_empty_string;
|
return &my_empty_string;
|
||||||
|
|
||||||
@ -419,6 +420,7 @@ String *Item_func_des_encrypt::val_str(String *str)
|
|||||||
|
|
||||||
tail= (8-(res_length) % 8); // 1..8 marking extra length
|
tail= (8-(res_length) % 8); // 1..8 marking extra length
|
||||||
res_length+=tail;
|
res_length+=tail;
|
||||||
|
code= ER_OUT_OF_RESOURCES;
|
||||||
if (tail && res->append(append_str, tail) || tmp_value.alloc(res_length+1))
|
if (tail && res->append(append_str, tail) || tmp_value.alloc(res_length+1))
|
||||||
goto error;
|
goto error;
|
||||||
(*res)[res_length-1]=tail; // save extra length
|
(*res)[res_length-1]=tail; // save extra length
|
||||||
@ -436,6 +438,13 @@ String *Item_func_des_encrypt::val_str(String *str)
|
|||||||
return &tmp_value;
|
return &tmp_value;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,
|
||||||
|
code, ER(code),
|
||||||
|
"des_encrypt");
|
||||||
|
#else
|
||||||
|
push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,
|
||||||
|
ER_FEATURE_DISABLED, ER(ER_FEATURE_DISABLED),
|
||||||
|
"des_encrypt","--with-openssl");
|
||||||
#endif /* HAVE_OPENSSL */
|
#endif /* HAVE_OPENSSL */
|
||||||
null_value=1;
|
null_value=1;
|
||||||
return 0;
|
return 0;
|
||||||
@ -446,6 +455,7 @@ String *Item_func_des_decrypt::val_str(String *str)
|
|||||||
{
|
{
|
||||||
DBUG_ASSERT(fixed == 1);
|
DBUG_ASSERT(fixed == 1);
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
|
uint code= ER_WRONG_PARAMETERS_TO_PROCEDURE;
|
||||||
DES_key_schedule ks1, ks2, ks3;
|
DES_key_schedule ks1, ks2, ks3;
|
||||||
DES_cblock ivec;
|
DES_cblock ivec;
|
||||||
struct st_des_keyblock keyblock;
|
struct st_des_keyblock keyblock;
|
||||||
@ -454,7 +464,7 @@ String *Item_func_des_decrypt::val_str(String *str)
|
|||||||
uint length=res->length(),tail;
|
uint length=res->length(),tail;
|
||||||
|
|
||||||
if ((null_value=args[0]->null_value))
|
if ((null_value=args[0]->null_value))
|
||||||
return 0;
|
goto error;
|
||||||
length=res->length();
|
length=res->length();
|
||||||
if (length < 9 || (length % 8) != 1 || !((*res)[0] & 128))
|
if (length < 9 || (length % 8) != 1 || !((*res)[0] & 128))
|
||||||
return res; // Skip decryption if not encrypted
|
return res; // Skip decryption if not encrypted
|
||||||
@ -485,6 +495,7 @@ String *Item_func_des_decrypt::val_str(String *str)
|
|||||||
DES_set_key_unchecked(&keyblock.key2,&keyschedule.ks2);
|
DES_set_key_unchecked(&keyblock.key2,&keyschedule.ks2);
|
||||||
DES_set_key_unchecked(&keyblock.key3,&keyschedule.ks3);
|
DES_set_key_unchecked(&keyblock.key3,&keyschedule.ks3);
|
||||||
}
|
}
|
||||||
|
code= ER_OUT_OF_RESOURCES;
|
||||||
if (tmp_value.alloc(length-1))
|
if (tmp_value.alloc(length-1))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@ -498,11 +509,19 @@ String *Item_func_des_decrypt::val_str(String *str)
|
|||||||
&ivec, FALSE);
|
&ivec, FALSE);
|
||||||
/* Restore old length of key */
|
/* Restore old length of key */
|
||||||
if ((tail=(uint) (uchar) tmp_value[length-2]) > 8)
|
if ((tail=(uint) (uchar) tmp_value[length-2]) > 8)
|
||||||
goto error; // Wrong key
|
goto wrong_key; // Wrong key
|
||||||
tmp_value.length(length-1-tail);
|
tmp_value.length(length-1-tail);
|
||||||
return &tmp_value;
|
return &tmp_value;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,
|
||||||
|
code, ER(code),
|
||||||
|
"des_decrypt");
|
||||||
|
wrong_key:
|
||||||
|
#else
|
||||||
|
push_warning_printf(current_thd,MYSQL_ERROR::WARN_LEVEL_ERROR,
|
||||||
|
ER_FEATURE_DISABLED, ER(ER_FEATURE_DISABLED),
|
||||||
|
"des_decrypt","--with-openssl");
|
||||||
#endif /* HAVE_OPENSSL */
|
#endif /* HAVE_OPENSSL */
|
||||||
null_value=1;
|
null_value=1;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1611,8 +1611,18 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db,
|
|||||||
*/
|
*/
|
||||||
if (discover_retry_count++ != 0)
|
if (discover_retry_count++ != 0)
|
||||||
goto err;
|
goto err;
|
||||||
if (ha_create_table_from_engine(thd, db, name, TRUE) != 0)
|
if (ha_create_table_from_engine(thd, db, name) > 0)
|
||||||
|
{
|
||||||
|
/* Give right error message */
|
||||||
|
thd->clear_error();
|
||||||
|
DBUG_PRINT("error", ("Dicovery of %s/%s failed", db, name));
|
||||||
|
my_printf_error(ER_UNKNOWN_ERROR,
|
||||||
|
"Failed to open '%-.64s', error while "
|
||||||
|
"unpacking from engine",
|
||||||
|
MYF(0), name);
|
||||||
|
|
||||||
goto err;
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
mysql_reset_errors(thd, 1); // Clear warnings
|
mysql_reset_errors(thd, 1); // Clear warnings
|
||||||
thd->clear_error(); // Clear error message
|
thd->clear_error(); // Clear error message
|
||||||
|
@ -256,16 +256,18 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
|
|||||||
build_table_path(path, sizeof(path), db, alias, reg_ext);
|
build_table_path(path, sizeof(path), db, alias, reg_ext);
|
||||||
}
|
}
|
||||||
if (drop_temporary ||
|
if (drop_temporary ||
|
||||||
(access(path,F_OK) &&
|
(access(path,F_OK) &&
|
||||||
ha_create_table_from_engine(thd,db,alias,TRUE)) ||
|
ha_create_table_from_engine(thd,db,alias)) ||
|
||||||
(!drop_view && mysql_frm_type(path) != FRMTYPE_TABLE))
|
(!drop_view && mysql_frm_type(path) != FRMTYPE_TABLE))
|
||||||
{
|
{
|
||||||
|
// Table was not found on disk and table can't be created from engine
|
||||||
if (if_exists)
|
if (if_exists)
|
||||||
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
||||||
ER_BAD_TABLE_ERROR, ER(ER_BAD_TABLE_ERROR),
|
ER_BAD_TABLE_ERROR, ER(ER_BAD_TABLE_ERROR),
|
||||||
table->table_name);
|
table->table_name);
|
||||||
else
|
else
|
||||||
error= 1;
|
error= 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1604,15 +1606,14 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
{
|
{
|
||||||
bool create_if_not_exists =
|
bool create_if_not_exists =
|
||||||
create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS;
|
create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS;
|
||||||
if (!ha_create_table_from_engine(thd, db, table_name,
|
if (ha_table_exists_in_engine(thd, db, table_name))
|
||||||
create_if_not_exists))
|
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("Table already existed in handler"));
|
DBUG_PRINT("info", ("Table with same name already existed in handler"));
|
||||||
|
|
||||||
if (create_if_not_exists)
|
if (create_if_not_exists)
|
||||||
{
|
{
|
||||||
create_info->table_existed= 1; // Mark that table existed
|
create_info->table_existed= 1; // Mark that table existed
|
||||||
error= FALSE;
|
error= FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), table_name);
|
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), table_name);
|
||||||
|
Reference in New Issue
Block a user