MCPcopy Create free account
hub / github.com/andywer/postguard / resolveResTarget

Function resolveResTarget

src/postgres/resolve-references.ts:106–128  ·  view source on GitHub ↗
(
  path: QueryNodePath<QueryParser.ResTarget>,
  relationRefs: Array<QueryNodePath<QueryParser.RelationRef>>
)

Source from the content-addressed store, hash-verified

104}
105
106export function resolveResTarget(
107 path: QueryNodePath<QueryParser.ResTarget>,
108 relationRefs: Array<QueryNodePath<QueryParser.RelationRef>>
109): ColumnReference | null {
110 const { name, val } = path.node.ResTarget
111
112 if (name) {
113 const tableRefsInScope: TableReference[] = relationRefs.map(ref => ({
114 as: ref.node.RangeVar.alias ? ref.node.RangeVar.alias.Alias.aliasname : undefined,
115 tableName: ref.node.RangeVar.relname,
116 path
117 }))
118 return {
119 tableRefsInScope: filterDuplicateTableRefs(tableRefsInScope),
120 columnName: name,
121 path
122 }
123 } else if (isColumnRef(val)) {
124 return resolveColumnReference(createQueryNodeSubpath(path, val, "val"), relationRefs)
125 } else {
126 return null
127 }
128}

Callers 2

getReferencedColumnsFunction · 0.90
getReturningColumnsFunction · 0.90

Calls 4

isColumnRefFunction · 0.90
createQueryNodeSubpathFunction · 0.90
filterDuplicateTableRefsFunction · 0.85
resolveColumnReferenceFunction · 0.85

Tested by

no test coverage detected