Loading mysql-test/r/gis.result +25 −1 Original line number Diff line number Diff line Loading @@ -668,7 +668,7 @@ def test t1 t1 g g 255 4294967295 0 Y 144 0 63 g select asbinary(g) from t1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def asbinary(g) 252 8192 0 Y 128 0 63 def asbinary(g) 252 4294967295 0 Y 128 0 63 asbinary(g) drop table t1; create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b)); Loading Loading @@ -730,4 +730,28 @@ select geomfromtext(col9,col89) as a from t1; a NULL DROP TABLE t1; CREATE TABLE t1 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t2 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t3 select aswkb(ws.geomdata) AS geomdatawkb from t1 ws union select aswkb(ws.geomdata) AS geomdatawkb from t2 ws; describe t3; Field Type Null Key Default Extra geomdatawkb longblob YES NULL drop table t1; drop table t2; drop table t3; End of 4.1 tests mysql-test/t/gis.test +31 −0 Original line number Diff line number Diff line Loading @@ -427,4 +427,35 @@ INSERT INTO `t1` VALUES ('','0000-00-00'); select geomfromtext(col9,col89) as a from t1; DROP TABLE t1; # # Bug #31158 Spatial, Union, LONGBLOB vs BLOB bug (crops data) # CREATE TABLE t1 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t2 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t3 select aswkb(ws.geomdata) AS geomdatawkb from t1 ws union select aswkb(ws.geomdata) AS geomdatawkb from t2 ws; describe t3; drop table t1; drop table t2; drop table t3; --echo End of 4.1 tests sql/field.cc +1 −1 Original line number Diff line number Diff line Loading @@ -6975,7 +6975,7 @@ uint32 Field_blob::max_length() case 3: return 16777215 * field_charset->mbmaxlen; case 4: return (uint32) 4294967295U; return max_field_size; default: DBUG_ASSERT(0); // we should never go here return 0; Loading sql/field.h +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #define NOT_FIXED_DEC 31 #define DATETIME_DEC 6 const uint32 max_field_size= (uint32) 4294967295U; class Send_field; class Protocol; Loading sql/item_geofunc.cc +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ void Item_geometry_func::fix_length_and_dec() { collation.set(&my_charset_bin); decimals=0; max_length=MAX_BLOB_WIDTH; max_length= max_field_size; maybe_null= 1; } Loading Loading
mysql-test/r/gis.result +25 −1 Original line number Diff line number Diff line Loading @@ -668,7 +668,7 @@ def test t1 t1 g g 255 4294967295 0 Y 144 0 63 g select asbinary(g) from t1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def asbinary(g) 252 8192 0 Y 128 0 63 def asbinary(g) 252 4294967295 0 Y 128 0 63 asbinary(g) drop table t1; create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b)); Loading Loading @@ -730,4 +730,28 @@ select geomfromtext(col9,col89) as a from t1; a NULL DROP TABLE t1; CREATE TABLE t1 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t2 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t3 select aswkb(ws.geomdata) AS geomdatawkb from t1 ws union select aswkb(ws.geomdata) AS geomdatawkb from t2 ws; describe t3; Field Type Null Key Default Extra geomdatawkb longblob YES NULL drop table t1; drop table t2; drop table t3; End of 4.1 tests
mysql-test/t/gis.test +31 −0 Original line number Diff line number Diff line Loading @@ -427,4 +427,35 @@ INSERT INTO `t1` VALUES ('','0000-00-00'); select geomfromtext(col9,col89) as a from t1; DROP TABLE t1; # # Bug #31158 Spatial, Union, LONGBLOB vs BLOB bug (crops data) # CREATE TABLE t1 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t2 ( geomdata polygon NOT NULL, SPATIAL KEY index_geom (geomdata) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 DELAY_KEY_WRITE=1 ROW_FORMAT=FIXED; CREATE TABLE t3 select aswkb(ws.geomdata) AS geomdatawkb from t1 ws union select aswkb(ws.geomdata) AS geomdatawkb from t2 ws; describe t3; drop table t1; drop table t2; drop table t3; --echo End of 4.1 tests
sql/field.cc +1 −1 Original line number Diff line number Diff line Loading @@ -6975,7 +6975,7 @@ uint32 Field_blob::max_length() case 3: return 16777215 * field_charset->mbmaxlen; case 4: return (uint32) 4294967295U; return max_field_size; default: DBUG_ASSERT(0); // we should never go here return 0; Loading
sql/field.h +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #define NOT_FIXED_DEC 31 #define DATETIME_DEC 6 const uint32 max_field_size= (uint32) 4294967295U; class Send_field; class Protocol; Loading
sql/item_geofunc.cc +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ void Item_geometry_func::fix_length_and_dec() { collation.set(&my_charset_bin); decimals=0; max_length=MAX_BLOB_WIDTH; max_length= max_field_size; maybe_null= 1; } Loading