Merge branch '5.5' into 10.0

This commit is contained in:
Vicențiu Ciorbaru 2018-06-10 17:16:27 +03:00
commit 3ead951180
27 changed files with 259 additions and 54 deletions

6
.gitignore vendored
View File

@ -461,3 +461,9 @@ UpgradeLog*.htm
# Microsoft Fakes # Microsoft Fakes
FakesAssemblies/ FakesAssemblies/
# macOS garbage
.DS_Store
# QtCreator && CodeBlocks
*.cbp

View File

@ -378,6 +378,10 @@ INCLUDE(maintainer)
IF(WITH_UNIT_TESTS) IF(WITH_UNIT_TESTS)
ENABLE_TESTING() ENABLE_TESTING()
# This is the only instance where ADD_TEST should be used,
# to make sure that make test will run MTR,
# use MY_ADD_TEST macro to add other tests
ADD_TEST(NAME MTR COMMAND ./mysql-test-run WORKING_DIRECTORY "mysql-test")
ADD_SUBDIRECTORY(unittest/mytap) ADD_SUBDIRECTORY(unittest/mytap)
ADD_SUBDIRECTORY(unittest/strings) ADD_SUBDIRECTORY(unittest/strings)
ADD_SUBDIRECTORY(unittest/examples) ADD_SUBDIRECTORY(unittest/examples)

View File

@ -4893,6 +4893,14 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
if (opt_xml) if (opt_xml)
print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS); print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS);
/* obtain dump of routines (procs/functions) */
if (opt_routines && mysql_get_server_version(mysql) >= 50009)
{
DBUG_PRINT("info", ("Dumping routines for database %s", db));
dump_routines_for_db(db);
}
if (opt_single_transaction && mysql_get_server_version(mysql) >= 50500) if (opt_single_transaction && mysql_get_server_version(mysql) >= 50500)
{ {
verbose_msg("-- Setting savepoint...\n"); verbose_msg("-- Setting savepoint...\n");
@ -4902,7 +4910,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
DBUG_RETURN(1); DBUG_RETURN(1);
} }
} }
/* Dump each selected table */ /* Dump each selected table */
for (pos= dump_tables; pos < end; pos++) for (pos= dump_tables; pos < end; pos++)
{ {
@ -4964,12 +4971,6 @@ static int dump_selected_tables(char *db, char **table_names, int tables)
DBUG_PRINT("info", ("Dumping events for database %s", db)); DBUG_PRINT("info", ("Dumping events for database %s", db));
dump_events_for_db(db); dump_events_for_db(db);
} }
/* obtain dump of routines (procs/functions) */
if (opt_routines && mysql_get_server_version(mysql) >= 50009)
{
DBUG_PRINT("info", ("Dumping routines for database %s", db));
dump_routines_for_db(db);
}
free_root(&glob_root, MYF(0)); free_root(&glob_root, MYF(0));
if (opt_xml) if (opt_xml)
{ {

View File

@ -853,7 +853,7 @@ build_table_string(void)
if (auto_generate_sql_guid_primary) if (auto_generate_sql_guid_primary)
{ {
dynstr_append(&table_string, "id varchar(32) primary key"); dynstr_append(&table_string, "id varchar(36) primary key");
if (num_int_cols || num_char_cols || auto_generate_sql_guid_primary) if (num_int_cols || num_char_cols || auto_generate_sql_guid_primary)
dynstr_append(&table_string, ","); dynstr_append(&table_string, ",");
@ -868,7 +868,7 @@ build_table_string(void)
if (count) /* Except for the first pass we add a comma */ if (count) /* Except for the first pass we add a comma */
dynstr_append(&table_string, ","); dynstr_append(&table_string, ",");
if (snprintf(buf, HUGE_STRING_LENGTH, "id%d varchar(32) unique key", count) if (snprintf(buf, HUGE_STRING_LENGTH, "id%d varchar(36) unique key", count)
> HUGE_STRING_LENGTH) > HUGE_STRING_LENGTH)
{ {
fprintf(stderr, "Memory Allocation error in create table\n"); fprintf(stderr, "Memory Allocation error in create table\n");

View File

@ -2,7 +2,7 @@
INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/cmake_parse_arguments.cmake) INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/cmake_parse_arguments.cmake)
MACRO(MY_ADD_TEST name) MACRO(MY_ADD_TEST name)
ADD_TEST(${name} ${name}-t) ADD_TEST(NAME ${name} COMMAND ${name}-t CONFIGURATIONS default_ignore)
ENDMACRO() ENDMACRO()
MACRO (MY_ADD_TESTS) MACRO (MY_ADD_TESTS)

View File

@ -6128,7 +6128,7 @@ sub lldb_arguments {
$input = $input ? "< $input" : ""; $input = $input ? "< $input" : "";
# write init file for mysqld or client # write init file for mysqld or client
mtr_tofile($lldb_init_file, "set args $str $input\n"); mtr_tofile($lldb_init_file, "process launch --stop-at-entry -- $str $input\n");
print "\nTo start lldb for $type, type in another window:\n"; print "\nTo start lldb for $type, type in another window:\n";
print "cd $glob_mysql_test_dir && lldb -s $lldb_init_file $$exe\n"; print "cd $glob_mysql_test_dir && lldb -s $lldb_init_file $$exe\n";

View File

@ -146,3 +146,19 @@ a
16 16
DROP TABLE t1; DROP TABLE t1;
End of 5.1 tests End of 5.1 tests
#
# mdev-16235: SELECT over a table with LIMIT 0
#
EXPLAIN
SELECT * FROM mysql.slow_log WHERE sql_text != 'foo' LIMIT 0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Zero limit
SELECT * FROM mysql.slow_log WHERE sql_text != 'foo' LIMIT 0;
start_time user_host query_time lock_time rows_sent rows_examined db last_insert_id insert_id server_id sql_text
EXPLAIN
SELECT * FROM mysql.help_topic WHERE help_category_id != example LIMIT 0;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Zero limit
SELECT * FROM mysql.help_topic WHERE help_category_id != example LIMIT 0;
help_topic_id name help_category_id description example url
End of 5.5 tests

View File

@ -5404,3 +5404,18 @@ DELIMITER ;
ALTER DATABASE `a\"'``b` CHARACTER SET utf8 COLLATE utf8_general_ci ; ALTER DATABASE `a\"'``b` CHARACTER SET utf8 COLLATE utf8_general_ci ;
DROP DATABASE `a\"'``b`; DROP DATABASE `a\"'``b`;
FOUND /Database: mysql/ in bug11505.sql FOUND /Database: mysql/ in bug11505.sql
#
# MDEV-15021: Fix the order in which routines are called
#
use test;
CREATE FUNCTION f() RETURNS INT RETURN 1;
CREATE VIEW v1 AS SELECT f();
# Running mysqldump -uroot test --routines --tables v1 > **vardir**/test.dmp
DROP VIEW v1;
DROP FUNCTION f;
# Running mysql -uroot test < **vardir**/test.dmp
#
# Cleanup after succesful import.
#
DROP VIEW v1;
DROP FUNCTION f;

View File

@ -255,3 +255,6 @@ Benchmark
# MDEV-4684 - Enhancement request: --init-command support for mysqlslap # MDEV-4684 - Enhancement request: --init-command support for mysqlslap
# #
DROP TABLE t1; DROP TABLE t1;
#
# Bug MDEV-15789 (Upstream: #80329): MYSQLSLAP OPTIONS --AUTO-GENERATE-SQL-GUID-PRIMARY and --AUTO-GENERATE-SQL-SECONDARY-INDEXES DONT WORK
#

View File

@ -2499,7 +2499,7 @@ SELECT 2 IN (SELECT 2 from DUAL WHERE 1 != 1);
SET optimizer_switch= @@global.optimizer_switch; SET optimizer_switch= @@global.optimizer_switch;
set @@tmp_table_size= @@global.tmp_table_size; set @@tmp_table_size= @@global.tmp_table_size;
# #
# mfrv-14515: Wrong results for tableless query with subquery in WHERE # mdev-14515: Wrong results for tableless query with subquery in WHERE
# and implicit aggregation # and implicit aggregation
# #
create table t1 (i1 int, i2 int); create table t1 (i1 int, i2 int);

View File

@ -334,7 +334,7 @@ SELECT * FROM t1
WHERE (f1) IN (SELECT f1 FROM t2) WHERE (f1) IN (SELECT f1 FROM t2)
LIMIT 0; LIMIT 0;
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 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Zero limit
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where 2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 SELECT * FROM t1
WHERE (f1) IN (SELECT f1 FROM t2) WHERE (f1) IN (SELECT f1 FROM t2)

View File

@ -1634,3 +1634,60 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 11 func 1 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 11 func 1
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where
DROP TABLE t1,t2; DROP TABLE t1,t2;
#
# MDEV-16225: wrong resultset from query with semijoin=on
#
CREATE TABLE t1 (
`id` int(10) NOT NULL AUTO_INCREMENT,
`local_name` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;
insert into t1(`id`,`local_name`) values
(1,'Cash Advance'),
(2,'Cash Advance'),
(3,'Rollover'),
(4,'AL Installment'),
(5,'AL Installment'),
(6,'AL Installment'),
(7,'AL Installment'),
(8,'AL Installment'),
(9,'AL Installment'),
(10,'Internet Payday'),
(11,'Rollover - Internet Payday'),
(12,'AL Monthly Installment'),
(13,'AL Semi-Monthly Installment');
explain
SELECT SQL_NO_CACHE t.id
FROM t1 t
WHERE (
t.id IN (SELECT A.id FROM t1 AS A WHERE A.local_name IN (SELECT B.local_name FROM t1 AS B WHERE B.id IN (0,4,12,13,1,10,3,11)))
OR
(t.id IN (0,4,12,13,1,10,3,11))
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t index PRIMARY PRIMARY 4 NULL 13 Using where; Using index
2 MATERIALIZED <subquery3> ALL distinct_key NULL NULL NULL 8
2 MATERIALIZED A ALL PRIMARY NULL NULL NULL 13 Using where; Using join buffer (flat, BNL join)
3 MATERIALIZED B ALL PRIMARY NULL NULL NULL 13 Using where
SELECT SQL_NO_CACHE t.id
FROM t1 t
WHERE (
t.id IN (SELECT A.id FROM t1 AS A WHERE A.local_name IN (SELECT B.local_name FROM t1 AS B WHERE B.id IN (0,4,12,13,1,10,3,11)))
OR
(t.id IN (0,4,12,13,1,10,3,11))
);
id
1
2
3
4
5
6
7
8
9
10
11
12
13
drop table t1;

View File

@ -40,7 +40,7 @@ sub start_test {
return "Not run for embedded server" if $::opt_embedded_server; return "Not run for embedded server" if $::opt_embedded_server;
return "Not configured to run ctest" unless -f "../CTestTestfile.cmake"; return "Not configured to run ctest" unless -f "../CTestTestfile.cmake";
my ($ctest_vs)= $opt_vs_config ? "--build-config $opt_vs_config" : ""; my ($ctest_vs)= $opt_vs_config ? "--build-config $opt_vs_config" : "";
my (@ctest_list)= `cd .. && ctest $opt_vs_config --show-only --verbose`; my (@ctest_list)= `cd .. && ctest $opt_vs_config -E MTR -C default_ignore --show-only --verbose`;
return "No ctest" if $?; return "No ctest" if $?;
my ($command, %tests); my ($command, %tests);

View File

@ -115,3 +115,17 @@ SELECT a FROM t1 ORDER BY a LIMIT 2 OFFSET 14;
DROP TABLE t1; DROP TABLE t1;
--echo End of 5.1 tests --echo End of 5.1 tests
--echo #
--echo # mdev-16235: SELECT over a table with LIMIT 0
--echo #
EXPLAIN
SELECT * FROM mysql.slow_log WHERE sql_text != 'foo' LIMIT 0;
SELECT * FROM mysql.slow_log WHERE sql_text != 'foo' LIMIT 0;
EXPLAIN
SELECT * FROM mysql.help_topic WHERE help_category_id != example LIMIT 0;
SELECT * FROM mysql.help_topic WHERE help_category_id != example LIMIT 0;
--echo End of 5.5 tests

View File

@ -2570,3 +2570,25 @@ let SEARCH_FILE=$MYSQLTEST_VARDIR/tmp/bug11505.sql;
let SEARCH_PATTERN=Database: mysql; let SEARCH_PATTERN=Database: mysql;
exec $MYSQL_DUMP mysql func > $SEARCH_FILE; exec $MYSQL_DUMP mysql func > $SEARCH_FILE;
source include/search_pattern_in_file.inc; source include/search_pattern_in_file.inc;
--echo #
--echo # MDEV-15021: Fix the order in which routines are called
--echo #
use test;
CREATE FUNCTION f() RETURNS INT RETURN 1;
CREATE VIEW v1 AS SELECT f();
--echo # Running mysqldump -uroot test --routines --tables v1 > **vardir**/test.dmp
--exec $MYSQL_DUMP -uroot test --routines --tables v1 > $MYSQLTEST_VARDIR/test.dmp
DROP VIEW v1;
DROP FUNCTION f;
--echo # Running mysql -uroot test < **vardir**/test.dmp
--exec $MYSQL -uroot test < $MYSQLTEST_VARDIR/test.dmp
--echo #
--echo # Cleanup after succesful import.
--echo #
DROP VIEW v1;
DROP FUNCTION f;

View File

@ -80,3 +80,11 @@ DROP DATABASE bug58090;
--exec $MYSQL_SLAP --create-schema=test --init-command="CREATE TABLE t1(a INT)" --silent --concurrency=1 --iterations=1 --exec $MYSQL_SLAP --create-schema=test --init-command="CREATE TABLE t1(a INT)" --silent --concurrency=1 --iterations=1
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # Bug MDEV-15789 (Upstream: #80329): MYSQLSLAP OPTIONS --AUTO-GENERATE-SQL-GUID-PRIMARY and --AUTO-GENERATE-SQL-SECONDARY-INDEXES DONT WORK
--echo #
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-guid-primary --create-schema=slap
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-secondary-indexes=1 --create-schema=slap

View File

@ -2044,7 +2044,7 @@ SET optimizer_switch= @@global.optimizer_switch;
set @@tmp_table_size= @@global.tmp_table_size; set @@tmp_table_size= @@global.tmp_table_size;
--echo # --echo #
--echo # mfrv-14515: Wrong results for tableless query with subquery in WHERE --echo # mdev-14515: Wrong results for tableless query with subquery in WHERE
--echo # and implicit aggregation --echo # and implicit aggregation
--echo # --echo #

View File

@ -303,3 +303,45 @@ eval $q;
eval explain $q; eval explain $q;
DROP TABLE t1,t2; DROP TABLE t1,t2;
--echo #
--echo # MDEV-16225: wrong resultset from query with semijoin=on
--echo #
CREATE TABLE t1 (
`id` int(10) NOT NULL AUTO_INCREMENT,
`local_name` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;
insert into t1(`id`,`local_name`) values
(1,'Cash Advance'),
(2,'Cash Advance'),
(3,'Rollover'),
(4,'AL Installment'),
(5,'AL Installment'),
(6,'AL Installment'),
(7,'AL Installment'),
(8,'AL Installment'),
(9,'AL Installment'),
(10,'Internet Payday'),
(11,'Rollover - Internet Payday'),
(12,'AL Monthly Installment'),
(13,'AL Semi-Monthly Installment');
explain
SELECT SQL_NO_CACHE t.id
FROM t1 t
WHERE (
t.id IN (SELECT A.id FROM t1 AS A WHERE A.local_name IN (SELECT B.local_name FROM t1 AS B WHERE B.id IN (0,4,12,13,1,10,3,11)))
OR
(t.id IN (0,4,12,13,1,10,3,11))
);
SELECT SQL_NO_CACHE t.id
FROM t1 t
WHERE (
t.id IN (SELECT A.id FROM t1 AS A WHERE A.local_name IN (SELECT B.local_name FROM t1 AS B WHERE B.id IN (0,4,12,13,1,10,3,11)))
OR
(t.id IN (0,4,12,13,1,10,3,11))
);
drop table t1;

View File

@ -2518,6 +2518,10 @@ static int send_client_reply_packet(MCPVIO_EXT *mpvio,
mysql->client_flag|= CLIENT_MULTI_RESULTS; mysql->client_flag|= CLIENT_MULTI_RESULTS;
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
if (mysql->options.ssl_key || mysql->options.ssl_cert ||
mysql->options.ssl_ca || mysql->options.ssl_capath ||
mysql->options.ssl_cipher)
mysql->options.use_ssl = 1;
if (mysql->options.use_ssl) if (mysql->options.use_ssl)
mysql->client_flag|= CLIENT_SSL; mysql->client_flag|= CLIENT_SSL;
#endif /* HAVE_OPENSSL */ #endif /* HAVE_OPENSSL */

View File

@ -6160,6 +6160,9 @@ find_field_in_natural_join(THD *thd, TABLE_LIST *table_ref, const char *name,
column reference. See create_view_field() for details. column reference. See create_view_field() for details.
*/ */
item= nj_col->create_item(thd); item= nj_col->create_item(thd);
if (!item)
DBUG_RETURN(NULL);
/* /*
*ref != NULL means that *ref contains the item that we need to *ref != NULL means that *ref contains the item that we need to
replace. If the item was aliased by the user, set the alias to replace. If the item was aliased by the user, set the alias to

View File

@ -1245,10 +1245,19 @@ TODO: make view to decide if it is possible to write to WHERE directly or make S
if (cond_value == Item::COND_FALSE || having_value == Item::COND_FALSE || if (cond_value == Item::COND_FALSE || having_value == Item::COND_FALSE ||
(!unit->select_limit_cnt && !(select_options & OPTION_FOUND_ROWS))) (!unit->select_limit_cnt && !(select_options & OPTION_FOUND_ROWS)))
{ /* Impossible cond */ { /* Impossible cond */
DBUG_PRINT("info", (having_value == Item::COND_FALSE ? if (unit->select_limit_cnt)
"Impossible HAVING" : "Impossible WHERE")); {
zero_result_cause= having_value == Item::COND_FALSE ? DBUG_PRINT("info", (having_value == Item::COND_FALSE ?
"Impossible HAVING" : "Impossible WHERE"; "Impossible HAVING" : "Impossible WHERE"));
zero_result_cause= having_value == Item::COND_FALSE ?
"Impossible HAVING" : "Impossible WHERE";
}
else
{
DBUG_PRINT("info", ("Zero limit"));
zero_result_cause= "Zero limit";
conds= 0;
}
table_count= top_join_tab_count= 0; table_count= top_join_tab_count= 0;
error= 0; error= 0;
goto setup_subq_exit; goto setup_subq_exit;
@ -24803,21 +24812,18 @@ void JOIN::set_allowed_join_cache_types()
void JOIN::save_query_plan(Join_plan_state *save_to) void JOIN::save_query_plan(Join_plan_state *save_to)
{ {
if (keyuse.elements) DYNAMIC_ARRAY tmp_keyuse;
{ /* Swap the current and the backup keyuse internal arrays. */
DYNAMIC_ARRAY tmp_keyuse; tmp_keyuse= keyuse;
/* Swap the current and the backup keyuse internal arrays. */ keyuse= save_to->keyuse; /* keyuse is reset to an empty array. */
tmp_keyuse= keyuse; save_to->keyuse= tmp_keyuse;
keyuse= save_to->keyuse; /* keyuse is reset to an empty array. */
save_to->keyuse= tmp_keyuse;
for (uint i= 0; i < table_count; i++) for (uint i= 0; i < table_count; i++)
{ {
save_to->join_tab_keyuse[i]= join_tab[i].keyuse; save_to->join_tab_keyuse[i]= join_tab[i].keyuse;
join_tab[i].keyuse= NULL; join_tab[i].keyuse= NULL;
save_to->join_tab_checked_keys[i]= join_tab[i].checked_keys; save_to->join_tab_checked_keys[i]= join_tab[i].checked_keys;
join_tab[i].checked_keys.clear_all(); join_tab[i].checked_keys.clear_all();
}
} }
memcpy((uchar*) save_to->best_positions, (uchar*) best_positions, memcpy((uchar*) save_to->best_positions, (uchar*) best_positions,
sizeof(POSITION) * (table_count + 1)); sizeof(POSITION) * (table_count + 1));
@ -24855,20 +24861,17 @@ void JOIN::reset_query_plan()
void JOIN::restore_query_plan(Join_plan_state *restore_from) void JOIN::restore_query_plan(Join_plan_state *restore_from)
{ {
if (restore_from->keyuse.elements) DYNAMIC_ARRAY tmp_keyuse;
tmp_keyuse= keyuse;
keyuse= restore_from->keyuse;
restore_from->keyuse= tmp_keyuse;
for (uint i= 0; i < table_count; i++)
{ {
DYNAMIC_ARRAY tmp_keyuse; join_tab[i].keyuse= restore_from->join_tab_keyuse[i];
tmp_keyuse= keyuse; join_tab[i].checked_keys= restore_from->join_tab_checked_keys[i];
keyuse= restore_from->keyuse;
restore_from->keyuse= tmp_keyuse;
for (uint i= 0; i < table_count; i++)
{
join_tab[i].keyuse= restore_from->join_tab_keyuse[i];
join_tab[i].checked_keys= restore_from->join_tab_checked_keys[i];
}
} }
memcpy((uchar*) best_positions, (uchar*) restore_from->best_positions, memcpy((uchar*) best_positions, (uchar*) restore_from->best_positions,
sizeof(POSITION) * (table_count + 1)); sizeof(POSITION) * (table_count + 1));
/* Restore SJM nests */ /* Restore SJM nests */

View File

@ -5336,6 +5336,8 @@ Item *create_view_field(THD *thd, TABLE_LIST *view, Item **field_ref,
Item *item= new Item_direct_view_ref(&view->view->select_lex.context, Item *item= new Item_direct_view_ref(&view->view->select_lex.context,
field_ref, view->alias, field_ref, view->alias,
name, view); name, view);
if (!item)
return NULL;
/* /*
Force creation of nullable item for the result tmp table for outer joined Force creation of nullable item for the result tmp table for outer joined
views/derived tables. views/derived tables.

View File

@ -23,6 +23,12 @@ IF(NOT LIBJEMALLOC)
MESSAGE(WARNING "TokuDB is enabled, but jemalloc is not. This configuration is not supported") MESSAGE(WARNING "TokuDB is enabled, but jemalloc is not. This configuration is not supported")
ENDIF() ENDIF()
CHECK_C_COMPILER_FLAG("-Wshadow" HAVE_WSHADOW)
IF (HAVE_WSHADOW)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-shadow")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-shadow")
ENDIF()
IF (HAVE_WVLA) IF (HAVE_WVLA)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-vla") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-vla")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-vla") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-vla")

View File

@ -107,7 +107,7 @@ size_t toku_malloc_usable_size(void *p) __attribute__((__visibility__("default")
#define XMALLOC(v) CAST_FROM_VOIDP(v, toku_xmalloc(sizeof(*v))) #define XMALLOC(v) CAST_FROM_VOIDP(v, toku_xmalloc(sizeof(*v)))
#define XMALLOC_N(n,v) CAST_FROM_VOIDP(v, toku_xmalloc((n)*sizeof(*v))) #define XMALLOC_N(n,v) CAST_FROM_VOIDP(v, toku_xmalloc((n)*sizeof(*v)))
#define XCALLOC_N(n,v) CAST_FROM_VOIDP(v, toku_xcalloc((n), (sizeof(*v)))) #define XCALLOC_N(n,v) CAST_FROM_VOIDP(v, toku_xcalloc((n), (sizeof(*v))))
#define XCALLOC(v) XCALLOC_N(1,(v)) #define XCALLOC(v) XCALLOC_N(1,v)
#define XREALLOC(v,s) CAST_FROM_VOIDP(v, toku_xrealloc(v, s)) #define XREALLOC(v,s) CAST_FROM_VOIDP(v, toku_xrealloc(v, s))
#define XREALLOC_N(n,v) CAST_FROM_VOIDP(v, toku_xrealloc(v, (n)*sizeof(*v))) #define XREALLOC_N(n,v) CAST_FROM_VOIDP(v, toku_xrealloc(v, (n)*sizeof(*v)))

View File

@ -80,8 +80,8 @@ void dmt<dmtdata_t, dmtdataout_t, dmtwriter_t>::create_from_sorted_memory_of_fix
paranoid_invariant(numvalues > 0); paranoid_invariant(numvalues > 0);
void *ptr = toku_mempool_malloc(&this->mp, aligned_memsize); void *ptr = toku_mempool_malloc(&this->mp, aligned_memsize);
paranoid_invariant_notnull(ptr); paranoid_invariant_notnull(ptr);
uint8_t * const CAST_FROM_VOIDP(dest, ptr); uint8_t * CAST_FROM_VOIDP(dest, ptr);
const uint8_t * const CAST_FROM_VOIDP(src, mem); const uint8_t * CAST_FROM_VOIDP(src, mem);
if (pad_bytes == 0) { if (pad_bytes == 0) {
paranoid_invariant(aligned_memsize == mem_length); paranoid_invariant(aligned_memsize == mem_length);
memcpy(dest, src, aligned_memsize); memcpy(dest, src, aligned_memsize);

View File

@ -127,7 +127,7 @@ public:
paranoid_invariant(index != NODE_NULL); paranoid_invariant(index != NODE_NULL);
m_index = index; m_index = index;
} }
} __attribute__((__packed__,aligned(4))); } ;
template<> template<>
class subtree_templated<true> { class subtree_templated<true> {
@ -184,7 +184,7 @@ public:
inline void disable_bit(void) { inline void disable_bit(void) {
m_bitfield &= MASK_INDEX; m_bitfield &= MASK_INDEX;
} }
} __attribute__((__packed__)) ; } ;
template<typename omtdata_t, bool subtree_supports_marks> template<typename omtdata_t, bool subtree_supports_marks>
class omt_node_templated { class omt_node_templated {
@ -197,7 +197,7 @@ public:
// this needs to be in both implementations because we don't have // this needs to be in both implementations because we don't have
// a "static if" the caller can use // a "static if" the caller can use
inline void clear_stolen_bits(void) {} inline void clear_stolen_bits(void) {}
} __attribute__((__packed__,aligned(4))); } ;
template<typename omtdata_t> template<typename omtdata_t>
class omt_node_templated<omtdata_t, true> { class omt_node_templated<omtdata_t, true> {
@ -234,7 +234,7 @@ public:
this->unset_marked_bit(); this->unset_marked_bit();
this->unset_marks_below_bit(); this->unset_marks_below_bit();
} }
} __attribute__((__packed__,aligned(4))); } ;
} }

View File

@ -28,5 +28,4 @@ ELSE()
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(explain_filename-t sql mytap) TARGET_LINK_LIBRARIES(explain_filename-t sql mytap)
ADD_TEST(explain_filename explain_filename-t) MY_ADD_TEST(explain_filename explain_filename-t)