Make a variable.
| 451 | |
| 452 | // Make a variable. |
| 453 | dsql_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. |
| 484 | dsql_var* DsqlCompilerScratch::resolveVariable(const MetaName& varName) |
no test coverage detected