Loading mysql-test/r/gis.result +11 −0 Original line number Diff line number Diff line Loading @@ -769,3 +769,14 @@ create table t1 (g geometry not null); insert into t1 values(default); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field drop table t1; CREATE TABLE t1 (a GEOMETRY); CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1; CREATE VIEW v2 AS SELECT a FROM t1; DESCRIBE v1; Field Type Null Key Default Extra GeomFromwkb(ASBINARY(a)) geometry YES NULL DESCRIBE v2; Field Type Null Key Default Extra a geometry YES NULL DROP VIEW v1,v2; DROP TABLE t1; mysql-test/r/subselect3.result +0 −6 Original line number Diff line number Diff line Loading @@ -661,12 +661,6 @@ SELECT * FROM t1 GROUP by t1.a HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c HAVING MAX(t2.b+t1.a) < 10)); a b c SELECT a, AVG(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) AS test FROM t1 GROUP BY a; a AVG(b) test 1 4.0000 NULL 2 2.0000 k 3 2.5000 NULL SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c; a b c 1 3 c Loading mysql-test/t/gis.test +11 −0 Original line number Diff line number Diff line Loading @@ -479,3 +479,14 @@ create table t1 (g geometry not null); insert into t1 values(default); drop table t1; # # Bug #27300: create view with geometry functions lost columns types # CREATE TABLE t1 (a GEOMETRY); CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1; CREATE VIEW v2 AS SELECT a FROM t1; DESCRIBE v1; DESCRIBE v2; DROP VIEW v1,v2; DROP TABLE t1; mysql-test/t/subselect3.test +3 −2 Original line number Diff line number Diff line Loading @@ -507,8 +507,9 @@ SELECT a, MAX(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) SELECT * FROM t1 GROUP by t1.a HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c HAVING MAX(t2.b+t1.a) < 10)); SELECT a, AVG(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) AS test FROM t1 GROUP BY a; #FIXME: Enable this test after fixing bug #27321 #SELECT a, AVG(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) # AS test FROM t1 GROUP BY a; SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c; Loading sql/item.cc +4 −1 Original line number Diff line number Diff line Loading @@ -4275,7 +4275,6 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table) case MYSQL_TYPE_MEDIUM_BLOB: case MYSQL_TYPE_LONG_BLOB: case MYSQL_TYPE_BLOB: case MYSQL_TYPE_GEOMETRY: if (this->type() == Item::TYPE_HOLDER) return new Field_blob(max_length, maybe_null, name, table, collation.collation, 1); Loading @@ -4283,6 +4282,10 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table) return new Field_blob(max_length, maybe_null, name, table, collation.collation); break; // Blob handled outside of case case MYSQL_TYPE_GEOMETRY: return new Field_geom(max_length, maybe_null, name, table, (Field::geometry_type) ((Item_geometry_func *)this)->get_geometry_type()); } } Loading Loading
mysql-test/r/gis.result +11 −0 Original line number Diff line number Diff line Loading @@ -769,3 +769,14 @@ create table t1 (g geometry not null); insert into t1 values(default); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field drop table t1; CREATE TABLE t1 (a GEOMETRY); CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1; CREATE VIEW v2 AS SELECT a FROM t1; DESCRIBE v1; Field Type Null Key Default Extra GeomFromwkb(ASBINARY(a)) geometry YES NULL DESCRIBE v2; Field Type Null Key Default Extra a geometry YES NULL DROP VIEW v1,v2; DROP TABLE t1;
mysql-test/r/subselect3.result +0 −6 Original line number Diff line number Diff line Loading @@ -661,12 +661,6 @@ SELECT * FROM t1 GROUP by t1.a HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c HAVING MAX(t2.b+t1.a) < 10)); a b c SELECT a, AVG(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) AS test FROM t1 GROUP BY a; a AVG(b) test 1 4.0000 NULL 2 2.0000 k 3 2.5000 NULL SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c; a b c 1 3 c Loading
mysql-test/t/gis.test +11 −0 Original line number Diff line number Diff line Loading @@ -479,3 +479,14 @@ create table t1 (g geometry not null); insert into t1 values(default); drop table t1; # # Bug #27300: create view with geometry functions lost columns types # CREATE TABLE t1 (a GEOMETRY); CREATE VIEW v1 AS SELECT GeomFromwkb(ASBINARY(a)) FROM t1; CREATE VIEW v2 AS SELECT a FROM t1; DESCRIBE v1; DESCRIBE v2; DROP VIEW v1,v2; DROP TABLE t1;
mysql-test/t/subselect3.test +3 −2 Original line number Diff line number Diff line Loading @@ -507,8 +507,9 @@ SELECT a, MAX(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) SELECT * FROM t1 GROUP by t1.a HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c HAVING MAX(t2.b+t1.a) < 10)); SELECT a, AVG(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) AS test FROM t1 GROUP BY a; #FIXME: Enable this test after fixing bug #27321 #SELECT a, AVG(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=AVG(t1.b)) # AS test FROM t1 GROUP BY a; SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c; Loading
sql/item.cc +4 −1 Original line number Diff line number Diff line Loading @@ -4275,7 +4275,6 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table) case MYSQL_TYPE_MEDIUM_BLOB: case MYSQL_TYPE_LONG_BLOB: case MYSQL_TYPE_BLOB: case MYSQL_TYPE_GEOMETRY: if (this->type() == Item::TYPE_HOLDER) return new Field_blob(max_length, maybe_null, name, table, collation.collation, 1); Loading @@ -4283,6 +4282,10 @@ Field *Item::tmp_table_field_from_field_type(TABLE *table) return new Field_blob(max_length, maybe_null, name, table, collation.collation); break; // Blob handled outside of case case MYSQL_TYPE_GEOMETRY: return new Field_geom(max_length, maybe_null, name, table, (Field::geometry_type) ((Item_geometry_func *)this)->get_geometry_type()); } } Loading