Details
Description
https://mariadb.com/kb/en/st-crosses/ : Returns 1 if geometry g1 spatially crosses geometry g2. Returns NULL if g1 is a Polygon or a MultiPolygon, or if g2 is a Point or a MultiPoint. Otherwise, returns 0.
MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('point(1 1)'), st_geomfromtext('point(1 1)') ) a;
|
+------+
|
| a |
|
+------+
|
| 0 |
|
+------+
|
1 row in set (0,000 sec)
|
|
MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('POLYGON ((59 18,67 18,67 13,59 13,59 18)) '), st_geomfromtext('polygon((2 2,2 4, 4 2,2 2))') ) a;
|
+------+
|
| a |
|
+------+
|
| 0 |
|
+------+
|
1 row in set (0,001 sec)
|
|
MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('POLYGON ((59 18,67 18,67 13,59 13,59 18)) '), st_geomfromtext('point(1 1)') ) a;
|
+------+
|
| a |
|
+------+
|
| 0 |
|
+------+
|
1 row in set (0,000 sec)
|
|
from the KB example:
|
MariaDB [test]> SET @g1 = ST_GEOMFROMTEXT('LINESTRING(174 149, 176 151)');
|
Query OK, 0 rows affected (0,000 sec)
|
|
MariaDB [test]> SET @g2 = ST_GEOMFROMTEXT('POLYGON((175 150, 20 40, 50 60, 125 100, 175 150))');
|
Query OK, 0 rows affected (0,009 sec)
|
|
MariaDB [test]> SELECT ST_CROSSES(@g1,@g2);
|
+---------------------+
|
| ST_CROSSES(@g1,@g2) |
|
+---------------------+
|
| 1 |
|
+---------------------+
|
1 row in set (0,002 sec)
|
|
MariaDB [test]> SELECT ST_CROSSES(@g2,@g1); ## NULL expected
|
+---------------------+
|
| ST_CROSSES(@g2,@g1) |
|
+---------------------+
|
| 1 |
|
+---------------------+
|
1 row in set (0,001 sec)
|
mysql> SET @g1 = ST_GEOMFROMTEXT('LINESTRING(174 149, 176 151)');
|
Query OK, 0 rows affected (0,01 sec)
|
|
mysql> SET @g2 = ST_GEOMFROMTEXT('POLYGON((175 150, 20 40, 50 60, 125 100, 175 150))');
|
Query OK, 0 rows affected (0,00 sec)
|
|
mysql> SELECT ST_CROSSES(@g1,@g2);
|
+---------------------+
|
| ST_CROSSES(@g1,@g2) |
|
+---------------------+
|
| 0 |
|
+---------------------+
|
1 row in set (0,00 sec)
|
|
mysql> SELECT ST_CROSSES(@g2,@g1);
|
+---------------------+
|
| ST_CROSSES(@g2,@g1) |
|
+---------------------+
|
| NULL |
|
+---------------------+
|
1 row in set (0,00 sec)
|
Attachments
Issue Links
- relates to
-
MDEV-35201 ST_CROSSES returns different result than Mysql for 2 linestrings
-
- Open
-
Activity
Field | Original Value | New Value |
---|---|---|
Affects Version/s | 10.5 [ 23123 ] | |
Affects Version/s | 10.6 [ 24028 ] | |
Affects Version/s | 10.11 [ 27614 ] | |
Affects Version/s | 11.4 [ 29301 ] | |
Affects Version/s | 11.7 [ 29815 ] |
Fix Version/s | 10.5 [ 23123 ] | |
Fix Version/s | 10.6 [ 24028 ] | |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 11.4 [ 29301 ] | |
Fix Version/s | 11.7 [ 29815 ] |
Assignee | Alexey Botchkov [ holyfoot ] |
Link | This issue relates to MDEV-35201 [ MDEV-35201 ] |
Description |
https://mariadb.com/kb/en/st-crosses/ : Returns 1 if geometry g1 spatially crosses geometry g2. Returns NULL if g1 is a Polygon or a MultiPolygon, or if g2 is a Point or a MultiPoint. Otherwise, returns 0.
{noformat} MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('point(1 1)'), st_geomfromtext('point(1 1)') ) a; +------+ | a | +------+ | 0 | +------+ 1 row in set (0,000 sec) MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('POLYGON ((59 18,67 18,67 13,59 13,59 18)) '), st_geomfromtext('polygon((2 2,2 4, 4 2,2 2))') ) a; +------+ | a | +------+ | 0 | +------+ 1 row in set (0,001 sec) MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('POLYGON ((59 18,67 18,67 13,59 13,59 18)) '), st_geomfromtext('point(1 1)') ) a; +------+ | a | +------+ | 0 | +------+ 1 row in set (0,000 sec) {noformat} |
https://mariadb.com/kb/en/st-crosses/ : Returns 1 if geometry g1 spatially crosses geometry g2. Returns NULL if g1 is a Polygon or a MultiPolygon, or if g2 is a Point or a MultiPoint. Otherwise, returns 0.
{noformat} MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('point(1 1)'), st_geomfromtext('point(1 1)') ) a; +------+ | a | +------+ | 0 | +------+ 1 row in set (0,000 sec) MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('POLYGON ((59 18,67 18,67 13,59 13,59 18)) '), st_geomfromtext('polygon((2 2,2 4, 4 2,2 2))') ) a; +------+ | a | +------+ | 0 | +------+ 1 row in set (0,001 sec) MariaDB [test]> SELECT ST_CROSSES( ST_GEOMFROMTEXT('POLYGON ((59 18,67 18,67 13,59 13,59 18)) '), st_geomfromtext('point(1 1)') ) a; +------+ | a | +------+ | 0 | +------+ 1 row in set (0,000 sec) {noformat} from the KB example: {noformat} MariaDB [test]> SET @g1 = ST_GEOMFROMTEXT('LINESTRING(174 149, 176 151)'); Query OK, 0 rows affected (0,000 sec) MariaDB [test]> SET @g2 = ST_GEOMFROMTEXT('POLYGON((175 150, 20 40, 50 60, 125 100, 175 150))'); Query OK, 0 rows affected (0,009 sec) MariaDB [test]> SELECT ST_CROSSES(@g1,@g2); +---------------------+ | ST_CROSSES(@g1,@g2) | +---------------------+ | 1 | +---------------------+ 1 row in set (0,002 sec) MariaDB [test]> SELECT ST_CROSSES(@g2,@g1); ## NULL expected +---------------------+ | ST_CROSSES(@g2,@g1) | +---------------------+ | 1 | +---------------------+ 1 row in set (0,001 sec) {noformat} {noformat} mysql> SET @g1 = ST_GEOMFROMTEXT('LINESTRING(174 149, 176 151)'); Query OK, 0 rows affected (0,01 sec) mysql> SET @g2 = ST_GEOMFROMTEXT('POLYGON((175 150, 20 40, 50 60, 125 100, 175 150))'); Query OK, 0 rows affected (0,00 sec) mysql> SELECT ST_CROSSES(@g1,@g2); +---------------------+ | ST_CROSSES(@g1,@g2) | +---------------------+ | 0 | +---------------------+ 1 row in set (0,00 sec) mysql> SELECT ST_CROSSES(@g2,@g1); +---------------------+ | ST_CROSSES(@g2,@g1) | +---------------------+ | NULL | +---------------------+ 1 row in set (0,00 sec) {noformat} |
Fix Version/s | 11.7(EOL) [ 29815 ] |