The problem was that in debugging binaries it try to print item to assign human readable name to the item.
But subquery item was already freed (join_free/cleanup with full cleanup) so Item_field refers to temporary
table which memory had been already freed.
If the setting of system variables does not allow to use join buffer
for a join query with GROUP BY <f1,...> / ORDER BY <f1,...> then
filesort is not needed if the first joined table is scanned in
the order compatible with order specified by the list <f1,...>.
Root cause was that number of entries in commit checkpoint buffer
was bigger than total available entries in the mmap()'ed score
file. This causes TC_LOG_MMAP to run out of entries before even
the first checkpoint is started, which causes a hang.
Fixed by making sure we have fewer entries within one commit
checkpoint than total available scorefile entries.
Another part of this bug was discovery of severel unrelated bugs
in TC_LOG_MMAP dating back to 5.1. These were fixed in 5.1 and
will be merged up (the problem this patch fixes exists only in
10.0).
Fix some problems in the TC_LOG_MMAP commit processing, which could
lead to assertions in some cases.
Problems are mostly reproducible in MariaDB 10.0 with asynchroneous
commit checkpoints, but most of the problems were present in earlier
versions also.
The invalid implementation of the method Field_bit::cmp_max could
trigger a valgrind complain or could lead to incorrect statistical
data when collecting engine-independent statistics on BIT fields.
fix: don't call field->val_decimal() if the field->is_null()
because the buffer at field->ptr might not hold a valid decimal value
sql/item_sum.cc:
do not call field->val_decimal() if the field->is_null()
storage/maria/ma_blockrec.c:
cleanup
storage/maria/ma_rrnd.c:
cleanup
strings/decimal.c:
typo
mysql_config:
- add not only $pkgincludedir, but also $pkgincludedir/.. to the header search path,
for #include <mysql/plugin.h> to work
scripts/mysql_config.sh:
- don't support headers in */include anymore. only in */include/mysql
- remove the incorrect "bug fix" (fixed correctly long time ago)
- add not only $pkgincludedir, but also $pkgincludedir/.. to the header search path,
for #include <mysql/plugin.h> to work
- but don't do it, if $pkgincludedir/.. is /usr/include
Take into account that length of strings passed down to this function can be up to FN_REFLEN+1 bytes. including terminating zero.
The overwrite was caused by incomplete fix to MySQL Bug # 44834
If triggers are used for an insert/update/delete statement than the values of
all virtual columns must be computed as any of them may be used by the triggers.
- Fix bug in bootstrapper.
- Also, delete innodb log files cafter bootstrapping , to workaround
"different log size" Innodb error during the first service start by MSI.
This is a temporary measure, in the future innodb will allow handling
different file size more gracefully.
The problem is that memory alocated by copy_andor_structure() well be freed,
but if level of SELECT_LEX it will be excluded (in case of merge derived tables and view)
then sl->where/having will not be updated here but still can be accessed (so it will be access to freed memory).
(patch by Sanja)