RPC returning table alias now works for pg 11/12 (#2737)

The new LATERAL query used for calling the function, introduced on
https://github.com/PostgREST/postgrest/pull/2677, failed on functions
that returned a domain like `CREATE DOMAIN projects_domain AS projects`.

Work around that by changing the query conditionally, by
obtaining a bool that represents the composite alias on the SchemaCache
and only do this on pg 11 and 12.
This commit is contained in:
Steve Chavez
2023-04-05 15:34:41 -05:00
committed by GitHub
parent 16f2849724
commit acf62320ef
8 changed files with 39 additions and 25 deletions
+2
View File
@@ -56,6 +56,7 @@ import PostgREST.SchemaCache.Identifiers (FieldName,
Schema)
import PostgREST.SchemaCache.Proc (ProcDescription (..),
ProcParam (..), ProcsMap,
procReturnsCompositeAlias,
procReturnsScalar,
procReturnsSetOfScalar)
import PostgREST.SchemaCache.Relationship (Cardinality (..),
@@ -550,6 +551,7 @@ callPlan proc ApiRequest{iPreferences=Preferences{..}} paramKeys args readReq =
, funCArgs = Just args
, funCScalar = procReturnsScalar proc
, funCSetOfScalar = procReturnsSetOfScalar proc
, funCRetCompositeAlias = procReturnsCompositeAlias proc
, funCReturning = inferColsEmbedNeeds readReq []
}
where