Loading mysql-test/r/select.result +35 −0 Original line number Diff line number Diff line Loading @@ -4096,4 +4096,39 @@ SELECT `x` FROM v3; x 1 DROP VIEW v1, v2, v3; # # Bug#30736: Row Size Too Large Error Creating a Table and # Inserting Data. # DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; CREATE TABLE t1( c1 DECIMAL(10, 2), c2 FLOAT); INSERT INTO t1 VALUES (0, 1), (2, 3), (4, 5); CREATE TABLE t2( c3 DECIMAL(10, 2)) SELECT c1 * c2 AS c3 FROM t1; SELECT * FROM t1; c1 c2 0.00 1 2.00 3 4.00 5 SELECT * FROM t2; c3 0.00 6.00 20.00 DROP TABLE t1; DROP TABLE t2; End of 5.0 tests mysql-test/t/select.test +48 −0 Original line number Diff line number Diff line Loading @@ -3484,4 +3484,52 @@ DROP VIEW v1, v2, v3; --enable_ps_protocol ########################################################################### --echo --echo # --echo # Bug#30736: Row Size Too Large Error Creating a Table and --echo # Inserting Data. --echo # --disable_warnings DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; --enable_warnings --echo CREATE TABLE t1( c1 DECIMAL(10, 2), c2 FLOAT); --echo INSERT INTO t1 VALUES (0, 1), (2, 3), (4, 5); --echo CREATE TABLE t2( c3 DECIMAL(10, 2)) SELECT c1 * c2 AS c3 FROM t1; --echo SELECT * FROM t1; --echo SELECT * FROM t2; --echo DROP TABLE t1; DROP TABLE t2; --echo ########################################################################### --echo End of 5.0 tests sql/sql_table.cc +1 −1 Original line number Diff line number Diff line Loading @@ -955,8 +955,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, sql_field->length= dup_field->char_length; sql_field->pack_length= dup_field->pack_length; sql_field->key_length= dup_field->key_length; sql_field->create_length_to_internal_length(); sql_field->decimals= dup_field->decimals; sql_field->create_length_to_internal_length(); sql_field->unireg_check= dup_field->unireg_check; /* We're making one field from two, the result field will have Loading Loading
mysql-test/r/select.result +35 −0 Original line number Diff line number Diff line Loading @@ -4096,4 +4096,39 @@ SELECT `x` FROM v3; x 1 DROP VIEW v1, v2, v3; # # Bug#30736: Row Size Too Large Error Creating a Table and # Inserting Data. # DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; CREATE TABLE t1( c1 DECIMAL(10, 2), c2 FLOAT); INSERT INTO t1 VALUES (0, 1), (2, 3), (4, 5); CREATE TABLE t2( c3 DECIMAL(10, 2)) SELECT c1 * c2 AS c3 FROM t1; SELECT * FROM t1; c1 c2 0.00 1 2.00 3 4.00 5 SELECT * FROM t2; c3 0.00 6.00 20.00 DROP TABLE t1; DROP TABLE t2; End of 5.0 tests
mysql-test/t/select.test +48 −0 Original line number Diff line number Diff line Loading @@ -3484,4 +3484,52 @@ DROP VIEW v1, v2, v3; --enable_ps_protocol ########################################################################### --echo --echo # --echo # Bug#30736: Row Size Too Large Error Creating a Table and --echo # Inserting Data. --echo # --disable_warnings DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; --enable_warnings --echo CREATE TABLE t1( c1 DECIMAL(10, 2), c2 FLOAT); --echo INSERT INTO t1 VALUES (0, 1), (2, 3), (4, 5); --echo CREATE TABLE t2( c3 DECIMAL(10, 2)) SELECT c1 * c2 AS c3 FROM t1; --echo SELECT * FROM t1; --echo SELECT * FROM t2; --echo DROP TABLE t1; DROP TABLE t2; --echo ########################################################################### --echo End of 5.0 tests
sql/sql_table.cc +1 −1 Original line number Diff line number Diff line Loading @@ -955,8 +955,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, sql_field->length= dup_field->char_length; sql_field->pack_length= dup_field->pack_length; sql_field->key_length= dup_field->key_length; sql_field->create_length_to_internal_length(); sql_field->decimals= dup_field->decimals; sql_field->create_length_to_internal_length(); sql_field->unireg_check= dup_field->unireg_check; /* We're making one field from two, the result field will have Loading