mariadb/storage/myisam
Dmitry Lenev 9c89cca5e3 Fix for bug#11766714 (former bug @59888) "debug assertion when
attempt to create spatial index on char > 31 bytes".

Attempt to create spatial index on char field with length
greater than 31 byte led to assertion failure on server
compiled with safemutex support.

The problem occurred in mi_create() function which was called
to create a new version of table being altered. This function
failed since it detected an attempt to create a spatial key
on non-binary column and tried to return an error.
On its error path it tried to unlock THR_LOCK_myisam mutex
which has not been not locked at this point. Indeed such an
incorrect behavior was caught by safemutex wrapper and caused
assertion failure.

This patch fixes the problem by ensuring that mi_create()
doesn't releases THR_LOCK_myisam mutex on error path if it was
not acquired.

mysql-test/r/gis.result:
  Added test for bug @59888 "debug assertion when attempt to
  create spatial index on char > 31 bytes".
mysql-test/t/gis.test:
  Added test for bug @59888 "debug assertion when attempt to
  create spatial index on char > 31 bytes".
storage/myisam/mi_create.c:
  Changed mi_create() not to release THR_LOCK_myisam mutex on
  error path if it was not acquired.
2011-02-15 14:03:05 +03:00
..
ftbench Merge 2010-12-29 00:47:05 +01:00
.cvsignore
ChangeLog
CMakeLists.txt
ft_boolean_search.c
ft_eval.c
ft_eval.h
ft_nlq_search.c
ft_parser.c
ft_static.c
ft_stem.c
ft_stopwords.c
ft_test1.c
ft_test1.h
ft_update.c
ftdefs.h
fulltext.h
ha_myisam.cc
ha_myisam.h
make-ccc
Makefile.am
mi_cache.c
mi_changed.c
mi_check.c
mi_checksum.c
mi_close.c
mi_create.c Fix for bug#11766714 (former bug @59888) "debug assertion when 2011-02-15 14:03:05 +03:00
mi_dbug.c
mi_delete.c
mi_delete_all.c
mi_delete_table.c
mi_dynrec.c
mi_extra.c
mi_info.c
mi_key.c
mi_keycache.c
mi_locking.c
mi_log.c
mi_open.c
mi_packrec.c
mi_page.c
mi_panic.c
mi_preload.c
mi_range.c
mi_rename.c
mi_rfirst.c
mi_rkey.c
mi_rlast.c
mi_rnext.c
mi_rnext_same.c
mi_rprev.c
mi_rrnd.c
mi_rsame.c
mi_rsamepos.c
mi_scan.c
mi_search.c
mi_static.c
mi_statrec.c
mi_test1.c
mi_test2.c
mi_test3.c
mi_test_all.res
mi_test_all.sh Merge 2010-12-29 00:47:05 +01:00
mi_unique.c
mi_update.c
mi_write.c
myisam_ftdump.c
myisamchk.c
myisamdef.h
myisamlog.c
myisampack.c Merge 2010-12-29 00:47:05 +01:00
NEWS
plug.in
rt_index.c Merge 2010-12-29 00:47:05 +01:00
rt_index.h
rt_key.c
rt_key.h
rt_mbr.c
rt_mbr.h
rt_split.c
rt_test.c
sort.c
sp_defs.h
sp_key.c
sp_test.c
test_pack
TODO