From: <ta...@us...> - 2015-02-23 14:58:07
|
Revision: 60763 http://sourceforge.net/p/firebird/code/60763 Author: tabloid Date: 2015-02-23 14:57:57 +0000 (Mon, 23 Feb 2015) Log Message: ----------- See added .fbt file(s) Modified Paths: -------------- qa/fbt-repository/trunk/tests/functional/tabloid/fbt-run.bat.txt Added Paths: ----------- qa/fbt-repository/trunk/tests/bugs/core_1992.fbt qa/fbt-repository/trunk/tests/bugs/core_3238.fbt Added: qa/fbt-repository/trunk/tests/bugs/core_1992.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_1992.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_1992.fbt 2015-02-23 14:57:57 UTC (rev 60763) @@ -0,0 +1,846 @@ +{ +'id': 'bugs.core_1992', +'qmid': None, +'tracker_id': 'CORE-1992', +'title': 'bad BLR -- invalid stream for union select', +'description': '', +'min_versions': '2.5.2', +'versions': [ +{ + 'firebird_version': '2.5', + 'platform': 'All', + 'page_size': '4096', + 'test_type': 'ISQL', + 'sql_dialect': 1, + 'init_script': + """ + set term ^; + create or alter procedure + sp01( + a_01 smallint, + a_02 int, + --a_03 bigint, + a_04 numeric(9,0), + a_05 numeric(10,0), + a_06 float, + a_07 double precision, + --a_08 date, + --a_09 time, + a_10 timestamp, + a_11 varchar(1), + a_12 char(2), + a_13 blob + ) returns ( + o_01 smallint, + o_02 int, + --o_03 bigint, + o_04 numeric(9,0), + o_05 numeric(10,0), + o_06 float, + o_07 double precision, + --o_08 date, + --o_09 time, + o_10 timestamp, + o_11 varchar(1), + o_12 char(2), + o_13 blob + ) as + begin + suspend; + end + ^ + set term ;^ + commit; + """, + 'test_script': + """ + set list on; + SELECT + Project7.C8 AS par_name, + Project7.C9 AS par_type, + Project7.C10 AS par_dir + FROM ( SELECT + UnionAll3.SchemaName AS C1, + UnionAll3.Name AS C2, + UnionAll3.ReturnTypeName AS C3, + UnionAll3.IsAggregate AS C4, + UnionAll3.C1 AS C5, + UnionAll3.IsBuiltIn AS C6, + UnionAll3.IsNiladic AS C7, + UnionAll3.C2 AS C8, + UnionAll3.C3 AS C9, + UnionAll3.C4 AS C10, + UnionAll3.C5 AS C11, + 1 AS C12 + FROM (SELECT + Extent1.SchemaName AS SchemaName, + Extent1.Name AS Name, + Extent1.ReturnTypeName AS ReturnTypeName, + Extent1.IsAggregate AS IsAggregate, + CAST(1 AS SMALLINT) AS C1, + Extent1.IsBuiltIn AS IsBuiltIn, + Extent1.IsNiladic AS IsNiladic, + UnionAll1.Name AS C2, + UnionAll1.TypeName AS C3, + UnionAll1.Mode AS C4, + UnionAll1.Ordinal AS C5 + FROM ( + SELECT + TRIM(f.rdb$function_name) as Id + , null as CatalogName + , null as SchemaName + , TRIM(f.rdb$function_name) as Name + , TRIM(CASE fa.rdb$field_type + WHEN 7 THEN CASE fa.rdb$field_sub_type + WHEN 0 THEN 'smallint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 8 THEN CASE fa.rdb$field_sub_type + WHEN 0 THEN 'int' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 16 THEN CASE fa.rdb$field_sub_type + WHEN 0 THEN 'bigint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 10 THEN 'float' + WHEN 27 THEN 'double' + WHEN 12 THEN 'date' + WHEN 13 THEN 'time' + WHEN 35 THEN 'timestamp' + WHEN 261 THEN 'blob' + WHEN 37 THEN 'varchar' + WHEN 14 THEN 'char' + WHEN 40 THEN 'cstring' + END) as ReturnTypeName + , fa.rdb$character_length as ReturnMaxLength + , fa.rdb$field_precision as ReturnPrecision + , 0 as ReturnDateTimePrecision + , fa.rdb$field_scale * (-1) as ReturnScale + , null as ReturnCollationCatalog + , null as ReturnCollationSchema + , null as ReturnCollationName + , null as ReturnCharacterSetCatalog + , null as ReturnCharacterSetSchema + , null as ReturnCharacterSetName + , CAST(0 as smallint) as ReturnIsMultiSet + , CAST(0 as smallint) as IsAggregate + , CAST(0 as smallint) as IsBuiltIn + , CAST((select CASE COUNT(*) WHEN 1 THEN 1 ELSE 0 END FROM + rdb$function_arguments fa WHERE fa.rdb$function_name = + f.rdb$function_name) as smallint) as IsNiladic + FROM + rdb$functions f INNER JOIN rdb$function_arguments fa ON + (f.rdb$function_name = fa.rdb$function_name AND f.rdb$return_argument + = fa.rdb$argument_position) + WHERE f.rdb$system_flag = 0 -- ::: nb ::: need add alias f. in 3.0! + ) AS Extent1 + LEFT OUTER JOIN (SELECT + Extent2.Name AS Name, + Extent2.Ordinal AS Ordinal, + Extent2.TypeName AS TypeName, + Extent2.Mode AS Mode, + 0 AS C1, + Extent2.ParentId AS ParentId + FROM ( + SELECT + null as Id + , null as ParentId + , null as Name + , null as Ordinal + , null as TypeName + , null as MaxLength + , null as DblPrecision + , null as DateTimePrecision + , null as Scale + , null as CollationCatalog + , null as CollationSchema + , null as CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , null as IsMultiSet + + , null as Mode + , null as DefaultType + FROM + rdb$database + WHERE + 0=1 + ) AS Extent2 + UNION ALL + SELECT + Extent3.Name AS Name, + Extent3.Ordinal AS Ordinal, + Extent3.TypeName AS TypeName, + Extent3.Mode AS Mode, + 6 AS C1, + Extent3.ParentId AS ParentId + FROM ( + SELECT + TRIM(pp.rdb$procedure_name) || 'x' || + TRIM(pp.rdb$parameter_name) as Id + , TRIM(pp.rdb$procedure_name) as ParentId + , TRIM(pp.rdb$parameter_name) as Name + , pp.rdb$parameter_number+1 as Ordinal + , TRIM(CASE f.rdb$field_type + WHEN 7 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'smallint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 8 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'int' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 16 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'bigint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 10 THEN 'float' + WHEN 27 THEN 'double' + WHEN 12 THEN 'date' + WHEN 13 THEN 'time' + WHEN 35 THEN 'timestamp' + WHEN 261 THEN 'blob' + WHEN 37 THEN 'varchar' + WHEN 14 THEN 'char' + WHEN 40 THEN 'cstring' + END) as TypeName + , f.rdb$character_length as MaxLength + , f.rdb$field_precision as DblPrecision + , 0 as DateTimePrecision + , f.rdb$field_scale * (-1) as Scale + , null as CollationCatalog + , null as CollationSchema + , null CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , CAST(0 as smallint) as IsMultiSet + , TRIM(IIF(pp.rdb$parameter_type = 1, 'OUT', 'IN')) as Mode + , NULL as DefaultType + FROM + rdb$procedure_parameters pp INNER JOIN rdb$fields f ON + (pp.rdb$field_source = f.rdb$field_name) + ) AS Extent3) AS UnionAll1 ON (0 = UnionAll1.C1) AND + (Extent1.Id = UnionAll1.ParentId) + UNION ALL + SELECT + Extent4.SchemaName AS SchemaName, + Extent4.Name AS Name, + CAST(NULL AS varchar(1000)) AS C1, + CAST(0 AS SMALLINT) AS C2, + CAST(0 AS SMALLINT) AS C3, + CAST(0 AS SMALLINT) AS C4, + CAST(0 AS SMALLINT) AS C5, + UnionAll2.Name AS C6, + UnionAll2.TypeName AS C7, + UnionAll2.Mode AS C8, + UnionAll2.Ordinal AS C9 + FROM ( + SELECT + TRIM(rdb$procedure_name) as Id + , null as CatalogName + , '' as SchemaName -- bug or not??? need to be not null + , TRIM(rdb$procedure_name) as Name + FROM + rdb$procedures + ) AS Extent4 + LEFT OUTER JOIN (SELECT + Extent5.Name AS Name, + Extent5.Ordinal AS Ordinal, + Extent5.TypeName AS TypeName, + Extent5.Mode AS Mode, + 0 AS C1, + Extent5.ParentId AS ParentId + FROM ( + SELECT + null as Id + , null as ParentId + , null as Name + , null as Ordinal + , null as TypeName + , null as MaxLength + , null as DblPrecision + , null as DateTimePrecision + , null as Scale + , null as CollationCatalog + , null as CollationSchema + , null as CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , null as IsMultiSet + , null as Mode + , null as DefaultType + FROM + rdb$database + WHERE + 0=1 + ) AS Extent5 + UNION ALL + SELECT + Extent6.Name AS Name, + Extent6.Ordinal AS Ordinal, + Extent6.TypeName AS TypeName, + Extent6.Mode AS Mode, + 6 AS C1, + Extent6.ParentId AS ParentId + FROM ( + SELECT + TRIM(pp.rdb$procedure_name) || 'x' || + TRIM(pp.rdb$parameter_name) as Id + , TRIM(pp.rdb$procedure_name) as ParentId + , TRIM(pp.rdb$parameter_name) as Name + , pp.rdb$parameter_number+1 as Ordinal + , TRIM(CASE f.rdb$field_type + WHEN 7 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'smallint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 8 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'int' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 16 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'bigint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 10 THEN 'float' + WHEN 27 THEN 'double' + WHEN 12 THEN 'date' + WHEN 13 THEN 'time' + WHEN 35 THEN 'timestamp' + WHEN 261 THEN 'blob' + WHEN 37 THEN 'varchar' + WHEN 14 THEN 'char' + WHEN 40 THEN 'cstring' + END) as TypeName + , f.rdb$character_length as MaxLength + , f.rdb$field_precision as DblPrecision + , 0 as DateTimePrecision + , f.rdb$field_scale * (-1) as Scale + , null as CollationCatalog + , null as CollationSchema + , null CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , CAST(0 as smallint) as IsMultiSet + , TRIM(IIF(pp.rdb$parameter_type = 1, 'OUT', 'IN')) as Mode + , NULL as DefaultType + FROM + rdb$procedure_parameters pp INNER JOIN rdb$fields f ON + (pp.rdb$field_source = f.rdb$field_name) + ) AS Extent6) AS UnionAll2 ON (6 = UnionAll2.C1) AND + (Extent4.Id = UnionAll2.ParentId)) AS UnionAll3 + ) AS Project7 + order by par_dir,par_name + ; + """, + 'expected_stdout': + """ + PAR_NAME A_01 + PAR_TYPE smallint + PAR_DIR IN + PAR_NAME A_02 + PAR_TYPE int + PAR_DIR IN + PAR_NAME A_04 + PAR_TYPE numeric + PAR_DIR IN + PAR_NAME A_05 + PAR_TYPE double + PAR_DIR IN + PAR_NAME A_06 + PAR_TYPE float + PAR_DIR IN + PAR_NAME A_07 + PAR_TYPE double + PAR_DIR IN + PAR_NAME A_10 + PAR_TYPE timestamp + PAR_DIR IN + PAR_NAME A_11 + PAR_TYPE varchar + PAR_DIR IN + PAR_NAME A_12 + PAR_TYPE char + PAR_DIR IN + PAR_NAME A_13 + PAR_TYPE blob + PAR_DIR IN + PAR_NAME O_01 + PAR_TYPE smallint + PAR_DIR OUT + PAR_NAME O_02 + PAR_TYPE int + PAR_DIR OUT + PAR_NAME O_04 + PAR_TYPE numeric + PAR_DIR OUT + PAR_NAME O_05 + PAR_TYPE double + PAR_DIR OUT + PAR_NAME O_06 + PAR_TYPE float + PAR_DIR OUT + PAR_NAME O_07 + PAR_TYPE double + PAR_DIR OUT + PAR_NAME O_10 + PAR_TYPE timestamp + PAR_DIR OUT + PAR_NAME O_11 + PAR_TYPE varchar + PAR_DIR OUT + PAR_NAME O_12 + PAR_TYPE char + PAR_DIR OUT + PAR_NAME O_13 + PAR_TYPE blob + PAR_DIR OUT + """, + 'expected_stderr': + """ + """ +}, +{ + 'firebird_version': '2.5', + 'platform': 'All', + 'page_size': '4096', + 'test_type': 'ISQL', + 'sql_dialect': 3, + 'init_script': + """ + + set term ^; + create or alter procedure + sp01( + a_01 smallint, + a_02 int, + a_03 bigint, + a_04 numeric(9,0), + a_05 numeric(10,0), + a_06 float, + a_07 double precision, + a_08 date, + a_09 time, + a_10 timestamp, + a_11 varchar(1), + a_12 char(2), + a_13 blob + ) returns ( + o_01 smallint, + o_02 int, + o_03 bigint, + o_04 numeric(9,0), + o_05 numeric(10,0), + o_06 float, + o_07 double precision, + o_08 date, + o_09 time, + o_10 timestamp, + o_11 varchar(1), + o_12 char(2), + o_13 blob + ) as + begin + suspend; + end + ^ + set term ;^ + commit; + """, + 'test_script': + """ + + set list on; + SELECT + Project7.C8 AS par_name, + Project7.C9 AS par_type, + Project7.C10 AS par_dir + FROM ( SELECT + UnionAll3.SchemaName AS C1, + UnionAll3.Name AS C2, + UnionAll3.ReturnTypeName AS C3, + UnionAll3.IsAggregate AS C4, + UnionAll3.C1 AS C5, + UnionAll3.IsBuiltIn AS C6, + UnionAll3.IsNiladic AS C7, + UnionAll3.C2 AS C8, + UnionAll3.C3 AS C9, + UnionAll3.C4 AS C10, + UnionAll3.C5 AS C11, + 1 AS C12 + FROM (SELECT + Extent1.SchemaName AS SchemaName, + Extent1.Name AS Name, + Extent1.ReturnTypeName AS ReturnTypeName, + Extent1.IsAggregate AS IsAggregate, + CAST(1 AS SMALLINT) AS C1, + Extent1.IsBuiltIn AS IsBuiltIn, + Extent1.IsNiladic AS IsNiladic, + UnionAll1.Name AS C2, + UnionAll1.TypeName AS C3, + UnionAll1.Mode AS C4, + UnionAll1.Ordinal AS C5 + FROM ( + SELECT + TRIM(f.rdb$function_name) as Id + , null as CatalogName + , null as SchemaName + , TRIM(f.rdb$function_name) as Name + , TRIM(CASE fa.rdb$field_type + WHEN 7 THEN CASE fa.rdb$field_sub_type + WHEN 0 THEN 'smallint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 8 THEN CASE fa.rdb$field_sub_type + WHEN 0 THEN 'int' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 16 THEN CASE fa.rdb$field_sub_type + WHEN 0 THEN 'bigint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 10 THEN 'float' + WHEN 27 THEN 'double' + WHEN 12 THEN 'date' + WHEN 13 THEN 'time' + WHEN 35 THEN 'timestamp' + WHEN 261 THEN 'blob' + WHEN 37 THEN 'varchar' + WHEN 14 THEN 'char' + WHEN 40 THEN 'cstring' + END) as ReturnTypeName + , fa.rdb$character_length as ReturnMaxLength + , fa.rdb$field_precision as ReturnPrecision + , 0 as ReturnDateTimePrecision + , fa.rdb$field_scale * (-1) as ReturnScale + , null as ReturnCollationCatalog + , null as ReturnCollationSchema + , null as ReturnCollationName + , null as ReturnCharacterSetCatalog + , null as ReturnCharacterSetSchema + , null as ReturnCharacterSetName + , CAST(0 as smallint) as ReturnIsMultiSet + , CAST(0 as smallint) as IsAggregate + , CAST(0 as smallint) as IsBuiltIn + , CAST((select CASE COUNT(*) WHEN 1 THEN 1 ELSE 0 END FROM + rdb$function_arguments fa WHERE fa.rdb$function_name = + f.rdb$function_name) as smallint) as IsNiladic + FROM + rdb$functions f INNER JOIN rdb$function_arguments fa ON + (f.rdb$function_name = fa.rdb$function_name AND f.rdb$return_argument + = fa.rdb$argument_position) + WHERE f.rdb$system_flag = 0 -- ::: nb ::: need add alias f. in 3.0! + ) AS Extent1 + LEFT OUTER JOIN (SELECT + Extent2.Name AS Name, + Extent2.Ordinal AS Ordinal, + Extent2.TypeName AS TypeName, + Extent2.Mode AS Mode, + 0 AS C1, + Extent2.ParentId AS ParentId + FROM ( + SELECT + null as Id + , null as ParentId + , null as Name + , null as Ordinal + , null as TypeName + , null as MaxLength + , null as DblPrecision + , null as DateTimePrecision + , null as Scale + , null as CollationCatalog + , null as CollationSchema + , null as CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , null as IsMultiSet + + , null as Mode + , null as DefaultType + FROM + rdb$database + WHERE + 0=1 + ) AS Extent2 + UNION ALL + SELECT + Extent3.Name AS Name, + Extent3.Ordinal AS Ordinal, + Extent3.TypeName AS TypeName, + Extent3.Mode AS Mode, + 6 AS C1, + Extent3.ParentId AS ParentId + FROM ( + SELECT + TRIM(pp.rdb$procedure_name) || 'x' || + TRIM(pp.rdb$parameter_name) as Id + , TRIM(pp.rdb$procedure_name) as ParentId + , TRIM(pp.rdb$parameter_name) as Name + , pp.rdb$parameter_number+1 as Ordinal + , TRIM(CASE f.rdb$field_type + WHEN 7 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'smallint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 8 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'int' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 16 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'bigint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 10 THEN 'float' + WHEN 27 THEN 'double' + WHEN 12 THEN 'date' + WHEN 13 THEN 'time' + WHEN 35 THEN 'timestamp' + WHEN 261 THEN 'blob' + WHEN 37 THEN 'varchar' + WHEN 14 THEN 'char' + WHEN 40 THEN 'cstring' + END) as TypeName + , f.rdb$character_length as MaxLength + , f.rdb$field_precision as DblPrecision + , 0 as DateTimePrecision + , f.rdb$field_scale * (-1) as Scale + , null as CollationCatalog + , null as CollationSchema + , null CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , CAST(0 as smallint) as IsMultiSet + , TRIM(IIF(pp.rdb$parameter_type = 1, 'OUT', 'IN')) as Mode + , NULL as DefaultType + FROM + rdb$procedure_parameters pp INNER JOIN rdb$fields f ON + (pp.rdb$field_source = f.rdb$field_name) + ) AS Extent3) AS UnionAll1 ON (0 = UnionAll1.C1) AND + (Extent1.Id = UnionAll1.ParentId) + UNION ALL + SELECT + Extent4.SchemaName AS SchemaName, + Extent4.Name AS Name, + CAST(NULL AS varchar(1000)) AS C1, + CAST(0 AS SMALLINT) AS C2, + CAST(0 AS SMALLINT) AS C3, + CAST(0 AS SMALLINT) AS C4, + CAST(0 AS SMALLINT) AS C5, + UnionAll2.Name AS C6, + UnionAll2.TypeName AS C7, + UnionAll2.Mode AS C8, + UnionAll2.Ordinal AS C9 + FROM ( + SELECT + TRIM(rdb$procedure_name) as Id + , null as CatalogName + , '' as SchemaName -- bug or not??? need to be not null + , TRIM(rdb$procedure_name) as Name + FROM + rdb$procedures + ) AS Extent4 + LEFT OUTER JOIN (SELECT + Extent5.Name AS Name, + Extent5.Ordinal AS Ordinal, + Extent5.TypeName AS TypeName, + Extent5.Mode AS Mode, + 0 AS C1, + Extent5.ParentId AS ParentId + FROM ( + SELECT + null as Id + , null as ParentId + , null as Name + , null as Ordinal + , null as TypeName + , null as MaxLength + , null as DblPrecision + , null as DateTimePrecision + , null as Scale + , null as CollationCatalog + , null as CollationSchema + , null as CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , null as IsMultiSet + , null as Mode + , null as DefaultType + FROM + rdb$database + WHERE + 0=1 + ) AS Extent5 + UNION ALL + SELECT + Extent6.Name AS Name, + Extent6.Ordinal AS Ordinal, + Extent6.TypeName AS TypeName, + Extent6.Mode AS Mode, + 6 AS C1, + Extent6.ParentId AS ParentId + FROM ( + SELECT + TRIM(pp.rdb$procedure_name) || 'x' || + TRIM(pp.rdb$parameter_name) as Id + , TRIM(pp.rdb$procedure_name) as ParentId + , TRIM(pp.rdb$parameter_name) as Name + , pp.rdb$parameter_number+1 as Ordinal + , TRIM(CASE f.rdb$field_type + WHEN 7 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'smallint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 8 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'int' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 16 THEN CASE f.rdb$field_sub_type + WHEN 0 THEN 'bigint' + WHEN 1 THEN 'numeric' + WHEN 2 THEN 'decimal' + END + WHEN 10 THEN 'float' + WHEN 27 THEN 'double' + WHEN 12 THEN 'date' + WHEN 13 THEN 'time' + WHEN 35 THEN 'timestamp' + WHEN 261 THEN 'blob' + WHEN 37 THEN 'varchar' + WHEN 14 THEN 'char' + WHEN 40 THEN 'cstring' + END) as TypeName + , f.rdb$character_length as MaxLength + , f.rdb$field_precision as DblPrecision + , 0 as DateTimePrecision + , f.rdb$field_scale * (-1) as Scale + , null as CollationCatalog + , null as CollationSchema + , null CollationName + , null as CharacterSetCatalog + , null as CharacterSetSchema + , null as CharacterSetName + , CAST(0 as smallint) as IsMultiSet + , TRIM(IIF(pp.rdb$parameter_type = 1, 'OUT', 'IN')) as Mode + , NULL as DefaultType + FROM + rdb$procedure_parameters pp INNER JOIN rdb$fields f ON + (pp.rdb$field_source = f.rdb$field_name) + ) AS Extent6) AS UnionAll2 ON (6 = UnionAll2.C1) AND + (Extent4.Id = UnionAll2.ParentId)) AS UnionAll3 + ) AS Project7 + order by par_dir,par_name + ; + """, + 'expected_stdout': + """ + PAR_NAME A_01 + PAR_TYPE smallint + PAR_DIR IN + PAR_NAME A_02 + PAR_TYPE int + PAR_DIR IN + PAR_NAME A_03 + PAR_TYPE bigint + PAR_DIR IN + PAR_NAME A_04 + PAR_TYPE numeric + PAR_DIR IN + PAR_NAME A_05 + PAR_TYPE numeric + PAR_DIR IN + PAR_NAME A_06 + PAR_TYPE float + PAR_DIR IN + PAR_NAME A_07 + PAR_TYPE double + PAR_DIR IN + PAR_NAME A_08 + PAR_TYPE date + PAR_DIR IN + PAR_NAME A_09 + PAR_TYPE time + PAR_DIR IN + PAR_NAME A_10 + PAR_TYPE timestamp + PAR_DIR IN + PAR_NAME A_11 + PAR_TYPE varchar + PAR_DIR IN + PAR_NAME A_12 + PAR_TYPE char + PAR_DIR IN + PAR_NAME A_13 + PAR_TYPE blob + PAR_DIR IN + PAR_NAME O_01 + PAR_TYPE smallint + PAR_DIR OUT + PAR_NAME O_02 + PAR_TYPE int + PAR_DIR OUT + PAR_NAME O_03 + PAR_TYPE bigint + PAR_DIR OUT + PAR_NAME O_04 + PAR_TYPE numeric + PAR_DIR OUT + PAR_NAME O_05 + PAR_TYPE numeric + PAR_DIR OUT + PAR_NAME O_06 + PAR_TYPE float + PAR_DIR OUT + PAR_NAME O_07 + PAR_TYPE double + PAR_DIR OUT + PAR_NAME O_08 + PAR_TYPE date + PAR_DIR OUT + PAR_NAME O_09 + PAR_TYPE time + PAR_DIR OUT + PAR_NAME O_10 + PAR_TYPE timestamp + PAR_DIR OUT + PAR_NAME O_11 + PAR_TYPE varchar + PAR_DIR OUT + PAR_NAME O_12 + PAR_TYPE char + PAR_DIR OUT + PAR_NAME O_13 + PAR_TYPE blob + PAR_DIR OUT + """, + 'expected_stderr': + """ + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_1992.fbt ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: qa/fbt-repository/trunk/tests/bugs/core_3238.fbt =================================================================== --- qa/fbt-repository/trunk/tests/bugs/core_3238.fbt (rev 0) +++ qa/fbt-repository/trunk/tests/bugs/core_3238.fbt 2015-02-23 14:57:57 UTC (rev 60763) @@ -0,0 +1,45 @@ +{ +'id': 'bugs.core_3238', +'qmid': None, +'tracker_id': 'CORE-3238', +'title': 'Makes GEN_UUID return a compliant RFC-4122 UUID', +'description': '', +'min_versions': '2.5.2', +'versions': [ +{ + 'firebird_version': '2.5', + 'platform': 'All', + 'test_type': 'ISQL', + 'init_script': + """ + """, + 'test_script': + """ + set list on; + set term ^; + execute block returns(err_cnt int) as + declare n int = 100000; + declare s varchar(36); + begin + err_cnt = 0; + while( n > 0 ) do + begin + s = uuid_to_char( gen_uuid() ); + if ( NOT (substring(s from 15 for 1)='4' and substring(s from 20 for 1) in ('8','9','A','B')) ) + then err_cnt = err_cnt + 1; + n = n - 1; + end + suspend; + end + ^ set term ;^ + """, + 'expected_stdout': + """ + ERR_CNT 0 + """, + 'expected_stderr': + """ + """ +} +] +} Property changes on: qa/fbt-repository/trunk/tests/bugs/core_3238.fbt ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Modified: qa/fbt-repository/trunk/tests/functional/tabloid/fbt-run.bat.txt =================================================================== --- qa/fbt-repository/trunk/tests/functional/tabloid/fbt-run.bat.txt 2015-02-23 10:29:43 UTC (rev 60762) +++ qa/fbt-repository/trunk/tests/functional/tabloid/fbt-run.bat.txt 2015-02-23 14:57:57 UTC (rev 60763) @@ -2,7 +2,7 @@ cls @rem File name: C:\firebird\QA\fbt-repo\fbt-run.bat @rem It is recommended to put this file in the 'top-level' folder - "QA\fbt-repo". -@rem Running sample: C:\firebird\QA\fbt-repo\fbt-run.bat core_NNNN.fbt +@rem Running sample: C:\MIX\firebird\QA\fbt-repo\fbt-run.bat core_NNNN.fbt @rem Also it is convenient to 'bind' this batch to files with pattern *.fbt @rem from sub-folder fbt-repo\tests\ (FAR: F10 / Commands / File associations) @rem I that case one may always to sit in the folder with .fbt files @@ -22,11 +22,12 @@ @echo off cd %~dp0 -echo Running test: %fbt_name%>fbt-run.25.log -echo ------------------------>>fbt-run.25.log -copy fbt-run.25.log fbt-run.30.log >nul +echo %date%, %time%, running test: %fbt_name%>fbt-run.25.log +echo ------------------------------------------------------->>fbt-run.25.log +%fb25home%\fbsvcmgr localhost/%fb25port%:service_mgr user %isc_user% password %isc_password% info_server_version 1>>fbt-run.25.log 2>&1 -%fb25home%\fbsvcmgr localhost/%fb25port%:service_mgr user %isc_user% password %isc_password% info_server_version 1>>fbt-run.25.log 2>&1 +echo %date%, %time%, running test: %fbt_name%>fbt-run.30.log +echo ------------------------------------------------------->>fbt-run.30.log %fb30home%\fbsvcmgr localhost/%fb30port%:service_mgr user %isc_user% password %isc_password% info_server_version 1>>fbt-run.30.log 2>&1 echo. echo Running for 2.5 . . . This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |