MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / makeVariable

Method makeVariable

src/dsql/DsqlCompilerScratch.cpp:453–481  ·  view source on GitHub ↗

Make a variable.

Source from the content-addressed store, hash-verified

451
452// Make a variable.
453dsql_var* DsqlCompilerScratch::makeVariable(dsql_fld* field, const char* name,
454 const dsql_var::Type type, USHORT msgNumber, USHORT itemNumber, USHORT localNumber)
455{
456 DEV_BLKCHK(field, dsql_type_fld);
457
458 MemoryPool& pool = getPool();
459
460 dsql_var* dsqlVar = FB_NEW_POOL(pool) dsql_var(pool);
461 dsqlVar->type = type;
462 dsqlVar->msgNumber = msgNumber;
463 dsqlVar->msgItem = itemNumber;
464 dsqlVar->number = localNumber;
465 dsqlVar->field = field;
466
467 if (field)
468 DsqlDescMaker::fromField(&dsqlVar->desc, field);
469
470 if (type == dsql_var::TYPE_HIDDEN)
471 hiddenVariables.push(dsqlVar);
472 else
473 {
474 variables.push(dsqlVar);
475
476 if (type == dsql_var::TYPE_OUTPUT)
477 outputVariables.push(dsqlVar);
478 }
479
480 return dsqlVar;
481}
482
483// Try to resolve variable name against parameters and local variables.
484dsql_var* DsqlCompilerScratch::resolveVariable(const MetaName& varName)

Callers 2

genBlrMethod · 0.80
dsqlPassHiddenVariableFunction · 0.80

Calls 2

dsql_varClass · 0.85
pushMethod · 0.45

Tested by

no test coverage detected