• unknown's avatar
    Bug #24563: MBROverlaps does not seem to function propertly. · eee28a26
    unknown authored
    Fix is to rewrite the MBR::overlaps() function, to compute the dimension of both
    arguments, and the dimension of the intersection; test that all three dimensions are the
    same (e.g., all are Polygons).
    
    Add tests for all MBR* functions for various combinations of shapes, lines and points.
    
    
    mysql-test/include/gis_generic.inc:
      Add tests & checks for bug #24563 and bug #24588 - some GIS functions missing in
      5.1; many GIS functions not tested; Overlaps() function was incorrect when MBR shifted
      only along one axis; Overlaps() needs to take dimension of shape into account.
    mysql-test/r/archive_gis.result:
      Update test results.
    mysql-test/r/bdb_gis.result:
      Update test results.
    mysql-test/r/gis.result:
      Update test results.
    mysql-test/r/innodb_gis.result:
      Update test results.
    mysql-test/r/ndb_gis.result:
      Update test results.
    mysql-test/t/gis.test:
      Add tests & checks for bug #24563 and bug #24588 - some GIS functions missing in
      5.1; many GIS functions not tested; Overlaps() function was incorrect when MBR shifted
      only along one axis; Overlaps() needs to take dimension of shape into account.
    sql/spatial.h:
      Add MBR::dimension() (map MBR to integral dimension: point -> 0, line -> 1,
      polygon -> 2, invalid -> -1)
      
      Fix MBR::overlaps() to handle MBRs which are shifted on one dimension only, and to
      take MBR dimension into account.  Also, test both within() and contains() predicates (so
      that overlaps(a, b) == overlaps(b, a)).
    eee28a26
gis_generic.inc 12.3 KB