From: Dmitry Y. <di...@us...> - 2007-10-29 11:14:43
|
Build Version : T2.1.0.17018 Firebird 2.1 Beta 2 (writeBuildNum.sh,v 1.17176 2007/10/29 11:14:41 dimitr Exp ) Update of /cvsroot/firebird/firebird2/src/jrd In directory sc8-pr-cvs17:/tmp/cvs-serv7305 Modified Files: cmp.cpp Log Message: Fixed CORE-1530 and a small cleanup. Index: cmp.cpp =================================================================== RCS file: /cvsroot/firebird/firebird2/src/jrd/cmp.cpp,v retrieving revision 1.263 retrieving revision 1.264 diff -b -U3 -r1.263 -r1.264 --- cmp.cpp 5 Sep 2007 07:18:37 -0000 1.263 +++ cmp.cpp 29 Oct 2007 11:14:33 -0000 1.264 @@ -1588,7 +1588,7 @@ case nod_dbkey: desc->dsc_dtype = dtype_text; desc->dsc_ttype() = ttype_binary; - desc->dsc_length = 8; + desc->dsc_length = sizeof(ISC_QUAD); desc->dsc_scale = 0; desc->dsc_flags = 0; return; @@ -1596,7 +1596,7 @@ case nod_rec_version: desc->dsc_dtype = dtype_text; desc->dsc_ttype() = ttype_binary; - desc->dsc_length = 4; + desc->dsc_length = sizeof(SLONG); desc->dsc_scale = 0; desc->dsc_flags = 0; return; @@ -5856,16 +5856,16 @@ CMP_get_desc(tdbb, csb, assignment->nod_arg[e_asgn_from], &desc2); const USHORT min = MIN(desc->dsc_dtype, desc2.dsc_dtype); const USHORT max = MAX(desc->dsc_dtype, desc2.dsc_dtype); - if (max == dtype_blob) { - desc->dsc_dtype = dtype_quad; - desc->dsc_length = 8; + if (!min) { // eg: dtype_unknown + *desc = desc2; + } + else if (max == dtype_blob) { + desc->dsc_dtype = dtype_blob; + desc->dsc_length = sizeof(ISC_QUAD); desc->dsc_scale = 0; desc->dsc_sub_type = 0; desc->dsc_flags = 0; } - else if (!min) { // eg: dtype_unknown - *desc = desc2; - } else if (min <= dtype_any_text) { // either field a text field? const USHORT len1 = DSC_string_length(desc); const USHORT len2 = DSC_string_length(&desc2); |