@@ -32,6 +32,7 @@ module ProjectM36.Client
32 setCurrentSchemaName,
32 setCurrentSchemaName,
33 transactionGraphAsRelation,
33 transactionGraphAsRelation,
34 relationVariablesAsRelation,
34 relationVariablesAsRelation,
35+ ProjectM36.Client.atomFunctionsAsRelation,
35 disconnectedTransactionIsDirty,
36 disconnectedTransactionIsDirty,
37 remoteDBLookupName,
38 remoteDBLookupName,
@@ -98,7 +99,7 @@ import ProjectM36.Base hiding (inclusionDependencies) --defined in this module a
98import qualified ProjectM36.Base as B
99import qualified ProjectM36.Base as B
99import ProjectM36.Error
100import ProjectM36.Error
100import ProjectM36.Atomable
101import ProjectM36.Atomable
101−import ProjectM36.AtomFunction
102+import ProjectM36.AtomFunction as AF
102import ProjectM36.StaticOptimizer
103import ProjectM36.StaticOptimizer
103import ProjectM36.Key
104import ProjectM36.Key
104import qualified ProjectM36.IsomorphicSchema as Schema
105import qualified ProjectM36.IsomorphicSchema as Schema
@@ -910,7 +911,20 @@ relationVariablesAsRelation sessionId (InProcessConnection conf) = do
910 Left err -> pure (Left err)
911 Left err -> pure (Left err)
911 Right relvars -> pure $ R.relationVariablesAsRelation relvars
912 Right relvars -> pure $ R.relationVariablesAsRelation relvars
913−relationVariablesAsRelation sessionId conn@(RemoteProcessConnection _) = remoteCall conn (RetrieveRelationVariableSummary sessionId)
914+relationVariablesAsRelation sessionId conn@(RemoteProcessConnection _) = remoteCall conn (RetrieveRelationVariableSummary sessionId)
916+-- | Returns the names and types of the atom functions in the current 'Session'.
917+atomFunctionsAsRelation :: SessionId -> Connection -> IO (Either RelationalError Relation)
918+atomFunctionsAsRelation sessionId (InProcessConnection conf) = do
919+ let sessions = ipSessions conf
921+ eSession <- sessionAndSchema sessionId sessions
923+ Left err -> pure (Left err)
924+ Right (session, _) -> do
925+ pure (AF.atomFunctionsAsRelation (atomFunctions (concreteDatabaseContext session)))
927+atomFunctionsAsRelation sessionId conn@(RemoteProcessConnection _) = remoteCall conn (RetrieveAtomFunctionSummary sessionId)
915-- | Returns the transaction id for the connection's disconnected transaction committed parent transaction.
929-- | Returns the transaction id for the connection's disconnected transaction committed parent transaction.
916headTransactionId :: SessionId -> Connection -> IO (Either RelationalError TransactionId)
930headTransactionId :: SessionId -> Connection -> IO (Either RelationalError TransactionId)