Skip to content

Commit 61d2aa6

Browse files
committed
A quick fix for #8565
1 parent 3732012 commit 61d2aa6

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/dsql/ExprNodes.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9945,8 +9945,8 @@ dsc* ParameterNode::execute(thread_db* tdbb, Request* request) const
99459945
if (impureForOuter)
99469946
EVL_make_value(tdbb, retDesc, impureForOuter);
99479947

9948-
if (retDesc->dsc_dtype == dtype_text)
9949-
INTL_adjust_text_descriptor(tdbb, retDesc);
9948+
//if (retDesc->dsc_dtype == dtype_text) Do not mess with user-provided descriptor, most likely it has dsc_length set to actual data length
9949+
// INTL_adjust_text_descriptor(tdbb, retDesc);
99509950
}
99519951

99529952
auto impureFlags = paramRequest->getImpure<USHORT>(
@@ -9984,7 +9984,8 @@ dsc* ParameterNode::execute(thread_db* tdbb, Request* request) const
99849984
auto charSet = INTL_charset_lookup(tdbb, DSC_GET_CHARSET(retDesc));
99859985

99869986
EngineCallbacks::instance->validateData(charSet, len, p);
9987-
EngineCallbacks::instance->validateLength(charSet, DSC_GET_CHARSET(retDesc), len, p, maxLen);
9987+
// Validation of user-provided data against user-provided metadata makes a little sense. Leave it to the real assignment.
9988+
//EngineCallbacks::instance->validateLength(charSet, DSC_GET_CHARSET(retDesc), len, p, maxLen);
99889989
}
99899990
else if (retDesc->isBlob())
99909991
{

0 commit comments

Comments
 (0)