summaryrefslogtreecommitdiff
path: root/sql/spatial.h
diff options
context:
space:
mode:
authorunknown <ramil/ram@mysql.com/ramil.myoffice.izhnet.ru>2007-02-21 14:45:19 +0400
committerunknown <ramil/ram@mysql.com/ramil.myoffice.izhnet.ru>2007-02-21 14:45:19 +0400
commitcbb38476e19e8c5582d7d14ce98a8889132110d4 (patch)
tree6fd662c0ed9147bc564356b4f75a35d77d91c4b1 /sql/spatial.h
parent557f6169b9e4abd325e7d46cd523ac7012ce404d (diff)
downloadmariadb-git-cbb38476e19e8c5582d7d14ce98a8889132110d4.tar.gz
Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL
Having maybe_null flag unset for geometry/spatial functions leads to wrong Item_func_isnull::val_int()'s results. Fix: set maybe_null flag and add is_null() methods. mysql-test/r/gis.result: Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL - test result. mysql-test/t/gis.test: Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL - test case. sql/item_geofunc.cc: Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL - set maybe_null flag for Item_geometry_func and Item_func_as_wkt. - moved length check to the beginnig of the Item_func_spatial_collection::val_str() to affect geometry collection objects at once. - changed Item_func_isempty::val_int() and Item_func_issimple::val_int() to properly handle null_value. sql/item_geofunc.h: Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL - set maybe_null flag for geometry/spatial functions. - added is_null() to Item_geometry_func and Item_func_spatial_rel classes. sql/spatial.cc: Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL - changed return type of Geometry::create_from_wkb() to be consistent with Geometry::create_from_wkt(), now it returns Geometry object or NULL in case of error. sql/spatial.h: Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL - changed return type of Geometry::create_from_wkb() to be consistent with Geometry::create_from_wkt(), now it returns Geometry object or NULL in case of error.
Diffstat (limited to 'sql/spatial.h')
-rw-r--r--sql/spatial.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/spatial.h b/sql/spatial.h
index 378233a2156..553544d4c3f 100644
--- a/sql/spatial.h
+++ b/sql/spatial.h
@@ -244,8 +244,8 @@ public:
static Geometry *create_from_wkt(Geometry_buffer *buffer,
Gis_read_stream *trs, String *wkt,
bool init_stream=1);
- static int create_from_wkb(Geometry_buffer *buffer,
- const char *wkb, uint32 len, String *res);
+ static Geometry *create_from_wkb(Geometry_buffer *buffer, const char *wkb,
+ uint32 len, String *res);
int as_wkt(String *wkt, const char **end)
{
uint32 len= get_class_info()->m_name.length;