Hi, Oleksandr! ok to push On Nov 06, Oleksandr Byelkin wrote:
Am 06.11.18 um 20:47 schrieb Sergei Golubchik:
Hi, Oleksandr!
Why did you do that?
You wrote "Fix difference between 32bit/windows and 64bit systems", but to fix just that it would've been enough to change nesting_map to ulonglong.
Using Bitmap<> you're basically preparing for any arbitrary >64 nesting depth. Is this your goal? What feature do you need it for?
My thoughts was like this:
1) we need the same length
2) bitmap64 as efficient as ulonglong
3) why not use something more flexible
On Nov 06, Oleksandr Byelkin wrote:
revision-id: cd41d376d413d066f3d497a67d039515fd385a1c (versioning-1.0.5-36-gcd41d376d41) parent(s): 1748a31ae8d69e4939336f644f884e9de3039e7f author: Oleksandr Byelkin <sanja@mariadb.com> committer: Oleksandr Byelkin <sanja@mariadb.com> timestamp: 2018-07-05 17:49:44 +0200 message:
MDEV-16697: Fix difference between 32bit/windows and 64bit systems in allowed select nest level
diff --git a/include/my_global.h b/include/my_global.h index 11d17ad146a..26078114464 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -984,7 +984,6 @@ typedef unsigned long my_off_t; TODO Convert these to use Bitmap class. */ typedef ulonglong table_map; /* Used for table bits in join */ -typedef ulong nesting_map; /* Used for flags of nesting constructs */
/* often used type names - opaque declarations */ typedef const struct charset_info_st CHARSET_INFO; diff --git a/sql/sql_lex.h b/sql/sql_lex.h --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -33,6 +33,10 @@ #include "sql_tvc.h" #include "item.h"
+/* Used for flags of nesting constructs */ +#define SELECT_NESTING_MAP_SIZE 64 +typedef Bitmap<SELECT_NESTING_MAP_SIZE> nesting_map; +
Regards, Sergei Chief Architect MariaDB and security@mariadb.org