@@ -79,7 +79,6 @@ static NodeParseFunc blr_parsers[256] = {NULL};
7979
8080static void par_error (BlrReader& blrReader, const Arg::StatusVector& v, bool isSyntaxError = true );
8181static PlanNode* par_plan (thread_db*, CompilerScratch*);
82- static void getBlrVersionAndFlags (CompilerScratch* csb);
8382static void parseSubRoutines (thread_db* tdbb, CompilerScratch* csb);
8483static void setNodeLineColumn (CompilerScratch* csb, DmlNode* node, ULONG blrOffset);
8584
@@ -186,7 +185,7 @@ DmlNode* PAR_blr(thread_db* tdbb, const MetaName* schema, jrd_rel* relation, con
186185
187186 csb->csb_blr_reader = BlrReader (blr, blr_length);
188187
189- getBlrVersionAndFlags (csb);
188+ PAR_getBlrVersionAndFlags (csb);
190189
191190 csb->csb_node = PAR_parse_node (tdbb, csb);
192191
@@ -239,7 +238,7 @@ BoolExprNode* PAR_validation_blr(thread_db* tdbb, const MetaName* schema, jrd_re
239238
240239 csb->csb_blr_reader = BlrReader (blr, blr_length);
241240
242- getBlrVersionAndFlags (csb);
241+ PAR_getBlrVersionAndFlags (csb);
243242
244243 if (csb->csb_blr_reader .peekByte () == blr_stmt_expr)
245244 {
@@ -621,6 +620,38 @@ ValueExprNode* PAR_gen_field(thread_db* tdbb, StreamType stream, USHORT id, bool
621620}
622621
623622
623+ // Get the BLR version from the CSB stream and complain if it's unknown.
624+ void PAR_getBlrVersionAndFlags (CompilerScratch* csb)
625+ {
626+ BlrReader::Flags flags;
627+ const SSHORT version = csb->csb_blr_reader .parseHeader (&flags);
628+
629+ switch (version)
630+ {
631+ case blr_version4:
632+ csb->blrVersion = 4 ;
633+ break ;
634+
635+ case blr_version5:
636+ csb->blrVersion = 5 ;
637+ break ;
638+
639+ // case blr_version6:
640+ // csb->blrVersion = 6;
641+ // break;
642+
643+ default :
644+ PAR_error (csb,
645+ Arg::Gds (isc_metadata_corrupt) <<
646+ Arg::Gds (isc_wroblrver2) <<
647+ Arg::Num (blr_version4) << Arg::Num (blr_version5/* 6*/ ) << Arg::Num (version));
648+ }
649+
650+ if (flags.searchSystemSchema )
651+ csb->csb_g_flags |= csb_search_system_schema;
652+ }
653+
654+
624655ValueExprNode* PAR_make_field (thread_db* tdbb, CompilerScratch* csb, USHORT context,
625656 const MetaName& base_field)
626657{
@@ -726,7 +757,7 @@ CompilerScratch* PAR_parse(thread_db* tdbb, const UCHAR* blr, ULONG blr_length,
726757 csb->csb_schema = SYSTEM_SCHEMA;
727758 }
728759
729- getBlrVersionAndFlags (csb);
760+ PAR_getBlrVersionAndFlags (csb);
730761
731762 if (dbginfo_length > 0 )
732763 DBG_parse_debug_info (dbginfo_length, dbginfo, *csb->csb_dbg_info );
@@ -1663,34 +1694,6 @@ void PAR_warning(const Arg::StatusVector& v)
16631694}
16641695
16651696
1666- // Get the BLR version from the CSB stream and complain if it's unknown.
1667- static void getBlrVersionAndFlags (CompilerScratch* csb)
1668- {
1669- BlrReader::Flags flags;
1670- const SSHORT version = csb->csb_blr_reader .parseHeader (&flags);
1671-
1672- switch (version)
1673- {
1674- case blr_version4:
1675- csb->blrVersion = 4 ;
1676- break ;
1677- case blr_version5:
1678- csb->blrVersion = 5 ;
1679- break ;
1680- // case blr_version6:
1681- // csb->blrVersion = 6;
1682- // break;
1683- default :
1684- PAR_error (csb, Arg::Gds (isc_metadata_corrupt) <<
1685- Arg::Gds (isc_wroblrver2) << Arg::Num (blr_version4) << Arg::Num (blr_version5/* 6*/ ) <<
1686- Arg::Num (version));
1687- }
1688-
1689- if (flags.searchSystemSchema )
1690- csb->csb_g_flags |= csb_search_system_schema;
1691- }
1692-
1693-
16941697// Parse subroutines.
16951698static void parseSubRoutines (thread_db* tdbb, CompilerScratch* csb)
16961699{
0 commit comments