• unknown's avatar
    Fix for bug #26038: X() value of empty NOT NULL POINT is neither NULL nor NOT NULL · cbb38476
    unknown authored
    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.
    cbb38476
item_geofunc.cc 15.7 KB