1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-22740: UBSAN: sql/opt_split.cc:1150:28: runtime error: shift exponent 61 is too large for 32-bit type 'int' (on optimized builds)

Use a ulonglong instead of uint when left shifting to calculate the table map for all the tables in a query
This commit is contained in:
Varun Gupta
2020-12-14 16:51:30 +05:30
parent 18256bce23
commit e5d88e03be

View File

@ -1149,7 +1149,7 @@ bool JOIN_TAB::fix_splitting(SplM_plan_info *spl_plan,
bool JOIN::fix_all_splittings_in_plan() bool JOIN::fix_all_splittings_in_plan()
{ {
table_map prev_tables= 0; table_map prev_tables= 0;
table_map all_tables= (1 << table_count) - 1; table_map all_tables= (table_map(1) << table_count) - 1;
for (uint tablenr= 0; tablenr < table_count; tablenr++) for (uint tablenr= 0; tablenr < table_count; tablenr++)
{ {
POSITION *cur_pos= &best_positions[tablenr]; POSITION *cur_pos= &best_positions[tablenr];