MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:igor Date:July 14 2006 3:48am
Subject:bk commit into 5.0 tree (igor:1.2236) BUG#19714
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of igor. When igor does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-07-13 20:48:26-07:00, igor@stripped +16 -0
  Fixed bug #19714.
  DESCRIBE returned the type BIGINT for a column of a view if the column
  was specified by an expression over values of the type INT.
      
  E.g. for the view defined as follows:
    CREATE VIEW v1 SELECT COALESCE(f1,f2) FROM t1
  DESCRIBE returned type BIGINT for the only column of the view if f1,f2 are
  columns of the INT type.
  At the same time DESCRIBE returned type INT for the only column of the table
  defined by the statement:
    CREATE TABLE t2 SELECT COALESCE(f1,f2) FROM t1.
      
  This inconsistency was removed by the patch.
  
  Now the code chooses between INT/BIGINT depending on the
  precision of the aggregated column type.
   
  Thus both DESCRIBE commands above returns type INT for v1 and t2.
   

  mysql-test/r/analyse.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +12 -12
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/bigint.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +1 -1
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/create.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/olap.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/ps_2myisam.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/ps_3innodb.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/ps_4heap.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/ps_5merge.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +4 -4
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/ps_6bdb.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/ps_7ndb.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/sp.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +1 -1
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/subselect.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +6 -6
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/type_ranges.result@stripped, 2006-07-13 20:48:23-07:00, igor@stripped +2 -2
    Adjusted the results after having fixed bug #19714.

  mysql-test/r/view.result@stripped, 2006-07-13 20:48:24-07:00, igor@stripped +11 -0
    Added a test case for bug #19714.

  mysql-test/t/view.test@stripped, 2006-07-13 20:48:24-07:00, igor@stripped +13 -0
    Added a test case for bug #19714.

  sql/sql_select.cc@stripped, 2006-07-13 20:48:24-07:00, igor@stripped +7 -2
    Fixed bug #19714.
    DESCRIBE returned the type BIGINT for a column of a view if the column
    was specified by an expression over values of the type INT.
        
    E.g. for the view defined as follows:
      CREATE VIEW v1 SELECT COALESCE(f1,f2) FROM t1
    DESCRIBE returned type BIGINT for the only column of the view if f1,f2 are
    columns of the INT type.
    At the same time DESCRIBE returned type INT for the only column of the table
    defined by the statement:
      CREATE TABLE t2 SELECT COALESCE(f1,f2) FROM t1.
        
    This inconsistency was removed by the patch.
    
    Now the code chooses between INT/BIGINT depending on the
    precision of the aggregated column type.
     
    Thus both DESCRIBE commands above returns type INT for v1 and t2.
     

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	igor
# Host:	olga.mysql.com
# Root:	/home/igor/mysql-5.0-opt

--- 1.431/sql/sql_select.cc	2006-07-13 20:48:30 -07:00
+++ 1.432/sql/sql_select.cc	2006-07-13 20:48:30 -07:00
@@ -8074,8 +8074,13 @@
 			       item->name, table, item->decimals);
     break;
   case INT_RESULT:
-    new_field=new Field_longlong(item->max_length, maybe_null,
-				   item->name, table, item->unsigned_flag);
+    /* Select an integer type with the minimal fit precision */
+    if (item->max_length > 11)
+      new_field=new Field_longlong(item->max_length, maybe_null,
+                                   item->name, table, item->unsigned_flag);
+    else
+      new_field=new Field_long(item->max_length, maybe_null,
+                               item->name, table, item->unsigned_flag);
     break;
   case STRING_RESULT:
     DBUG_ASSERT(item->collation.collation);

--- 1.32/mysql-test/r/olap.result	2006-07-13 20:48:30 -07:00
+++ 1.33/mysql-test/r/olap.result	2006-07-13 20:48:30 -07:00
@@ -620,8 +620,8 @@
 SELECT a, LENGTH(a), COUNT(*) FROM t1 GROUP BY a WITH ROLLUP;
 DESC v1;
 Field	Type	Null	Key	Default	Extra
-a	bigint(11)	YES		NULL	
-LENGTH(a)	bigint(10)	YES		NULL	
+a	int(11)	YES		0	
+LENGTH(a)	int(10)	YES		NULL	
 COUNT(*)	bigint(21)	NO		0	
 SELECT * FROM v1;
 a	LENGTH(a)	COUNT(*)

--- 1.146/mysql-test/r/subselect.result	2006-07-13 20:48:30 -07:00
+++ 1.147/mysql-test/r/subselect.result	2006-07-13 20:48:30 -07:00
@@ -1087,24 +1087,24 @@
 SHOW CREATE TABLE t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
-  `a` bigint(1) NOT NULL default '0',
-  `(SELECT 1)` bigint(1) NOT NULL default '0'
+  `a` int(1) NOT NULL default '0',
+  `(SELECT 1)` int(1) NOT NULL default '0'
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 CREATE TABLE t1 SELECT * FROM (SELECT 1 as a,(SELECT a)) a;
 SHOW CREATE TABLE t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
-  `a` bigint(1) NOT NULL default '0',
-  `(SELECT a)` bigint(1) NOT NULL default '0'
+  `a` int(1) NOT NULL default '0',
+  `(SELECT a)` int(1) NOT NULL default '0'
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 CREATE TABLE t1 SELECT * FROM (SELECT 1 as a,(SELECT a+0)) a;
 SHOW CREATE TABLE t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
-  `a` bigint(1) NOT NULL default '0',
-  `(SELECT a+0)` bigint(3) NOT NULL default '0'
+  `a` int(1) NOT NULL default '0',
+  `(SELECT a+0)` int(3) NOT NULL default '0'
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 CREATE TABLE t1 SELECT (SELECT 1 as a UNION SELECT 1+1 limit 1,1) as a;

--- 1.164/mysql-test/r/view.result	2006-07-13 20:48:30 -07:00
+++ 1.165/mysql-test/r/view.result	2006-07-13 20:48:30 -07:00
@@ -2763,3 +2763,14 @@
 MontgomeryMontgomery
 DROP VIEW v1;
 DROP TABLE t1;
+CREATE TABLE t1 (i int, j int);
+CREATE VIEW v1 AS SELECT COALESCE(i,j) FROM t1;
+DESCRIBE v1;
+Field	Type	Null	Key	Default	Extra
+COALESCE(i,j)	int(11)	YES		NULL	
+CREATE TABLE t2 SELECT COALESCE(i,j) FROM t1;
+DESCRIBE t2;
+Field	Type	Null	Key	Default	Extra
+COALESCE(i,j)	int(11)	YES		NULL	
+DROP VIEW v1;
+DROP TABLE t1,t2;

--- 1.149/mysql-test/t/view.test	2006-07-13 20:48:30 -07:00
+++ 1.150/mysql-test/t/view.test	2006-07-13 20:48:30 -07:00
@@ -2630,3 +2630,16 @@
 
 DROP VIEW v1;
 DROP TABLE t1;
+
+#
+# Bug #19714: wrong type of a view column specified by an expressions over ints
+#
+
+CREATE TABLE t1 (i int, j int);
+CREATE VIEW v1 AS SELECT COALESCE(i,j) FROM t1;
+DESCRIBE v1;
+CREATE TABLE t2 SELECT COALESCE(i,j) FROM t1;  
+DESCRIBE t2;
+
+DROP VIEW v1;
+DROP TABLE t1,t2;

--- 1.40/mysql-test/r/ps_2myisam.result	2006-07-13 20:48:30 -07:00
+++ 1.41/mysql-test/r/ps_2myisam.result	2006-07-13 20:48:30 -07:00
@@ -1775,7 +1775,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -1805,7 +1805,7 @@
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
-def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
+def	test	t5	t5	const01	const01	3	1	1	N	32769	0	63
 def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63

--- 1.43/mysql-test/r/ps_3innodb.result	2006-07-13 20:48:30 -07:00
+++ 1.44/mysql-test/r/ps_3innodb.result	2006-07-13 20:48:30 -07:00
@@ -1758,7 +1758,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -1788,7 +1788,7 @@
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
-def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
+def	test	t5	t5	const01	const01	3	1	1	N	32769	0	63
 def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63

--- 1.39/mysql-test/r/ps_4heap.result	2006-07-13 20:48:30 -07:00
+++ 1.40/mysql-test/r/ps_4heap.result	2006-07-13 20:48:30 -07:00
@@ -1759,7 +1759,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -1789,7 +1789,7 @@
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
-def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
+def	test	t5	t5	const01	const01	3	1	1	N	32769	0	63
 def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63

--- 1.40/mysql-test/r/ps_5merge.result	2006-07-13 20:48:31 -07:00
+++ 1.41/mysql-test/r/ps_5merge.result	2006-07-13 20:48:31 -07:00
@@ -1695,7 +1695,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -1725,7 +1725,7 @@
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
-def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
+def	test	t5	t5	const01	const01	3	1	1	N	32769	0	63
 def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63
@@ -4709,7 +4709,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -4739,7 +4739,7 @@
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
-def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
+def	test	t5	t5	const01	const01	3	1	1	N	32769	0	63
 def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63

--- 1.42/mysql-test/r/ps_6bdb.result	2006-07-13 20:48:31 -07:00
+++ 1.43/mysql-test/r/ps_6bdb.result	2006-07-13 20:48:31 -07:00
@@ -1758,7 +1758,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -1788,7 +1788,7 @@
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
-def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
+def	test	t5	t5	const01	const01	3	1	1	N	32769	0	63
 def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63

--- 1.42/mysql-test/r/ps_7ndb.result	2006-07-13 20:48:31 -07:00
+++ 1.43/mysql-test/r/ps_7ndb.result	2006-07-13 20:48:31 -07:00
@@ -1758,7 +1758,7 @@
 show create table t5 ;
 Table	Create Table
 t5	CREATE TABLE `t5` (
-  `const01` bigint(1) NOT NULL default '0',
+  `const01` int(1) NOT NULL default '0',
   `param01` bigint(20) default NULL,
   `const02` decimal(2,1) NOT NULL default '0.0',
   `param02` decimal(65,30) default NULL,
@@ -1789,7 +1789,7 @@
 select * from t5 ;
 Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
 def	test	t5	t5	const01	const01	8	1	1	N	32769	0	63
-def	test	t5	t5	param01	param01	8	20	1	Y	32768	0	63
+def	test	t5	t5	param01	param01	3	20	1	Y	32768	0	63
 def	test	t5	t5	const02	const02	246	4	3	N	1	1	63
 def	test	t5	t5	param02	param02	246	67	32	Y	0	30	63
 def	test	t5	t5	const03	const03	5	17	1	N	32769	31	63

--- 1.25/mysql-test/r/analyse.result	2006-07-13 20:48:31 -07:00
+++ 1.26/mysql-test/r/analyse.result	2006-07-13 20:48:31 -07:00
@@ -39,10 +39,10 @@
   `Field_name` varbinary(255) NOT NULL default '',
   `Min_value` varbinary(255) default NULL,
   `Max_value` varbinary(255) default NULL,
-  `Min_length` bigint(11) NOT NULL default '0',
-  `Max_length` bigint(11) NOT NULL default '0',
-  `Empties_or_zeros` bigint(11) NOT NULL default '0',
-  `Nulls` bigint(11) NOT NULL default '0',
+  `Min_length` int(11) NOT NULL default '0',
+  `Max_length` int(11) NOT NULL default '0',
+  `Empties_or_zeros` int(11) NOT NULL default '0',
+  `Nulls` int(11) NOT NULL default '0',
   `Avg_value_or_avg_length` varbinary(255) NOT NULL default '',
   `Std` varbinary(255) default NULL,
   `Optimal_fieldtype` varbinary(64) NOT NULL default ''
@@ -58,10 +58,10 @@
   `Field_name` varbinary(255) NOT NULL default '',
   `Min_value` varbinary(255) default NULL,
   `Max_value` varbinary(255) default NULL,
-  `Min_length` bigint(11) NOT NULL default '0',
-  `Max_length` bigint(11) NOT NULL default '0',
-  `Empties_or_zeros` bigint(11) NOT NULL default '0',
-  `Nulls` bigint(11) NOT NULL default '0',
+  `Min_length` int(11) NOT NULL default '0',
+  `Max_length` int(11) NOT NULL default '0',
+  `Empties_or_zeros` int(11) NOT NULL default '0',
+  `Nulls` int(11) NOT NULL default '0',
   `Avg_value_or_avg_length` varbinary(255) NOT NULL default '',
   `Std` varbinary(255) default NULL,
   `Optimal_fieldtype` varbinary(64) NOT NULL default ''
@@ -81,10 +81,10 @@
   `Field_name` varbinary(255) NOT NULL default '',
   `Min_value` varbinary(255) default NULL,
   `Max_value` varbinary(255) default NULL,
-  `Min_length` bigint(11) NOT NULL default '0',
-  `Max_length` bigint(11) NOT NULL default '0',
-  `Empties_or_zeros` bigint(11) NOT NULL default '0',
-  `Nulls` bigint(11) NOT NULL default '0',
+  `Min_length` int(11) NOT NULL default '0',
+  `Max_length` int(11) NOT NULL default '0',
+  `Empties_or_zeros` int(11) NOT NULL default '0',
+  `Nulls` int(11) NOT NULL default '0',
   `Avg_value_or_avg_length` varbinary(255) NOT NULL default '',
   `Std` varbinary(255) default NULL,
   `Optimal_fieldtype` varbinary(64) NOT NULL default ''

--- 1.32/mysql-test/r/bigint.result	2006-07-13 20:48:31 -07:00
+++ 1.33/mysql-test/r/bigint.result	2006-07-13 20:48:31 -07:00
@@ -174,7 +174,7 @@
 show create table t1;
 Table	Create Table
 t1	CREATE TABLE `t1` (
-  `a` bigint(1) NOT NULL default '0'
+  `a` int(1) NOT NULL default '0'
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
 create table t1 select 9223372036854775809 as 'a';

--- 1.118/mysql-test/r/create.result	2006-07-13 20:48:31 -07:00
+++ 1.119/mysql-test/r/create.result	2006-07-13 20:48:31 -07:00
@@ -668,7 +668,7 @@
 t1	CREATE TABLE `t1` (
   `b` int(11) NOT NULL,
   `a` varchar(12) character set utf8 collate utf8_bin NOT NULL,
-  `c` bigint(1) NOT NULL default '0',
+  `c` int(1) NOT NULL default '0',
   PRIMARY KEY  (`a`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;
@@ -681,7 +681,7 @@
 t1	CREATE TABLE `t1` (
   `b` int(11) default NULL,
   `a` varchar(12) character set utf8 collate utf8_bin NOT NULL,
-  `c` bigint(1) NOT NULL default '0',
+  `c` int(1) NOT NULL default '0',
   PRIMARY KEY  (`a`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 drop table t1;

--- 1.39/mysql-test/r/type_ranges.result	2006-07-13 20:48:31 -07:00
+++ 1.40/mysql-test/r/type_ranges.result	2006-07-13 20:48:31 -07:00
@@ -273,7 +273,7 @@
 show full columns from t2;
 Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
 auto	bigint(12) unsigned	NULL	NO	PRI	0		#	
-t1	bigint(1)	NULL	NO		0		#	
+t1	int(1)	NULL	NO		0		#	
 t2	varchar(1)	latin1_swedish_ci	NO				#	
 t3	varchar(256)	latin1_swedish_ci	NO				#	
 t4	varbinary(256)	NULL	NO				#	
@@ -301,7 +301,7 @@
 Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
 c1	int(11)	NULL	YES		NULL		#	
 c2	int(11)	NULL	YES		NULL		#	
-const	bigint(1)	NULL	NO		0		#	
+const	int(1)	NULL	NO		0		#	
 drop table t1,t2,t3;
 create table t1 ( myfield INT NOT NULL, UNIQUE INDEX (myfield), unique (myfield), index(myfield));
 drop table t1;

--- 1.202/mysql-test/r/sp.result	2006-07-13 20:48:31 -07:00
+++ 1.203/mysql-test/r/sp.result	2006-07-13 20:48:31 -07:00
@@ -4921,7 +4921,7 @@
 show create table t3|
 Table	Create Table
 t3	CREATE TABLE `t3` (
-  `j` bigint(11) default NULL
+  `j` int(11) default NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 select * from t3|
 j
Thread
bk commit into 5.0 tree (igor:1.2236) BUG#19714igor14 Jul