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

GIS: IsRing returns false for a primitive triangle

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 10.1(EOL)
    • 10.1.4
    • GIS

    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)

      Attachments

        Issue Links

          Activity

            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 |
            +----------------------------------------------------------------+

            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 | +----------------------------------------------------------------+
            holyfoot Alexey Botchkov added a comment - Fixing patch: http://lists.askmonty.org/pipermail/commits/2015-March/007583.html

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.