• Alexey Botchkov's avatar
    bug #804305 Crash in wkb_get_double with ST_INTERSECTION. · f3b850a7
    Alexey Botchkov authored
            That crash happened with the complicated topology of the result.
            If we found a hole in a polygon whose outside border was already
            found, we need to paste the hole right after it and respectively
            shift polygons after it. Also we need to update poly_position fields
            in these polygons. That last thing wasn't properly done that led to the
            crash.
            To fix that we keep the list of the found polygons and update the
            poly_positions that are bigger or equal to where we placed the next hole.
    
    
    per-file comments:
      mysql-test/r/gis-precise.result
    bug #804305 Crash in wkb_get_double with ST_INTERSECTION.
            test result updated.
      mysql-test/t/gis-precise.test
    bug #804305 Crash in wkb_get_double with ST_INTERSECTION.
            test result added.
      sql/gcalc_tools.cc
    bug #804305 Crash in wkb_get_double with ST_INTERSECTION.
            keep the list of the found polygons and update their poly_position fields respectively.
      sql/gcalc_tools.h
    bug #804305 Crash in wkb_get_double with ST_INTERSECTION.
            Gcalc_result_receiver::move_hole interface changed.
    f3b850a7
gcalc_tools.cc 26.4 KB