From 01fe277cc6e0863ca03ab11d1f12bd9b52dc180e Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 29 Sep 2006 17:56:02 +0500 Subject: bug #21888 (Query on GEOMETRY field crashes the server) RTree keys are really different from BTree and need specific paramters to be set by optimizer to work. Sometimes optimizer doesn't set those properly. Here we decided just to add code to check that the parameters are correct. Hope to fix optimizer sometimes. myisam/mi_range.c: return the error if min_key is NULL mysql-test/r/gis-rtree.result: test result mysql-test/t/gis-rtree.test: test case --- myisam/mi_range.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'myisam') diff --git a/myisam/mi_range.c b/myisam/mi_range.c index 1e0fd42334e..de042845d1e 100644 --- a/myisam/mi_range.c +++ b/myisam/mi_range.c @@ -71,6 +71,21 @@ ha_rows mi_records_in_range(MI_INFO *info, int inx, key_range *min_key, uchar * key_buff; uint start_key_len; + /* + The problem is that the optimizer doesn't support + RTree keys properly at the moment. + Hope this will be fixed some day. + But now NULL in the min_key means that we + didn't make the task for the RTree key + and expect BTree functionality from it. + As it's not able to handle such request + we return the error. + */ + if (!min_key) + { + res= HA_POS_ERROR; + break; + } key_buff= info->lastkey+info->s->base.max_key_length; start_key_len= _mi_pack_key(info,inx, key_buff, (uchar*) min_key->key, min_key->length, -- cgit v1.2.1