summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <ramil@mysql.com>2005-05-20 18:48:18 +0500
committerunknown <ramil@mysql.com>2005-05-20 18:48:18 +0500
commit526525dc58d56394dfdd6e6550df616dc2cb7040 (patch)
tree96554528c5e2aa04239532ad4ec73110eb999a04 /myisam
parentbcf4ada085a4ec5735745b6358d2bd1c56d3be4b (diff)
downloadmariadb-git-526525dc58d56394dfdd6e6550df616dc2cb7040.tar.gz
a fix (bug #10757: gis-rtree.test fails)
myisam/sp_key.c: a fix (bug #10757: gis-rtree.test fails) float8get() doesn't properly work with local variables sometimes.
Diffstat (limited to 'myisam')
-rw-r--r--myisam/sp_key.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/myisam/sp_key.c b/myisam/sp_key.c
index b61e8094cde..1d43f89cba9 100644
--- a/myisam/sp_key.c
+++ b/myisam/sp_key.c
@@ -32,7 +32,11 @@ static int sp_get_geometry_mbr(uchar *(*wkb), uchar *end, uint n_dims,
double *mbr, int top);
static int sp_mbr_from_wkb(uchar (*wkb), uint size, uint n_dims, double *mbr);
-
+static void get_double(double *d, const byte *pos)
+{
+ float8get(*d, pos);
+}
+
uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key,
const byte *record, my_off_t filepos)
{
@@ -80,7 +84,7 @@ uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key,
else if (keyseg->type == HA_KEYTYPE_DOUBLE)
{
double nr;
- float8get(nr, pos);
+ get_double(&nr, pos);
if (isnan(nr))
{
bzero(key, length);
@@ -138,7 +142,7 @@ static int sp_add_point_to_mbr(uchar *(*wkb), uchar *end, uint n_dims,
{
if ((*wkb) > end - 8)
return -1;
- float8get(ord, (*wkb));
+ get_double(&ord, *wkb);
(*wkb)+= 8;
if (ord < *mbr)
float8store((char*) mbr, ord);