@@ -54,6 +54,20 @@ static ValueExprNode* resolveUsingField(DsqlCompilerScratch* dsqlScratch, const
5454
5555namespace
5656{
57+ void appendContextAlias (DsqlCompilerScratch* dsqlScratch, const string& alias)
58+ {
59+ const auto len = alias.length ();
60+ if (len <= MAX_UCHAR)
61+ dsqlScratch->appendMetaString (alias.c_str ());
62+ else
63+ {
64+ string truncatedAlias (alias);
65+ truncatedAlias.resize (MAX_UCHAR - 3 );
66+ truncatedAlias += " ..." ;
67+ dsqlScratch->appendMetaString (truncatedAlias.c_str ());
68+ }
69+ }
70+
5771 // Search through the list of ANDed booleans to find comparisons
5872 // referring streams of parent select expressions.
5973 // Extract those booleans and return them to the caller.
@@ -687,7 +701,7 @@ void LocalTableSourceNode::genBlr(DsqlCompilerScratch* dsqlScratch)
687701{
688702 dsqlScratch->appendUChar (blr_local_table_id);
689703 dsqlScratch->appendUShort (tableNumber);
690- dsqlScratch-> appendMetaString ( alias. c_str ()); // dsqlContext->ctx_alias?
704+ appendContextAlias (dsqlScratch, alias); // dsqlContext->ctx_alias?
691705
692706 GEN_stuff_context (dsqlScratch, dsqlContext);
693707}
@@ -885,7 +899,7 @@ void RelationSourceNode::genBlr(DsqlCompilerScratch* dsqlScratch)
885899 }
886900
887901 if (dsqlContext->ctx_alias .hasData ())
888- dsqlScratch-> appendMetaString ( dsqlContext->ctx_alias . c_str () );
902+ appendContextAlias (dsqlScratch, dsqlContext->ctx_alias );
889903
890904 GEN_stuff_context (dsqlScratch, dsqlContext);
891905}
@@ -1507,7 +1521,7 @@ void ProcedureSourceNode::genBlr(DsqlCompilerScratch* dsqlScratch)
15071521 if (dsqlContext->ctx_alias .hasData ())
15081522 {
15091523 dsqlScratch->appendUChar (blr_invsel_procedure_alias);
1510- dsqlScratch-> appendMetaString ( dsqlContext->ctx_alias . c_str () );
1524+ appendContextAlias (dsqlScratch, dsqlContext->ctx_alias );
15111525 }
15121526
15131527 dsqlScratch->appendUChar (blr_end);
@@ -1519,7 +1533,7 @@ void ProcedureSourceNode::genBlr(DsqlCompilerScratch* dsqlScratch)
15191533 {
15201534 dsqlScratch->appendUChar (blr_subproc);
15211535 dsqlScratch->appendMetaString (dsqlProcedure->prc_name .identifier .c_str ());
1522- dsqlScratch-> appendMetaString ( dsqlContext->ctx_alias . c_str () );
1536+ appendContextAlias (dsqlScratch, dsqlContext->ctx_alias );
15231537 }
15241538 else
15251539 {
@@ -1546,7 +1560,7 @@ void ProcedureSourceNode::genBlr(DsqlCompilerScratch* dsqlScratch)
15461560 }
15471561
15481562 if (dsqlContext->ctx_alias .hasData ())
1549- dsqlScratch-> appendMetaString ( dsqlContext->ctx_alias . c_str () );
1563+ appendContextAlias (dsqlScratch, dsqlContext->ctx_alias );
15501564 }
15511565
15521566 GEN_stuff_context (dsqlScratch, dsqlContext);
@@ -4079,7 +4093,7 @@ void TableValueFunctionSourceNode::genBlr(DsqlCompilerScratch* dsqlScratch)
40794093
40804094 GEN_stuff_context (dsqlScratch, dsqlContext);
40814095
4082- dsqlScratch-> appendMetaString ( dsqlContext->ctx_alias . c_str () );
4096+ appendContextAlias (dsqlScratch, dsqlContext->ctx_alias );
40834097
40844098 dsqlScratch->appendUShort (dsqlContext->ctx_proc_inputs ->items .getCount ());
40854099 for (auto & arg : dsqlContext->ctx_proc_inputs ->items )
0 commit comments