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

Function dsqlExplodeFields

src/dsql/StmtNodes.cpp:9798–9814  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9796// Generate a field list that correspond to table fields.
9797template <typename T>
9798static void dsqlExplodeFields(dsql_rel* relation, Array<NestConst<T> >& fields, bool includeComputed)
9799{
9800 thread_db* tdbb = JRD_get_thread_data();
9801 MemoryPool& pool = *tdbb->getDefaultPool();
9802
9803 for (dsql_fld* field = relation->rel_fields; field; field = field->fld_next)
9804 {
9805 // CVC: Ann Harrison requested to skip COMPUTED fields in INSERT w/o field list.
9806 // ASF: But not for views - CORE-5454
9807 if (!includeComputed && !(relation->rel_flags & REL_view) && (field->flags & FLD_computed))
9808 continue;
9809
9810 FieldNode* fieldNode = FB_NEW_POOL(pool) FieldNode(pool);
9811 fieldNode->dsqlName = field->fld_name.c_str();
9812 fields.add(fieldNode);
9813 }
9814}
9815
9816// Find dbkey for named relation in statement's saved dbkeys.
9817static dsql_par* dsqlFindDbKey(const DsqlDmlStatement* statement, const RelationSourceNode* relation_name)

Callers 3

dsqlPassMethod · 0.85
internalDsqlPassMethod · 0.85
dsqlProcessReturningFunction · 0.85

Calls 5

JRD_get_thread_dataFunction · 0.85
FieldNodeClass · 0.70
getDefaultPoolMethod · 0.45
c_strMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected