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

Function getReturningColumns

src/postgres/parse-pg-query.ts:155–172  ·  view source on GitHub ↗
(statement: QueryNodePath<QueryParser.Query>)

Source from the content-addressed store, hash-verified

153}
154
155function getReturningColumns(statement: QueryNodePath<QueryParser.Query>): ColumnReference[] {
156 const body = (statement.node as any)[statement.type]
157
158 const relationRefs = getTableReferences(statement, false)
159 const { returningList = [], targetList = [] } = body
160
161 const resTargets: QueryParser.ResTarget[] = [...returningList, ...targetList].filter(
162 node => getNodeType(node) === "ResTarget"
163 )
164
165 return resTargets
166 .map(resTarget => {
167 const propKey = returningList.indexOf(resTarget) > -1 ? "returningList" : "targetList"
168 const resTargetPath = createQueryNodeSubpath(statement, resTarget, propKey)
169 return resolveResTarget(resTargetPath, relationRefs)
170 })
171 .filter((ref): ref is ColumnReference => ref !== null)
172}
173
174function instantiateQuery(path: QueryNodePath<QueryParser.Query>, context: QueryContext): Query {
175 const referencedColumns = getReferencedColumns(path, context.expressionSpreadTypes)

Callers 1

instantiateQueryFunction · 0.85

Calls 4

getNodeTypeFunction · 0.90
createQueryNodeSubpathFunction · 0.90
resolveResTargetFunction · 0.90
getTableReferencesFunction · 0.85

Tested by

no test coverage detected