Commit 08d9d182 authored by unknown's avatar unknown
Browse files

Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  magare.gmz:/home/kgeorge/mysql/autopush/B27300-5.0-opt

parents bedd5b87 32fe7562
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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;
+0 −6
Original line number Diff line number Diff line
@@ -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
+11 −0
Original line number Diff line number Diff line
@@ -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;
+3 −2
Original line number Diff line number Diff line
@@ -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;

+4 −1
Original line number Diff line number Diff line
@@ -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);
@@ -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