Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-7510

GIS: IsRing returns false for a primitive triangle

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.1
    • Fix Version/s: 10.1.4
    • Component/s: GIS
    • Labels:

      Description

      10.1 revision 0105bf349a...
      MariaDB [test]> select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)'));
      +--------------------------------------------------------------+
      | ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')) |
      +--------------------------------------------------------------+
      |                                                            0 |
      +--------------------------------------------------------------+
      
      PostgeSQL 9.4, PostGIS 2.1.5
      pgis=# select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)'));
       st_isring 
      -----------
       t
      (1 row)
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              greenman Ian Gilfillan added a comment -

              IsRing is supposed to apply if IsSimple and IsClosed. In the above example, IsClosed is true, while IsSimple is false, when it seems it should be true.

              select ST_IsSimple(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)'));
              +----------------------------------------------------------------+
              | ST_IsSimple(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')) |
              +----------------------------------------------------------------+
              |                                                              0 |
              +----------------------------------------------------------------+
              
              select ST_IscLOSED(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)'));
              +----------------------------------------------------------------+
              | ST_IscLOSED(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')) |
              +----------------------------------------------------------------+
              |                                                              1 |
              +----------------------------------------------------------------+
              
              Show
              greenman Ian Gilfillan added a comment - IsRing is supposed to apply if IsSimple and IsClosed. In the above example, IsClosed is true, while IsSimple is false, when it seems it should be true. select ST_IsSimple(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')); +----------------------------------------------------------------+ | ST_IsSimple(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')) | +----------------------------------------------------------------+ | 0 | +----------------------------------------------------------------+ select ST_IscLOSED(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')); +----------------------------------------------------------------+ | ST_IscLOSED(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')) | +----------------------------------------------------------------+ | 1 | +----------------------------------------------------------------+
              Show
              holyfoot Alexey Botchkov added a comment - Fixing patch: http://lists.askmonty.org/pipermail/commits/2015-March/007583.html

                People

                • Assignee:
                  holyfoot Alexey Botchkov
                  Reporter:
                  elenst Elena Stepanova
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - 0 minutes
                    0m
                    Logged:
                    Time Spent - 3 hours
                    3h