| Bug #679 | Function intersects : unexpected behaviour | ||
|---|---|---|---|
| Submitted: | 19 Jun 2003 2:53 | Modified: | 28 Jun 2003 9:15 |
| Reporter: | Ramil Kalimullin | ||
| Status: | Closed | ||
| Category: | Server | Severity: | S1 (Critical) |
| Version: | 4.1 | OS: | Linux (Linux) |
| Assigned to: | Bugs System | Target Version: | |
[19 Jun 2003 2:56]
Ramil Kalimullin
query (without subquery):
select City from city where
intersects(GeomFromText(AsText(Location)),GeomFromText('Polygon((2 50, 2.5 50, 2.5 47, 2
47, 2 50))'))=0;
returns right (empty set) result.
So, it seems to me that problem is in subquery code.
[19 Jun 2003 3:25]
Ramil Kalimullin
Using debugger I see that intersects() function is not even called.
[19 Jun 2003 10:15]
Oleksandr Byelkin
Thank you for exelent bugreport, but this bug is same with 442 and 443 which are in patch pending state.
[19 Jun 2003 10:28]
Oleksandr Byelkin
Oops. Sorry, I mistaken.
[20 Jun 2003 2:19]
Oleksandr Byelkin
ChangeSet 1.1563 03/06/20 10:15:58 bell@sanja.is.com.ua +3 -0
[28 Jun 2003 9:15]
Oleksandr Byelkin
Thank you for bugreport, patch included in bk repository and will be included in next MySQL release.

Description: Hello, > > I may underline a bug within the <TT>intersects</TT> funtion (spatial extensions) distributed with mysql-standard-4.1.0-alpha-pc-linux-i686. > > Here is the problem definition : > It seems that the function intersects ALWAYS return 0 when there is only one line in the table on which the query is made. > > Here is the problem illustration : > <TT> > mysql> create table city(City VARCHAR(30),Location geometry); > Query OK, 0 rows affected (0.02 sec) > > mysql> insert into city values("Paris",GeomFromText('POINT(2.33 48.87)')); > Query OK, 1 row affected (0.00 sec) > > mysql> select City from city where (select intersects(GeomFromText(AsText(Location)),GeomFromText('Polygon((2 50, 2.5 50, 2.5 47, 2 47, 2 50))'))=0); > +-------+ > | City | > +-------+ > | Paris | > +-------+ > 1 row in set (0.00 sec) > </TT> > > This behaviour is unexpected because Paris is included in the defined Polygon. > > <TT> > mysql> insert into city values("Toulouse",GeomFromText('POINT(1.43 43.6)')); > Query OK, 1 row affected (0.00 sec) > > mysql> select City from city; > +----------+ > | City | > +----------+ > | Paris | > | Toulouse | > +----------+ > 2 rows in set (0.00 sec) > > mysql> select City from city where (select intersects(GeomFromText(AsText(Location)),GeomFromText('Polygon((2 50, 2.5 50, 2.5 47, 2 47, 2 50))'))=0); > +----------+ > | City | > +----------+ > | Toulouse | > +----------+ > 1 row in set (0.00 sec) > </TT> > > When there is another line in the table, the intersects function seems to work correctly. > > How to repeat: see description