mariadb/storage/connect
Nikita Malyavin 21809f9a45 MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failed
The assertion failed in handler::ha_reset upon SELECT under
READ UNCOMMITTED from table with index on virtual column.

This was the debug-only failure, though the problem is mush wider:
* MY_BITMAP is a structure containing my_bitmap_map, the latter is a raw
 bitmap.
* read_set, write_set and vcol_set of TABLE are the pointers to MY_BITMAP
* The rest of MY_BITMAPs are stored in TABLE and TABLE_SHARE
* The pointers to the stored MY_BITMAPs, like orig_read_set etc, and
 sometimes all_set and tmp_set, are assigned to the pointers.
* Sometimes tmp_use_all_columns is used to substitute the raw bitmap
 directly with all_set.bitmap
* Sometimes even bitmaps are directly modified, like in
TABLE::update_virtual_field(): bitmap_clear_all(&tmp_set) is called.

The last three bullets in the list, when used together (which is mostly
always) make the program flow cumbersome and impossible to follow,
notwithstanding the errors they cause, like this MDEV-17556, where tmp_set
pointer was assigned to read_set, write_set and vcol_set, then its bitmap
was substituted with all_set.bitmap by dbug_tmp_use_all_columns() call,
and then bitmap_clear_all(&tmp_set) was applied to all this.

To untangle this knot, the rule should be applied:
* Never substitute bitmaps! This patch is about this.
 orig_*, all_set bitmaps are never substituted already.

This patch changes the following function prototypes:
* tmp_use_all_columns, dbug_tmp_use_all_columns
 to accept MY_BITMAP** and to return MY_BITMAP * instead of my_bitmap_map*
* tmp_restore_column_map, dbug_tmp_restore_column_maps to accept
 MY_BITMAP* instead of my_bitmap_map*

These functions now will substitute read_set/write_set/vcol_set directly,
and won't touch underlying bitmaps.
2021-01-27 00:50:55 +10:00
..
mysql-test/connect Merge 10.2 into 10.3 2020-10-28 10:01:50 +02:00
.gitignore git90.msg + git91.msg 2016-06-02 23:36:19 +02:00
ApacheInterface.java - Fix MDEV-11234. Escape quoting character. Should be doubled. 2016-11-06 14:57:27 +01:00
array.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
array.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
blkfil.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
blkfil.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
block.h In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
catalog.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
checklvl.h Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
Client.java Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
CMakeLists.txt Merge 10.2 into 10.3 2020-06-02 10:25:11 +03:00
cmgfam.cpp Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
cmgfam.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
cmgoconn.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
cmgoconn.h Squashed commit of the following: 2017-10-26 12:48:13 +03:00
colblk.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
colblk.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
connect.cc - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
connect.h Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
csort.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
csort.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
domdoc.cpp Squashed commit of connect/10.0: 2018-10-28 10:41:31 +01:00
domdoc.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
encas.h - Remove gcc warning (no previous declaration of msglang) 2014-11-16 01:16:51 +01:00
engmsg.h Make source the same as branch 10.2 2017-08-06 21:33:52 +02:00
enids.h - Implement the NEWMSG and XMSG methods 2014-11-15 18:28:24 +01:00
filamap.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
filamap.h Fix some XML table type bugs: 2016-12-23 16:58:32 +01:00
filamdbf.cpp - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
filamdbf.h - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
filamfix.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
filamfix.h - Add a new CONNECT global variable allowing to tell whether or not 2014-08-22 17:30:22 +02:00
filamgz.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
filamgz.h Commit changes made for version 10.1 2017-01-17 19:39:49 +01:00
filamtxt.cpp Squashed commit of connect/10.0: 2018-10-28 10:41:31 +01:00
filamtxt.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
filamvct.cpp - Fix MDEV-15793: Server crash in PlugCloseFile with sql_mode='' 2019-03-25 17:36:35 +01:00
filamvct.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
filamzip.cpp Merge branch '10.2' into 10.3 2020-08-03 13:41:29 +02:00
filamzip.h - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
filter.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
filter.h CONNECT compilation failure 2019-04-26 20:50:31 +02:00
fmdlex.c Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
frcas.h - Remove gcc warning (no previous declaration of msglang) 2014-11-16 01:16:51 +01:00
frids.h - Implement the NEWMSG and XMSG methods 2014-11-15 18:28:24 +01:00
frmsg.h - Remove gcc warning (no previous declaration of msglang) 2014-11-16 01:16:51 +01:00
frmsg1.h - Fixing TAB to 2 spaces 2013-02-07 13:34:27 +04:00
frmsg2.h - Fixing TAB to 2 spaces 2013-02-07 13:34:27 +04:00
global.h - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
ha_connect.cc MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failed 2021-01-27 00:50:55 +10:00
ha_connect.h Merge 10.2 into 10.3 2020-10-28 10:01:50 +02:00
inihandl.cpp cleanup: remove always true condition to fix clang warning 2019-11-19 17:09:43 +07:00
inihandl.h - Add the PROFILE_End function in inihandl. Called by connect_done_func 2013-06-29 01:10:31 +02:00
ioapi.c Fix wrong value of JSON column 2017-05-11 21:57:21 +02:00
ioapi.h Fix wrong value of JSON column 2017-05-11 21:57:21 +02:00
javaconn.cpp Lintian complains on spelling error 2019-12-02 12:41:13 +02:00
javaconn.h Squashed commit of connect/10.0: 2018-10-28 10:41:31 +01:00
JavaWrappers.jar Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
jdbccat.h Squashed commit of the following: 2017-10-26 12:48:13 +03:00
JdbcInterface.java Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
jdbconn.cpp Connect: Remove some unused variables 2020-03-21 12:52:07 +02:00
jdbconn.h Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
jmgfam.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
jmgfam.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
jmgoconn.cpp In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
jmgoconn.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
json.cpp - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
json.h - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
jsonudf.cpp Merge 10.2 into 10.3 2020-10-28 10:01:50 +02:00
jsonudf.h - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
libdoc.cpp In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
libdoc.h Fixing warnings: 2013-07-08 11:05:59 +04:00
macutil.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
macutil.h Commit changes pulled from ob-10.0 2015-06-02 10:34:51 +02:00
maputil.cpp MDEV-9617 solaris sparc build fails on 10.0 2016-04-24 18:15:20 +02:00
maputil.h - Set connection charset before calling mysql_real_connect for MYSQL 2015-01-06 10:18:04 +01:00
MariadbInterface.java All changes made on 10.1 for last 11 commits 2016-07-14 20:12:22 +02:00
messages.h - Fixing TAB to 2 spaces 2013-02-07 13:34:27 +04:00
mini-global.h In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
mongo.cpp - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
mongo.h - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
Mongo2Interface.java Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
Mongo3Interface.java Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
msgid.h Make source the same as branch 10.2 2017-08-06 21:33:52 +02:00
mycat.cc Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
mycat.h Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
myconn.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
myconn.h - Possibly fix MDEV-10179 Reset remote tables when re-opening 2016-06-13 14:28:02 +02:00
MysqlInterface.java All changes made on 10.1 for last 11 commits 2016-07-14 20:12:22 +02:00
myutil.cpp Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
myutil.h - Make possible to allocate work space larger than 4GB 2020-10-01 19:18:26 +02:00
noconst.c Merge connect/10.0 into 10.0 2017-08-01 11:39:10 +03:00
odbccat.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
odbconn.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
odbconn.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
OracleInterface.java All changes made on 10.1 for last 11 commits 2016-07-14 20:12:22 +02:00
os.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
osutil.c Make source the same as branch 10.2 2017-08-06 21:33:52 +02:00
osutil.h In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
plgcnx.h Fix spelling: occurred, execute, which etc 2016-03-04 02:09:37 +02:00
plgdbsem.h Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
plgdbutl.cpp - Make possible to allocate work space larger than 4GB 2020-10-01 19:18:26 +02:00
plgodbc.h - Fixing TAB to 2 spaces 2013-02-07 13:34:27 +04:00
plgxml.cpp - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
plgxml.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
plugutil.cpp MDEV-23942 mariadb-10.5.6/storage/connect/plugutil.cpp:380: bad width ? 2020-12-10 15:25:14 +01:00
PostgresqlInterface.java Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
preparse.h Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
rcmsg.c Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
rcmsg.h Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
reldef.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
reldef.h Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
resource.h - Implement the NEWMSG and XMSG methods 2014-11-15 18:28:24 +01:00
rest.def In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
restget.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabcmg.cpp - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
tabcmg.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
tabcol.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabcol.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
tabdos.cpp - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
tabdos.h - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
tabext.cpp Squashed commit of connect/10.0: 2019-04-26 16:49:25 +02:00
tabext.h Squashed commit of connect/10.0: 2019-04-26 16:49:25 +02:00
tabfix.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabfix.h - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
tabfmt.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabfmt.h Squashed commit of connect/10.0: 2019-01-25 10:06:16 +01:00
tabjdbc.cpp In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
tabjdbc.h Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabjmg.cpp Squashed commit of connect/10.0: 2018-10-28 10:41:31 +01:00
tabjmg.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
tabjson.cpp - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
tabjson.h - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
table.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabmac.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabmac.h All changes made on 10.1 2017-02-16 18:01:48 +01:00
tabmul.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabmul.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
tabmysql.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabmysql.h - Remove warning on not used tabtyp variable in connect_assisted_discovery 2018-02-25 14:31:28 +01:00
taboccur.cpp All changes made on 10.1 2017-02-16 18:01:48 +01:00
taboccur.h - NOTE: an experimental implementation of MRR was done but not kept 2014-03-10 18:29:04 +01:00
tabodbc.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabodbc.h Merge connect/10.0 into 10.0 2017-09-19 02:05:11 +03:00
tabpivot.cpp Squashed commit of connect/10.0: 2018-10-28 10:41:31 +01:00
tabpivot.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
tabrest.cpp - Make possible to allocate work space larger than 4GB 2020-10-01 19:18:26 +02:00
tabrest.h Connect: Remove some unused variables 2020-03-21 12:52:07 +02:00
tabsys.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabsys.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
tabtbl.cpp In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
tabtbl.h Squashed commit of connect/10.0: 2018-01-24 16:12:52 +02:00
tabutil.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabutil.h Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabvct.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
tabvct.h All changes made on 10.1 2017-02-16 18:01:48 +01:00
tabvir.cpp Make source the same as branch 10.2 2017-08-06 21:33:52 +02:00
tabvir.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
tabwmi.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
tabwmi.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
tabxcl.cpp All changes made on 10.1 2017-02-16 18:01:48 +01:00
tabxcl.h All changes made on 10.1 2017-02-16 18:01:48 +01:00
tabxml.cpp - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
tabxml.h - Fix https://stackoverflow.com/questions/60625778/import-complex-xml-from-multiple-files-in-mariadb/60637429#60637429 2020-03-11 23:14:19 +01:00
tabzip.cpp - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
tabzip.h - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table 2020-07-16 16:30:54 +02:00
unzip.c - MDEV-11295: developing handling files contained in ZIP file. 2016-12-12 10:57:19 +01:00
unzip.h - MDEV-11295: developing handling files contained in ZIP file. 2016-12-12 10:57:19 +01:00
user_connect.cc - Inline MakePtr and MakeOff with OFFSET as size_t 2020-10-18 17:20:44 +02:00
user_connect.h In CONNECT version 1.6.10 NOSQL facility is enhanced by a new way to retrieve NOSQL data. 2019-08-24 16:14:24 +02:00
valblk.cpp Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
valblk.h Squashed commit of the following: 2017-10-26 12:48:13 +03:00
value.cpp - Use BIN type when charset='binary' 2020-10-05 12:29:51 +02:00
value.h - Use BIN type when charset='binary' 2020-10-05 12:29:51 +02:00
xindex.cpp Merge with last MariaDB version 2020-01-11 18:34:57 +01:00
xindex.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
xobject.cpp Squashed commit of connect/10.0: 2018-04-26 14:15:18 +02:00
xobject.h Fix gcc compiler warnings reported by Sergei 2017-05-23 19:35:50 +02:00
xtable.h Update to version 1.07 (as for MariaDB 10.2) 2020-01-09 16:10:25 +01:00
zip.c Fix wrong value of JSON column 2017-05-11 21:57:21 +02:00
zip.h - MDEV-11295: developing handling files contained in ZIP file. 2016-12-12 10:57:19 +01:00