@@ -141,6 +141,10 @@ void iscBlobLookupDescImpl(Why::YAttachment* attachment, Why::YTransaction* tran
141
141
(FB_INTEGER, characterSetId)
142
142
) outputMessage (&statusWrapper, MasterInterfacePtr ());
143
143
144
+ USHORT majorOdsVersion = 0 ;
145
+ USHORT minorOdsVersion = 0 ;
146
+ attachment->getOdsVersion (&majorOdsVersion, &minorOdsVersion);
147
+
144
148
{ // scope
145
149
constexpr auto sql = R"""(
146
150
select f.rdb$field_sub_type,
@@ -184,7 +188,7 @@ void iscBlobLookupDescImpl(Why::YAttachment* attachment, Why::YTransaction* tran
184
188
185
189
if (!flag)
186
190
{
187
- constexpr auto sql = R"""(
191
+ constexpr auto sqlPackages = R"""(
188
192
select f.rdb$field_sub_type,
189
193
f.rdb$segment_length,
190
194
f.rdb$character_set_id
@@ -196,6 +200,19 @@ void iscBlobLookupDescImpl(Why::YAttachment* attachment, Why::YTransaction* tran
196
200
pp.rdb$package_name is null
197
201
)""" ;
198
202
203
+ constexpr auto sqlNoPackages = R"""(
204
+ select f.rdb$field_sub_type,
205
+ f.rdb$segment_length,
206
+ f.rdb$character_set_id
207
+ from rdb$procedure_parameters pp
208
+ join rdb$fields f
209
+ on f.rdb$field_name = pp.rdb$field_source
210
+ where pp.rdb$procedure_name = ? and
211
+ pp.rdb$parameter_name = ?
212
+ )""" ;
213
+
214
+ const auto sql = majorOdsVersion >= ODS_VERSION12 ? sqlPackages : sqlNoPackages;
215
+
199
216
FB_MESSAGE (InputMessage, CheckStatusWrapper,
200
217
(FB_VARCHAR (MAX_SQL_IDENTIFIER_LEN), procedureName)
201
218
(FB_VARCHAR (MAX_SQL_IDENTIFIER_LEN), fieldName)
0 commit comments