diff options
author | unknown <ramil@mysql.com> | 2005-05-20 18:48:18 +0500 |
---|---|---|
committer | unknown <ramil@mysql.com> | 2005-05-20 18:48:18 +0500 |
commit | 2ef41d3d214282c993be2a2ea377150cf05a9e4b (patch) | |
tree | 96554528c5e2aa04239532ad4ec73110eb999a04 /myisam | |
parent | b8d22413c0cd11d7cb6d8a45a67bf2359e604fe1 (diff) | |
download | mariadb-git-2ef41d3d214282c993be2a2ea377150cf05a9e4b.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.c | 10 |
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); |