8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 04:43:03 +01:00

Fixed CORE-3353: Predicate (blob_field LIKE ?) describes the parameter as VARCHAR(30) rather than as BLOB.

Also, let's never transfer the CS_dynamic pseudo-charset to the client side.
This commit is contained in:
dimitr 2011-02-17 07:38:34 +00:00
parent 735e2f0629
commit 8ac7178cc0

View File

@ -10211,7 +10211,7 @@ static bool set_parameter_type(dsql_req* request, dsql_nod* in_node, dsql_nod* n
parameter->par_desc.dsc_length += sizeof(USHORT);
}
else if (parameter->par_desc.dsc_dtype > dtype_any_text) {
else if (!parameter->par_desc.isText() && !parameter->par_desc.isBlob()) {
// The LIKE & similar parameters must be varchar type
// strings - so force this parameter to be varchar
// and take a guess at a good length for it.
@ -10219,7 +10219,7 @@ static bool set_parameter_type(dsql_req* request, dsql_nod* in_node, dsql_nod* n
parameter->par_desc.dsc_length = LIKE_PARAM_LEN + sizeof(USHORT);
parameter->par_desc.dsc_sub_type = 0;
parameter->par_desc.dsc_scale = 0;
parameter->par_desc.dsc_ttype() = ttype_dynamic;
parameter->par_desc.setTextType(request->req_dbb->dbb_att_charset);
}
}
return true;