hssqlppp 0.3.0 → 0.3.1
raw patch · 34 files changed
+31496/−31241 lines, 34 filesdep +template-haskelldep ~prettyPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: template-haskell
Dependency ranges changed: pretty
API changes (from Hackage documentation)
- Database.HsSqlPpp.Types: typeBigInt :: Type
- Database.HsSqlPpp.Types: typeBool :: Type
- Database.HsSqlPpp.Types: typeChar :: Type
- Database.HsSqlPpp.Types: typeDate :: Type
- Database.HsSqlPpp.Types: typeFloat4 :: Type
- Database.HsSqlPpp.Types: typeFloat8 :: Type
- Database.HsSqlPpp.Types: typeInt :: Type
- Database.HsSqlPpp.Types: typeInterval :: Type
- Database.HsSqlPpp.Types: typeNumeric :: Type
- Database.HsSqlPpp.Types: typeSmallInt :: Type
- Database.HsSqlPpp.Types: typeVarChar :: Type
+ Database.HsSqlPpp.Quote: pgsqlStmt :: QuasiQuoter
+ Database.HsSqlPpp.Quote: pgsqlStmts :: QuasiQuoter
+ Database.HsSqlPpp.Quote: sqlExpr :: QuasiQuoter
+ Database.HsSqlPpp.Quote: sqlStmt :: QuasiQuoter
+ Database.HsSqlPpp.Quote: sqlStmts :: QuasiQuoter
+ Database.HsSqlPpp.Types: typeSmallInt, typeInterval, typeDate, typeBool, typeChar, typeVarChar, typeFloat8, typeFloat4, typeNumeric, typeInt, typeBigInt :: Type
Files
- hssqlppp.cabal +23/−26
- src/Database/HsSqlPpp/Annotation.lhs +2/−2
- src/Database/HsSqlPpp/Ast.lhs +3/−3
- src/Database/HsSqlPpp/AstInternals/AnnotationUtils.lhs +0/−28
- src/Database/HsSqlPpp/AstInternals/AstAnnotation.lhs +0/−194
- src/Database/HsSqlPpp/AstInternals/AstAnti.hs +0/−967
- src/Database/HsSqlPpp/AstInternals/AstInternal.hs +0/−14400
- src/Database/HsSqlPpp/AstInternals/Catalog/CatalogInternal.lhs +0/−531
- src/Database/HsSqlPpp/AstInternals/Catalog/DefaultTemplate1Catalog.lhs +0/−13044
- src/Database/HsSqlPpp/AstInternals/TypeChecking/ErrorUtils.lhs +0/−30
- src/Database/HsSqlPpp/AstInternals/TypeChecking/LocalBindings.lhs +0/−20
- src/Database/HsSqlPpp/AstInternals/TypeChecking/LocalBindingsInternal.lhs +0/−740
- src/Database/HsSqlPpp/AstInternals/TypeChecking/TypeConversion.lhs +0/−668
- src/Database/HsSqlPpp/AstInternals/TypeChecking/Utils.lhs +0/−127
- src/Database/HsSqlPpp/AstInternals/TypeType.lhs +0/−421
- src/Database/HsSqlPpp/Catalog.lhs +2/−2
- src/Database/HsSqlPpp/Internals/AnnotationUtils.lhs +28/−0
- src/Database/HsSqlPpp/Internals/AstAnnotation.lhs +193/−0
- src/Database/HsSqlPpp/Internals/AstAnti.hs +967/−0
- src/Database/HsSqlPpp/Internals/AstInternal.hs +14400/−0
- src/Database/HsSqlPpp/Internals/Catalog/CatalogInternal.lhs +531/−0
- src/Database/HsSqlPpp/Internals/Catalog/DefaultTemplate1Catalog.lhs +13044/−0
- src/Database/HsSqlPpp/Internals/TypeChecking/ErrorUtils.lhs +30/−0
- src/Database/HsSqlPpp/Internals/TypeChecking/LocalBindings.lhs +20/−0
- src/Database/HsSqlPpp/Internals/TypeChecking/LocalBindingsInternal.lhs +740/−0
- src/Database/HsSqlPpp/Internals/TypeChecking/TypeConversion.lhs +668/−0
- src/Database/HsSqlPpp/Internals/TypeChecking/Utils.lhs +127/−0
- src/Database/HsSqlPpp/Internals/TypeType.lhs +421/−0
- src/Database/HsSqlPpp/Parsing/ParserInternal.lhs +10/−29
- src/Database/HsSqlPpp/Pretty.lhs +1/−2
- src/Database/HsSqlPpp/Quote.lhs +280/−0
- src/Database/HsSqlPpp/TypeChecker.lhs +4/−4
- src/Database/HsSqlPpp/Types.lhs +1/−1
- src/Database/HsSqlPpp/Utils/Utils.lhs +1/−2
hssqlppp.cabal view
@@ -1,5 +1,5 @@ Name: hssqlppp-Version: 0.3.0+Version: 0.3.1 Synopsis: SQL parser and type checker License: BSD3 License-file: LICENSE@@ -11,14 +11,14 @@ stability: pre-alpha homepage: http://jakewheat.github.com/hssqlppp/ bug-reports: https://github.com/JakeWheat/hssqlppp/issues-category: Database+category: Database,Language Description: SQL parser and type checker, targets PostgreSQL SQL and PL/pgSQL. . Documentation, examples on the homepage: <http://jakewheat.github.com/hssqlppp/>.---- to run haddock use 'cabal configure --ghc-options "-pgmPcpphs -optP--cpp"' first+ .+ Changes here: <https://github.com/JakeWheat/hssqlppp/blob/master/CHANGES> extra-source-files: README LICENSE@@ -34,11 +34,11 @@ mtl >= 2.0.1.0 && < 2.1, containers >= 0.3.0.0 && < 0.5, parsec >= 3.1 && < 3.2,- pretty >= 1.0.1.1 && < 1.1,+ pretty >= 1.1 && < 1.2, syb >= 0.1.0.2 && < 0.4, uniplate >= 1.6 && < 1.7,- transformers >= 0.2.2.0 && < 0.3- build-tools: cpphs+ transformers >= 0.2.2.0 && < 0.3,+ template-haskell hs-source-dirs: src Exposed-modules: Database.HsSqlPpp.Ast@@ -48,31 +48,28 @@ Database.HsSqlPpp.Pretty Database.HsSqlPpp.Types Database.HsSqlPpp.TypeChecker+ Database.HsSqlPpp.Quote -- find src/lib -iname '*hs' | sed -e "s@src/@@" | sed -e "s@/@.@g" |sed -e "s/.lhs//" |sed -e "s/.hs//" Other-Modules: Database.HsSqlPpp.Utils.Utils Database.HsSqlPpp.Parsing.ParseErrors Database.HsSqlPpp.Parsing.Lexer Database.HsSqlPpp.Parsing.ParserInternal- Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal- Database.HsSqlPpp.AstInternals.Catalog.DefaultTemplate1Catalog- Database.HsSqlPpp.AstInternals.AstAnti- Database.HsSqlPpp.AstInternals.TypeChecking.TypeConversion- Database.HsSqlPpp.AstInternals.TypeChecking.ErrorUtils- Database.HsSqlPpp.AstInternals.TypeChecking.LocalBindings- Database.HsSqlPpp.AstInternals.TypeChecking.Utils- Database.HsSqlPpp.AstInternals.TypeChecking.LocalBindingsInternal- Database.HsSqlPpp.AstInternals.AstAnnotation- Database.HsSqlPpp.AstInternals.AnnotationUtils- Database.HsSqlPpp.AstInternals.AstInternal- Database.HsSqlPpp.AstInternals.TypeType- ghc-options: -pgmPcpphs -optP--cpp+ Database.HsSqlPpp.Internals.Catalog.CatalogInternal+ Database.HsSqlPpp.Internals.Catalog.DefaultTemplate1Catalog+ Database.HsSqlPpp.Internals.AstAnti+ Database.HsSqlPpp.Internals.TypeChecking.TypeConversion+ Database.HsSqlPpp.Internals.TypeChecking.ErrorUtils+ Database.HsSqlPpp.Internals.TypeChecking.LocalBindings+ Database.HsSqlPpp.Internals.TypeChecking.Utils+ Database.HsSqlPpp.Internals.TypeChecking.LocalBindingsInternal+ Database.HsSqlPpp.Internals.AstAnnotation+ Database.HsSqlPpp.Internals.AnnotationUtils+ Database.HsSqlPpp.Internals.AstInternal+ Database.HsSqlPpp.Internals.TypeType - extensions: DeriveDataTypeable,- RankNTypes,+ extensions: TupleSections+ DeriveDataTypeable, ScopedTypeVariables,- FlexibleContexts,- ExistentialQuantification,- CPP, PatternGuards,- TupleSections+ FlexibleContexts
src/Database/HsSqlPpp/Annotation.lhs view
@@ -19,5 +19,5 @@ > ,resetAnnotations > ) where >-> import Database.HsSqlPpp.AstInternals.AstAnnotation-> import Database.HsSqlPpp.AstInternals.AnnotationUtils+> import Database.HsSqlPpp.Internals.AstAnnotation+> import Database.HsSqlPpp.Internals.AnnotationUtils
src/Database/HsSqlPpp/Ast.lhs view
@@ -6,7 +6,7 @@ > the seemingly pointless type synonyms below, they are an > artefact of using UUAGC. You can see labels for the fields by > looking at the ag source here:-> <http://jakewheat.github.com/hssqlppp/source/src/Database/HsSqlPpp/AstInternals/AstInternal.ag.html>+> <http://jakewheat.github.com/hssqlppp/source/src/Database/HsSqlPpp/Internals/AstInternal.ag.html> > -} > > module Database.HsSqlPpp.Ast@@ -93,5 +93,5 @@ > ,AlterTableActionList > ) where >-> import Database.HsSqlPpp.AstInternals.AstInternal-> --import Database.HsSqlPpp.AstInternals.Name+> import Database.HsSqlPpp.Internals.AstInternal+> --import Database.HsSqlPpp.Internals.Name
− src/Database/HsSqlPpp/AstInternals/AnnotationUtils.lhs
@@ -1,28 +0,0 @@--This module contains some utilities and generic code for working with-asts and annotations which depend on the ast types.--> {-# LANGUAGE ScopedTypeVariables #-}->-> module Database.HsSqlPpp.AstInternals.AnnotationUtils-> (-> getStatementAnnotations-> ,resetAnnotations-> ) where->-> import Data.Data-> import Data.Generics.Uniplate.Data->-> import Database.HsSqlPpp.AstInternals.AstInternal-> import Database.HsSqlPpp.AstInternals.AstAnnotation->-> -- | Run through the ast and return all the annotations attached to-> -- a Statement node.-> getStatementAnnotations :: Data a => a -> [Annotation]-> getStatementAnnotations st =-> [getAnnotation s | (s::Statement) <- universeBi st]--> -- | Set all the annotations in a tree to be 'emptyAnnotation'.-> resetAnnotations :: Data a => a -> a-> resetAnnotations =-> updateAnnotations (const emptyAnnotation)
− src/Database/HsSqlPpp/AstInternals/AstAnnotation.lhs
@@ -1,194 +0,0 @@--The annotation data types and utilities for working with them.--Annotations are used to store source positions, types, errors,-warnings, catalog deltas, information, and other stuff a client might-want to use when looking at an ast. Internal annotations which are-used in the type-checking/ annotation process use the attribute-grammar code and aren't exposed.--> {-# LANGUAGE ExistentialQuantification, DeriveDataTypeable,ScopedTypeVariables,-> RankNTypes,FlexibleContexts #-}->-> module Database.HsSqlPpp.AstInternals.AstAnnotation-> (-> Annotation(..)-> ,SourcePosition-> ,StatementType-> ,getAnnotation-> ,updateAnnotations-> ,getAnnotations-> ,emptyAnnotation-> ,getTypeAnnotation-> ,updateAnnotation-> ) where->-> import Data.Generics-> ---import Control.Arrow-> import Data.Generics.Uniplate.Data-> --import Debug.Trace->-> import Database.HsSqlPpp.AstInternals.TypeType-> import Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-> --import Database.HsSqlPpp.Utils.Utils->-> -- | Represents a source file position, usually set by the parser.-> type SourcePosition = (String,Int,Int)-> -- | Statement type is used for getting type information for a parameterized statement.-> type StatementType = ([Type],[(String,Type)])--> -- | Annotation type - one of these is attached to most of the-> -- data types used in the ast.-> data Annotation = Annotation { -- | source position for this node-> asrc :: Maybe SourcePosition-> -- | type of the node, 'Nothing' if the tree hasn't been typechecked or if a type error prevents determining the type-> ,atype :: Maybe Type-> -- | any type errors-> ,errs :: [TypeError]-> -- | 'statement type' - used for getting the in and out types of a parameterized statement-> ,stType :: Maybe StatementType-> -- | any catalog updates that a ddl statement produces-> ,catUpd :: [CatalogUpdate]-> -- | the matched function prototype for a funcall-> ,fnProt :: Maybe FunctionPrototype-> -- | 'inferred' type - fake type inference used for getting the type of ? placeholders in parameterized statements-> ,infType :: Maybe Type}-> deriving (Eq, Show,Typeable,Data)->-> -- | An annotation value with no information.-> emptyAnnotation :: Annotation-> emptyAnnotation = Annotation Nothing Nothing [] Nothing [] Nothing Nothing--> -- | get the annotation for the root element of the tree passed-> getAnnotation :: Data a => a -> Annotation-> getAnnotation = head . childrenBi--> -- | get all the annotations from a tree-> getAnnotations :: Data a => a -> [Annotation]-> getAnnotations = universeBi -- st --[x | x <- universeBi st]--> -- | update all the annotations in a tree-> updateAnnotations :: Data a => (Annotation -> Annotation) -> a -> a-> updateAnnotations = transformBi--> getTypeAnnotation :: Data a => a -> Maybe Type-> getTypeAnnotation = atype . getAnnotation------Use syb/uniplate to pull annotation values from an ast.--I like to cut and paste code from the internet which I don't-understand, then keep changing it till it compiles and passes the tests.--> {- -- | run through the ast, and pull the type annotation from each-> -- of the top level items.-> getTypeAnnotation :: (Show a, Data a) => a -> Type-> getTypeAnnotation st =-> typeAnnot $ getTopLevelAnnotation st-> where-> typeAnnot :: Annotation -> Type-> typeAnnot (x:xs) = case x of-> TypeAnnotation t -> t-> _ -> typeAnnot xs-> typeAnnot [] = TypeCheckFailed -- error "couldn't find type annotation"->-> -- | Run through the ast given and return a list of statementtypes-> -- from the top level items.-> getTopLevelInfos :: Data a => [a] -> [Maybe StatementType]-> getTopLevelInfos = map (getSIAnnotation . getTopLevelAnnotation)->-> getTopLevelCatUpdates :: Data a => [a] -> [[CatalogUpdate]]-> getTopLevelCatUpdates = map (getEuAnnotation . getTopLevelAnnotation)->--> -- | runs through the ast given and returns a list of all the type errors-> -- in the ast. Recurses into all ast nodes to find type errors.-> -- This is the function to use to see if an ast has passed the type checking process.-> -- Returns a Maybe SourcePos and the list of type errors for each node which has one or-> -- more type errors.-> getTypeErrors :: (Data a) => a -> [(Maybe AnnotationElement,[TypeError])]-> getTypeErrors sts =-> filter (\(_,te) -> not $ null te) $ map (gtsp &&& gte) $ getAnnotations sts-> where-> gte (a:as) = case a of-> TypeErrorA e -> e:gte as-> _ -> gte as-> gte _ = []-> gtsp (a:as) = case a of-> s@(SourcePos _ _ _) -> Just s-> _ -> gtsp as-> gtsp _ = Nothing--~~~~-question:-if a node has no source position e.g. the all in select all or select- distinct may correspond to a token or may be synthesized as the- default if neither all or distinct is present. Should this have the- source position of where the token would have appeared, should it- inherit it from its parent, should there be a separate ctor to- represent a fake node with no source position?--~~~~--hack job, often not interested in the source positions when testing-the asts produced, so this function will reset all the source-positions to empty ("", 0, 0) so we can compare them for equality, etc.-without having to get the positions correct.--> -}-- > -- | strip all the annotations from a tree. E.g. can be used to compare- > -- two asts are the same, ignoring any source position annotation differences.- > stripAnnotations :: Data a => a -> a- > stripAnnotations = filterAnnotations (const False)- >-- > filterAnnotations :: Data a => (Annotation -> Bool) -> a -> a- > filterAnnotations f = transformBi (filter f)-->-> -- | Update all the annotations in a tree using the function supplied-> updateAnnotation :: Data a => (Annotation -> Annotation) -> a -> a-> updateAnnotation f = gmapT (mkT f)->--- > case gmapQ (mkQ [] f) a of- > an:_ -> an- > [] -> []- > where- > f :: Annotation -> Annotation- > f = id- >-- >- > getAnnotations :: Data a => a -> [Annotation]- > getAnnotations = listifyWholeLists (\(_::Annotation) -> True)- >--> {-getSIAnnotation :: Annotation -> Maybe StatementType-> getSIAnnotation (x:xs) = case x of-> StatementTypeA t -> Just t-> _ -> getSIAnnotation xs-> getSIAnnotation [] = Nothing->-> getEuAnnotation :: Annotation -> [CatalogUpdate]-> getEuAnnotation (x:xs) = case x of-> CatUpdates t -> t-> _ -> getEuAnnotation xs-> getEuAnnotation [] = []-}-----------------------------------------------------------------------------------utils-- > listifyWholeLists :: Typeable b => ([b] -> Bool) -> GenericQ [[b]]- > listifyWholeLists blp = flip (synthesize id (.) (mkQ id (\bl _ -> if blp bl then (bl:) else id))) []--this might need to be maybe and change head?-- > getTopLevelAnnotation :: Data a => a -> Annotation- > getTopLevelAnnotation st = head $ childrenBi st
− src/Database/HsSqlPpp/AstInternals/AstAnti.hs
@@ -1,967 +0,0 @@-{--This file is autogenerated, to generate: load this file (MakeAntiNodes.lhs)-into ghci and run:-nwriteAntiNodes-n\nThe path might need tweaking.-n-}-{-# LANGUAGE DeriveDataTypeable #-}-module Database.HsSqlPpp.AstInternals.AstAnti- (convertStatements, convertScalarExpr, attributeDef, queryExpr,- Statement(..), QueryExpr(..), WithQuery(..), FnBody(..),- TableRef(..), TableAlias(..), JoinExpr(..), JoinType(..),- SelectList(..), SelectItem(..), CopySource(..), AttributeDef(..),- RowConstraint(..), AlterTableAction(..), Constraint(..),- TypeAttributeDef(..), ParamDef(..), VarDef(..), RaiseType(..),- CombineType(..), Volatility(..), Language(..), TypeName(..),- DropType(..), Cascade(..), Direction(..), Distinct(..),- Natural(..), IfExists(..), Replace(..), RestartIdentity(..),- ScalarExpr(..), SQIdentifier(..), IntervalField(..),- ExtractField(..), FrameClause(..), InList(..), LiftFlavour(..),- TriggerWhen(..), TriggerEvent(..), TriggerFire(..), SetValue(..),- WithQueryList, StatementList, ScalarExprListStatementListPairList,- ScalarExprListStatementListPair, ScalarExprList, ParamDefList,- AttributeDefList, ConstraintList, TypeAttributeDefList,- TypeNameList, StringTypeNameListPair, StringTypeNameListPairList,- ScalarExprStatementListPairList,- CaseScalarExprListScalarExprPairList, MaybeScalarExpr,- TableRefList, ScalarExprListList, SelectItemList, OnExpr,- RowConstraintList, VarDefList, ScalarExprStatementListPair,- CaseScalarExprListScalarExprPair, ScalarExprDirectionPair,- ScalarExprDirectionPairList, MaybeBoolExpr, MaybeSelectList,- AlterTableActionList)- where-import Data.Generics-import Database.HsSqlPpp.AstInternals.AstAnnotation-import qualified Database.HsSqlPpp.AstInternals.AstInternal as A- -convertStatements :: [Statement] -> [A.Statement]-convertStatements = statementList- -convertScalarExpr :: ScalarExpr -> A.ScalarExpr-convertScalarExpr = scalarExpr- -data JoinType = Inner- | LeftOuter- | RightOuter- | FullOuter- | Cross- deriving (Show, Eq, Typeable, Data)- -data CopySource = CopyFilename String- | Stdin- deriving (Show, Eq, Typeable, Data)- -data SetValue = SetStr Annotation String- | SetId Annotation String- | SetNum Annotation Double- deriving (Show, Eq, Typeable, Data)- -data TriggerWhen = TriggerBefore- | TriggerAfter- deriving (Show, Eq, Typeable, Data)- -data TriggerEvent = TInsert- | TUpdate- | TDelete- | AntiTriggerEvent String- deriving (Show, Eq, Typeable, Data)- -data TriggerFire = EachRow- | EachStatement- deriving (Show, Eq, Typeable, Data)- -data RaiseType = RNotice- | RException- | RError- deriving (Show, Eq, Typeable, Data)- -data CombineType = Except- | Union- | Intersect- | UnionAll- deriving (Show, Eq, Typeable, Data)- -data Volatility = Volatile- | Stable- | Immutable- deriving (Show, Eq, Typeable, Data)- -data Language = Sql- | Plpgsql- deriving (Show, Eq, Typeable, Data)- -data DropType = Table- | Domain- | View- | Type- deriving (Show, Eq, Typeable, Data)- -data Cascade = Cascade- | Restrict- deriving (Show, Eq, Typeable, Data)- -data Direction = Asc- | Desc- deriving (Show, Eq, Typeable, Data)- -data Distinct = Distinct- | Dupes- deriving (Show, Eq, Typeable, Data)- -data Natural = Natural- | Unnatural- deriving (Show, Eq, Typeable, Data)- -data IfExists = Require- | IfExists- deriving (Show, Eq, Typeable, Data)- -data Replace = Replace- | NoReplace- deriving (Show, Eq, Typeable, Data)- -data RestartIdentity = RestartIdentity- | ContinueIdentity- deriving (Show, Eq, Typeable, Data)- -data LiftFlavour = LiftAny- | LiftAll- deriving (Show, Eq, Typeable, Data)- -data IntervalField = IntervalYear- | IntervalMonth- | IntervalDay- | IntervalHour- | IntervalMinute- | IntervalSecond- | IntervalYearToMonth- | IntervalDayToHour- | IntervalDayToMinute- | IntervalDayToSecond- | IntervalHourToMinute- | IntervalHourToSecond- | IntervalMinuteToSecond- deriving (Show, Eq, Typeable, Data)- -data ExtractField = ExtractCentury- | ExtractDay- | ExtractDecade- | ExtractDow- | ExtractDoy- | ExtractEpoch- | ExtractHour- | ExtractIsodow- | ExtractIsoyear- | ExtractMicroseconds- | ExtractMillennium- | ExtractMilliseconds- | ExtractMinute- | ExtractMonth- | ExtractQuarter- | ExtractSecond- | ExtractTimezone- | ExtractTimezoneHour- | ExtractTimezoneMinute- | ExtractWeek- | ExtractYear- deriving (Show, Eq, Typeable, Data)- -data FrameClause = FrameUnboundedPreceding- | FrameUnboundedFull- | FrameRowsUnboundedPreceding- deriving (Show, Eq, Typeable, Data)- -data AlterTableAction = AddConstraint Annotation Constraint- | AlterColumnDefault Annotation String ScalarExpr- deriving (Data, Eq, Show, Typeable)- -data AttributeDef = AttributeDef Annotation String TypeName- MaybeScalarExpr RowConstraintList- deriving (Data, Eq, Show, Typeable)- -data Constraint = CheckConstraint Annotation String ScalarExpr- | PrimaryKeyConstraint Annotation String [String]- | ReferenceConstraint Annotation String [String] String [String]- Cascade Cascade- | UniqueConstraint Annotation String [String]- deriving (Data, Eq, Show, Typeable)- -data FnBody = PlpgsqlFnBody Annotation Statement- | SqlFnBody Annotation StatementList- deriving (Data, Eq, Show, Typeable)- -data InList = InList Annotation ScalarExprList- | InQueryExpr Annotation QueryExpr- deriving (Data, Eq, Show, Typeable)- -data JoinExpr = JoinOn Annotation ScalarExpr- | JoinUsing Annotation [String]- deriving (Data, Eq, Show, Typeable)- -data ParamDef = ParamDef Annotation String TypeName- | ParamDefTp Annotation TypeName- deriving (Data, Eq, Show, Typeable)- -data QueryExpr = CombineQueryExpr Annotation CombineType QueryExpr- QueryExpr- | Select Annotation Distinct SelectList TableRefList MaybeBoolExpr- ScalarExprList MaybeBoolExpr ScalarExprDirectionPairList- MaybeScalarExpr MaybeScalarExpr- | Values Annotation ScalarExprListList- | WithQueryExpr Annotation WithQueryList QueryExpr- deriving (Data, Eq, Show, Typeable)- -data RowConstraint = NotNullConstraint Annotation String- | NullConstraint Annotation String- | RowCheckConstraint Annotation String ScalarExpr- | RowPrimaryKeyConstraint Annotation String- | RowReferenceConstraint Annotation String String (Maybe String)- Cascade Cascade- | RowUniqueConstraint Annotation String- deriving (Data, Eq, Show, Typeable)- -data SQIdentifier = SQIdentifier Annotation [String]- deriving (Data, Eq, Show, Typeable)- -data ScalarExpr = BooleanLit Annotation Bool- | Case Annotation CaseScalarExprListScalarExprPairList- MaybeScalarExpr- | CaseSimple Annotation ScalarExpr- CaseScalarExprListScalarExprPairList MaybeScalarExpr- | Cast Annotation ScalarExpr TypeName- | Exists Annotation QueryExpr- | Extract Annotation ExtractField ScalarExpr- | FunCall Annotation String ScalarExprList- | Identifier Annotation String- | InPredicate Annotation ScalarExpr Bool InList- | Interval Annotation String IntervalField (Maybe Int)- | LiftOperator Annotation String LiftFlavour ScalarExprList- | NullLit Annotation- | NumberLit Annotation String- | Placeholder Annotation- | PositionalArg Annotation Integer- | QIdentifier Annotation ScalarExpr String- | ScalarSubQuery Annotation QueryExpr- | StringLit Annotation String- | TypedStringLit Annotation TypeName String- | WindowFn Annotation ScalarExpr ScalarExprList ScalarExprList- Direction FrameClause- | AntiScalarExpr String- deriving (Data, Eq, Show, Typeable)- -data SelectItem = SelExp Annotation ScalarExpr- | SelectItem Annotation ScalarExpr String- deriving (Data, Eq, Show, Typeable)- -data SelectList = SelectList Annotation SelectItemList- deriving (Data, Eq, Show, Typeable)- -data Statement = AlterSequence Annotation String SQIdentifier- | AlterTable Annotation String AlterTableActionList- | Assignment Annotation ScalarExpr ScalarExpr- | Block Annotation (Maybe String) VarDefList StatementList- | CaseStatement Annotation ScalarExprListStatementListPairList- StatementList- | CaseStatementSimple Annotation ScalarExpr- ScalarExprListStatementListPairList StatementList- | ContinueStatement Annotation (Maybe String)- | Copy Annotation String [String] CopySource- | CopyData Annotation String- | CreateDomain Annotation String TypeName String MaybeBoolExpr- | CreateFunction Annotation String ParamDefList TypeName Replace- Language FnBody Volatility- | CreateLanguage Annotation String- | CreateSequence Annotation String Integer Integer Integer Integer- Integer- | CreateTable Annotation String AttributeDefList ConstraintList- | CreateTableAs Annotation String QueryExpr- | CreateTrigger Annotation String TriggerWhen [TriggerEvent] String- TriggerFire String ScalarExprList- | CreateType Annotation String TypeAttributeDefList- | CreateView Annotation String (Maybe [String]) QueryExpr- | Delete Annotation SQIdentifier TableRefList MaybeBoolExpr- MaybeSelectList- | DropFunction Annotation IfExists StringTypeNameListPairList- Cascade- | DropSomething Annotation DropType IfExists [String] Cascade- | Execute Annotation ScalarExpr- | ExitStatement Annotation (Maybe String)- | ForIntegerStatement Annotation (Maybe String) ScalarExpr- ScalarExpr ScalarExpr StatementList- | ForQueryStatement Annotation (Maybe String) ScalarExpr QueryExpr- StatementList- | If Annotation ScalarExprStatementListPairList StatementList- | Insert Annotation SQIdentifier [String] QueryExpr MaybeSelectList- | Into Annotation Bool ScalarExprList Statement- | LoopStatement Annotation (Maybe String) StatementList- | Notify Annotation String- | NullStatement Annotation- | Perform Annotation ScalarExpr- | QueryStatement Annotation QueryExpr- | Raise Annotation RaiseType String ScalarExprList- | Return Annotation MaybeScalarExpr- | ReturnNext Annotation ScalarExpr- | ReturnQuery Annotation QueryExpr- | Set Annotation String [SetValue]- | Truncate Annotation [String] RestartIdentity Cascade- | Update Annotation SQIdentifier ScalarExprList TableRefList- MaybeBoolExpr MaybeSelectList- | WhileStatement Annotation (Maybe String) ScalarExpr StatementList- | AntiStatement String- deriving (Data, Eq, Show, Typeable)- -data TableAlias = FullAlias Annotation String [String]- | NoAlias Annotation- | TableAlias Annotation String- deriving (Data, Eq, Show, Typeable)- -data TableRef = FunTref Annotation ScalarExpr TableAlias- | JoinTref Annotation TableRef Natural JoinType TableRef OnExpr- TableAlias- | SubTref Annotation QueryExpr TableAlias- | Tref Annotation SQIdentifier TableAlias- deriving (Data, Eq, Show, Typeable)- -data TypeAttributeDef = TypeAttDef Annotation String TypeName- deriving (Data, Eq, Show, Typeable)- -data TypeName = ArrayTypeName Annotation TypeName- | Prec2TypeName Annotation String Integer Integer- | PrecTypeName Annotation String Integer- | SetOfTypeName Annotation TypeName- | SimpleTypeName Annotation String- deriving (Data, Eq, Show, Typeable)- -data VarDef = ParamAlias Annotation String Integer- | VarAlias Annotation String String- | VarDef Annotation String TypeName (Maybe ScalarExpr)- deriving (Data, Eq, Show, Typeable)- -data WithQuery = WithQuery Annotation String (Maybe [String])- QueryExpr- deriving (Data, Eq, Show, Typeable)- -type AlterTableActionList = [AlterTableAction]- -type AttributeDefList = [AttributeDef]- -type CaseScalarExprListScalarExprPair =- (ScalarExprList, ScalarExpr)- -type CaseScalarExprListScalarExprPairList =- [CaseScalarExprListScalarExprPair]- -type ConstraintList = [Constraint]- -type MaybeBoolExpr = Maybe ScalarExpr- -type MaybeScalarExpr = Maybe ScalarExpr- -type MaybeSelectList = Maybe SelectList- -type OnExpr = Maybe JoinExpr- -type ParamDefList = [ParamDef]- -type RowConstraintList = [RowConstraint]- -type ScalarExprDirectionPair = (ScalarExpr, Direction)- -type ScalarExprDirectionPairList = [ScalarExprDirectionPair]- -type ScalarExprList = [ScalarExpr]- -type ScalarExprListList = [ScalarExprList]- -type ScalarExprListStatementListPair =- (ScalarExprList, StatementList)- -type ScalarExprListStatementListPairList =- [ScalarExprListStatementListPair]- -type ScalarExprStatementListPair = (ScalarExpr, StatementList)- -type ScalarExprStatementListPairList =- [ScalarExprStatementListPair]- -type SelectItemList = [SelectItem]- -type StatementList = [Statement]- -type StringTypeNameListPair = (String, TypeNameList)- -type StringTypeNameListPairList = [StringTypeNameListPair]- -type TableRefList = [TableRef]- -type TypeAttributeDefList = [TypeAttributeDef]- -type TypeNameList = [TypeName]- -type VarDefList = [VarDef]- -type WithQueryList = [WithQuery]- -joinType :: JoinType -> A.JoinType-joinType x- = case x of- Inner -> A.Inner- LeftOuter -> A.LeftOuter- RightOuter -> A.RightOuter- FullOuter -> A.FullOuter- Cross -> A.Cross- -copySource :: CopySource -> A.CopySource-copySource x- = case x of- CopyFilename a1 -> A.CopyFilename a1- Stdin -> A.Stdin- -setValue :: SetValue -> A.SetValue-setValue x- = case x of- SetStr a1 a2 -> A.SetStr a1 a2- SetId a1 a2 -> A.SetId a1 a2- SetNum a1 a2 -> A.SetNum a1 a2- -triggerWhen :: TriggerWhen -> A.TriggerWhen-triggerWhen x- = case x of- TriggerBefore -> A.TriggerBefore- TriggerAfter -> A.TriggerAfter- -triggerEvent :: TriggerEvent -> A.TriggerEvent-triggerEvent x- = case x of- TInsert -> A.TInsert- TUpdate -> A.TUpdate- TDelete -> A.TDelete- AntiTriggerEvent _ -> error "can't convert anti triggerEvent"- -triggerFire :: TriggerFire -> A.TriggerFire-triggerFire x- = case x of- EachRow -> A.EachRow- EachStatement -> A.EachStatement- -raiseType :: RaiseType -> A.RaiseType-raiseType x- = case x of- RNotice -> A.RNotice- RException -> A.RException- RError -> A.RError- -combineType :: CombineType -> A.CombineType-combineType x- = case x of- Except -> A.Except- Union -> A.Union- Intersect -> A.Intersect- UnionAll -> A.UnionAll- -volatility :: Volatility -> A.Volatility-volatility x- = case x of- Volatile -> A.Volatile- Stable -> A.Stable- Immutable -> A.Immutable- -language :: Language -> A.Language-language x- = case x of- Sql -> A.Sql- Plpgsql -> A.Plpgsql- -dropType :: DropType -> A.DropType-dropType x- = case x of- Table -> A.Table- Domain -> A.Domain- View -> A.View- Type -> A.Type- -cascade :: Cascade -> A.Cascade-cascade x- = case x of- Cascade -> A.Cascade- Restrict -> A.Restrict- -direction :: Direction -> A.Direction-direction x- = case x of- Asc -> A.Asc- Desc -> A.Desc- -distinct :: Distinct -> A.Distinct-distinct x- = case x of- Distinct -> A.Distinct- Dupes -> A.Dupes- -natural :: Natural -> A.Natural-natural x- = case x of- Natural -> A.Natural- Unnatural -> A.Unnatural- -ifExists :: IfExists -> A.IfExists-ifExists x- = case x of- Require -> A.Require- IfExists -> A.IfExists- -replace :: Replace -> A.Replace-replace x- = case x of- Replace -> A.Replace- NoReplace -> A.NoReplace- -restartIdentity :: RestartIdentity -> A.RestartIdentity-restartIdentity x- = case x of- RestartIdentity -> A.RestartIdentity- ContinueIdentity -> A.ContinueIdentity- -liftFlavour :: LiftFlavour -> A.LiftFlavour-liftFlavour x- = case x of- LiftAny -> A.LiftAny- LiftAll -> A.LiftAll- -intervalField :: IntervalField -> A.IntervalField-intervalField x- = case x of- IntervalYear -> A.IntervalYear- IntervalMonth -> A.IntervalMonth- IntervalDay -> A.IntervalDay- IntervalHour -> A.IntervalHour- IntervalMinute -> A.IntervalMinute- IntervalSecond -> A.IntervalSecond- IntervalYearToMonth -> A.IntervalYearToMonth- IntervalDayToHour -> A.IntervalDayToHour- IntervalDayToMinute -> A.IntervalDayToMinute- IntervalDayToSecond -> A.IntervalDayToSecond- IntervalHourToMinute -> A.IntervalHourToMinute- IntervalHourToSecond -> A.IntervalHourToSecond- IntervalMinuteToSecond -> A.IntervalMinuteToSecond- -extractField :: ExtractField -> A.ExtractField-extractField x- = case x of- ExtractCentury -> A.ExtractCentury- ExtractDay -> A.ExtractDay- ExtractDecade -> A.ExtractDecade- ExtractDow -> A.ExtractDow- ExtractDoy -> A.ExtractDoy- ExtractEpoch -> A.ExtractEpoch- ExtractHour -> A.ExtractHour- ExtractIsodow -> A.ExtractIsodow- ExtractIsoyear -> A.ExtractIsoyear- ExtractMicroseconds -> A.ExtractMicroseconds- ExtractMillennium -> A.ExtractMillennium- ExtractMilliseconds -> A.ExtractMilliseconds- ExtractMinute -> A.ExtractMinute- ExtractMonth -> A.ExtractMonth- ExtractQuarter -> A.ExtractQuarter- ExtractSecond -> A.ExtractSecond- ExtractTimezone -> A.ExtractTimezone- ExtractTimezoneHour -> A.ExtractTimezoneHour- ExtractTimezoneMinute -> A.ExtractTimezoneMinute- ExtractWeek -> A.ExtractWeek- ExtractYear -> A.ExtractYear- -frameClause :: FrameClause -> A.FrameClause-frameClause x- = case x of- FrameUnboundedPreceding -> A.FrameUnboundedPreceding- FrameUnboundedFull -> A.FrameUnboundedFull- FrameRowsUnboundedPreceding -> A.FrameRowsUnboundedPreceding- -alterTableAction :: AlterTableAction -> A.AlterTableAction-alterTableAction x- = case x of- AddConstraint a1 a2 -> A.AddConstraint a1 (constraint a2)- AlterColumnDefault a1 a2 a3 -> A.AlterColumnDefault a1 a2- (scalarExpr a3)- -attributeDef :: AttributeDef -> A.AttributeDef-attributeDef x- = case x of- AttributeDef a1 a2 a3 a4 a5 -> A.AttributeDef a1 a2 (typeName a3)- (maybeScalarExpr a4)- (rowConstraintList a5)- -constraint :: Constraint -> A.Constraint-constraint x- = case x of- CheckConstraint a1 a2 a3 -> A.CheckConstraint a1 a2 (scalarExpr a3)- PrimaryKeyConstraint a1 a2 a3 -> A.PrimaryKeyConstraint a1 a2 a3- ReferenceConstraint a1 a2 a3 a4 a5 a6 a7 -> A.ReferenceConstraint- a1- a2- a3- a4- a5- (cascade a6)- (cascade a7)- UniqueConstraint a1 a2 a3 -> A.UniqueConstraint a1 a2 a3- -fnBody :: FnBody -> A.FnBody-fnBody x- = case x of- PlpgsqlFnBody a1 a2 -> A.PlpgsqlFnBody a1 (statement a2)- SqlFnBody a1 a2 -> A.SqlFnBody a1 (statementList a2)- -inList :: InList -> A.InList-inList x- = case x of- InList a1 a2 -> A.InList a1 (scalarExprList a2)- InQueryExpr a1 a2 -> A.InQueryExpr a1 (queryExpr a2)- -joinExpr :: JoinExpr -> A.JoinExpr-joinExpr x- = case x of- JoinOn a1 a2 -> A.JoinOn a1 (scalarExpr a2)- JoinUsing a1 a2 -> A.JoinUsing a1 a2- -paramDef :: ParamDef -> A.ParamDef-paramDef x- = case x of- ParamDef a1 a2 a3 -> A.ParamDef a1 a2 (typeName a3)- ParamDefTp a1 a2 -> A.ParamDefTp a1 (typeName a2)- -queryExpr :: QueryExpr -> A.QueryExpr-queryExpr x- = case x of- CombineQueryExpr a1 a2 a3 a4 -> A.CombineQueryExpr a1- (combineType a2)- (queryExpr a3)- (queryExpr a4)- Select a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 -> A.Select a1 (distinct a2)- (selectList a3)- (tableRefList a4)- (maybeBoolExpr a5)- (scalarExprList a6)- (maybeBoolExpr a7)- (scalarExprDirectionPairList a8)- (maybeScalarExpr a9)- (maybeScalarExpr a10)- Values a1 a2 -> A.Values a1 (scalarExprListList a2)- WithQueryExpr a1 a2 a3 -> A.WithQueryExpr a1 (withQueryList a2)- (queryExpr a3)- -rowConstraint :: RowConstraint -> A.RowConstraint-rowConstraint x- = case x of- NotNullConstraint a1 a2 -> A.NotNullConstraint a1 a2- NullConstraint a1 a2 -> A.NullConstraint a1 a2- RowCheckConstraint a1 a2 a3 -> A.RowCheckConstraint a1 a2- (scalarExpr a3)- RowPrimaryKeyConstraint a1 a2 -> A.RowPrimaryKeyConstraint a1 a2- RowReferenceConstraint a1 a2 a3 a4 a5- a6 -> A.RowReferenceConstraint a1 a2 a3 a4 (cascade a5)- (cascade a6)- RowUniqueConstraint a1 a2 -> A.RowUniqueConstraint a1 a2- -sQIdentifier :: SQIdentifier -> A.SQIdentifier-sQIdentifier x- = case x of- SQIdentifier a1 a2 -> A.SQIdentifier a1 a2- -scalarExpr :: ScalarExpr -> A.ScalarExpr-scalarExpr x- = case x of- BooleanLit a1 a2 -> A.BooleanLit a1 a2- Case a1 a2 a3 -> A.Case a1- (caseScalarExprListScalarExprPairList a2)- (maybeScalarExpr a3)- CaseSimple a1 a2 a3 a4 -> A.CaseSimple a1 (scalarExpr a2)- (caseScalarExprListScalarExprPairList a3)- (maybeScalarExpr a4)- Cast a1 a2 a3 -> A.Cast a1 (scalarExpr a2) (typeName a3)- Exists a1 a2 -> A.Exists a1 (queryExpr a2)- Extract a1 a2 a3 -> A.Extract a1 (extractField a2) (scalarExpr a3)- FunCall a1 a2 a3 -> A.FunCall a1 a2 (scalarExprList a3)- Identifier a1 a2 -> A.Identifier a1 a2- InPredicate a1 a2 a3 a4 -> A.InPredicate a1 (scalarExpr a2) a3- (inList a4)- Interval a1 a2 a3 a4 -> A.Interval a1 a2 (intervalField a3) a4- LiftOperator a1 a2 a3 a4 -> A.LiftOperator a1 a2 (liftFlavour a3)- (scalarExprList a4)- NullLit a1 -> A.NullLit a1- NumberLit a1 a2 -> A.NumberLit a1 a2- Placeholder a1 -> A.Placeholder a1- PositionalArg a1 a2 -> A.PositionalArg a1 a2- QIdentifier a1 a2 a3 -> A.QIdentifier a1 (scalarExpr a2) a3- ScalarSubQuery a1 a2 -> A.ScalarSubQuery a1 (queryExpr a2)- StringLit a1 a2 -> A.StringLit a1 a2- TypedStringLit a1 a2 a3 -> A.TypedStringLit a1 (typeName a2) a3- WindowFn a1 a2 a3 a4 a5 a6 -> A.WindowFn a1 (scalarExpr a2)- (scalarExprList a3)- (scalarExprList a4)- (direction a5)- (frameClause a6)- AntiScalarExpr _ -> error "can't convert anti scalarExpr"- -selectItem :: SelectItem -> A.SelectItem-selectItem x- = case x of- SelExp a1 a2 -> A.SelExp a1 (scalarExpr a2)- SelectItem a1 a2 a3 -> A.SelectItem a1 (scalarExpr a2) a3- -selectList :: SelectList -> A.SelectList-selectList x- = case x of- SelectList a1 a2 -> A.SelectList a1 (selectItemList a2)- -statement :: Statement -> A.Statement-statement x- = case x of- AlterSequence a1 a2 a3 -> A.AlterSequence a1 a2 (sQIdentifier a3)- AlterTable a1 a2 a3 -> A.AlterTable a1 a2 (alterTableActionList a3)- Assignment a1 a2 a3 -> A.Assignment a1 (scalarExpr a2)- (scalarExpr a3)- Block a1 a2 a3 a4 -> A.Block a1 a2 (varDefList a3)- (statementList a4)- CaseStatement a1 a2 a3 -> A.CaseStatement a1- (scalarExprListStatementListPairList a2)- (statementList a3)- CaseStatementSimple a1 a2 a3 a4 -> A.CaseStatementSimple a1- (scalarExpr a2)- (scalarExprListStatementListPairList a3)- (statementList a4)- ContinueStatement a1 a2 -> A.ContinueStatement a1 a2- Copy a1 a2 a3 a4 -> A.Copy a1 a2 a3 (copySource a4)- CopyData a1 a2 -> A.CopyData a1 a2- CreateDomain a1 a2 a3 a4 a5 -> A.CreateDomain a1 a2 (typeName a3)- a4- (maybeBoolExpr a5)- CreateFunction a1 a2 a3 a4 a5 a6 a7 a8 -> A.CreateFunction a1 a2- (paramDefList a3)- (typeName a4)- (replace a5)- (language a6)- (fnBody a7)- (volatility a8)- CreateLanguage a1 a2 -> A.CreateLanguage a1 a2- CreateSequence a1 a2 a3 a4 a5 a6 a7 -> A.CreateSequence a1 a2 a3 a4- a5- a6- a7- CreateTable a1 a2 a3 a4 -> A.CreateTable a1 a2- (attributeDefList a3)- (constraintList a4)- CreateTableAs a1 a2 a3 -> A.CreateTableAs a1 a2 (queryExpr a3)- CreateTrigger a1 a2 a3 a4 a5 a6 a7 a8 -> A.CreateTrigger a1 a2- (triggerWhen a3)- (fmap triggerEvent a4)- a5- (triggerFire a6)- a7- (scalarExprList a8)- CreateType a1 a2 a3 -> A.CreateType a1 a2 (typeAttributeDefList a3)- CreateView a1 a2 a3 a4 -> A.CreateView a1 a2 a3 (queryExpr a4)- Delete a1 a2 a3 a4 a5 -> A.Delete a1 (sQIdentifier a2)- (tableRefList a3)- (maybeBoolExpr a4)- (maybeSelectList a5)- DropFunction a1 a2 a3 a4 -> A.DropFunction a1 (ifExists a2)- (stringTypeNameListPairList a3)- (cascade a4)- DropSomething a1 a2 a3 a4 a5 -> A.DropSomething a1 (dropType a2)- (ifExists a3)- a4- (cascade a5)- Execute a1 a2 -> A.Execute a1 (scalarExpr a2)- ExitStatement a1 a2 -> A.ExitStatement a1 a2- ForIntegerStatement a1 a2 a3 a4 a5 a6 -> A.ForIntegerStatement a1- a2- (scalarExpr a3)- (scalarExpr a4)- (scalarExpr a5)- (statementList a6)- ForQueryStatement a1 a2 a3 a4 a5 -> A.ForQueryStatement a1 a2- (scalarExpr a3)- (queryExpr a4)- (statementList a5)- If a1 a2 a3 -> A.If a1 (scalarExprStatementListPairList a2)- (statementList a3)- Insert a1 a2 a3 a4 a5 -> A.Insert a1 (sQIdentifier a2) a3- (queryExpr a4)- (maybeSelectList a5)- Into a1 a2 a3 a4 -> A.Into a1 a2 (scalarExprList a3) (statement a4)- LoopStatement a1 a2 a3 -> A.LoopStatement a1 a2 (statementList a3)- Notify a1 a2 -> A.Notify a1 a2- NullStatement a1 -> A.NullStatement a1- Perform a1 a2 -> A.Perform a1 (scalarExpr a2)- QueryStatement a1 a2 -> A.QueryStatement a1 (queryExpr a2)- Raise a1 a2 a3 a4 -> A.Raise a1 (raiseType a2) a3- (scalarExprList a4)- Return a1 a2 -> A.Return a1 (maybeScalarExpr a2)- ReturnNext a1 a2 -> A.ReturnNext a1 (scalarExpr a2)- ReturnQuery a1 a2 -> A.ReturnQuery a1 (queryExpr a2)- Set a1 a2 a3 -> A.Set a1 a2 (fmap setValue a3)- Truncate a1 a2 a3 a4 -> A.Truncate a1 a2 (restartIdentity a3)- (cascade a4)- Update a1 a2 a3 a4 a5 a6 -> A.Update a1 (sQIdentifier a2)- (scalarExprList a3)- (tableRefList a4)- (maybeBoolExpr a5)- (maybeSelectList a6)- WhileStatement a1 a2 a3 a4 -> A.WhileStatement a1 a2- (scalarExpr a3)- (statementList a4)- AntiStatement _ -> error "can't convert anti statement"- -tableAlias :: TableAlias -> A.TableAlias-tableAlias x- = case x of- FullAlias a1 a2 a3 -> A.FullAlias a1 a2 a3- NoAlias a1 -> A.NoAlias a1- TableAlias a1 a2 -> A.TableAlias a1 a2- -tableRef :: TableRef -> A.TableRef-tableRef x- = case x of- FunTref a1 a2 a3 -> A.FunTref a1 (scalarExpr a2) (tableAlias a3)- JoinTref a1 a2 a3 a4 a5 a6 a7 -> A.JoinTref a1 (tableRef a2)- (natural a3)- (joinType a4)- (tableRef a5)- (onExpr a6)- (tableAlias a7)- SubTref a1 a2 a3 -> A.SubTref a1 (queryExpr a2) (tableAlias a3)- Tref a1 a2 a3 -> A.Tref a1 (sQIdentifier a2) (tableAlias a3)- -typeAttributeDef :: TypeAttributeDef -> A.TypeAttributeDef-typeAttributeDef x- = case x of- TypeAttDef a1 a2 a3 -> A.TypeAttDef a1 a2 (typeName a3)- -typeName :: TypeName -> A.TypeName-typeName x- = case x of- ArrayTypeName a1 a2 -> A.ArrayTypeName a1 (typeName a2)- Prec2TypeName a1 a2 a3 a4 -> A.Prec2TypeName a1 a2 a3 a4- PrecTypeName a1 a2 a3 -> A.PrecTypeName a1 a2 a3- SetOfTypeName a1 a2 -> A.SetOfTypeName a1 (typeName a2)- SimpleTypeName a1 a2 -> A.SimpleTypeName a1 a2- -varDef :: VarDef -> A.VarDef-varDef x- = case x of- ParamAlias a1 a2 a3 -> A.ParamAlias a1 a2 a3- VarAlias a1 a2 a3 -> A.VarAlias a1 a2 a3- VarDef a1 a2 a3 a4 -> A.VarDef a1 a2 (typeName a3)- (maybeScalarExpr a4)- -withQuery :: WithQuery -> A.WithQuery-withQuery x- = case x of- WithQuery a1 a2 a3 a4 -> A.WithQuery a1 a2 a3 (queryExpr a4)- -alterTableActionList ::- AlterTableActionList -> A.AlterTableActionList-alterTableActionList = fmap alterTableAction- -attributeDefList :: AttributeDefList -> A.AttributeDefList-attributeDefList = fmap attributeDef- -caseScalarExprListScalarExprPair ::- CaseScalarExprListScalarExprPair ->- A.CaseScalarExprListScalarExprPair-caseScalarExprListScalarExprPair (a, b)- = (scalarExprList a, scalarExpr b)- -caseScalarExprListScalarExprPairList ::- CaseScalarExprListScalarExprPairList ->- A.CaseScalarExprListScalarExprPairList-caseScalarExprListScalarExprPairList- = fmap caseScalarExprListScalarExprPair- -constraintList :: ConstraintList -> A.ConstraintList-constraintList = fmap constraint- -maybeBoolExpr :: MaybeBoolExpr -> A.MaybeBoolExpr-maybeBoolExpr = fmap scalarExpr- -maybeScalarExpr :: MaybeScalarExpr -> A.MaybeScalarExpr-maybeScalarExpr = fmap scalarExpr- -maybeSelectList :: MaybeSelectList -> A.MaybeSelectList-maybeSelectList = fmap selectList- -onExpr :: OnExpr -> A.OnExpr-onExpr = fmap joinExpr- -paramDefList :: ParamDefList -> A.ParamDefList-paramDefList = fmap paramDef- -rowConstraintList :: RowConstraintList -> A.RowConstraintList-rowConstraintList = fmap rowConstraint- -scalarExprDirectionPair ::- ScalarExprDirectionPair -> A.ScalarExprDirectionPair-scalarExprDirectionPair (a, b) = (scalarExpr a, direction b)- -scalarExprDirectionPairList ::- ScalarExprDirectionPairList -> A.ScalarExprDirectionPairList-scalarExprDirectionPairList = fmap scalarExprDirectionPair- -scalarExprList :: ScalarExprList -> A.ScalarExprList-scalarExprList = fmap scalarExpr- -scalarExprListList :: ScalarExprListList -> A.ScalarExprListList-scalarExprListList = fmap scalarExprList- -scalarExprListStatementListPair ::- ScalarExprListStatementListPair ->- A.ScalarExprListStatementListPair-scalarExprListStatementListPair (a, b)- = (scalarExprList a, statementList b)- -scalarExprListStatementListPairList ::- ScalarExprListStatementListPairList ->- A.ScalarExprListStatementListPairList-scalarExprListStatementListPairList- = fmap scalarExprListStatementListPair- -scalarExprStatementListPair ::- ScalarExprStatementListPair -> A.ScalarExprStatementListPair-scalarExprStatementListPair (a, b)- = (scalarExpr a, statementList b)- -scalarExprStatementListPairList ::- ScalarExprStatementListPairList ->- A.ScalarExprStatementListPairList-scalarExprStatementListPairList = fmap scalarExprStatementListPair- -selectItemList :: SelectItemList -> A.SelectItemList-selectItemList = fmap selectItem- -statementList :: StatementList -> A.StatementList-statementList = fmap statement- -stringTypeNameListPair ::- StringTypeNameListPair -> A.StringTypeNameListPair-stringTypeNameListPair (a, b) = (a, typeNameList b)- -stringTypeNameListPairList ::- StringTypeNameListPairList -> A.StringTypeNameListPairList-stringTypeNameListPairList = fmap stringTypeNameListPair- -tableRefList :: TableRefList -> A.TableRefList-tableRefList = fmap tableRef- -typeAttributeDefList ::- TypeAttributeDefList -> A.TypeAttributeDefList-typeAttributeDefList = fmap typeAttributeDef- -typeNameList :: TypeNameList -> A.TypeNameList-typeNameList = fmap typeName- -varDefList :: VarDefList -> A.VarDefList-varDefList = fmap varDef- -withQueryList :: WithQueryList -> A.WithQueryList-withQueryList = fmap withQuery
− src/Database/HsSqlPpp/AstInternals/AstInternal.hs
@@ -1,14400 +0,0 @@----- UUAGC 0.9.38.1 (AstInternal.ag)-module Database.HsSqlPpp.AstInternals.AstInternal(- -- {-# LANGUAGE DeriveDataTypeable,RankNTypes,ScopedTypeVariables #-}- --from the ag files:- --ast nodes- Statement (..)- ,QueryExpr (..)- ,WithQueryList- ,WithQuery(..)- ,FnBody (..)- --,SetClause (..)- ,TableRef (..)- ,TableAlias(..)- ,JoinExpr (..)- ,JoinType (..)- ,SelectList (..)- ,SelectItem (..)- ,CopySource (..)- ,AttributeDef (..)- ,RowConstraint (..)- ,AlterTableAction(..)- ,Constraint (..)- ,TypeAttributeDef (..)- ,ParamDef (..)- ,VarDef (..)- ,RaiseType (..)- ,CombineType (..)- ,Volatility (..)- ,Language (..)- ,TypeName (..)- ,DropType (..)- ,Cascade (..)- ,Direction (..)- ,Distinct (..)- ,Natural (..)- ,IfExists (..)- ,Replace(..)- ,RestartIdentity (..)- ,ScalarExpr (..)- ,SQIdentifier(..)- ,IntervalField(..)- ,ExtractField(..)- ,FrameClause(..)- ,InList (..)- ,LiftFlavour(..)- ,TriggerWhen(..)- ,TriggerEvent(..)- ,TriggerFire(..)- ,StatementList- ,ScalarExprListStatementListPairList- ,ScalarExprListStatementListPair- ,ScalarExprList- ,ParamDefList- ,AttributeDefList- ,ConstraintList- ,TypeAttributeDefList- ,TypeNameList- ,StringTypeNameListPair- ,StringTypeNameListPairList- ,ScalarExprStatementListPairList- --,SetClauseList- ,CaseScalarExprListScalarExprPairList- ,MaybeScalarExpr- ,TableRefList- ,ScalarExprListList- ,SelectItemList- ,OnExpr- ,RowConstraintList- ,VarDefList- ,ScalarExprStatementListPair- ,CaseScalarExprListScalarExprPair- ,ScalarExprDirectionPair- ,ScalarExprDirectionPairList- ,MaybeBoolExpr- ,MaybeSelectList- ,SetValue(..)- ,AlterTableActionList- -- typechecking- ,typeCheckStatements- ,typeCheckParameterizedStatement- ,typeCheckScalarExpr- ,typeCheckQueryExpr- ,fixUpIdentifiers- ,fixUpIdentifiersQE- ,fixUpIdentifiersSE-) where--import Data.Maybe-import Data.List-import Control.Applicative-import Data.Data-import Data.Char-import Control.Monad.State-import Control.Arrow--import Data.Generics.PlateData-import Debug.Trace---import Database.HsSqlPpp.AstInternals.TypeType-import Database.HsSqlPpp.AstInternals.TypeChecking.TypeConversion-import Database.HsSqlPpp.AstInternals.AstAnnotation-import Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-import Database.HsSqlPpp.AstInternals.TypeChecking.LocalBindings-import Database.HsSqlPpp.Utils.Utils-import Database.HsSqlPpp.AstInternals.TypeChecking.ErrorUtils-------- used for schema qualified identifiers--- should be used in more places in the ast---data JoinType = Inner | LeftOuter| RightOuter | FullOuter | Cross- deriving (Show,Eq,Typeable,Data)---data CopySource = CopyFilename String- | Stdin- deriving (Show,Eq,Typeable,Data)---data SetValue- = SetStr Annotation String- | SetId Annotation String- | SetNum Annotation Double- deriving (Show,Eq,Typeable,Data)---data TriggerWhen = TriggerBefore | TriggerAfter- deriving (Show,Eq,Typeable,Data)-data TriggerEvent = TInsert| TUpdate | TDelete- deriving (Show,Eq,Typeable,Data)-data TriggerFire = EachRow | EachStatement- deriving (Show,Eq,Typeable,Data)---data RaiseType = RNotice | RException | RError- deriving (Show,Eq,Typeable,Data)--data CombineType = Except | Union | Intersect | UnionAll- deriving (Show,Eq,Typeable,Data)--data Volatility = Volatile | Stable | Immutable- deriving (Show,Eq,Typeable,Data)--data Language = Sql | Plpgsql- deriving (Show,Eq,Typeable,Data)---data DropType = Table- | Domain- | View- | Type- deriving (Show,Eq,Typeable,Data)--data Cascade = Cascade | Restrict- deriving (Show,Eq,Typeable,Data)--data Direction = Asc | Desc- deriving (Show,Eq,Typeable,Data)--data Distinct = Distinct | Dupes- deriving (Show,Eq,Typeable,Data)--data Natural = Natural | Unnatural- deriving (Show,Eq,Typeable,Data)--data IfExists = Require | IfExists- deriving (Show,Eq,Typeable,Data)--data Replace = Replace | NoReplace- deriving (Show,Eq,Typeable,Data)--data RestartIdentity = RestartIdentity | ContinueIdentity- deriving (Show,Eq,Typeable,Data)----data LiftFlavour = LiftAny | LiftAll- deriving (Show,Eq,Typeable,Data)--data IntervalField = IntervalYear- | IntervalMonth- | IntervalDay- | IntervalHour- | IntervalMinute- | IntervalSecond- | IntervalYearToMonth- | IntervalDayToHour- | IntervalDayToMinute- | IntervalDayToSecond- | IntervalHourToMinute- | IntervalHourToSecond- | IntervalMinuteToSecond- deriving (Show,Eq,Typeable,Data)--data ExtractField = ExtractCentury- | ExtractDay- | ExtractDecade- | ExtractDow- | ExtractDoy- | ExtractEpoch- | ExtractHour- | ExtractIsodow- | ExtractIsoyear- | ExtractMicroseconds- | ExtractMillennium- | ExtractMilliseconds- | ExtractMinute- | ExtractMonth- | ExtractQuarter- | ExtractSecond- | ExtractTimezone- | ExtractTimezoneHour- | ExtractTimezoneMinute- | ExtractWeek- | ExtractYear- deriving (Show,Eq,Typeable,Data)----data FrameClause = FrameUnboundedPreceding- | FrameUnboundedFull- | FrameRowsUnboundedPreceding- deriving (Show,Eq,Typeable,Data)----- | Takes an ast, checks against catalog passed, and adds--- annotations, including types, type errors, and statement info.--- Returns the updated catalog as well as the annotated ast.-typeCheckStatements :: Catalog -> [Statement] -> (Catalog,[Statement])-typeCheckStatements cat sts =- let t = sem_Root (Root $ fixUpIdentifiers cat sts)- ta = wrap_Root t Inh_Root {cat_Inh_Root = cat- ,lib_Inh_Root = emptyBindings- ,idenv_Inh_Root = emptyIDEnv}- tl = annotatedTree_Syn_Root ta- cat1 = producedCat_Syn_Root ta- in case tl of- Root r -> (cat1,r)--typeCheckQueryExpr :: Catalog -> QueryExpr -> QueryExpr-typeCheckQueryExpr cat qe =- let (_,[QueryStatement _ qe']) = typeCheckStatements cat [QueryStatement emptyAnnotation qe]- in qe'---- | Unfinished version of type check which can type check an--- individual statement with ? or positional arg placeholders in--- it. Will error if the statement isn't select, update, insert or--- delete. For use in type checking embedded parameterized--- statements. Does all typechecking and annotation that the regular--- typecheck does.-typeCheckParameterizedStatement :: Catalog -> Statement -> Either String Statement-typeCheckParameterizedStatement cat st =- case st of- QueryStatement _ _ -> tc- Insert _ _ _ _ _ -> tc- Update _ _ _ _ _ _ -> tc- Delete _ _ _ _ _ -> tc- _ -> Left "requires select, update, insert or delete statement"- where- tc = let t = sem_Root (Root $ fixUpIdentifiers cat [st])- ta = wrap_Root t Inh_Root {cat_Inh_Root = cat- ,lib_Inh_Root = emptyBindings- ,idenv_Inh_Root = emptyIDEnv}- tl = annotatedTree_Syn_Root ta- --cat1 = producedCat_Syn_Root ta- in case tl of- Root [st1] -> Right st1- _ -> error "impossible happened in typeCheckPS!"----- | Testing utility, mainly used to check an expression for type errors--- or to get its type.-typeCheckScalarExpr :: Catalog -> ScalarExpr -> ScalarExpr-typeCheckScalarExpr cat ex =- let t = sem_ScalarExprRoot (ScalarExprRoot $ fixUpIdentifiersSE cat ex)- rt = (annotatedTree_Syn_ScalarExprRoot- (wrap_ScalarExprRoot t Inh_ScalarExprRoot {cat_Inh_ScalarExprRoot = cat- ,lib_Inh_ScalarExprRoot = emptyBindings- ,idenv_Inh_ScalarExprRoot = emptyIDEnv}))- in case rt of- ScalarExprRoot e -> e-----data IDEnv = IDEnv [(String, [String])]- deriving Show-emptyIDEnv :: IDEnv-emptyIDEnv = IDEnv []--qualifyID :: IDEnv -> String -> Maybe (String,String)-qualifyID (IDEnv env) i =- q env i- where- q [] _ = Nothing- q ((t,cs):es) i' =- if i' `elem` cs- then Just (t,i')- else q es i'--makeIDEnv :: String -- range qualifier- -> [String] -- attribute names- -> IDEnv-makeIDEnv t c = IDEnv [(t,c)]--makeIDEnvP :: [(String,[String])] -> IDEnv-makeIDEnvP x = IDEnv x--unimplementedIDEnv :: IDEnv-unimplementedIDEnv = IDEnv []--joinIDEnvs :: IDEnv -> IDEnv -> IDEnv-joinIDEnvs (IDEnv a) (IDEnv b) = IDEnv $ a ++ b--expandStar :: IDEnv -> Maybe String --qualifier- -> [(String,String)]-expandStar (IDEnv es) Nothing =- flip concatMap es $ \(t,cs) -> map (t,) cs-expandStar (IDEnv es) (Just t) =- maybe [(t,"*")] (map (t,)) $ lookup t es------makeSelExps :: Annotation -> Annotation -> Annotation -> [(String,String)] -> [SelectItem]-makeSelExps sea a0 a1 is =- flip map is $ \(q,c) -> addSIAlias $ SelExp sea $ QIdentifier a0 (Identifier a1 q) c--addSIAlias :: SelectItem -> SelectItem-addSIAlias s@(SelectItem _ _ _) = s-addSIAlias (SelExp ann ex) = SelectItem ann ex $ getColName ex- where- getColName (Identifier _ i) = i- getColName (QIdentifier _ _ i) = i- getColName (FunCall _ f _) | not (isOperatorName f) = f- getColName (Cast _ _ (SimpleTypeName _ tn)) = tn- getColName (WindowFn _ (FunCall _ f _) _ _ _ _) = f- getColName _ = "?column?"----------- | transform the tree by converting * to explicit lists of columns and adding qualifiers to all column references-fixUpIdentifiers :: Catalog -> [Statement] -> [Statement]-fixUpIdentifiers cat sts =- let t = sem_Root (Root sts)- ta = wrap_Root t Inh_Root {cat_Inh_Root = cat- ,lib_Inh_Root = emptyBindings- ,idenv_Inh_Root = emptyIDEnv}- tl = fixedUpIdentifiersTree_Syn_Root ta- in case tl of- Root r -> countHack r--fixUpIdentifiersSE :: Catalog -> ScalarExpr -> ScalarExpr-fixUpIdentifiersSE cat sts =- let t = sem_ScalarExprRoot (ScalarExprRoot sts)- ta = wrap_ScalarExprRoot t Inh_ScalarExprRoot {cat_Inh_ScalarExprRoot = cat- ,lib_Inh_ScalarExprRoot = emptyBindings- ,idenv_Inh_ScalarExprRoot = emptyIDEnv}- tl = fixedUpIdentifiersTree_Syn_ScalarExprRoot ta- in case tl of- ScalarExprRoot r -> countHack r--fixUpIdentifiersQE :: Catalog -> QueryExpr -> QueryExpr-fixUpIdentifiersQE cat qe =- let [QueryStatement _ qe'] = fixUpIdentifiers cat [QueryStatement emptyAnnotation qe]- in countHack qe'---- small hack to convert count(*) into count(True). Should be fixed when--- a more general approach to aggregates is written--countHack :: Data a => a -> a-countHack = transformBi $ \x -> case x of- FunCall a "count" [Identifier ia "*"] ->- FunCall a "count" [BooleanLit ia True]- x1 -> x1----doAlias :: TableAlias -> [(String,[String])] -> ([(String,[String])],TableAlias)-doAlias (NoAlias a) [] = ([],NoAlias a)-doAlias (NoAlias a) cs@((t,_):ts) = if all (==t) $ map fst ts- then (cs,FullAlias a t $ concatMap snd cs)- else (cs,NoAlias a)-doAlias (TableAlias a t) cs = let cs' = concatMap snd cs- in ([(t, cs')], FullAlias a t cs')-doAlias f@(FullAlias _ t cs) _ = ([(t,cs)], f)----addTypeErrors :: Data a => [TypeError] -> a -> a-addTypeErrors es el = updateAnnotation u el- where- u a = a {errs = errs a ++ es}--setTypeAddErrors :: Data a => Et -> a -> a-setTypeAddErrors et el = updateAnnotation (setTypeAddErrorsA et) el--setTypeAddErrorsA :: Et -> Annotation -> Annotation-setTypeAddErrorsA et a =- let a1 = a {errs = errs a ++ tes et}- in case atype a1 of- Just _ -> a1 {errs = errs a- ++ [InternalError $ "tried to set type a second time - " ++ show (etmt et)]}- Nothing -> a1 {atype = etmt et}--allJust :: [Maybe a] -> Maybe [a]-allJust ts = sequence ts---- bit dogdy, needs some thought--- this is just to convert the new approach of using "." as an operator--- to construct names, with the old approach which stuck the whole lot--- in a string-getName :: ScalarExpr -> String-getName (Identifier _ i) = i-getName (FunCall _ "." [Identifier _ _,Identifier _ i]) = i-getName (FunCall _ "." [_,a]) = getName a-getName x = error $ "internal error getName called on: " ++ show x--getTName :: SQIdentifier -> String-getTName (SQIdentifier _ x@(_:_)) = last x-getTName x = error $ "internal error getName called on: " ++ show x---unwrapLookup :: (String,[String],Type) -> Type-unwrapLookup (_,_,t) = t--allAtts :: ([(String,Type)],[(String,Type)]) -> [(String,Type)]-allAtts (a,b) = a ++ b----typeCheckValuesExpr :: Catalog -> [[Maybe Type]] -> Either [TypeError] Type-typeCheckValuesExpr cat rowsTs = do- rts <- lmt $ allJust $ map allJust rowsTs- let colNames = zipWith (++)- (repeat "column")- (map show [1..length $ head rowsTs])- unionRelTypes cat rts colNames---typeCheckCombineSelect :: Catalog -> Type -> Type -> Either [TypeError] Type-typeCheckCombineSelect cat v1 v2 = do- u1 <- unwrapSetOfComposite v1- let colNames = map fst u1- u2 <- unwrapSetOfComposite v2- let colTypes1 = map snd u1- let colTypes2 = map snd u2- unionRelTypes cat [colTypes1,colTypes2] colNames--unionRelTypes :: Catalog -> [[Type]] -> [String] -> Either [TypeError] Type-unionRelTypes cat rowsTs colNames =- let lengths = map length rowsTs- in case () of- _ | null rowsTs ->- Left [NoRowsGivenForValues]- | not (all (==head lengths) lengths) ->- Left [ValuesListsMustBeSameLength]- | otherwise ->- --i don't think this propagates all the errors, just the first set- mapM (resolveResultSetType cat) (transpose rowsTs) >>=- (return . SetOfType . CompositeType . zip colNames)-------{--convert a function call into a [String,[(string,type)]] list for use-in a tableref context-first consideration is the alias: if there is an alias in the select,-e.g. select * from generate_series(1,2) x; (alias is x)-we use that, otherwise we use the name of the function-second consideration is the attributes coming out, roughly speaking-we have to convert an arbitrary type to a relation type-if we have a relation valued function, we don't need to do anything-if we have a setof non composite, we lift the single type to an-attribute, using the function name for the attribute name-if we have a non setof, we lift the single type to an attribute and-then relation, using the function name for the attribute name-need to check to see what should happen with arrayof---}-funIdens :: Catalog -> String -> ScalarExpr -> Maybe Type -> Either [TypeError] (String,[(String,Type)])-funIdens cat alias fnVal ft = do- errorWhen (case fnVal of- FunCall _ _ _ -> False- _ -> True)- [ContextError "FunCall"]- let (FunCall _ fnName _) = fnVal- cn = if alias /= ""- then alias- else fnName- attrs <- do- fnt <- lmt ft- case fnt of- SetOfType (NamedCompositeType t) -> catCompositePublicAttrs cat [] t- SetOfType x -> return [(cn,x)]- y -> return [(cn,y)]- return (cn, attrs)--getAlias :: String -> TableAlias -> String-getAlias def alias =- case alias of- NoAlias _ -> def- TableAlias _ t -> t- FullAlias _ t _ -> t----{-data SiType = SiType (String,Maybe Type)- | SiStarType [(String,Maybe Type)]-}-----unwrapSetofs :: [(String,Type)] -> [(String,Type)]---unwrapSetofs = map (\(n,t) -> (n, unwrapSetof t))--unwrapSetof :: Type -> Type-unwrapSetof (SetOfType u) = u-unwrapSetof v = v----defaultSystemColumns :: [(String,Type)]-defaultSystemColumns = [("tableoid", ScalarType "oid")- ,("cmax", ScalarType "cid")- ,("xmax", ScalarType "xid")- ,("cmin", ScalarType "cid")- ,("xmin", ScalarType "xid")- ,("ctid", ScalarType "tid")]---data ParamName = NamedParam Int String- | UnnamedParam Int---getPlaceholderTypes :: Data a => a -> [Maybe Type]-getPlaceholderTypes ex =- [infType (getAnnotation x) | x <- universeBi ex- , isPlaceholder x]- where- isPlaceholder e = case e of- PositionalArg _ _ -> True- Placeholder _ -> True- _ -> False---- AlterTableAction ---------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative AddConstraint:- child ann : {Annotation}- child con : Constraint - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative AlterColumnDefault:- child ann : {Annotation}- child nm : {String}- child def : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data AlterTableAction = AddConstraint (Annotation) (Constraint ) - | AlterColumnDefault (Annotation) (String) (ScalarExpr ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_AlterTableAction :: AlterTableAction ->- T_AlterTableAction -sem_AlterTableAction (AddConstraint _ann _con ) =- (sem_AlterTableAction_AddConstraint _ann (sem_Constraint _con ) )-sem_AlterTableAction (AlterColumnDefault _ann _nm _def ) =- (sem_AlterTableAction_AlterColumnDefault _ann _nm (sem_ScalarExpr _def ) )--- semantic domain-type T_AlterTableAction = Catalog ->- IDEnv ->- LocalBindings ->- ( AlterTableAction ,AlterTableAction ,AlterTableAction )-data Inh_AlterTableAction = Inh_AlterTableAction {cat_Inh_AlterTableAction :: Catalog,idenv_Inh_AlterTableAction :: IDEnv,lib_Inh_AlterTableAction :: LocalBindings}-data Syn_AlterTableAction = Syn_AlterTableAction {annotatedTree_Syn_AlterTableAction :: AlterTableAction ,fixedUpIdentifiersTree_Syn_AlterTableAction :: AlterTableAction ,originalTree_Syn_AlterTableAction :: AlterTableAction }-wrap_AlterTableAction :: T_AlterTableAction ->- Inh_AlterTableAction ->- Syn_AlterTableAction -wrap_AlterTableAction sem (Inh_AlterTableAction _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_AlterTableAction _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_AlterTableAction_AddConstraint :: Annotation ->- T_Constraint ->- T_AlterTableAction -sem_AlterTableAction_AddConstraint ann_ con_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: AlterTableAction - _lhsOfixedUpIdentifiersTree :: AlterTableAction - _lhsOoriginalTree :: AlterTableAction - _conOcat :: Catalog- _conOidenv :: IDEnv- _conOlib :: LocalBindings- _conIannotatedTree :: Constraint - _conIfixedUpIdentifiersTree :: Constraint - _conIoriginalTree :: Constraint - -- self rule- _annotatedTree =- AddConstraint ann_ _conIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- AddConstraint ann_ _conIfixedUpIdentifiersTree- -- self rule- _originalTree =- AddConstraint ann_ _conIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _conOcat =- _lhsIcat- -- copy rule (down)- _conOidenv =- _lhsIidenv- -- copy rule (down)- _conOlib =- _lhsIlib- ( _conIannotatedTree,_conIfixedUpIdentifiersTree,_conIoriginalTree) =- con_ _conOcat _conOidenv _conOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_AlterTableAction_AlterColumnDefault :: Annotation ->- String ->- T_ScalarExpr ->- T_AlterTableAction -sem_AlterTableAction_AlterColumnDefault ann_ nm_ def_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _defOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: AlterTableAction - _lhsOfixedUpIdentifiersTree :: AlterTableAction - _lhsOoriginalTree :: AlterTableAction - _defOcat :: Catalog- _defOidenv :: IDEnv- _defOlib :: LocalBindings- _defIannotatedTree :: ScalarExpr - _defIfixedUpIdentifiersTree :: ScalarExpr - _defIoriginalTree :: ScalarExpr - _defIuType :: (Maybe Type)- -- "./TypeChecking/ParameterizedStatements.ag"(line 72, column 26)- _defOexpectedType =- Nothing- -- self rule- _annotatedTree =- AlterColumnDefault ann_ nm_ _defIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- AlterColumnDefault ann_ nm_ _defIfixedUpIdentifiersTree- -- self rule- _originalTree =- AlterColumnDefault ann_ nm_ _defIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _defOcat =- _lhsIcat- -- copy rule (down)- _defOidenv =- _lhsIidenv- -- copy rule (down)- _defOlib =- _lhsIlib- ( _defIannotatedTree,_defIfixedUpIdentifiersTree,_defIoriginalTree,_defIuType) =- def_ _defOcat _defOexpectedType _defOidenv _defOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- AlterTableActionList -----------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : AlterTableAction - child tl : AlterTableActionList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type AlterTableActionList = [AlterTableAction ]--- cata-sem_AlterTableActionList :: AlterTableActionList ->- T_AlterTableActionList -sem_AlterTableActionList list =- (Prelude.foldr sem_AlterTableActionList_Cons sem_AlterTableActionList_Nil (Prelude.map sem_AlterTableAction list) )--- semantic domain-type T_AlterTableActionList = Catalog ->- IDEnv ->- LocalBindings ->- ( AlterTableActionList ,AlterTableActionList ,AlterTableActionList )-data Inh_AlterTableActionList = Inh_AlterTableActionList {cat_Inh_AlterTableActionList :: Catalog,idenv_Inh_AlterTableActionList :: IDEnv,lib_Inh_AlterTableActionList :: LocalBindings}-data Syn_AlterTableActionList = Syn_AlterTableActionList {annotatedTree_Syn_AlterTableActionList :: AlterTableActionList ,fixedUpIdentifiersTree_Syn_AlterTableActionList :: AlterTableActionList ,originalTree_Syn_AlterTableActionList :: AlterTableActionList }-wrap_AlterTableActionList :: T_AlterTableActionList ->- Inh_AlterTableActionList ->- Syn_AlterTableActionList -wrap_AlterTableActionList sem (Inh_AlterTableActionList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_AlterTableActionList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_AlterTableActionList_Cons :: T_AlterTableAction ->- T_AlterTableActionList ->- T_AlterTableActionList -sem_AlterTableActionList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: AlterTableActionList - _lhsOfixedUpIdentifiersTree :: AlterTableActionList - _lhsOoriginalTree :: AlterTableActionList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: AlterTableAction - _hdIfixedUpIdentifiersTree :: AlterTableAction - _hdIoriginalTree :: AlterTableAction - _tlIannotatedTree :: AlterTableActionList - _tlIfixedUpIdentifiersTree :: AlterTableActionList - _tlIoriginalTree :: AlterTableActionList - -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_AlterTableActionList_Nil :: T_AlterTableActionList -sem_AlterTableActionList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: AlterTableActionList - _lhsOfixedUpIdentifiersTree :: AlterTableActionList - _lhsOoriginalTree :: AlterTableActionList - -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- AttributeDef -------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - attrName : String- fixedUpIdentifiersTree : SELF - namedType : Maybe Type- originalTree : SELF - alternatives:- alternative AttributeDef:- child ann : {Annotation}- child name : {String}- child typ : TypeName - child def : MaybeScalarExpr - child cons : RowConstraintList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data AttributeDef = AttributeDef (Annotation) (String) (TypeName ) (MaybeScalarExpr ) (RowConstraintList ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_AttributeDef :: AttributeDef ->- T_AttributeDef -sem_AttributeDef (AttributeDef _ann _name _typ _def _cons ) =- (sem_AttributeDef_AttributeDef _ann _name (sem_TypeName _typ ) (sem_MaybeScalarExpr _def ) (sem_RowConstraintList _cons ) )--- semantic domain-type T_AttributeDef = Catalog ->- IDEnv ->- LocalBindings ->- ( AttributeDef ,String,AttributeDef ,(Maybe Type),AttributeDef )-data Inh_AttributeDef = Inh_AttributeDef {cat_Inh_AttributeDef :: Catalog,idenv_Inh_AttributeDef :: IDEnv,lib_Inh_AttributeDef :: LocalBindings}-data Syn_AttributeDef = Syn_AttributeDef {annotatedTree_Syn_AttributeDef :: AttributeDef ,attrName_Syn_AttributeDef :: String,fixedUpIdentifiersTree_Syn_AttributeDef :: AttributeDef ,namedType_Syn_AttributeDef :: (Maybe Type),originalTree_Syn_AttributeDef :: AttributeDef }-wrap_AttributeDef :: T_AttributeDef ->- Inh_AttributeDef ->- Syn_AttributeDef -wrap_AttributeDef sem (Inh_AttributeDef _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_AttributeDef _lhsOannotatedTree _lhsOattrName _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree ))-sem_AttributeDef_AttributeDef :: Annotation ->- String ->- T_TypeName ->- T_MaybeScalarExpr ->- T_RowConstraintList ->- T_AttributeDef -sem_AttributeDef_AttributeDef ann_ name_ typ_ def_ cons_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOattrName :: String- _lhsOnamedType :: (Maybe Type)- _consOlib :: LocalBindings- _lhsOannotatedTree :: AttributeDef - _lhsOfixedUpIdentifiersTree :: AttributeDef - _lhsOoriginalTree :: AttributeDef - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _defOcat :: Catalog- _defOidenv :: IDEnv- _defOlib :: LocalBindings- _consOcat :: Catalog- _consOidenv :: IDEnv- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - _defIannotatedTree :: MaybeScalarExpr - _defIfixedUpIdentifiersTree :: MaybeScalarExpr - _defIoriginalTree :: MaybeScalarExpr - _defIuType :: (Maybe Type)- _consIannotatedTree :: RowConstraintList - _consIfixedUpIdentifiersTree :: RowConstraintList - _consIoriginalTree :: RowConstraintList - -- "./TypeChecking/Ddl/CreateTable.ag"(line 83, column 9)- _lhsOattrName =- map toLower name_- -- "./TypeChecking/Ddl/CreateTable.ag"(line 84, column 9)- _lhsOnamedType =- _typInamedType- -- "./TypeChecking/Ddl/CreateTable.ag"(line 98, column 9)- _consOlib =- either (const _lhsIlib) id $ do- t <- lmt _typInamedType- lbUpdate _lhsIcat- (LBIds "attribute def" Nothing- [(name_, t)]) _lhsIlib- -- self rule- _annotatedTree =- AttributeDef ann_ name_ _typIannotatedTree _defIannotatedTree _consIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- AttributeDef ann_ name_ _typIfixedUpIdentifiersTree _defIfixedUpIdentifiersTree _consIfixedUpIdentifiersTree- -- self rule- _originalTree =- AttributeDef ann_ name_ _typIoriginalTree _defIoriginalTree _consIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- -- copy rule (down)- _defOcat =- _lhsIcat- -- copy rule (down)- _defOidenv =- _lhsIidenv- -- copy rule (down)- _defOlib =- _lhsIlib- -- copy rule (down)- _consOcat =- _lhsIcat- -- copy rule (down)- _consOidenv =- _lhsIidenv- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - ( _defIannotatedTree,_defIfixedUpIdentifiersTree,_defIoriginalTree,_defIuType) =- def_ _defOcat _defOidenv _defOlib - ( _consIannotatedTree,_consIfixedUpIdentifiersTree,_consIoriginalTree) =- cons_ _consOcat _consOidenv _consOlib - in ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))--- AttributeDefList ---------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - attrs : [(String, Maybe Type)]- fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : AttributeDef - child tl : AttributeDefList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type AttributeDefList = [AttributeDef ]--- cata-sem_AttributeDefList :: AttributeDefList ->- T_AttributeDefList -sem_AttributeDefList list =- (Prelude.foldr sem_AttributeDefList_Cons sem_AttributeDefList_Nil (Prelude.map sem_AttributeDef list) )--- semantic domain-type T_AttributeDefList = Catalog ->- IDEnv ->- LocalBindings ->- ( AttributeDefList ,([(String, Maybe Type)]),AttributeDefList ,AttributeDefList )-data Inh_AttributeDefList = Inh_AttributeDefList {cat_Inh_AttributeDefList :: Catalog,idenv_Inh_AttributeDefList :: IDEnv,lib_Inh_AttributeDefList :: LocalBindings}-data Syn_AttributeDefList = Syn_AttributeDefList {annotatedTree_Syn_AttributeDefList :: AttributeDefList ,attrs_Syn_AttributeDefList :: ([(String, Maybe Type)]),fixedUpIdentifiersTree_Syn_AttributeDefList :: AttributeDefList ,originalTree_Syn_AttributeDefList :: AttributeDefList }-wrap_AttributeDefList :: T_AttributeDefList ->- Inh_AttributeDefList ->- Syn_AttributeDefList -wrap_AttributeDefList sem (Inh_AttributeDefList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_AttributeDefList _lhsOannotatedTree _lhsOattrs _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_AttributeDefList_Cons :: T_AttributeDef ->- T_AttributeDefList ->- T_AttributeDefList -sem_AttributeDefList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOattrs :: ([(String, Maybe Type)])- _lhsOannotatedTree :: AttributeDefList - _lhsOfixedUpIdentifiersTree :: AttributeDefList - _lhsOoriginalTree :: AttributeDefList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: AttributeDef - _hdIattrName :: String- _hdIfixedUpIdentifiersTree :: AttributeDef - _hdInamedType :: (Maybe Type)- _hdIoriginalTree :: AttributeDef - _tlIannotatedTree :: AttributeDefList - _tlIattrs :: ([(String, Maybe Type)])- _tlIfixedUpIdentifiersTree :: AttributeDefList - _tlIoriginalTree :: AttributeDefList - -- "./TypeChecking/Ddl/CreateTable.ag"(line 88, column 12)- _lhsOattrs =- (_hdIattrName, _hdInamedType) : _tlIattrs- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIattrName,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIattrs,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_AttributeDefList_Nil :: T_AttributeDefList -sem_AttributeDefList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOattrs :: ([(String, Maybe Type)])- _lhsOannotatedTree :: AttributeDefList - _lhsOfixedUpIdentifiersTree :: AttributeDefList - _lhsOoriginalTree :: AttributeDefList - -- "./TypeChecking/Ddl/CreateTable.ag"(line 89, column 11)- _lhsOattrs =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- CaseScalarExprListScalarExprPair -----------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - thenType : Maybe Type- whenTypes : [Maybe Type]- alternatives:- alternative Tuple:- child x1 : ScalarExprList - child x2 : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type CaseScalarExprListScalarExprPair = ( ScalarExprList ,ScalarExpr )--- cata-sem_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ->- T_CaseScalarExprListScalarExprPair -sem_CaseScalarExprListScalarExprPair ( x1,x2) =- (sem_CaseScalarExprListScalarExprPair_Tuple (sem_ScalarExprList x1 ) (sem_ScalarExpr x2 ) )--- semantic domain-type T_CaseScalarExprListScalarExprPair = Catalog ->- IDEnv ->- LocalBindings ->- ( CaseScalarExprListScalarExprPair ,CaseScalarExprListScalarExprPair ,CaseScalarExprListScalarExprPair ,(Maybe Type),([Maybe Type]))-data Inh_CaseScalarExprListScalarExprPair = Inh_CaseScalarExprListScalarExprPair {cat_Inh_CaseScalarExprListScalarExprPair :: Catalog,idenv_Inh_CaseScalarExprListScalarExprPair :: IDEnv,lib_Inh_CaseScalarExprListScalarExprPair :: LocalBindings}-data Syn_CaseScalarExprListScalarExprPair = Syn_CaseScalarExprListScalarExprPair {annotatedTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ,fixedUpIdentifiersTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ,originalTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ,thenType_Syn_CaseScalarExprListScalarExprPair :: (Maybe Type),whenTypes_Syn_CaseScalarExprListScalarExprPair :: ([Maybe Type])}-wrap_CaseScalarExprListScalarExprPair :: T_CaseScalarExprListScalarExprPair ->- Inh_CaseScalarExprListScalarExprPair ->- Syn_CaseScalarExprListScalarExprPair -wrap_CaseScalarExprListScalarExprPair sem (Inh_CaseScalarExprListScalarExprPair _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenType,_lhsOwhenTypes) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_CaseScalarExprListScalarExprPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOthenType _lhsOwhenTypes ))-sem_CaseScalarExprListScalarExprPair_Tuple :: T_ScalarExprList ->- T_ScalarExpr ->- T_CaseScalarExprListScalarExprPair -sem_CaseScalarExprListScalarExprPair_Tuple x1_ x2_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOwhenTypes :: ([Maybe Type])- _lhsOthenType :: (Maybe Type)- _x1OexpectedTypes :: ([Maybe Type])- _x2OexpectedType :: (Maybe Type)- _lhsOannotatedTree :: CaseScalarExprListScalarExprPair - _lhsOfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPair - _lhsOoriginalTree :: CaseScalarExprListScalarExprPair - _x1Ocat :: Catalog- _x1Oidenv :: IDEnv- _x1Olib :: LocalBindings- _x2Ocat :: Catalog- _x2Oidenv :: IDEnv- _x2Olib :: LocalBindings- _x1IannotatedTree :: ScalarExprList - _x1IfixedUpIdentifiersTree :: ScalarExprList - _x1IoriginalTree :: ScalarExprList - _x1IuType :: ([Maybe Type])- _x2IannotatedTree :: ScalarExpr - _x2IfixedUpIdentifiersTree :: ScalarExpr - _x2IoriginalTree :: ScalarExpr - _x2IuType :: (Maybe Type)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 270, column 13)- _lhsOwhenTypes =- _x1IuType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 271, column 13)- _lhsOthenType =- _x2IuType- -- "./TypeChecking/ParameterizedStatements.ag"(line 76, column 13)- _x1OexpectedTypes =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 77, column 13)- _x2OexpectedType =- Nothing- -- self rule- _annotatedTree =- (_x1IannotatedTree,_x2IannotatedTree)- -- self rule- _fixedUpIdentifiersTree =- (_x1IfixedUpIdentifiersTree,_x2IfixedUpIdentifiersTree)- -- self rule- _originalTree =- (_x1IoriginalTree,_x2IoriginalTree)- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _x1Ocat =- _lhsIcat- -- copy rule (down)- _x1Oidenv =- _lhsIidenv- -- copy rule (down)- _x1Olib =- _lhsIlib- -- copy rule (down)- _x2Ocat =- _lhsIcat- -- copy rule (down)- _x2Oidenv =- _lhsIidenv- -- copy rule (down)- _x2Olib =- _lhsIlib- ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =- x1_ _x1Ocat _x1OexpectedTypes _x1Oidenv _x1Olib - ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2IoriginalTree,_x2IuType) =- x2_ _x2Ocat _x2OexpectedType _x2Oidenv _x2Olib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenType,_lhsOwhenTypes)))--- CaseScalarExprListScalarExprPairList -------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - thenTypes : [Maybe Type]- whenTypes : [[Maybe Type]]- alternatives:- alternative Cons:- child hd : CaseScalarExprListScalarExprPair - child tl : CaseScalarExprListScalarExprPairList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type CaseScalarExprListScalarExprPairList = [CaseScalarExprListScalarExprPair ]--- cata-sem_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ->- T_CaseScalarExprListScalarExprPairList -sem_CaseScalarExprListScalarExprPairList list =- (Prelude.foldr sem_CaseScalarExprListScalarExprPairList_Cons sem_CaseScalarExprListScalarExprPairList_Nil (Prelude.map sem_CaseScalarExprListScalarExprPair list) )--- semantic domain-type T_CaseScalarExprListScalarExprPairList = Catalog ->- IDEnv ->- LocalBindings ->- ( CaseScalarExprListScalarExprPairList ,CaseScalarExprListScalarExprPairList ,CaseScalarExprListScalarExprPairList ,([Maybe Type]),([[Maybe Type]]))-data Inh_CaseScalarExprListScalarExprPairList = Inh_CaseScalarExprListScalarExprPairList {cat_Inh_CaseScalarExprListScalarExprPairList :: Catalog,idenv_Inh_CaseScalarExprListScalarExprPairList :: IDEnv,lib_Inh_CaseScalarExprListScalarExprPairList :: LocalBindings}-data Syn_CaseScalarExprListScalarExprPairList = Syn_CaseScalarExprListScalarExprPairList {annotatedTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ,fixedUpIdentifiersTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ,originalTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ,thenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([Maybe Type]),whenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([[Maybe Type]])}-wrap_CaseScalarExprListScalarExprPairList :: T_CaseScalarExprListScalarExprPairList ->- Inh_CaseScalarExprListScalarExprPairList ->- Syn_CaseScalarExprListScalarExprPairList -wrap_CaseScalarExprListScalarExprPairList sem (Inh_CaseScalarExprListScalarExprPairList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOwhenTypes) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_CaseScalarExprListScalarExprPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOthenTypes _lhsOwhenTypes ))-sem_CaseScalarExprListScalarExprPairList_Cons :: T_CaseScalarExprListScalarExprPair ->- T_CaseScalarExprListScalarExprPairList ->- T_CaseScalarExprListScalarExprPairList -sem_CaseScalarExprListScalarExprPairList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOwhenTypes :: ([[Maybe Type]])- _lhsOthenTypes :: ([Maybe Type])- _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList - _lhsOfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList - _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: CaseScalarExprListScalarExprPair - _hdIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPair - _hdIoriginalTree :: CaseScalarExprListScalarExprPair - _hdIthenType :: (Maybe Type)- _hdIwhenTypes :: ([Maybe Type])- _tlIannotatedTree :: CaseScalarExprListScalarExprPairList - _tlIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList - _tlIoriginalTree :: CaseScalarExprListScalarExprPairList - _tlIthenTypes :: ([Maybe Type])- _tlIwhenTypes :: ([[Maybe Type]])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 261, column 10)- _lhsOwhenTypes =- _hdIwhenTypes : _tlIwhenTypes- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 262, column 10)- _lhsOthenTypes =- _hdIthenType : _tlIthenTypes- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree,_hdIthenType,_hdIwhenTypes) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIthenTypes,_tlIwhenTypes) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOwhenTypes)))-sem_CaseScalarExprListScalarExprPairList_Nil :: T_CaseScalarExprListScalarExprPairList -sem_CaseScalarExprListScalarExprPairList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOwhenTypes :: ([[Maybe Type]])- _lhsOthenTypes :: ([Maybe Type])- _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList - _lhsOfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList - _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 263, column 9)- _lhsOwhenTypes =- []- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 264, column 9)- _lhsOthenTypes =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOwhenTypes)))--- Constraint ---------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative CheckConstraint:- child ann : {Annotation}- child name : {String}- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative PrimaryKeyConstraint:- child ann : {Annotation}- child name : {String}- child x : {[String]}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ReferenceConstraint:- child ann : {Annotation}- child name : {String}- child atts : {[String]}- child table : {String}- child tableAtts : {[String]}- child onUpdate : {Cascade}- child onDelete : {Cascade}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative UniqueConstraint:- child ann : {Annotation}- child name : {String}- child x : {[String]}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data Constraint = CheckConstraint (Annotation) (String) (ScalarExpr ) - | PrimaryKeyConstraint (Annotation) (String) (([String])) - | ReferenceConstraint (Annotation) (String) (([String])) (String) (([String])) (Cascade) (Cascade) - | UniqueConstraint (Annotation) (String) (([String])) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_Constraint :: Constraint ->- T_Constraint -sem_Constraint (CheckConstraint _ann _name _expr ) =- (sem_Constraint_CheckConstraint _ann _name (sem_ScalarExpr _expr ) )-sem_Constraint (PrimaryKeyConstraint _ann _name _x ) =- (sem_Constraint_PrimaryKeyConstraint _ann _name _x )-sem_Constraint (ReferenceConstraint _ann _name _atts _table _tableAtts _onUpdate _onDelete ) =- (sem_Constraint_ReferenceConstraint _ann _name _atts _table _tableAtts _onUpdate _onDelete )-sem_Constraint (UniqueConstraint _ann _name _x ) =- (sem_Constraint_UniqueConstraint _ann _name _x )--- semantic domain-type T_Constraint = Catalog ->- IDEnv ->- LocalBindings ->- ( Constraint ,Constraint ,Constraint )-data Inh_Constraint = Inh_Constraint {cat_Inh_Constraint :: Catalog,idenv_Inh_Constraint :: IDEnv,lib_Inh_Constraint :: LocalBindings}-data Syn_Constraint = Syn_Constraint {annotatedTree_Syn_Constraint :: Constraint ,fixedUpIdentifiersTree_Syn_Constraint :: Constraint ,originalTree_Syn_Constraint :: Constraint }-wrap_Constraint :: T_Constraint ->- Inh_Constraint ->- Syn_Constraint -wrap_Constraint sem (Inh_Constraint _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_Constraint _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_Constraint_CheckConstraint :: Annotation ->- String ->- T_ScalarExpr ->- T_Constraint -sem_Constraint_CheckConstraint ann_ name_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: Constraint - _lhsOfixedUpIdentifiersTree :: Constraint - _lhsOoriginalTree :: Constraint - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/ParameterizedStatements.ag"(line 80, column 23)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- CheckConstraint ann_ name_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CheckConstraint ann_ name_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- CheckConstraint ann_ name_ _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_Constraint_PrimaryKeyConstraint :: Annotation ->- String ->- ([String]) ->- T_Constraint -sem_Constraint_PrimaryKeyConstraint ann_ name_ x_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: Constraint - _lhsOfixedUpIdentifiersTree :: Constraint - _lhsOoriginalTree :: Constraint - -- self rule- _annotatedTree =- PrimaryKeyConstraint ann_ name_ x_- -- self rule- _fixedUpIdentifiersTree =- PrimaryKeyConstraint ann_ name_ x_- -- self rule- _originalTree =- PrimaryKeyConstraint ann_ name_ x_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_Constraint_ReferenceConstraint :: Annotation ->- String ->- ([String]) ->- String ->- ([String]) ->- Cascade ->- Cascade ->- T_Constraint -sem_Constraint_ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: Constraint - _lhsOfixedUpIdentifiersTree :: Constraint - _lhsOoriginalTree :: Constraint - -- self rule- _annotatedTree =- ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_- -- self rule- _fixedUpIdentifiersTree =- ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_- -- self rule- _originalTree =- ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_Constraint_UniqueConstraint :: Annotation ->- String ->- ([String]) ->- T_Constraint -sem_Constraint_UniqueConstraint ann_ name_ x_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: Constraint - _lhsOfixedUpIdentifiersTree :: Constraint - _lhsOoriginalTree :: Constraint - -- self rule- _annotatedTree =- UniqueConstraint ann_ name_ x_- -- self rule- _fixedUpIdentifiersTree =- UniqueConstraint ann_ name_ x_- -- self rule- _originalTree =- UniqueConstraint ann_ name_ x_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ConstraintList -----------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : Constraint - child tl : ConstraintList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ConstraintList = [Constraint ]--- cata-sem_ConstraintList :: ConstraintList ->- T_ConstraintList -sem_ConstraintList list =- (Prelude.foldr sem_ConstraintList_Cons sem_ConstraintList_Nil (Prelude.map sem_Constraint list) )--- semantic domain-type T_ConstraintList = Catalog ->- IDEnv ->- LocalBindings ->- ( ConstraintList ,ConstraintList ,ConstraintList )-data Inh_ConstraintList = Inh_ConstraintList {cat_Inh_ConstraintList :: Catalog,idenv_Inh_ConstraintList :: IDEnv,lib_Inh_ConstraintList :: LocalBindings}-data Syn_ConstraintList = Syn_ConstraintList {annotatedTree_Syn_ConstraintList :: ConstraintList ,fixedUpIdentifiersTree_Syn_ConstraintList :: ConstraintList ,originalTree_Syn_ConstraintList :: ConstraintList }-wrap_ConstraintList :: T_ConstraintList ->- Inh_ConstraintList ->- Syn_ConstraintList -wrap_ConstraintList sem (Inh_ConstraintList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ConstraintList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ConstraintList_Cons :: T_Constraint ->- T_ConstraintList ->- T_ConstraintList -sem_ConstraintList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ConstraintList - _lhsOfixedUpIdentifiersTree :: ConstraintList - _lhsOoriginalTree :: ConstraintList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: Constraint - _hdIfixedUpIdentifiersTree :: Constraint - _hdIoriginalTree :: Constraint - _tlIannotatedTree :: ConstraintList - _tlIfixedUpIdentifiersTree :: ConstraintList - _tlIoriginalTree :: ConstraintList - -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_ConstraintList_Nil :: T_ConstraintList -sem_ConstraintList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ConstraintList - _lhsOfixedUpIdentifiersTree :: ConstraintList - _lhsOoriginalTree :: ConstraintList - -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- FnBody -------------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative PlpgsqlFnBody:- child ann : {Annotation}- child blk : Statement - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative SqlFnBody:- child ann : {Annotation}- child sts : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data FnBody = PlpgsqlFnBody (Annotation) (Statement ) - | SqlFnBody (Annotation) (StatementList ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_FnBody :: FnBody ->- T_FnBody -sem_FnBody (PlpgsqlFnBody _ann _blk ) =- (sem_FnBody_PlpgsqlFnBody _ann (sem_Statement _blk ) )-sem_FnBody (SqlFnBody _ann _sts ) =- (sem_FnBody_SqlFnBody _ann (sem_StatementList _sts ) )--- semantic domain-type T_FnBody = Catalog ->- IDEnv ->- LocalBindings ->- ( FnBody ,FnBody ,FnBody )-data Inh_FnBody = Inh_FnBody {cat_Inh_FnBody :: Catalog,idenv_Inh_FnBody :: IDEnv,lib_Inh_FnBody :: LocalBindings}-data Syn_FnBody = Syn_FnBody {annotatedTree_Syn_FnBody :: FnBody ,fixedUpIdentifiersTree_Syn_FnBody :: FnBody ,originalTree_Syn_FnBody :: FnBody }-wrap_FnBody :: T_FnBody ->- Inh_FnBody ->- Syn_FnBody -wrap_FnBody sem (Inh_FnBody _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_FnBody _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_FnBody_PlpgsqlFnBody :: Annotation ->- T_Statement ->- T_FnBody -sem_FnBody_PlpgsqlFnBody ann_ blk_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _blkOinProducedCat :: Catalog- _lhsOannotatedTree :: FnBody - _lhsOfixedUpIdentifiersTree :: FnBody - _lhsOoriginalTree :: FnBody - _blkOcat :: Catalog- _blkOidenv :: IDEnv- _blkOlib :: LocalBindings- _blkIannotatedTree :: Statement - _blkIcatUpdates :: ([CatalogUpdate])- _blkIfixedUpIdentifiersTree :: Statement - _blkIlibUpdates :: ([LocalBindingsUpdate])- _blkIoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 104, column 9)- _blkOinProducedCat =- emptyCatalog- -- self rule- _annotatedTree =- PlpgsqlFnBody ann_ _blkIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- PlpgsqlFnBody ann_ _blkIfixedUpIdentifiersTree- -- self rule- _originalTree =- PlpgsqlFnBody ann_ _blkIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _blkOcat =- _lhsIcat- -- copy rule (down)- _blkOidenv =- _lhsIidenv- -- copy rule (down)- _blkOlib =- _lhsIlib- ( _blkIannotatedTree,_blkIcatUpdates,_blkIfixedUpIdentifiersTree,_blkIlibUpdates,_blkIoriginalTree) =- blk_ _blkOcat _blkOidenv _blkOinProducedCat _blkOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_FnBody_SqlFnBody :: Annotation ->- T_StatementList ->- T_FnBody -sem_FnBody_SqlFnBody ann_ sts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _stsOcatUpdates :: ([CatalogUpdate])- _stsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: FnBody - _lhsOfixedUpIdentifiersTree :: FnBody - _lhsOoriginalTree :: FnBody - _stsOcat :: Catalog- _stsOidenv :: IDEnv- _stsOlib :: LocalBindings- _stsIannotatedTree :: StatementList - _stsIfixedUpIdentifiersTree :: StatementList - _stsIoriginalTree :: StatementList - _stsIproducedCat :: Catalog- _stsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 129, column 9)- _stsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 130, column 9)- _stsOlibUpdates =- []- -- self rule- _annotatedTree =- SqlFnBody ann_ _stsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- SqlFnBody ann_ _stsIfixedUpIdentifiersTree- -- self rule- _originalTree =- SqlFnBody ann_ _stsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _stsOcat =- _lhsIcat- -- copy rule (down)- _stsOidenv =- _lhsIidenv- -- copy rule (down)- _stsOlib =- _lhsIlib- ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =- sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- InList -------------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- expectedType : Maybe Type- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - listType : Either [TypeError] Type- originalTree : SELF - alternatives:- alternative InList:- child ann : {Annotation}- child exprs : ScalarExprList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative InQueryExpr:- child ann : {Annotation}- child sel : QueryExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data InList = InList (Annotation) (ScalarExprList ) - | InQueryExpr (Annotation) (QueryExpr ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_InList :: InList ->- T_InList -sem_InList (InList _ann _exprs ) =- (sem_InList_InList _ann (sem_ScalarExprList _exprs ) )-sem_InList (InQueryExpr _ann _sel ) =- (sem_InList_InQueryExpr _ann (sem_QueryExpr _sel ) )--- semantic domain-type T_InList = Catalog ->- (Maybe Type) ->- IDEnv ->- LocalBindings ->- ( InList ,InList ,(Either [TypeError] Type),InList )-data Inh_InList = Inh_InList {cat_Inh_InList :: Catalog,expectedType_Inh_InList :: (Maybe Type),idenv_Inh_InList :: IDEnv,lib_Inh_InList :: LocalBindings}-data Syn_InList = Syn_InList {annotatedTree_Syn_InList :: InList ,fixedUpIdentifiersTree_Syn_InList :: InList ,listType_Syn_InList :: (Either [TypeError] Type),originalTree_Syn_InList :: InList }-wrap_InList :: T_InList ->- Inh_InList ->- Syn_InList -wrap_InList sem (Inh_InList _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib - in (Syn_InList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlistType _lhsOoriginalTree ))-sem_InList_InList :: Annotation ->- T_ScalarExprList ->- T_InList -sem_InList_InList ann_ exprs_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOlistType :: (Either [TypeError] Type)- _exprsOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: InList - _lhsOfixedUpIdentifiersTree :: InList - _lhsOoriginalTree :: InList - _exprsOcat :: Catalog- _exprsOidenv :: IDEnv- _exprsOlib :: LocalBindings- _exprsIannotatedTree :: ScalarExprList - _exprsIfixedUpIdentifiersTree :: ScalarExprList - _exprsIoriginalTree :: ScalarExprList - _exprsIuType :: ([Maybe Type])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 409, column 9)- _lhsOlistType =- mapM lmt _exprsIuType >>= resolveResultSetType _lhsIcat- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 410, column 9)- _exprsOexpectedTypes =- repeat _lhsIexpectedType- -- self rule- _annotatedTree =- InList ann_ _exprsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- InList ann_ _exprsIfixedUpIdentifiersTree- -- self rule- _originalTree =- InList ann_ _exprsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprsOcat =- _lhsIcat- -- copy rule (down)- _exprsOidenv =- _lhsIidenv- -- copy rule (down)- _exprsOlib =- _lhsIlib- ( _exprsIannotatedTree,_exprsIfixedUpIdentifiersTree,_exprsIoriginalTree,_exprsIuType) =- exprs_ _exprsOcat _exprsOexpectedTypes _exprsOidenv _exprsOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))-sem_InList_InQueryExpr :: Annotation ->- T_QueryExpr ->- T_InList -sem_InList_InQueryExpr ann_ sel_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOlistType :: (Either [TypeError] Type)- _selOcsql :: LocalBindings- _selOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: InList - _lhsOfixedUpIdentifiersTree :: InList - _lhsOoriginalTree :: InList - _selOcat :: Catalog- _selOidenv :: IDEnv- _selOlib :: LocalBindings- _selIannotatedTree :: QueryExpr - _selIcidenv :: IDEnv- _selIfixedUpIdentifiersTree :: QueryExpr - _selIlibUpdates :: ([LocalBindingsUpdate])- _selIoriginalTree :: QueryExpr - _selIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 413, column 9)- _lhsOlistType =- do- st <- lmt (map snd <$> _selIuType)- case length st of- 0 -> Left [InternalError- "got subquery with no columns? in inselect"]- 1 -> Right $ head st- _ -> Right $ AnonymousRecordType st- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 120, column 19)- _selOcsql =- emptyBindings- -- "./TypeChecking/ParameterizedStatements.ag"(line 173, column 19)- _selOexpectedTypes =- []- -- self rule- _annotatedTree =- InQueryExpr ann_ _selIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- InQueryExpr ann_ _selIfixedUpIdentifiersTree- -- self rule- _originalTree =- InQueryExpr ann_ _selIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _selOcat =- _lhsIcat- -- copy rule (down)- _selOidenv =- _lhsIidenv- -- copy rule (down)- _selOlib =- _lhsIlib- ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =- sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))--- JoinExpr -----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative JoinOn:- child ann : {Annotation}- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative JoinUsing:- child ann : {Annotation}- child x : {[String]}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data JoinExpr = JoinOn (Annotation) (ScalarExpr ) - | JoinUsing (Annotation) (([String])) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_JoinExpr :: JoinExpr ->- T_JoinExpr -sem_JoinExpr (JoinOn _ann _expr ) =- (sem_JoinExpr_JoinOn _ann (sem_ScalarExpr _expr ) )-sem_JoinExpr (JoinUsing _ann _x ) =- (sem_JoinExpr_JoinUsing _ann _x )--- semantic domain-type T_JoinExpr = Catalog ->- IDEnv ->- LocalBindings ->- ( JoinExpr ,JoinExpr ,JoinExpr )-data Inh_JoinExpr = Inh_JoinExpr {cat_Inh_JoinExpr :: Catalog,idenv_Inh_JoinExpr :: IDEnv,lib_Inh_JoinExpr :: LocalBindings}-data Syn_JoinExpr = Syn_JoinExpr {annotatedTree_Syn_JoinExpr :: JoinExpr ,fixedUpIdentifiersTree_Syn_JoinExpr :: JoinExpr ,originalTree_Syn_JoinExpr :: JoinExpr }-wrap_JoinExpr :: T_JoinExpr ->- Inh_JoinExpr ->- Syn_JoinExpr -wrap_JoinExpr sem (Inh_JoinExpr _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_JoinExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_JoinExpr_JoinOn :: Annotation ->- T_ScalarExpr ->- T_JoinExpr -sem_JoinExpr_JoinOn ann_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: JoinExpr - _lhsOfixedUpIdentifiersTree :: JoinExpr - _lhsOoriginalTree :: JoinExpr - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/ParameterizedStatements.ag"(line 94, column 14)- _exprOexpectedType =- Just typeBool- -- self rule- _annotatedTree =- JoinOn ann_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- JoinOn ann_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- JoinOn ann_ _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_JoinExpr_JoinUsing :: Annotation ->- ([String]) ->- T_JoinExpr -sem_JoinExpr_JoinUsing ann_ x_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: JoinExpr - _lhsOfixedUpIdentifiersTree :: JoinExpr - _lhsOoriginalTree :: JoinExpr - -- self rule- _annotatedTree =- JoinUsing ann_ x_- -- self rule- _fixedUpIdentifiersTree =- JoinUsing ann_ x_- -- self rule- _originalTree =- JoinUsing ann_ x_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- MaybeBoolExpr ------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Just:- child just : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nothing:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type MaybeBoolExpr = Maybe ScalarExpr --- cata-sem_MaybeBoolExpr :: MaybeBoolExpr ->- T_MaybeBoolExpr -sem_MaybeBoolExpr (Prelude.Just x ) =- (sem_MaybeBoolExpr_Just (sem_ScalarExpr x ) )-sem_MaybeBoolExpr Prelude.Nothing =- sem_MaybeBoolExpr_Nothing--- semantic domain-type T_MaybeBoolExpr = Catalog ->- IDEnv ->- LocalBindings ->- ( MaybeBoolExpr ,MaybeBoolExpr ,MaybeBoolExpr )-data Inh_MaybeBoolExpr = Inh_MaybeBoolExpr {cat_Inh_MaybeBoolExpr :: Catalog,idenv_Inh_MaybeBoolExpr :: IDEnv,lib_Inh_MaybeBoolExpr :: LocalBindings}-data Syn_MaybeBoolExpr = Syn_MaybeBoolExpr {annotatedTree_Syn_MaybeBoolExpr :: MaybeBoolExpr ,fixedUpIdentifiersTree_Syn_MaybeBoolExpr :: MaybeBoolExpr ,originalTree_Syn_MaybeBoolExpr :: MaybeBoolExpr }-wrap_MaybeBoolExpr :: T_MaybeBoolExpr ->- Inh_MaybeBoolExpr ->- Syn_MaybeBoolExpr -wrap_MaybeBoolExpr sem (Inh_MaybeBoolExpr _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_MaybeBoolExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_MaybeBoolExpr_Just :: T_ScalarExpr ->- T_MaybeBoolExpr -sem_MaybeBoolExpr_Just just_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: MaybeBoolExpr - _justOexpectedType :: (Maybe Type)- _lhsOfixedUpIdentifiersTree :: MaybeBoolExpr - _lhsOoriginalTree :: MaybeBoolExpr - _justOcat :: Catalog- _justOidenv :: IDEnv- _justOlib :: LocalBindings- _justIannotatedTree :: ScalarExpr - _justIfixedUpIdentifiersTree :: ScalarExpr - _justIoriginalTree :: ScalarExpr - _justIuType :: (Maybe Type)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 132, column 9)- _lhsOannotatedTree =- let t = _justIuType- in if t `elem` [Nothing,Just typeBool]- then Just _justIannotatedTree- else Just $ addTypeErrors [ExpressionMustBeBool] _justIannotatedTree- -- "./TypeChecking/ParameterizedStatements.ag"(line 97, column 12)- _justOexpectedType =- Just typeBool- -- self rule- _annotatedTree =- Just _justIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Just _justIfixedUpIdentifiersTree- -- self rule- _originalTree =- Just _justIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _justOcat =- _lhsIcat- -- copy rule (down)- _justOidenv =- _lhsIidenv- -- copy rule (down)- _justOlib =- _lhsIlib- ( _justIannotatedTree,_justIfixedUpIdentifiersTree,_justIoriginalTree,_justIuType) =- just_ _justOcat _justOexpectedType _justOidenv _justOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_MaybeBoolExpr_Nothing :: T_MaybeBoolExpr -sem_MaybeBoolExpr_Nothing =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: MaybeBoolExpr - _lhsOfixedUpIdentifiersTree :: MaybeBoolExpr - _lhsOoriginalTree :: MaybeBoolExpr - -- self rule- _annotatedTree =- Nothing- -- self rule- _fixedUpIdentifiersTree =- Nothing- -- self rule- _originalTree =- Nothing- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- MaybeScalarExpr ----------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - uType : Maybe Type- alternatives:- alternative Just:- child just : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nothing:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type MaybeScalarExpr = Maybe ScalarExpr --- cata-sem_MaybeScalarExpr :: MaybeScalarExpr ->- T_MaybeScalarExpr -sem_MaybeScalarExpr (Prelude.Just x ) =- (sem_MaybeScalarExpr_Just (sem_ScalarExpr x ) )-sem_MaybeScalarExpr Prelude.Nothing =- sem_MaybeScalarExpr_Nothing--- semantic domain-type T_MaybeScalarExpr = Catalog ->- IDEnv ->- LocalBindings ->- ( MaybeScalarExpr ,MaybeScalarExpr ,MaybeScalarExpr ,(Maybe Type))-data Inh_MaybeScalarExpr = Inh_MaybeScalarExpr {cat_Inh_MaybeScalarExpr :: Catalog,idenv_Inh_MaybeScalarExpr :: IDEnv,lib_Inh_MaybeScalarExpr :: LocalBindings}-data Syn_MaybeScalarExpr = Syn_MaybeScalarExpr {annotatedTree_Syn_MaybeScalarExpr :: MaybeScalarExpr ,fixedUpIdentifiersTree_Syn_MaybeScalarExpr :: MaybeScalarExpr ,originalTree_Syn_MaybeScalarExpr :: MaybeScalarExpr ,uType_Syn_MaybeScalarExpr :: (Maybe Type)}-wrap_MaybeScalarExpr :: T_MaybeScalarExpr ->- Inh_MaybeScalarExpr ->- Syn_MaybeScalarExpr -wrap_MaybeScalarExpr sem (Inh_MaybeScalarExpr _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_MaybeScalarExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))-sem_MaybeScalarExpr_Just :: T_ScalarExpr ->- T_MaybeScalarExpr -sem_MaybeScalarExpr_Just just_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOuType :: (Maybe Type)- _justOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: MaybeScalarExpr - _lhsOfixedUpIdentifiersTree :: MaybeScalarExpr - _lhsOoriginalTree :: MaybeScalarExpr - _justOcat :: Catalog- _justOidenv :: IDEnv- _justOlib :: LocalBindings- _justIannotatedTree :: ScalarExpr - _justIfixedUpIdentifiersTree :: ScalarExpr - _justIoriginalTree :: ScalarExpr - _justIuType :: (Maybe Type)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 124, column 12)- _lhsOuType =- _justIuType- -- "./TypeChecking/ParameterizedStatements.ag"(line 100, column 12)- _justOexpectedType =- Nothing- -- self rule- _annotatedTree =- Just _justIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Just _justIfixedUpIdentifiersTree- -- self rule- _originalTree =- Just _justIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _justOcat =- _lhsIcat- -- copy rule (down)- _justOidenv =- _lhsIidenv- -- copy rule (down)- _justOlib =- _lhsIlib- ( _justIannotatedTree,_justIfixedUpIdentifiersTree,_justIoriginalTree,_justIuType) =- just_ _justOcat _justOexpectedType _justOidenv _justOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_MaybeScalarExpr_Nothing :: T_MaybeScalarExpr -sem_MaybeScalarExpr_Nothing =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOuType :: (Maybe Type)- _lhsOannotatedTree :: MaybeScalarExpr - _lhsOfixedUpIdentifiersTree :: MaybeScalarExpr - _lhsOoriginalTree :: MaybeScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 125, column 15)- _lhsOuType =- Nothing- -- self rule- _annotatedTree =- Nothing- -- self rule- _fixedUpIdentifiersTree =- Nothing- -- self rule- _originalTree =- Nothing- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))--- MaybeSelectList ----------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - listType : [(String,Maybe Type)]- originalTree : SELF - alternatives:- alternative Just:- child just : SelectList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nothing:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type MaybeSelectList = Maybe SelectList --- cata-sem_MaybeSelectList :: MaybeSelectList ->- T_MaybeSelectList -sem_MaybeSelectList (Prelude.Just x ) =- (sem_MaybeSelectList_Just (sem_SelectList x ) )-sem_MaybeSelectList Prelude.Nothing =- sem_MaybeSelectList_Nothing--- semantic domain-type T_MaybeSelectList = Catalog ->- IDEnv ->- LocalBindings ->- ( MaybeSelectList ,MaybeSelectList ,([(String,Maybe Type)]),MaybeSelectList )-data Inh_MaybeSelectList = Inh_MaybeSelectList {cat_Inh_MaybeSelectList :: Catalog,idenv_Inh_MaybeSelectList :: IDEnv,lib_Inh_MaybeSelectList :: LocalBindings}-data Syn_MaybeSelectList = Syn_MaybeSelectList {annotatedTree_Syn_MaybeSelectList :: MaybeSelectList ,fixedUpIdentifiersTree_Syn_MaybeSelectList :: MaybeSelectList ,listType_Syn_MaybeSelectList :: ([(String,Maybe Type)]),originalTree_Syn_MaybeSelectList :: MaybeSelectList }-wrap_MaybeSelectList :: T_MaybeSelectList ->- Inh_MaybeSelectList ->- Syn_MaybeSelectList -wrap_MaybeSelectList sem (Inh_MaybeSelectList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_MaybeSelectList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlistType _lhsOoriginalTree ))-sem_MaybeSelectList_Just :: T_SelectList ->- T_MaybeSelectList -sem_MaybeSelectList_Just just_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOlistType :: ([(String,Maybe Type)])- _lhsOannotatedTree :: MaybeSelectList - _lhsOfixedUpIdentifiersTree :: MaybeSelectList - _lhsOoriginalTree :: MaybeSelectList - _justOcat :: Catalog- _justOidenv :: IDEnv- _justOlib :: LocalBindings- _justIannotatedTree :: SelectList - _justIcidenv :: IDEnv- _justIfixedUpIdentifiersTree :: SelectList - _justIlibUpdates :: ([LocalBindingsUpdate])- _justIlistType :: ([(String,Maybe Type)])- _justIoriginalTree :: SelectList - -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 38, column 12)- _lhsOlistType =- _justIlistType- -- self rule- _annotatedTree =- Just _justIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Just _justIfixedUpIdentifiersTree- -- self rule- _originalTree =- Just _justIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _justOcat =- _lhsIcat- -- copy rule (down)- _justOidenv =- _lhsIidenv- -- copy rule (down)- _justOlib =- _lhsIlib- ( _justIannotatedTree,_justIcidenv,_justIfixedUpIdentifiersTree,_justIlibUpdates,_justIlistType,_justIoriginalTree) =- just_ _justOcat _justOidenv _justOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))-sem_MaybeSelectList_Nothing :: T_MaybeSelectList -sem_MaybeSelectList_Nothing =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOlistType :: ([(String,Maybe Type)])- _lhsOannotatedTree :: MaybeSelectList - _lhsOfixedUpIdentifiersTree :: MaybeSelectList - _lhsOoriginalTree :: MaybeSelectList - -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 39, column 15)- _lhsOlistType =- []- -- self rule- _annotatedTree =- Nothing- -- self rule- _fixedUpIdentifiersTree =- Nothing- -- self rule- _originalTree =- Nothing- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))--- OnExpr -------------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Just:- child just : JoinExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nothing:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type OnExpr = Maybe JoinExpr --- cata-sem_OnExpr :: OnExpr ->- T_OnExpr -sem_OnExpr (Prelude.Just x ) =- (sem_OnExpr_Just (sem_JoinExpr x ) )-sem_OnExpr Prelude.Nothing =- sem_OnExpr_Nothing--- semantic domain-type T_OnExpr = Catalog ->- IDEnv ->- LocalBindings ->- ( OnExpr ,OnExpr ,OnExpr )-data Inh_OnExpr = Inh_OnExpr {cat_Inh_OnExpr :: Catalog,idenv_Inh_OnExpr :: IDEnv,lib_Inh_OnExpr :: LocalBindings}-data Syn_OnExpr = Syn_OnExpr {annotatedTree_Syn_OnExpr :: OnExpr ,fixedUpIdentifiersTree_Syn_OnExpr :: OnExpr ,originalTree_Syn_OnExpr :: OnExpr }-wrap_OnExpr :: T_OnExpr ->- Inh_OnExpr ->- Syn_OnExpr -wrap_OnExpr sem (Inh_OnExpr _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_OnExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_OnExpr_Just :: T_JoinExpr ->- T_OnExpr -sem_OnExpr_Just just_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: OnExpr - _lhsOfixedUpIdentifiersTree :: OnExpr - _lhsOoriginalTree :: OnExpr - _justOcat :: Catalog- _justOidenv :: IDEnv- _justOlib :: LocalBindings- _justIannotatedTree :: JoinExpr - _justIfixedUpIdentifiersTree :: JoinExpr - _justIoriginalTree :: JoinExpr - -- self rule- _annotatedTree =- Just _justIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Just _justIfixedUpIdentifiersTree- -- self rule- _originalTree =- Just _justIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _justOcat =- _lhsIcat- -- copy rule (down)- _justOidenv =- _lhsIidenv- -- copy rule (down)- _justOlib =- _lhsIlib- ( _justIannotatedTree,_justIfixedUpIdentifiersTree,_justIoriginalTree) =- just_ _justOcat _justOidenv _justOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_OnExpr_Nothing :: T_OnExpr -sem_OnExpr_Nothing =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: OnExpr - _lhsOfixedUpIdentifiersTree :: OnExpr - _lhsOoriginalTree :: OnExpr - -- self rule- _annotatedTree =- Nothing- -- self rule- _fixedUpIdentifiersTree =- Nothing- -- self rule- _originalTree =- Nothing- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ParamDef -----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- pos : Int- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - namedType : Maybe Type- originalTree : SELF - paramName : ParamName- alternatives:- alternative ParamDef:- child ann : {Annotation}- child name : {String}- child typ : TypeName - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ParamDefTp:- child ann : {Annotation}- child typ : TypeName - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data ParamDef = ParamDef (Annotation) (String) (TypeName ) - | ParamDefTp (Annotation) (TypeName ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_ParamDef :: ParamDef ->- T_ParamDef -sem_ParamDef (ParamDef _ann _name _typ ) =- (sem_ParamDef_ParamDef _ann _name (sem_TypeName _typ ) )-sem_ParamDef (ParamDefTp _ann _typ ) =- (sem_ParamDef_ParamDefTp _ann (sem_TypeName _typ ) )--- semantic domain-type T_ParamDef = Catalog ->- IDEnv ->- LocalBindings ->- Int ->- ( ParamDef ,ParamDef ,(Maybe Type),ParamDef ,ParamName)-data Inh_ParamDef = Inh_ParamDef {cat_Inh_ParamDef :: Catalog,idenv_Inh_ParamDef :: IDEnv,lib_Inh_ParamDef :: LocalBindings,pos_Inh_ParamDef :: Int}-data Syn_ParamDef = Syn_ParamDef {annotatedTree_Syn_ParamDef :: ParamDef ,fixedUpIdentifiersTree_Syn_ParamDef :: ParamDef ,namedType_Syn_ParamDef :: (Maybe Type),originalTree_Syn_ParamDef :: ParamDef ,paramName_Syn_ParamDef :: ParamName}-wrap_ParamDef :: T_ParamDef ->- Inh_ParamDef ->- Syn_ParamDef -wrap_ParamDef sem (Inh_ParamDef _lhsIcat _lhsIidenv _lhsIlib _lhsIpos ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree,_lhsOparamName) = sem _lhsIcat _lhsIidenv _lhsIlib _lhsIpos - in (Syn_ParamDef _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree _lhsOparamName ))-sem_ParamDef_ParamDef :: Annotation ->- String ->- T_TypeName ->- T_ParamDef -sem_ParamDef_ParamDef ann_ name_ typ_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib- _lhsIpos ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOparamName :: ParamName- _lhsOannotatedTree :: ParamDef - _lhsOfixedUpIdentifiersTree :: ParamDef - _lhsOoriginalTree :: ParamDef - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - -- "./TypeChecking/Ddl/CreateFunction.ag"(line 45, column 9)- _lhsOnamedType =- _typInamedType- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 47, column 9)- _lhsOparamName =- NamedParam _lhsIpos name_- -- self rule- _annotatedTree =- ParamDef ann_ name_ _typIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ParamDef ann_ name_ _typIfixedUpIdentifiersTree- -- self rule- _originalTree =- ParamDef ann_ name_ _typIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree,_lhsOparamName)))-sem_ParamDef_ParamDefTp :: Annotation ->- T_TypeName ->- T_ParamDef -sem_ParamDef_ParamDefTp ann_ typ_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib- _lhsIpos ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOparamName :: ParamName- _lhsOannotatedTree :: ParamDef - _lhsOfixedUpIdentifiersTree :: ParamDef - _lhsOoriginalTree :: ParamDef - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - -- "./TypeChecking/Ddl/CreateFunction.ag"(line 45, column 9)- _lhsOnamedType =- _typInamedType- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 49, column 9)- _lhsOparamName =- UnnamedParam _lhsIpos- -- self rule- _annotatedTree =- ParamDefTp ann_ _typIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ParamDefTp ann_ _typIfixedUpIdentifiersTree- -- self rule- _originalTree =- ParamDefTp ann_ _typIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree,_lhsOparamName)))--- ParamDefList -------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- pos : Int- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - params : [(ParamName, Maybe Type)]- alternatives:- alternative Cons:- child hd : ParamDef - child tl : ParamDefList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ParamDefList = [ParamDef ]--- cata-sem_ParamDefList :: ParamDefList ->- T_ParamDefList -sem_ParamDefList list =- (Prelude.foldr sem_ParamDefList_Cons sem_ParamDefList_Nil (Prelude.map sem_ParamDef list) )--- semantic domain-type T_ParamDefList = Catalog ->- IDEnv ->- LocalBindings ->- Int ->- ( ParamDefList ,ParamDefList ,ParamDefList ,([(ParamName, Maybe Type)]))-data Inh_ParamDefList = Inh_ParamDefList {cat_Inh_ParamDefList :: Catalog,idenv_Inh_ParamDefList :: IDEnv,lib_Inh_ParamDefList :: LocalBindings,pos_Inh_ParamDefList :: Int}-data Syn_ParamDefList = Syn_ParamDefList {annotatedTree_Syn_ParamDefList :: ParamDefList ,fixedUpIdentifiersTree_Syn_ParamDefList :: ParamDefList ,originalTree_Syn_ParamDefList :: ParamDefList ,params_Syn_ParamDefList :: ([(ParamName, Maybe Type)])}-wrap_ParamDefList :: T_ParamDefList ->- Inh_ParamDefList ->- Syn_ParamDefList -wrap_ParamDefList sem (Inh_ParamDefList _lhsIcat _lhsIidenv _lhsIlib _lhsIpos ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOparams) = sem _lhsIcat _lhsIidenv _lhsIlib _lhsIpos - in (Syn_ParamDefList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOparams ))-sem_ParamDefList_Cons :: T_ParamDef ->- T_ParamDefList ->- T_ParamDefList -sem_ParamDefList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib- _lhsIpos ->- (let _lhsOparams :: ([(ParamName, Maybe Type)])- _hdOpos :: Int- _tlOpos :: Int- _lhsOannotatedTree :: ParamDefList - _lhsOfixedUpIdentifiersTree :: ParamDefList - _lhsOoriginalTree :: ParamDefList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: ParamDef - _hdIfixedUpIdentifiersTree :: ParamDef - _hdInamedType :: (Maybe Type)- _hdIoriginalTree :: ParamDef - _hdIparamName :: ParamName- _tlIannotatedTree :: ParamDefList - _tlIfixedUpIdentifiersTree :: ParamDefList - _tlIoriginalTree :: ParamDefList - _tlIparams :: ([(ParamName, Maybe Type)])- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 53, column 13)- _lhsOparams =- ((_hdIparamName, _hdInamedType) : _tlIparams)- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 54, column 13)- _hdOpos =- _lhsIpos- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 55, column 13)- _tlOpos =- _lhsIpos + 1- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree,_hdIparamName) =- hd_ _hdOcat _hdOidenv _hdOlib _hdOpos - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIparams) =- tl_ _tlOcat _tlOidenv _tlOlib _tlOpos - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOparams)))-sem_ParamDefList_Nil :: T_ParamDefList -sem_ParamDefList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib- _lhsIpos ->- (let _lhsOparams :: ([(ParamName, Maybe Type)])- _lhsOannotatedTree :: ParamDefList - _lhsOfixedUpIdentifiersTree :: ParamDefList - _lhsOoriginalTree :: ParamDefList - -- "./TypeChecking/Ddl/CreateFunction.ag"(line 52, column 12)- _lhsOparams =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOparams)))--- QueryExpr ----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- csql : LocalBindings- expectedTypes : [Maybe Type]- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - cidenv : IDEnv- fixedUpIdentifiersTree : SELF - libUpdates : [LocalBindingsUpdate]- originalTree : SELF - uType : Maybe [(String,Type)]- alternatives:- alternative CombineQueryExpr:- child ann : {Annotation}- child ctype : {CombineType}- child sel1 : QueryExpr - child sel2 : QueryExpr - visit 0:- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Select:- child ann : {Annotation}- child selDistinct : {Distinct}- child selSelectList : SelectList - child selTref : TableRefList - child selWhere : MaybeBoolExpr - child selGroupBy : ScalarExprList - child selHaving : MaybeBoolExpr - child selOrderBy : ScalarExprDirectionPairList - child selLimit : MaybeScalarExpr - child selOffset : MaybeScalarExpr - visit 0:- local trefEnv : _- local includeCorrelations : _- local newLib : _- local slTypes : {LocalBindings}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Values:- child ann : {Annotation}- child vll : ScalarExprListList - visit 0:- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative WithQueryExpr:- child ann : {Annotation}- child withs : WithQueryList - child ex : QueryExpr - visit 0:- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data QueryExpr = CombineQueryExpr (Annotation) (CombineType) (QueryExpr ) (QueryExpr ) - | Select (Annotation) (Distinct) (SelectList ) (TableRefList ) (MaybeBoolExpr ) (ScalarExprList ) (MaybeBoolExpr ) (ScalarExprDirectionPairList ) (MaybeScalarExpr ) (MaybeScalarExpr ) - | Values (Annotation) (ScalarExprListList ) - | WithQueryExpr (Annotation) (WithQueryList ) (QueryExpr ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_QueryExpr :: QueryExpr ->- T_QueryExpr -sem_QueryExpr (CombineQueryExpr _ann _ctype _sel1 _sel2 ) =- (sem_QueryExpr_CombineQueryExpr _ann _ctype (sem_QueryExpr _sel1 ) (sem_QueryExpr _sel2 ) )-sem_QueryExpr (Select _ann _selDistinct _selSelectList _selTref _selWhere _selGroupBy _selHaving _selOrderBy _selLimit _selOffset ) =- (sem_QueryExpr_Select _ann _selDistinct (sem_SelectList _selSelectList ) (sem_TableRefList _selTref ) (sem_MaybeBoolExpr _selWhere ) (sem_ScalarExprList _selGroupBy ) (sem_MaybeBoolExpr _selHaving ) (sem_ScalarExprDirectionPairList _selOrderBy ) (sem_MaybeScalarExpr _selLimit ) (sem_MaybeScalarExpr _selOffset ) )-sem_QueryExpr (Values _ann _vll ) =- (sem_QueryExpr_Values _ann (sem_ScalarExprListList _vll ) )-sem_QueryExpr (WithQueryExpr _ann _withs _ex ) =- (sem_QueryExpr_WithQueryExpr _ann (sem_WithQueryList _withs ) (sem_QueryExpr _ex ) )--- semantic domain-type T_QueryExpr = Catalog ->- LocalBindings ->- ([Maybe Type]) ->- IDEnv ->- LocalBindings ->- ( QueryExpr ,IDEnv,QueryExpr ,([LocalBindingsUpdate]),QueryExpr ,(Maybe [(String,Type)]))-data Inh_QueryExpr = Inh_QueryExpr {cat_Inh_QueryExpr :: Catalog,csql_Inh_QueryExpr :: LocalBindings,expectedTypes_Inh_QueryExpr :: ([Maybe Type]),idenv_Inh_QueryExpr :: IDEnv,lib_Inh_QueryExpr :: LocalBindings}-data Syn_QueryExpr = Syn_QueryExpr {annotatedTree_Syn_QueryExpr :: QueryExpr ,cidenv_Syn_QueryExpr :: IDEnv,fixedUpIdentifiersTree_Syn_QueryExpr :: QueryExpr ,libUpdates_Syn_QueryExpr :: ([LocalBindingsUpdate]),originalTree_Syn_QueryExpr :: QueryExpr ,uType_Syn_QueryExpr :: (Maybe [(String,Type)])}-wrap_QueryExpr :: T_QueryExpr ->- Inh_QueryExpr ->- Syn_QueryExpr -wrap_QueryExpr sem (Inh_QueryExpr _lhsIcat _lhsIcsql _lhsIexpectedTypes _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIcsql _lhsIexpectedTypes _lhsIidenv _lhsIlib - in (Syn_QueryExpr _lhsOannotatedTree _lhsOcidenv _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOoriginalTree _lhsOuType ))-sem_QueryExpr_CombineQueryExpr :: Annotation ->- CombineType ->- T_QueryExpr ->- T_QueryExpr ->- T_QueryExpr -sem_QueryExpr_CombineQueryExpr ann_ ctype_ sel1_ sel2_ =- (\ _lhsIcat- _lhsIcsql- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOcidenv :: IDEnv- _lhsOannotatedTree :: QueryExpr - _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: Et- _lhsOuType :: (Maybe [(String,Type)])- _lhsOfixedUpIdentifiersTree :: QueryExpr - _lhsOoriginalTree :: QueryExpr - _sel1Ocat :: Catalog- _sel1Ocsql :: LocalBindings- _sel1OexpectedTypes :: ([Maybe Type])- _sel1Oidenv :: IDEnv- _sel1Olib :: LocalBindings- _sel2Ocat :: Catalog- _sel2Ocsql :: LocalBindings- _sel2OexpectedTypes :: ([Maybe Type])- _sel2Oidenv :: IDEnv- _sel2Olib :: LocalBindings- _sel1IannotatedTree :: QueryExpr - _sel1Icidenv :: IDEnv- _sel1IfixedUpIdentifiersTree :: QueryExpr - _sel1IlibUpdates :: ([LocalBindingsUpdate])- _sel1IoriginalTree :: QueryExpr - _sel1IuType :: (Maybe [(String,Type)])- _sel2IannotatedTree :: QueryExpr - _sel2Icidenv :: IDEnv- _sel2IfixedUpIdentifiersTree :: QueryExpr - _sel2IlibUpdates :: ([LocalBindingsUpdate])- _sel2IoriginalTree :: QueryExpr - _sel2IuType :: (Maybe [(String,Type)])- -- "./TypeChecking/FixUpIdentifiers.ag"(line 230, column 24)- _lhsOcidenv =- _sel1Icidenv- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)- _lhsOannotatedTree =- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 141, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 168, column 9)- _tpe =- do- sel1t <- lmt ((SetOfType . CompositeType) <$> _sel1IuType)- sel2t <- lmt ((SetOfType . CompositeType) <$> _sel2IuType)- typeCheckCombineSelect _lhsIcat sel1t sel2t- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 174, column 9)- _backTree =- CombineQueryExpr ann_ ctype_- _sel1IannotatedTree- _sel2IannotatedTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)- _lhsOuType =- etmt (_tpe >>= unwrapSetOfComposite)- -- self rule- _annotatedTree =- CombineQueryExpr ann_ ctype_ _sel1IannotatedTree _sel2IannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CombineQueryExpr ann_ ctype_ _sel1IfixedUpIdentifiersTree _sel2IfixedUpIdentifiersTree- -- self rule- _originalTree =- CombineQueryExpr ann_ ctype_ _sel1IoriginalTree _sel2IoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _sel1Ocat =- _lhsIcat- -- copy rule (down)- _sel1Ocsql =- _lhsIcsql- -- copy rule (down)- _sel1OexpectedTypes =- _lhsIexpectedTypes- -- copy rule (down)- _sel1Oidenv =- _lhsIidenv- -- copy rule (down)- _sel1Olib =- _lhsIlib- -- copy rule (down)- _sel2Ocat =- _lhsIcat- -- copy rule (down)- _sel2Ocsql =- _lhsIcsql- -- copy rule (down)- _sel2OexpectedTypes =- _lhsIexpectedTypes- -- copy rule (down)- _sel2Oidenv =- _lhsIidenv- -- copy rule (down)- _sel2Olib =- _lhsIlib- ( _sel1IannotatedTree,_sel1Icidenv,_sel1IfixedUpIdentifiersTree,_sel1IlibUpdates,_sel1IoriginalTree,_sel1IuType) =- sel1_ _sel1Ocat _sel1Ocsql _sel1OexpectedTypes _sel1Oidenv _sel1Olib - ( _sel2IannotatedTree,_sel2Icidenv,_sel2IfixedUpIdentifiersTree,_sel2IlibUpdates,_sel2IoriginalTree,_sel2IuType) =- sel2_ _sel2Ocat _sel2Ocsql _sel2OexpectedTypes _sel2Oidenv _sel2Olib - in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))-sem_QueryExpr_Select :: Annotation ->- Distinct ->- T_SelectList ->- T_TableRefList ->- T_MaybeBoolExpr ->- T_ScalarExprList ->- T_MaybeBoolExpr ->- T_ScalarExprDirectionPairList ->- T_MaybeScalarExpr ->- T_MaybeScalarExpr ->- T_QueryExpr -sem_QueryExpr_Select ann_ selDistinct_ selSelectList_ selTref_ selWhere_ selGroupBy_ selHaving_ selOrderBy_ selLimit_ selOffset_ =- (\ _lhsIcat- _lhsIcsql- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOfixedUpIdentifiersTree :: QueryExpr - _lhsOcidenv :: IDEnv- _selSelectListOidenv :: IDEnv- _selWhereOidenv :: IDEnv- _selGroupByOidenv :: IDEnv- _selHavingOidenv :: IDEnv- _selOrderByOidenv :: IDEnv- _lhsOannotatedTree :: QueryExpr - _selSelectListOlib :: LocalBindings- _selWhereOlib :: LocalBindings- _selHavingOlib :: LocalBindings- _selGroupByOlib :: LocalBindings- _slTypes :: LocalBindings- _selOrderByOlib :: LocalBindings- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: Et- _lhsOuType :: (Maybe [(String,Type)])- _selGroupByOexpectedTypes :: ([Maybe Type])- _lhsOoriginalTree :: QueryExpr - _selSelectListOcat :: Catalog- _selTrefOcat :: Catalog- _selTrefOidenv :: IDEnv- _selTrefOlib :: LocalBindings- _selWhereOcat :: Catalog- _selGroupByOcat :: Catalog- _selHavingOcat :: Catalog- _selOrderByOcat :: Catalog- _selLimitOcat :: Catalog- _selLimitOidenv :: IDEnv- _selLimitOlib :: LocalBindings- _selOffsetOcat :: Catalog- _selOffsetOidenv :: IDEnv- _selOffsetOlib :: LocalBindings- _selSelectListIannotatedTree :: SelectList - _selSelectListIcidenv :: IDEnv- _selSelectListIfixedUpIdentifiersTree :: SelectList - _selSelectListIlibUpdates :: ([LocalBindingsUpdate])- _selSelectListIlistType :: ([(String,Maybe Type)])- _selSelectListIoriginalTree :: SelectList - _selTrefIannotatedTree :: TableRefList - _selTrefIfixedUpIdentifiersTree :: TableRefList - _selTrefIlibUpdates :: ([LocalBindingsUpdate])- _selTrefInewLib2 :: LocalBindings- _selTrefIoriginalTree :: TableRefList - _selTrefItrefIDs :: ([(String,[String])])- _selWhereIannotatedTree :: MaybeBoolExpr - _selWhereIfixedUpIdentifiersTree :: MaybeBoolExpr - _selWhereIoriginalTree :: MaybeBoolExpr - _selGroupByIannotatedTree :: ScalarExprList - _selGroupByIfixedUpIdentifiersTree :: ScalarExprList - _selGroupByIoriginalTree :: ScalarExprList - _selGroupByIuType :: ([Maybe Type])- _selHavingIannotatedTree :: MaybeBoolExpr - _selHavingIfixedUpIdentifiersTree :: MaybeBoolExpr - _selHavingIoriginalTree :: MaybeBoolExpr - _selOrderByIannotatedTree :: ScalarExprDirectionPairList - _selOrderByIfixedUpIdentifiersTree :: ScalarExprDirectionPairList - _selOrderByIoriginalTree :: ScalarExprDirectionPairList - _selLimitIannotatedTree :: MaybeScalarExpr - _selLimitIfixedUpIdentifiersTree :: MaybeScalarExpr - _selLimitIoriginalTree :: MaybeScalarExpr - _selLimitIuType :: (Maybe Type)- _selOffsetIannotatedTree :: MaybeScalarExpr - _selOffsetIfixedUpIdentifiersTree :: MaybeScalarExpr - _selOffsetIoriginalTree :: MaybeScalarExpr - _selOffsetIuType :: (Maybe Type)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 187, column 9)- _lhsOfixedUpIdentifiersTree =- Select ann_- selDistinct_- _selSelectListIfixedUpIdentifiersTree- _selTrefIfixedUpIdentifiersTree- _selWhereIfixedUpIdentifiersTree- _selGroupByIfixedUpIdentifiersTree- _selHavingIfixedUpIdentifiersTree- _selOrderByIfixedUpIdentifiersTree- _selLimitIfixedUpIdentifiersTree- _selOffsetIfixedUpIdentifiersTree- -- "./TypeChecking/FixUpIdentifiers.ag"(line 229, column 14)- _lhsOcidenv =- _selSelectListIcidenv- -- "./TypeChecking/FixUpIdentifiers.ag"(line 270, column 14)- _trefEnv =- makeIDEnvP _selTrefItrefIDs- -- "./TypeChecking/FixUpIdentifiers.ag"(line 271, column 14)- _includeCorrelations =- joinIDEnvs _lhsIidenv _trefEnv- -- "./TypeChecking/FixUpIdentifiers.ag"(line 272, column 14)- _selSelectListOidenv =- _trefEnv- -- "./TypeChecking/FixUpIdentifiers.ag"(line 273, column 14)- _selWhereOidenv =- _includeCorrelations- -- "./TypeChecking/FixUpIdentifiers.ag"(line 274, column 14)- _selGroupByOidenv =- _trefEnv- -- "./TypeChecking/FixUpIdentifiers.ag"(line 275, column 14)- _selHavingOidenv =- _includeCorrelations- -- "./TypeChecking/FixUpIdentifiers.ag"(line 276, column 14)- _selOrderByOidenv =- _trefEnv- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)- _lhsOannotatedTree =- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 101, column 10)- _newLib =- _selTrefInewLib2- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 102, column 10)- _selSelectListOlib =- _newLib- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 104, column 10)- _selWhereOlib =- joinBindings _newLib _lhsIcsql- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 105, column 10)- _selHavingOlib =- joinBindings _newLib _lhsIcsql- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 106, column 10)- _selGroupByOlib =- _newLib- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 111, column 10)- _slTypes =- createLocalBindings $ Just [("",_selSelectListIlistType)]- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 112, column 10)- _selOrderByOlib =- joinBindings _slTypes _newLib- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 143, column 9)- _lhsOlibUpdates =- _selSelectListIlibUpdates- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 155, column 9)- _tpe =- Right $ SetOfType $ CompositeType $ fromMaybe [] $ liftList _selSelectListIlistType- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 157, column 9)- _backTree =- Select ann_- selDistinct_- _selSelectListIannotatedTree- _selTrefIannotatedTree- _selWhereIannotatedTree- _selGroupByIannotatedTree- _selHavingIannotatedTree- _selOrderByIannotatedTree- _selLimitIannotatedTree- _selOffsetIannotatedTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)- _lhsOuType =- etmt (_tpe >>= unwrapSetOfComposite)- -- "./TypeChecking/ParameterizedStatements.ag"(line 150, column 14)- _selGroupByOexpectedTypes =- []- -- self rule- _annotatedTree =- Select ann_ selDistinct_ _selSelectListIannotatedTree _selTrefIannotatedTree _selWhereIannotatedTree _selGroupByIannotatedTree _selHavingIannotatedTree _selOrderByIannotatedTree _selLimitIannotatedTree _selOffsetIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Select ann_ selDistinct_ _selSelectListIfixedUpIdentifiersTree _selTrefIfixedUpIdentifiersTree _selWhereIfixedUpIdentifiersTree _selGroupByIfixedUpIdentifiersTree _selHavingIfixedUpIdentifiersTree _selOrderByIfixedUpIdentifiersTree _selLimitIfixedUpIdentifiersTree _selOffsetIfixedUpIdentifiersTree- -- self rule- _originalTree =- Select ann_ selDistinct_ _selSelectListIoriginalTree _selTrefIoriginalTree _selWhereIoriginalTree _selGroupByIoriginalTree _selHavingIoriginalTree _selOrderByIoriginalTree _selLimitIoriginalTree _selOffsetIoriginalTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _selSelectListOcat =- _lhsIcat- -- copy rule (down)- _selTrefOcat =- _lhsIcat- -- copy rule (down)- _selTrefOidenv =- _lhsIidenv- -- copy rule (down)- _selTrefOlib =- _lhsIlib- -- copy rule (down)- _selWhereOcat =- _lhsIcat- -- copy rule (down)- _selGroupByOcat =- _lhsIcat- -- copy rule (down)- _selHavingOcat =- _lhsIcat- -- copy rule (down)- _selOrderByOcat =- _lhsIcat- -- copy rule (down)- _selLimitOcat =- _lhsIcat- -- copy rule (down)- _selLimitOidenv =- _lhsIidenv- -- copy rule (down)- _selLimitOlib =- _lhsIlib- -- copy rule (down)- _selOffsetOcat =- _lhsIcat- -- copy rule (down)- _selOffsetOidenv =- _lhsIidenv- -- copy rule (down)- _selOffsetOlib =- _lhsIlib- ( _selSelectListIannotatedTree,_selSelectListIcidenv,_selSelectListIfixedUpIdentifiersTree,_selSelectListIlibUpdates,_selSelectListIlistType,_selSelectListIoriginalTree) =- selSelectList_ _selSelectListOcat _selSelectListOidenv _selSelectListOlib - ( _selTrefIannotatedTree,_selTrefIfixedUpIdentifiersTree,_selTrefIlibUpdates,_selTrefInewLib2,_selTrefIoriginalTree,_selTrefItrefIDs) =- selTref_ _selTrefOcat _selTrefOidenv _selTrefOlib - ( _selWhereIannotatedTree,_selWhereIfixedUpIdentifiersTree,_selWhereIoriginalTree) =- selWhere_ _selWhereOcat _selWhereOidenv _selWhereOlib - ( _selGroupByIannotatedTree,_selGroupByIfixedUpIdentifiersTree,_selGroupByIoriginalTree,_selGroupByIuType) =- selGroupBy_ _selGroupByOcat _selGroupByOexpectedTypes _selGroupByOidenv _selGroupByOlib - ( _selHavingIannotatedTree,_selHavingIfixedUpIdentifiersTree,_selHavingIoriginalTree) =- selHaving_ _selHavingOcat _selHavingOidenv _selHavingOlib - ( _selOrderByIannotatedTree,_selOrderByIfixedUpIdentifiersTree,_selOrderByIoriginalTree) =- selOrderBy_ _selOrderByOcat _selOrderByOidenv _selOrderByOlib - ( _selLimitIannotatedTree,_selLimitIfixedUpIdentifiersTree,_selLimitIoriginalTree,_selLimitIuType) =- selLimit_ _selLimitOcat _selLimitOidenv _selLimitOlib - ( _selOffsetIannotatedTree,_selOffsetIfixedUpIdentifiersTree,_selOffsetIoriginalTree,_selOffsetIuType) =- selOffset_ _selOffsetOcat _selOffsetOidenv _selOffsetOlib - in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))-sem_QueryExpr_Values :: Annotation ->- T_ScalarExprListList ->- T_QueryExpr -sem_QueryExpr_Values ann_ vll_ =- (\ _lhsIcat- _lhsIcsql- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOcidenv :: IDEnv- _lhsOannotatedTree :: QueryExpr - _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: Et- _lhsOuType :: (Maybe [(String,Type)])- _vllOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: QueryExpr - _lhsOoriginalTree :: QueryExpr - _vllOcat :: Catalog- _vllOidenv :: IDEnv- _vllOlib :: LocalBindings- _vllIannotatedTree :: ScalarExprListList - _vllIfixedUpIdentifiersTree :: ScalarExprListList - _vllIoriginalTree :: ScalarExprListList - _vllIuType :: ([[Maybe Type]])- -- "./TypeChecking/FixUpIdentifiers.ag"(line 231, column 14)- _lhsOcidenv =- unimplementedIDEnv- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)- _lhsOannotatedTree =- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 141, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 150, column 9)- _tpe =- typeCheckValuesExpr- _lhsIcat- _vllIuType- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 153, column 9)- _backTree =- Values ann_ _vllIannotatedTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)- _lhsOuType =- etmt (_tpe >>= unwrapSetOfComposite)- -- "./TypeChecking/ParameterizedStatements.ag"(line 164, column 14)- _vllOexpectedTypes =- _lhsIexpectedTypes- -- self rule- _annotatedTree =- Values ann_ _vllIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Values ann_ _vllIfixedUpIdentifiersTree- -- self rule- _originalTree =- Values ann_ _vllIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _vllOcat =- _lhsIcat- -- copy rule (down)- _vllOidenv =- _lhsIidenv- -- copy rule (down)- _vllOlib =- _lhsIlib- ( _vllIannotatedTree,_vllIfixedUpIdentifiersTree,_vllIoriginalTree,_vllIuType) =- vll_ _vllOcat _vllOexpectedTypes _vllOidenv _vllOlib - in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))-sem_QueryExpr_WithQueryExpr :: Annotation ->- T_WithQueryList ->- T_QueryExpr ->- T_QueryExpr -sem_QueryExpr_WithQueryExpr ann_ withs_ ex_ =- (\ _lhsIcat- _lhsIcsql- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOcidenv :: IDEnv- _lhsOannotatedTree :: QueryExpr - _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: Et- _exOcat :: Catalog- _withsOcatUpdates :: ([CatalogUpdate])- _lhsOuType :: (Maybe [(String,Type)])- _lhsOfixedUpIdentifiersTree :: QueryExpr - _lhsOoriginalTree :: QueryExpr - _withsOcat :: Catalog- _withsOidenv :: IDEnv- _withsOlib :: LocalBindings- _exOcsql :: LocalBindings- _exOexpectedTypes :: ([Maybe Type])- _exOidenv :: IDEnv- _exOlib :: LocalBindings- _withsIannotatedTree :: WithQueryList - _withsIfixedUpIdentifiersTree :: WithQueryList - _withsIoriginalTree :: WithQueryList - _withsIproducedCat :: Catalog- _exIannotatedTree :: QueryExpr - _exIcidenv :: IDEnv- _exIfixedUpIdentifiersTree :: QueryExpr - _exIlibUpdates :: ([LocalBindingsUpdate])- _exIoriginalTree :: QueryExpr - _exIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/FixUpIdentifiers.ag"(line 232, column 21)- _lhsOcidenv =- _exIcidenv- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)- _lhsOannotatedTree =- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 145, column 9)- _lhsOlibUpdates =- _exIlibUpdates- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 178, column 9)- _tpe =- lmt ((SetOfType . CompositeType) <$> _exIuType)- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 179, column 9)- _backTree =- WithQueryExpr ann_ _withsIannotatedTree _exIannotatedTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 180, column 9)- _exOcat =- _withsIproducedCat- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 181, column 9)- _withsOcatUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)- _lhsOuType =- etmt (_tpe >>= unwrapSetOfComposite)- -- self rule- _annotatedTree =- WithQueryExpr ann_ _withsIannotatedTree _exIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- WithQueryExpr ann_ _withsIfixedUpIdentifiersTree _exIfixedUpIdentifiersTree- -- self rule- _originalTree =- WithQueryExpr ann_ _withsIoriginalTree _exIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _withsOcat =- _lhsIcat- -- copy rule (down)- _withsOidenv =- _lhsIidenv- -- copy rule (down)- _withsOlib =- _lhsIlib- -- copy rule (down)- _exOcsql =- _lhsIcsql- -- copy rule (down)- _exOexpectedTypes =- _lhsIexpectedTypes- -- copy rule (down)- _exOidenv =- _lhsIidenv- -- copy rule (down)- _exOlib =- _lhsIlib- ( _withsIannotatedTree,_withsIfixedUpIdentifiersTree,_withsIoriginalTree,_withsIproducedCat) =- withs_ _withsOcat _withsOcatUpdates _withsOidenv _withsOlib - ( _exIannotatedTree,_exIcidenv,_exIfixedUpIdentifiersTree,_exIlibUpdates,_exIoriginalTree,_exIuType) =- ex_ _exOcat _exOcsql _exOexpectedTypes _exOidenv _exOlib - in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))--- Root ---------------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - producedCat : Catalog- producedLib : LocalBindings- alternatives:- alternative Root:- child statements : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data Root = Root (StatementList ) - deriving ( Show)--- cata-sem_Root :: Root ->- T_Root -sem_Root (Root _statements ) =- (sem_Root_Root (sem_StatementList _statements ) )--- semantic domain-type T_Root = Catalog ->- IDEnv ->- LocalBindings ->- ( Root ,Root ,Root ,Catalog,LocalBindings)-data Inh_Root = Inh_Root {cat_Inh_Root :: Catalog,idenv_Inh_Root :: IDEnv,lib_Inh_Root :: LocalBindings}-data Syn_Root = Syn_Root {annotatedTree_Syn_Root :: Root ,fixedUpIdentifiersTree_Syn_Root :: Root ,originalTree_Syn_Root :: Root ,producedCat_Syn_Root :: Catalog,producedLib_Syn_Root :: LocalBindings}-wrap_Root :: T_Root ->- Inh_Root ->- Syn_Root -wrap_Root sem (Inh_Root _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_Root _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOproducedCat _lhsOproducedLib ))-sem_Root_Root :: T_StatementList ->- T_Root -sem_Root_Root statements_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _statementsOcatUpdates :: ([CatalogUpdate])- _statementsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Root - _lhsOfixedUpIdentifiersTree :: Root - _lhsOoriginalTree :: Root - _lhsOproducedCat :: Catalog- _lhsOproducedLib :: LocalBindings- _statementsOcat :: Catalog- _statementsOidenv :: IDEnv- _statementsOlib :: LocalBindings- _statementsIannotatedTree :: StatementList - _statementsIfixedUpIdentifiersTree :: StatementList - _statementsIoriginalTree :: StatementList - _statementsIproducedCat :: Catalog- _statementsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 107, column 12)- _statementsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 108, column 12)- _statementsOlibUpdates =- []- -- self rule- _annotatedTree =- Root _statementsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Root _statementsIfixedUpIdentifiersTree- -- self rule- _originalTree =- Root _statementsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (up)- _lhsOproducedCat =- _statementsIproducedCat- -- copy rule (up)- _lhsOproducedLib =- _statementsIproducedLib- -- copy rule (down)- _statementsOcat =- _lhsIcat- -- copy rule (down)- _statementsOidenv =- _lhsIidenv- -- copy rule (down)- _statementsOlib =- _lhsIlib- ( _statementsIannotatedTree,_statementsIfixedUpIdentifiersTree,_statementsIoriginalTree,_statementsIproducedCat,_statementsIproducedLib) =- statements_ _statementsOcat _statementsOcatUpdates _statementsOidenv _statementsOlib _statementsOlibUpdates - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib)))--- RowConstraint ------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative NotNullConstraint:- child ann : {Annotation}- child name : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative NullConstraint:- child ann : {Annotation}- child name : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative RowCheckConstraint:- child ann : {Annotation}- child name : {String}- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative RowPrimaryKeyConstraint:- child ann : {Annotation}- child name : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative RowReferenceConstraint:- child ann : {Annotation}- child name : {String}- child table : {String}- child att : {Maybe String}- child onUpdate : {Cascade}- child onDelete : {Cascade}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative RowUniqueConstraint:- child ann : {Annotation}- child name : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data RowConstraint = NotNullConstraint (Annotation) (String) - | NullConstraint (Annotation) (String) - | RowCheckConstraint (Annotation) (String) (ScalarExpr ) - | RowPrimaryKeyConstraint (Annotation) (String) - | RowReferenceConstraint (Annotation) (String) (String) ((Maybe String)) (Cascade) (Cascade) - | RowUniqueConstraint (Annotation) (String) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_RowConstraint :: RowConstraint ->- T_RowConstraint -sem_RowConstraint (NotNullConstraint _ann _name ) =- (sem_RowConstraint_NotNullConstraint _ann _name )-sem_RowConstraint (NullConstraint _ann _name ) =- (sem_RowConstraint_NullConstraint _ann _name )-sem_RowConstraint (RowCheckConstraint _ann _name _expr ) =- (sem_RowConstraint_RowCheckConstraint _ann _name (sem_ScalarExpr _expr ) )-sem_RowConstraint (RowPrimaryKeyConstraint _ann _name ) =- (sem_RowConstraint_RowPrimaryKeyConstraint _ann _name )-sem_RowConstraint (RowReferenceConstraint _ann _name _table _att _onUpdate _onDelete ) =- (sem_RowConstraint_RowReferenceConstraint _ann _name _table _att _onUpdate _onDelete )-sem_RowConstraint (RowUniqueConstraint _ann _name ) =- (sem_RowConstraint_RowUniqueConstraint _ann _name )--- semantic domain-type T_RowConstraint = Catalog ->- IDEnv ->- LocalBindings ->- ( RowConstraint ,RowConstraint ,RowConstraint )-data Inh_RowConstraint = Inh_RowConstraint {cat_Inh_RowConstraint :: Catalog,idenv_Inh_RowConstraint :: IDEnv,lib_Inh_RowConstraint :: LocalBindings}-data Syn_RowConstraint = Syn_RowConstraint {annotatedTree_Syn_RowConstraint :: RowConstraint ,fixedUpIdentifiersTree_Syn_RowConstraint :: RowConstraint ,originalTree_Syn_RowConstraint :: RowConstraint }-wrap_RowConstraint :: T_RowConstraint ->- Inh_RowConstraint ->- Syn_RowConstraint -wrap_RowConstraint sem (Inh_RowConstraint _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_RowConstraint _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_RowConstraint_NotNullConstraint :: Annotation ->- String ->- T_RowConstraint -sem_RowConstraint_NotNullConstraint ann_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraint - _lhsOfixedUpIdentifiersTree :: RowConstraint - _lhsOoriginalTree :: RowConstraint - -- self rule- _annotatedTree =- NotNullConstraint ann_ name_- -- self rule- _fixedUpIdentifiersTree =- NotNullConstraint ann_ name_- -- self rule- _originalTree =- NotNullConstraint ann_ name_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_RowConstraint_NullConstraint :: Annotation ->- String ->- T_RowConstraint -sem_RowConstraint_NullConstraint ann_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraint - _lhsOfixedUpIdentifiersTree :: RowConstraint - _lhsOoriginalTree :: RowConstraint - -- self rule- _annotatedTree =- NullConstraint ann_ name_- -- self rule- _fixedUpIdentifiersTree =- NullConstraint ann_ name_- -- self rule- _originalTree =- NullConstraint ann_ name_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_RowConstraint_RowCheckConstraint :: Annotation ->- String ->- T_ScalarExpr ->- T_RowConstraint -sem_RowConstraint_RowCheckConstraint ann_ name_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: RowConstraint - _lhsOfixedUpIdentifiersTree :: RowConstraint - _lhsOoriginalTree :: RowConstraint - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/ParameterizedStatements.ag"(line 103, column 26)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- RowCheckConstraint ann_ name_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- RowCheckConstraint ann_ name_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- RowCheckConstraint ann_ name_ _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_RowConstraint_RowPrimaryKeyConstraint :: Annotation ->- String ->- T_RowConstraint -sem_RowConstraint_RowPrimaryKeyConstraint ann_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraint - _lhsOfixedUpIdentifiersTree :: RowConstraint - _lhsOoriginalTree :: RowConstraint - -- self rule- _annotatedTree =- RowPrimaryKeyConstraint ann_ name_- -- self rule- _fixedUpIdentifiersTree =- RowPrimaryKeyConstraint ann_ name_- -- self rule- _originalTree =- RowPrimaryKeyConstraint ann_ name_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_RowConstraint_RowReferenceConstraint :: Annotation ->- String ->- String ->- (Maybe String) ->- Cascade ->- Cascade ->- T_RowConstraint -sem_RowConstraint_RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraint - _lhsOfixedUpIdentifiersTree :: RowConstraint - _lhsOoriginalTree :: RowConstraint - -- self rule- _annotatedTree =- RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_- -- self rule- _fixedUpIdentifiersTree =- RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_- -- self rule- _originalTree =- RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_RowConstraint_RowUniqueConstraint :: Annotation ->- String ->- T_RowConstraint -sem_RowConstraint_RowUniqueConstraint ann_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraint - _lhsOfixedUpIdentifiersTree :: RowConstraint - _lhsOoriginalTree :: RowConstraint - -- self rule- _annotatedTree =- RowUniqueConstraint ann_ name_- -- self rule- _fixedUpIdentifiersTree =- RowUniqueConstraint ann_ name_- -- self rule- _originalTree =- RowUniqueConstraint ann_ name_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- RowConstraintList --------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : RowConstraint - child tl : RowConstraintList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type RowConstraintList = [RowConstraint ]--- cata-sem_RowConstraintList :: RowConstraintList ->- T_RowConstraintList -sem_RowConstraintList list =- (Prelude.foldr sem_RowConstraintList_Cons sem_RowConstraintList_Nil (Prelude.map sem_RowConstraint list) )--- semantic domain-type T_RowConstraintList = Catalog ->- IDEnv ->- LocalBindings ->- ( RowConstraintList ,RowConstraintList ,RowConstraintList )-data Inh_RowConstraintList = Inh_RowConstraintList {cat_Inh_RowConstraintList :: Catalog,idenv_Inh_RowConstraintList :: IDEnv,lib_Inh_RowConstraintList :: LocalBindings}-data Syn_RowConstraintList = Syn_RowConstraintList {annotatedTree_Syn_RowConstraintList :: RowConstraintList ,fixedUpIdentifiersTree_Syn_RowConstraintList :: RowConstraintList ,originalTree_Syn_RowConstraintList :: RowConstraintList }-wrap_RowConstraintList :: T_RowConstraintList ->- Inh_RowConstraintList ->- Syn_RowConstraintList -wrap_RowConstraintList sem (Inh_RowConstraintList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_RowConstraintList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_RowConstraintList_Cons :: T_RowConstraint ->- T_RowConstraintList ->- T_RowConstraintList -sem_RowConstraintList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraintList - _lhsOfixedUpIdentifiersTree :: RowConstraintList - _lhsOoriginalTree :: RowConstraintList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: RowConstraint - _hdIfixedUpIdentifiersTree :: RowConstraint - _hdIoriginalTree :: RowConstraint - _tlIannotatedTree :: RowConstraintList - _tlIfixedUpIdentifiersTree :: RowConstraintList - _tlIoriginalTree :: RowConstraintList - -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_RowConstraintList_Nil :: T_RowConstraintList -sem_RowConstraintList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: RowConstraintList - _lhsOfixedUpIdentifiersTree :: RowConstraintList - _lhsOoriginalTree :: RowConstraintList - -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- SQIdentifier -------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - tbAnnotatedTree : SQIdentifier - tbUType : Maybe ([(String,Type)],[(String,Type)])- alternatives:- alternative SQIdentifier:- child ann : {Annotation}- child is : {[String]}- visit 0:- local tpe : {E ([(String,Type)],[(String,Type)])}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data SQIdentifier = SQIdentifier (Annotation) (([String])) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_SQIdentifier :: SQIdentifier ->- T_SQIdentifier -sem_SQIdentifier (SQIdentifier _ann _is ) =- (sem_SQIdentifier_SQIdentifier _ann _is )--- semantic domain-type T_SQIdentifier = Catalog ->- IDEnv ->- LocalBindings ->- ( SQIdentifier ,SQIdentifier ,SQIdentifier ,SQIdentifier ,(Maybe ([(String,Type)],[(String,Type)])))-data Inh_SQIdentifier = Inh_SQIdentifier {cat_Inh_SQIdentifier :: Catalog,idenv_Inh_SQIdentifier :: IDEnv,lib_Inh_SQIdentifier :: LocalBindings}-data Syn_SQIdentifier = Syn_SQIdentifier {annotatedTree_Syn_SQIdentifier :: SQIdentifier ,fixedUpIdentifiersTree_Syn_SQIdentifier :: SQIdentifier ,originalTree_Syn_SQIdentifier :: SQIdentifier ,tbAnnotatedTree_Syn_SQIdentifier :: SQIdentifier ,tbUType_Syn_SQIdentifier :: (Maybe ([(String,Type)],[(String,Type)]))}-wrap_SQIdentifier :: T_SQIdentifier ->- Inh_SQIdentifier ->- Syn_SQIdentifier -wrap_SQIdentifier sem (Inh_SQIdentifier _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOtbAnnotatedTree,_lhsOtbUType) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_SQIdentifier _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOtbAnnotatedTree _lhsOtbUType ))-sem_SQIdentifier_SQIdentifier :: Annotation ->- ([String]) ->- T_SQIdentifier -sem_SQIdentifier_SQIdentifier ann_ is_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _tpe :: (E ([(String,Type)],[(String,Type)]))- _lhsOtbUType :: (Maybe ([(String,Type)],[(String,Type)]))- _lhsOtbAnnotatedTree :: SQIdentifier - _lhsOannotatedTree :: SQIdentifier - _lhsOfixedUpIdentifiersTree :: SQIdentifier - _lhsOoriginalTree :: SQIdentifier - -- "./TypeChecking/Misc.ag"(line 67, column 9)- _tpe =- catCompositeAttrsPair _lhsIcat relationComposites (last is_)- -- "./TypeChecking/Misc.ag"(line 68, column 9)- _lhsOtbUType =- either (const Nothing) Just _tpe- -- "./TypeChecking/Misc.ag"(line 69, column 9)- _lhsOtbAnnotatedTree =- updateAnnotation- (\a -> a {errs = errs a ++ tes _tpe }) _backTree- -- "./TypeChecking/Misc.ag"(line 72, column 9)- _backTree =- SQIdentifier ann_ is_- -- self rule- _annotatedTree =- SQIdentifier ann_ is_- -- self rule- _fixedUpIdentifiersTree =- SQIdentifier ann_ is_- -- self rule- _originalTree =- SQIdentifier ann_ is_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOtbAnnotatedTree,_lhsOtbUType)))--- ScalarExpr ---------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- expectedType : Maybe Type- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - uType : Maybe Type- alternatives:- alternative BooleanLit:- child ann : {Annotation}- child b : {Bool}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Case:- child ann : {Annotation}- child cases : CaseScalarExprListScalarExprPairList - child els : MaybeScalarExpr - visit 0:- local prototype : {Maybe FunctionPrototype}- local whenTypes : _- local thenTypes : _- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CaseSimple:- child ann : {Annotation}- child value : ScalarExpr - child cases : CaseScalarExprListScalarExprPairList - child els : MaybeScalarExpr - visit 0:- local prototype : {Maybe FunctionPrototype}- local whenTypes : _- local thenTypes : _- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Cast:- child ann : {Annotation}- child expr : ScalarExpr - child tn : TypeName - visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Exists:- child ann : {Annotation}- child sel : QueryExpr - visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Extract:- child ann : {Annotation}- child field : {ExtractField}- child e : ScalarExpr - visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative FunCall:- child ann : {Annotation}- child funName : {String}- child args : ScalarExprList - visit 0:- local _tup1 : _- local tpe : {Et}- local prototype : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Identifier:- child ann : {Annotation}- child i : {String}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative InPredicate:- child ann : {Annotation}- child expr : ScalarExpr - child i : {Bool}- child list : InList - visit 0:- local prototype : {Maybe FunctionPrototype}- local rt : {Either [TypeError] Type}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Interval:- child ann : {Annotation}- child value : {String}- child field : {IntervalField}- child prec : {Maybe Int}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative LiftOperator:- child ann : {Annotation}- child oper : {String}- child flav : {LiftFlavour}- child args : ScalarExprList - visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative NullLit:- child ann : {Annotation}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative NumberLit:- child ann : {Annotation}- child d : {String}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Placeholder:- child ann : {Annotation}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative PositionalArg:- child ann : {Annotation}- child p : {Integer}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative QIdentifier:- child ann : {Annotation}- child qual : ScalarExpr - child i : {String}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local qid : {Maybe String}- local backTree : _- local qAnnTreeNoUnrec : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ScalarSubQuery:- child ann : {Annotation}- child sel : QueryExpr - visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative StringLit:- child ann : {Annotation}- child value : {String}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative TypedStringLit:- child ann : {Annotation}- child tn : TypeName - child value : {String}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative WindowFn:- child ann : {Annotation}- child fn : ScalarExpr - child partitionBy : ScalarExprList - child orderBy : ScalarExprList - child dir : {Direction}- child frm : {FrameClause}- visit 0:- local prototype : {Maybe FunctionPrototype}- local tpe : {Et}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data ScalarExpr = BooleanLit (Annotation) (Bool) - | Case (Annotation) (CaseScalarExprListScalarExprPairList ) (MaybeScalarExpr ) - | CaseSimple (Annotation) (ScalarExpr ) (CaseScalarExprListScalarExprPairList ) (MaybeScalarExpr ) - | Cast (Annotation) (ScalarExpr ) (TypeName ) - | Exists (Annotation) (QueryExpr ) - | Extract (Annotation) (ExtractField) (ScalarExpr ) - | FunCall (Annotation) (String) (ScalarExprList ) - | Identifier (Annotation) (String) - | InPredicate (Annotation) (ScalarExpr ) (Bool) (InList ) - | Interval (Annotation) (String) (IntervalField) ((Maybe Int)) - | LiftOperator (Annotation) (String) (LiftFlavour) (ScalarExprList ) - | NullLit (Annotation) - | NumberLit (Annotation) (String) - | Placeholder (Annotation) - | PositionalArg (Annotation) (Integer) - | QIdentifier (Annotation) (ScalarExpr ) (String) - | ScalarSubQuery (Annotation) (QueryExpr ) - | StringLit (Annotation) (String) - | TypedStringLit (Annotation) (TypeName ) (String) - | WindowFn (Annotation) (ScalarExpr ) (ScalarExprList ) (ScalarExprList ) (Direction) (FrameClause) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_ScalarExpr :: ScalarExpr ->- T_ScalarExpr -sem_ScalarExpr (BooleanLit _ann _b ) =- (sem_ScalarExpr_BooleanLit _ann _b )-sem_ScalarExpr (Case _ann _cases _els ) =- (sem_ScalarExpr_Case _ann (sem_CaseScalarExprListScalarExprPairList _cases ) (sem_MaybeScalarExpr _els ) )-sem_ScalarExpr (CaseSimple _ann _value _cases _els ) =- (sem_ScalarExpr_CaseSimple _ann (sem_ScalarExpr _value ) (sem_CaseScalarExprListScalarExprPairList _cases ) (sem_MaybeScalarExpr _els ) )-sem_ScalarExpr (Cast _ann _expr _tn ) =- (sem_ScalarExpr_Cast _ann (sem_ScalarExpr _expr ) (sem_TypeName _tn ) )-sem_ScalarExpr (Exists _ann _sel ) =- (sem_ScalarExpr_Exists _ann (sem_QueryExpr _sel ) )-sem_ScalarExpr (Extract _ann _field _e ) =- (sem_ScalarExpr_Extract _ann _field (sem_ScalarExpr _e ) )-sem_ScalarExpr (FunCall _ann _funName _args ) =- (sem_ScalarExpr_FunCall _ann _funName (sem_ScalarExprList _args ) )-sem_ScalarExpr (Identifier _ann _i ) =- (sem_ScalarExpr_Identifier _ann _i )-sem_ScalarExpr (InPredicate _ann _expr _i _list ) =- (sem_ScalarExpr_InPredicate _ann (sem_ScalarExpr _expr ) _i (sem_InList _list ) )-sem_ScalarExpr (Interval _ann _value _field _prec ) =- (sem_ScalarExpr_Interval _ann _value _field _prec )-sem_ScalarExpr (LiftOperator _ann _oper _flav _args ) =- (sem_ScalarExpr_LiftOperator _ann _oper _flav (sem_ScalarExprList _args ) )-sem_ScalarExpr (NullLit _ann ) =- (sem_ScalarExpr_NullLit _ann )-sem_ScalarExpr (NumberLit _ann _d ) =- (sem_ScalarExpr_NumberLit _ann _d )-sem_ScalarExpr (Placeholder _ann ) =- (sem_ScalarExpr_Placeholder _ann )-sem_ScalarExpr (PositionalArg _ann _p ) =- (sem_ScalarExpr_PositionalArg _ann _p )-sem_ScalarExpr (QIdentifier _ann _qual _i ) =- (sem_ScalarExpr_QIdentifier _ann (sem_ScalarExpr _qual ) _i )-sem_ScalarExpr (ScalarSubQuery _ann _sel ) =- (sem_ScalarExpr_ScalarSubQuery _ann (sem_QueryExpr _sel ) )-sem_ScalarExpr (StringLit _ann _value ) =- (sem_ScalarExpr_StringLit _ann _value )-sem_ScalarExpr (TypedStringLit _ann _tn _value ) =- (sem_ScalarExpr_TypedStringLit _ann (sem_TypeName _tn ) _value )-sem_ScalarExpr (WindowFn _ann _fn _partitionBy _orderBy _dir _frm ) =- (sem_ScalarExpr_WindowFn _ann (sem_ScalarExpr _fn ) (sem_ScalarExprList _partitionBy ) (sem_ScalarExprList _orderBy ) _dir _frm )--- semantic domain-type T_ScalarExpr = Catalog ->- (Maybe Type) ->- IDEnv ->- LocalBindings ->- ( ScalarExpr ,ScalarExpr ,ScalarExpr ,(Maybe Type))-data Inh_ScalarExpr = Inh_ScalarExpr {cat_Inh_ScalarExpr :: Catalog,expectedType_Inh_ScalarExpr :: (Maybe Type),idenv_Inh_ScalarExpr :: IDEnv,lib_Inh_ScalarExpr :: LocalBindings}-data Syn_ScalarExpr = Syn_ScalarExpr {annotatedTree_Syn_ScalarExpr :: ScalarExpr ,fixedUpIdentifiersTree_Syn_ScalarExpr :: ScalarExpr ,originalTree_Syn_ScalarExpr :: ScalarExpr ,uType_Syn_ScalarExpr :: (Maybe Type)}-wrap_ScalarExpr :: T_ScalarExpr ->- Inh_ScalarExpr ->- Syn_ScalarExpr -wrap_ScalarExpr sem (Inh_ScalarExpr _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib - in (Syn_ScalarExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))-sem_ScalarExpr_BooleanLit :: Annotation ->- Bool ->- T_ScalarExpr -sem_ScalarExpr_BooleanLit ann_ b_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 155, column 19)- _tpe =- Right typeBool- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 165, column 9)- _backTree =- BooleanLit ann_ b_- -- self rule- _annotatedTree =- BooleanLit ann_ b_- -- self rule- _fixedUpIdentifiersTree =- BooleanLit ann_ b_- -- self rule- _originalTree =- BooleanLit ann_ b_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Case :: Annotation ->- T_CaseScalarExprListScalarExprPairList ->- T_MaybeScalarExpr ->- T_ScalarExpr -sem_ScalarExpr_Case ann_ cases_ els_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _casesOcat :: Catalog- _casesOidenv :: IDEnv- _casesOlib :: LocalBindings- _elsOcat :: Catalog- _elsOidenv :: IDEnv- _elsOlib :: LocalBindings- _casesIannotatedTree :: CaseScalarExprListScalarExprPairList - _casesIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList - _casesIoriginalTree :: CaseScalarExprListScalarExprPairList - _casesIthenTypes :: ([Maybe Type])- _casesIwhenTypes :: ([[Maybe Type]])- _elsIannotatedTree :: MaybeScalarExpr - _elsIfixedUpIdentifiersTree :: MaybeScalarExpr - _elsIoriginalTree :: MaybeScalarExpr - _elsIuType :: (Maybe Type)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 276, column 9)- _whenTypes =- _casesIwhenTypes- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 277, column 9)- _thenTypes =- _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIuType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 281, column 9)- _tpe =- do- wt <- mapM lmt $ concat _whenTypes- errorWhen (any (/= typeBool) wt)- [WrongTypes typeBool wt]- tt <- mapM lmt _thenTypes- resolveResultSetType _lhsIcat tt- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 289, column 9)- _backTree =- Case ann_ _casesIannotatedTree _elsIannotatedTree- -- self rule- _annotatedTree =- Case ann_ _casesIannotatedTree _elsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Case ann_ _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree- -- self rule- _originalTree =- Case ann_ _casesIoriginalTree _elsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _casesOcat =- _lhsIcat- -- copy rule (down)- _casesOidenv =- _lhsIidenv- -- copy rule (down)- _casesOlib =- _lhsIlib- -- copy rule (down)- _elsOcat =- _lhsIcat- -- copy rule (down)- _elsOidenv =- _lhsIidenv- -- copy rule (down)- _elsOlib =- _lhsIlib- ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree,_casesIthenTypes,_casesIwhenTypes) =- cases_ _casesOcat _casesOidenv _casesOlib - ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIuType) =- els_ _elsOcat _elsOidenv _elsOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_CaseSimple :: Annotation ->- T_ScalarExpr ->- T_CaseScalarExprListScalarExprPairList ->- T_MaybeScalarExpr ->- T_ScalarExpr -sem_ScalarExpr_CaseSimple ann_ value_ cases_ els_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _valueOcat :: Catalog- _valueOexpectedType :: (Maybe Type)- _valueOidenv :: IDEnv- _valueOlib :: LocalBindings- _casesOcat :: Catalog- _casesOidenv :: IDEnv- _casesOlib :: LocalBindings- _elsOcat :: Catalog- _elsOidenv :: IDEnv- _elsOlib :: LocalBindings- _valueIannotatedTree :: ScalarExpr - _valueIfixedUpIdentifiersTree :: ScalarExpr - _valueIoriginalTree :: ScalarExpr - _valueIuType :: (Maybe Type)- _casesIannotatedTree :: CaseScalarExprListScalarExprPairList - _casesIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList - _casesIoriginalTree :: CaseScalarExprListScalarExprPairList - _casesIthenTypes :: ([Maybe Type])- _casesIwhenTypes :: ([[Maybe Type]])- _elsIannotatedTree :: MaybeScalarExpr - _elsIfixedUpIdentifiersTree :: MaybeScalarExpr - _elsIoriginalTree :: MaybeScalarExpr - _elsIuType :: (Maybe Type)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 276, column 9)- _whenTypes =- _casesIwhenTypes- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 277, column 9)- _thenTypes =- _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIuType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 294, column 9)- _tpe =- do- wt <- mapM lmt $ concat _whenTypes- vt <- lmt _valueIuType- _ <- resolveResultSetType _lhsIcat (vt : wt)- tt <- mapM lmt _thenTypes- resolveResultSetType _lhsIcat tt- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 301, column 9)- _backTree =- CaseSimple ann_- _valueIannotatedTree- _casesIannotatedTree- _elsIannotatedTree- -- self rule- _annotatedTree =- CaseSimple ann_ _valueIannotatedTree _casesIannotatedTree _elsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CaseSimple ann_ _valueIfixedUpIdentifiersTree _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree- -- self rule- _originalTree =- CaseSimple ann_ _valueIoriginalTree _casesIoriginalTree _elsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _valueOcat =- _lhsIcat- -- copy rule (down)- _valueOexpectedType =- _lhsIexpectedType- -- copy rule (down)- _valueOidenv =- _lhsIidenv- -- copy rule (down)- _valueOlib =- _lhsIlib- -- copy rule (down)- _casesOcat =- _lhsIcat- -- copy rule (down)- _casesOidenv =- _lhsIidenv- -- copy rule (down)- _casesOlib =- _lhsIlib- -- copy rule (down)- _elsOcat =- _lhsIcat- -- copy rule (down)- _elsOidenv =- _lhsIidenv- -- copy rule (down)- _elsOlib =- _lhsIlib- ( _valueIannotatedTree,_valueIfixedUpIdentifiersTree,_valueIoriginalTree,_valueIuType) =- value_ _valueOcat _valueOexpectedType _valueOidenv _valueOlib - ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree,_casesIthenTypes,_casesIwhenTypes) =- cases_ _casesOcat _casesOidenv _casesOlib - ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIuType) =- els_ _elsOcat _elsOidenv _elsOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Cast :: Annotation ->- T_ScalarExpr ->- T_TypeName ->- T_ScalarExpr -sem_ScalarExpr_Cast ann_ expr_ tn_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _exprOcat :: Catalog- _exprOexpectedType :: (Maybe Type)- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _tnOcat :: Catalog- _tnOidenv :: IDEnv- _tnOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- _tnIannotatedTree :: TypeName - _tnIfixedUpIdentifiersTree :: TypeName - _tnInamedType :: (Maybe Type)- _tnIoriginalTree :: TypeName - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 182, column 12)- _tpe =- lmt _tnInamedType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 183, column 12)- _backTree =- Cast ann_ _exprIannotatedTree _tnIannotatedTree- -- self rule- _annotatedTree =- Cast ann_ _exprIannotatedTree _tnIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Cast ann_ _exprIfixedUpIdentifiersTree _tnIfixedUpIdentifiersTree- -- self rule- _originalTree =- Cast ann_ _exprIoriginalTree _tnIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOexpectedType =- _lhsIexpectedType- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- -- copy rule (down)- _tnOcat =- _lhsIcat- -- copy rule (down)- _tnOidenv =- _lhsIidenv- -- copy rule (down)- _tnOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - ( _tnIannotatedTree,_tnIfixedUpIdentifiersTree,_tnInamedType,_tnIoriginalTree) =- tn_ _tnOcat _tnOidenv _tnOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Exists :: Annotation ->- T_QueryExpr ->- T_ScalarExpr -sem_ScalarExpr_Exists ann_ sel_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _selOcsql :: LocalBindings- _selOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _selOcat :: Catalog- _selOidenv :: IDEnv- _selOlib :: LocalBindings- _selIannotatedTree :: QueryExpr - _selIcidenv :: IDEnv- _selIfixedUpIdentifiersTree :: QueryExpr - _selIlibUpdates :: ([LocalBindingsUpdate])- _selIoriginalTree :: QueryExpr - _selIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 355, column 9)- _tpe =- Right typeBool- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 356, column 9)- _backTree =- Exists ann_ _selIannotatedTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 379, column 9)- _selOcsql =- _lhsIlib- -- "./TypeChecking/ParameterizedStatements.ag"(line 171, column 29)- _selOexpectedTypes =- []- -- self rule- _annotatedTree =- Exists ann_ _selIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Exists ann_ _selIfixedUpIdentifiersTree- -- self rule- _originalTree =- Exists ann_ _selIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _selOcat =- _lhsIcat- -- copy rule (down)- _selOidenv =- _lhsIidenv- -- copy rule (down)- _selOlib =- _lhsIlib- ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =- sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Extract :: Annotation ->- ExtractField ->- T_ScalarExpr ->- T_ScalarExpr -sem_ScalarExpr_Extract ann_ field_ e_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _eOcat :: Catalog- _eOexpectedType :: (Maybe Type)- _eOidenv :: IDEnv- _eOlib :: LocalBindings- _eIannotatedTree :: ScalarExpr - _eIfixedUpIdentifiersTree :: ScalarExpr - _eIoriginalTree :: ScalarExpr - _eIuType :: (Maybe Type)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 424, column 9)- _tpe =- do- x <- lmt _eIuType- if x == typeDate- then Right typeFloat8- else Left [NoMatchingOperator "extract" [x]]- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 429, column 9)- _backTree =- Extract ann_ field_ _eIannotatedTree- -- self rule- _annotatedTree =- Extract ann_ field_ _eIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Extract ann_ field_ _eIfixedUpIdentifiersTree- -- self rule- _originalTree =- Extract ann_ field_ _eIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _eOcat =- _lhsIcat- -- copy rule (down)- _eOexpectedType =- _lhsIexpectedType- -- copy rule (down)- _eOidenv =- _lhsIidenv- -- copy rule (down)- _eOlib =- _lhsIlib- ( _eIannotatedTree,_eIfixedUpIdentifiersTree,_eIoriginalTree,_eIuType) =- e_ _eOcat _eOexpectedType _eOidenv _eOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_FunCall :: Annotation ->- String ->- T_ScalarExprList ->- T_ScalarExpr -sem_ScalarExpr_FunCall ann_ funName_ args_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _lhsOuType :: (Maybe Type)- _tpe :: Et- _argsOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _argsOcat :: Catalog- _argsOidenv :: IDEnv- _argsOlib :: LocalBindings- _argsIannotatedTree :: ScalarExprList - _argsIfixedUpIdentifiersTree :: ScalarExprList - _argsIoriginalTree :: ScalarExprList - _argsIuType :: ([Maybe Type])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 196, column 9)- __tup1 =- either (\e -> (Left e, Nothing)) id $ do- args <- mapM lmt _argsIuType- efp <- findCallMatch _lhsIcat- funName_- args- let (_,_,r,_) = efp- return (Right r, Just efp)- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 196, column 9)- (_tpe,_) =- __tup1- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 196, column 9)- (_,_prototype) =- __tup1- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 206, column 9)- _backTree =- FunCall ann_ funName_ _argsIannotatedTree- -- "./TypeChecking/ParameterizedStatements.ag"(line 130, column 9)- _argsOexpectedTypes =- maybe [] id $- case (funName_,_lhsIexpectedType) of- ("!rowctor", Just (AnonymousRecordType ts)) -> return $ map Just ts- _ -> do- (_,t,_,_) <- _prototype- return $ map Just t- -- self rule- _annotatedTree =- FunCall ann_ funName_ _argsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- FunCall ann_ funName_ _argsIfixedUpIdentifiersTree- -- self rule- _originalTree =- FunCall ann_ funName_ _argsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _argsOcat =- _lhsIcat- -- copy rule (down)- _argsOidenv =- _lhsIidenv- -- copy rule (down)- _argsOlib =- _lhsIlib- ( _argsIannotatedTree,_argsIfixedUpIdentifiersTree,_argsIoriginalTree,_argsIuType) =- args_ _argsOcat _argsOexpectedTypes _argsOidenv _argsOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Identifier :: Annotation ->- String ->- T_ScalarExpr -sem_ScalarExpr_Identifier ann_ i_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/FixUpIdentifiers.ag"(line 131, column 9)- _lhsOfixedUpIdentifiersTree =- case qualifyID _lhsIidenv i_ of- Nothing -> Identifier ann_ i_- Just (t,i) -> QIdentifier ann_ (Identifier ann_ t) i- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 314, column 9)- _tpe =- case lookupLocalBinding _lhsIlib "" i_ of- Right Nothing -> Left []- Right (Just t) -> Right t- Left e -> Left e- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 319, column 9)- _backTree =- Identifier ann_ i_- -- self rule- _annotatedTree =- Identifier ann_ i_- -- self rule- _fixedUpIdentifiersTree =- Identifier ann_ i_- -- self rule- _originalTree =- Identifier ann_ i_- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_InPredicate :: Annotation ->- T_ScalarExpr ->- Bool ->- T_InList ->- T_ScalarExpr -sem_ScalarExpr_InPredicate ann_ expr_ i_ list_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _rt :: (Either [TypeError] Type)- _tpe :: Et- _listOexpectedType :: (Maybe Type)- _exprOexpectedType :: (Maybe Type)- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _listOcat :: Catalog- _listOidenv :: IDEnv- _listOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- _listIannotatedTree :: InList - _listIfixedUpIdentifiersTree :: InList - _listIlistType :: (Either [TypeError] Type)- _listIoriginalTree :: InList - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 388, column 9)- _rt =- do- lt <- _listIlistType- expt <- lmt _exprIuType- resolveResultSetType _lhsIcat [expt, lt]- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 392, column 9)- _tpe =- do- _ <- _rt- return typeBool- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 395, column 9)- _listOexpectedType =- etmt _rt- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 396, column 9)- _exprOexpectedType =- etmt _rt- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 397, column 9)- _backTree =- InPredicate ann_- _exprIannotatedTree- i_- _listIannotatedTree- -- self rule- _annotatedTree =- InPredicate ann_ _exprIannotatedTree i_ _listIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- InPredicate ann_ _exprIfixedUpIdentifiersTree i_ _listIfixedUpIdentifiersTree- -- self rule- _originalTree =- InPredicate ann_ _exprIoriginalTree i_ _listIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- -- copy rule (down)- _listOcat =- _lhsIcat- -- copy rule (down)- _listOidenv =- _lhsIidenv- -- copy rule (down)- _listOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - ( _listIannotatedTree,_listIfixedUpIdentifiersTree,_listIlistType,_listIoriginalTree) =- list_ _listOcat _listOexpectedType _listOidenv _listOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Interval :: Annotation ->- String ->- IntervalField ->- (Maybe Int) ->- T_ScalarExpr -sem_ScalarExpr_Interval ann_ value_ field_ prec_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 170, column 16)- _tpe =- Right $ ScalarType "interval"- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 171, column 16)- _backTree =- Interval ann_ value_ field_ prec_- -- self rule- _annotatedTree =- Interval ann_ value_ field_ prec_- -- self rule- _fixedUpIdentifiersTree =- Interval ann_ value_ field_ prec_- -- self rule- _originalTree =- Interval ann_ value_ field_ prec_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_LiftOperator :: Annotation ->- String ->- LiftFlavour ->- T_ScalarExprList ->- T_ScalarExpr -sem_ScalarExpr_LiftOperator ann_ oper_ flav_ args_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _argsOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _argsOcat :: Catalog- _argsOidenv :: IDEnv- _argsOlib :: LocalBindings- _argsIannotatedTree :: ScalarExprList - _argsIfixedUpIdentifiersTree :: ScalarExprList - _argsIoriginalTree :: ScalarExprList - _argsIuType :: ([Maybe Type])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 229, column 9)- _tpe =- do- at <- mapM lmt _argsIuType- errorWhen (length at /= 2)- [AnyAllError $ "must have two args, got " ++ show at]- let [aType,bType] = at- errorWhen (not $ isArrayType bType)- [AnyAllError $ "second arg must be array, got " ++ show at]- elemType <- unwrapArray $ bType- resType <- fmap (\(_,_,r,_) -> r) $ findCallMatch _lhsIcat- oper_- [aType,elemType]- errorWhen (resType /= typeBool)- [AnyAllError $ "operator must have bool return, got " ++ show resType]- return resType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 243, column 9)- _backTree =- LiftOperator ann_ oper_ flav_ _argsIannotatedTree- -- "./TypeChecking/ParameterizedStatements.ag"(line 138, column 9)- _argsOexpectedTypes =- []- -- self rule- _annotatedTree =- LiftOperator ann_ oper_ flav_ _argsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- LiftOperator ann_ oper_ flav_ _argsIfixedUpIdentifiersTree- -- self rule- _originalTree =- LiftOperator ann_ oper_ flav_ _argsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _argsOcat =- _lhsIcat- -- copy rule (down)- _argsOidenv =- _lhsIidenv- -- copy rule (down)- _argsOlib =- _lhsIlib- ( _argsIannotatedTree,_argsIfixedUpIdentifiersTree,_argsIoriginalTree,_argsIuType) =- args_ _argsOcat _argsOexpectedTypes _argsOidenv _argsOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_NullLit :: Annotation ->- T_ScalarExpr -sem_ScalarExpr_NullLit ann_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 157, column 16)- _tpe =- Right UnknownType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 167, column 9)- _backTree =- NullLit ann_- -- self rule- _annotatedTree =- NullLit ann_- -- self rule- _fixedUpIdentifiersTree =- NullLit ann_- -- self rule- _originalTree =- NullLit ann_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_NumberLit :: Annotation ->- String ->- T_ScalarExpr -sem_ScalarExpr_NumberLit ann_ d_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 149, column 18)- _tpe =- if all (`elem` digChars) d_- then Right typeInt- else Right typeNumeric- where- digChars = concatMap show [(0::Int)..9]- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 161, column 9)- _backTree =- NumberLit ann_ d_- -- self rule- _annotatedTree =- NumberLit ann_ d_- -- self rule- _fixedUpIdentifiersTree =- NumberLit ann_ d_- -- self rule- _originalTree =- NumberLit ann_ d_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_Placeholder :: Annotation ->- T_ScalarExpr -sem_ScalarExpr_Placeholder ann_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 349, column 9)- _tpe =- Right UnknownType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 350, column 9)- _backTree =- Placeholder ann_- -- self rule- _annotatedTree =- Placeholder ann_- -- self rule- _fixedUpIdentifiersTree =- Placeholder ann_- -- self rule- _originalTree =- Placeholder ann_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_PositionalArg :: Annotation ->- Integer ->- T_ScalarExpr -sem_ScalarExpr_PositionalArg ann_ p_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 343, column 9)- _tpe =- unwrapLookup <$> lbLookupID _lhsIlib ['$':show p_]- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 344, column 9)- _backTree =- PositionalArg ann_ p_- -- self rule- _annotatedTree =- PositionalArg ann_ p_- -- self rule- _fixedUpIdentifiersTree =- PositionalArg ann_ p_- -- self rule- _originalTree =- PositionalArg ann_ p_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_QIdentifier :: Annotation ->- T_ScalarExpr ->- String ->- T_ScalarExpr -sem_ScalarExpr_QIdentifier ann_ qual_ i_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _qid :: (Maybe String)- _lhsOoriginalTree :: ScalarExpr - _qualOcat :: Catalog- _qualOexpectedType :: (Maybe Type)- _qualOidenv :: IDEnv- _qualOlib :: LocalBindings- _qualIannotatedTree :: ScalarExpr - _qualIfixedUpIdentifiersTree :: ScalarExpr - _qualIoriginalTree :: ScalarExpr - _qualIuType :: (Maybe Type)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 137, column 9)- _lhsOfixedUpIdentifiersTree =- QIdentifier ann_ _qualIoriginalTree i_- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 321, column 9)- _tpe =- case _qid of- Nothing -> Left [InternalError "dot selection not implemented"]- Just q -> case lookupLocalBinding _lhsIlib q i_ of- Right Nothing -> Left []- Right (Just t) -> Right t- Left e -> Left e- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 334, column 9)- _qid =- case _backTree of- QIdentifier _ (Identifier _ q) _ -> Just q- _ -> Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 337, column 9)- _backTree =- QIdentifier ann_ _qAnnTreeNoUnrec i_- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 339, column 9)- _qAnnTreeNoUnrec =- updateAnnotation (\a -> a {errs = []}) _qualIannotatedTree- -- self rule- _annotatedTree =- QIdentifier ann_ _qualIannotatedTree i_- -- self rule- _fixedUpIdentifiersTree =- QIdentifier ann_ _qualIfixedUpIdentifiersTree i_- -- self rule- _originalTree =- QIdentifier ann_ _qualIoriginalTree i_- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _qualOcat =- _lhsIcat- -- copy rule (down)- _qualOexpectedType =- _lhsIexpectedType- -- copy rule (down)- _qualOidenv =- _lhsIidenv- -- copy rule (down)- _qualOlib =- _lhsIlib- ( _qualIannotatedTree,_qualIfixedUpIdentifiersTree,_qualIoriginalTree,_qualIuType) =- qual_ _qualOcat _qualOexpectedType _qualOidenv _qualOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_ScalarSubQuery :: Annotation ->- T_QueryExpr ->- T_ScalarExpr -sem_ScalarExpr_ScalarSubQuery ann_ sel_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _selOcsql :: LocalBindings- _selOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _selOcat :: Catalog- _selOidenv :: IDEnv- _selOlib :: LocalBindings- _selIannotatedTree :: QueryExpr - _selIcidenv :: IDEnv- _selIfixedUpIdentifiersTree :: QueryExpr - _selIlibUpdates :: ([LocalBindingsUpdate])- _selIoriginalTree :: QueryExpr - _selIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 367, column 9)- _tpe =- do- selType <- lmt (map snd <$> _selIuType)- case length selType of- 0 -> Left [InternalError "no columns in scalar subquery?"]- 1 -> Right $ head selType- _ -> Right $ AnonymousRecordType selType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 375, column 9)- _backTree =- ScalarSubQuery ann_ _selIannotatedTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 377, column 9)- _selOcsql =- _lhsIlib- -- "./TypeChecking/ParameterizedStatements.ag"(line 171, column 29)- _selOexpectedTypes =- []- -- self rule- _annotatedTree =- ScalarSubQuery ann_ _selIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ScalarSubQuery ann_ _selIfixedUpIdentifiersTree- -- self rule- _originalTree =- ScalarSubQuery ann_ _selIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _selOcat =- _lhsIcat- -- copy rule (down)- _selOidenv =- _lhsIidenv- -- copy rule (down)- _selOlib =- _lhsIlib- ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =- sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_StringLit :: Annotation ->- String ->- T_ScalarExpr -sem_ScalarExpr_StringLit ann_ value_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 154, column 18)- _tpe =- Right UnknownType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 163, column 9)- _backTree =- StringLit ann_ value_- -- self rule- _annotatedTree =- StringLit ann_ value_- -- self rule- _fixedUpIdentifiersTree =- StringLit ann_ value_- -- self rule- _originalTree =- StringLit ann_ value_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_TypedStringLit :: Annotation ->- T_TypeName ->- String ->- T_ScalarExpr -sem_ScalarExpr_TypedStringLit ann_ tn_ value_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _tnOcat :: Catalog- _tnOidenv :: IDEnv- _tnOlib :: LocalBindings- _tnIannotatedTree :: TypeName - _tnIfixedUpIdentifiersTree :: TypeName - _tnInamedType :: (Maybe Type)- _tnIoriginalTree :: TypeName - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 187, column 10)- _tpe =- lmt _tnInamedType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 188, column 10)- _backTree =- TypedStringLit ann_ _tnIannotatedTree value_- -- self rule- _annotatedTree =- TypedStringLit ann_ _tnIannotatedTree value_- -- self rule- _fixedUpIdentifiersTree =- TypedStringLit ann_ _tnIfixedUpIdentifiersTree value_- -- self rule- _originalTree =- TypedStringLit ann_ _tnIoriginalTree value_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _tnOcat =- _lhsIcat- -- copy rule (down)- _tnOidenv =- _lhsIidenv- -- copy rule (down)- _tnOlib =- _lhsIlib- ( _tnIannotatedTree,_tnIfixedUpIdentifiersTree,_tnInamedType,_tnIoriginalTree) =- tn_ _tnOcat _tnOidenv _tnOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExpr_WindowFn :: Annotation ->- T_ScalarExpr ->- T_ScalarExprList ->- T_ScalarExprList ->- Direction ->- FrameClause ->- T_ScalarExpr -sem_ScalarExpr_WindowFn ann_ fn_ partitionBy_ orderBy_ dir_ frm_ =- (\ _lhsIcat- _lhsIexpectedType- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExpr - _prototype :: (Maybe FunctionPrototype)- _lhsOuType :: (Maybe Type)- _tpe :: Et- _partitionByOexpectedTypes :: ([Maybe Type])- _orderByOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: ScalarExpr - _lhsOoriginalTree :: ScalarExpr - _fnOcat :: Catalog- _fnOexpectedType :: (Maybe Type)- _fnOidenv :: IDEnv- _fnOlib :: LocalBindings- _partitionByOcat :: Catalog- _partitionByOidenv :: IDEnv- _partitionByOlib :: LocalBindings- _orderByOcat :: Catalog- _orderByOidenv :: IDEnv- _orderByOlib :: LocalBindings- _fnIannotatedTree :: ScalarExpr - _fnIfixedUpIdentifiersTree :: ScalarExpr - _fnIoriginalTree :: ScalarExpr - _fnIuType :: (Maybe Type)- _partitionByIannotatedTree :: ScalarExprList - _partitionByIfixedUpIdentifiersTree :: ScalarExprList - _partitionByIoriginalTree :: ScalarExprList - _partitionByIuType :: ([Maybe Type])- _orderByIannotatedTree :: ScalarExprList - _orderByIfixedUpIdentifiersTree :: ScalarExprList - _orderByIoriginalTree :: ScalarExprList - _orderByIuType :: ([Maybe Type])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)- _lhsOannotatedTree =- updateAnnotation- (setTypeAddErrorsA _tpe- . \a -> a {fnProt = _prototype- ,infType = msum [_lhsIexpectedType- ,etmt _tpe- ,Nothing]}) _backTree- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)- _prototype =- Nothing- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)- _lhsOuType =- etmt _tpe- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 210, column 9)- _tpe =- lmt _fnIuType- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 211, column 9)- _backTree =- WindowFn ann_- _fnIannotatedTree- _partitionByIannotatedTree- _orderByIannotatedTree- dir_- frm_- -- "./TypeChecking/ParameterizedStatements.ag"(line 140, column 9)- _partitionByOexpectedTypes =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 141, column 9)- _orderByOexpectedTypes =- []- -- self rule- _annotatedTree =- WindowFn ann_ _fnIannotatedTree _partitionByIannotatedTree _orderByIannotatedTree dir_ frm_- -- self rule- _fixedUpIdentifiersTree =- WindowFn ann_ _fnIfixedUpIdentifiersTree _partitionByIfixedUpIdentifiersTree _orderByIfixedUpIdentifiersTree dir_ frm_- -- self rule- _originalTree =- WindowFn ann_ _fnIoriginalTree _partitionByIoriginalTree _orderByIoriginalTree dir_ frm_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _fnOcat =- _lhsIcat- -- copy rule (down)- _fnOexpectedType =- _lhsIexpectedType- -- copy rule (down)- _fnOidenv =- _lhsIidenv- -- copy rule (down)- _fnOlib =- _lhsIlib- -- copy rule (down)- _partitionByOcat =- _lhsIcat- -- copy rule (down)- _partitionByOidenv =- _lhsIidenv- -- copy rule (down)- _partitionByOlib =- _lhsIlib- -- copy rule (down)- _orderByOcat =- _lhsIcat- -- copy rule (down)- _orderByOidenv =- _lhsIidenv- -- copy rule (down)- _orderByOlib =- _lhsIlib- ( _fnIannotatedTree,_fnIfixedUpIdentifiersTree,_fnIoriginalTree,_fnIuType) =- fn_ _fnOcat _fnOexpectedType _fnOidenv _fnOlib - ( _partitionByIannotatedTree,_partitionByIfixedUpIdentifiersTree,_partitionByIoriginalTree,_partitionByIuType) =- partitionBy_ _partitionByOcat _partitionByOexpectedTypes _partitionByOidenv _partitionByOlib - ( _orderByIannotatedTree,_orderByIfixedUpIdentifiersTree,_orderByIoriginalTree,_orderByIuType) =- orderBy_ _orderByOcat _orderByOexpectedTypes _orderByOidenv _orderByOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))--- ScalarExprDirectionPair --------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Tuple:- child x1 : ScalarExpr - child x2 : {Direction}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprDirectionPair = ( ScalarExpr ,(Direction))--- cata-sem_ScalarExprDirectionPair :: ScalarExprDirectionPair ->- T_ScalarExprDirectionPair -sem_ScalarExprDirectionPair ( x1,x2) =- (sem_ScalarExprDirectionPair_Tuple (sem_ScalarExpr x1 ) x2 )--- semantic domain-type T_ScalarExprDirectionPair = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprDirectionPair ,ScalarExprDirectionPair ,ScalarExprDirectionPair )-data Inh_ScalarExprDirectionPair = Inh_ScalarExprDirectionPair {cat_Inh_ScalarExprDirectionPair :: Catalog,idenv_Inh_ScalarExprDirectionPair :: IDEnv,lib_Inh_ScalarExprDirectionPair :: LocalBindings}-data Syn_ScalarExprDirectionPair = Syn_ScalarExprDirectionPair {annotatedTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair ,fixedUpIdentifiersTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair ,originalTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair }-wrap_ScalarExprDirectionPair :: T_ScalarExprDirectionPair ->- Inh_ScalarExprDirectionPair ->- Syn_ScalarExprDirectionPair -wrap_ScalarExprDirectionPair sem (Inh_ScalarExprDirectionPair _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprDirectionPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprDirectionPair_Tuple :: T_ScalarExpr ->- Direction ->- T_ScalarExprDirectionPair -sem_ScalarExprDirectionPair_Tuple x1_ x2_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _x1OexpectedType :: (Maybe Type)- _lhsOannotatedTree :: ScalarExprDirectionPair - _lhsOfixedUpIdentifiersTree :: ScalarExprDirectionPair - _lhsOoriginalTree :: ScalarExprDirectionPair - _x1Ocat :: Catalog- _x1Oidenv :: IDEnv- _x1Olib :: LocalBindings- _x1IannotatedTree :: ScalarExpr - _x1IfixedUpIdentifiersTree :: ScalarExpr - _x1IoriginalTree :: ScalarExpr - _x1IuType :: (Maybe Type)- -- "./TypeChecking/ParameterizedStatements.ag"(line 83, column 13)- _x1OexpectedType =- Nothing- -- self rule- _annotatedTree =- (_x1IannotatedTree,x2_)- -- self rule- _fixedUpIdentifiersTree =- (_x1IfixedUpIdentifiersTree,x2_)- -- self rule- _originalTree =- (_x1IoriginalTree,x2_)- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _x1Ocat =- _lhsIcat- -- copy rule (down)- _x1Oidenv =- _lhsIidenv- -- copy rule (down)- _x1Olib =- _lhsIlib- ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =- x1_ _x1Ocat _x1OexpectedType _x1Oidenv _x1Olib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ScalarExprDirectionPairList ----------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : ScalarExprDirectionPair - child tl : ScalarExprDirectionPairList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprDirectionPairList = [ScalarExprDirectionPair ]--- cata-sem_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ->- T_ScalarExprDirectionPairList -sem_ScalarExprDirectionPairList list =- (Prelude.foldr sem_ScalarExprDirectionPairList_Cons sem_ScalarExprDirectionPairList_Nil (Prelude.map sem_ScalarExprDirectionPair list) )--- semantic domain-type T_ScalarExprDirectionPairList = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprDirectionPairList ,ScalarExprDirectionPairList ,ScalarExprDirectionPairList )-data Inh_ScalarExprDirectionPairList = Inh_ScalarExprDirectionPairList {cat_Inh_ScalarExprDirectionPairList :: Catalog,idenv_Inh_ScalarExprDirectionPairList :: IDEnv,lib_Inh_ScalarExprDirectionPairList :: LocalBindings}-data Syn_ScalarExprDirectionPairList = Syn_ScalarExprDirectionPairList {annotatedTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ,fixedUpIdentifiersTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ,originalTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList }-wrap_ScalarExprDirectionPairList :: T_ScalarExprDirectionPairList ->- Inh_ScalarExprDirectionPairList ->- Syn_ScalarExprDirectionPairList -wrap_ScalarExprDirectionPairList sem (Inh_ScalarExprDirectionPairList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprDirectionPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprDirectionPairList_Cons :: T_ScalarExprDirectionPair ->- T_ScalarExprDirectionPairList ->- T_ScalarExprDirectionPairList -sem_ScalarExprDirectionPairList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExprDirectionPairList - _lhsOfixedUpIdentifiersTree :: ScalarExprDirectionPairList - _lhsOoriginalTree :: ScalarExprDirectionPairList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: ScalarExprDirectionPair - _hdIfixedUpIdentifiersTree :: ScalarExprDirectionPair - _hdIoriginalTree :: ScalarExprDirectionPair - _tlIannotatedTree :: ScalarExprDirectionPairList - _tlIfixedUpIdentifiersTree :: ScalarExprDirectionPairList - _tlIoriginalTree :: ScalarExprDirectionPairList - -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_ScalarExprDirectionPairList_Nil :: T_ScalarExprDirectionPairList -sem_ScalarExprDirectionPairList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExprDirectionPairList - _lhsOfixedUpIdentifiersTree :: ScalarExprDirectionPairList - _lhsOoriginalTree :: ScalarExprDirectionPairList - -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ScalarExprList -----------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- expectedTypes : [Maybe Type]- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - uType : [Maybe Type]- alternatives:- alternative Cons:- child hd : ScalarExpr - child tl : ScalarExprList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprList = [ScalarExpr ]--- cata-sem_ScalarExprList :: ScalarExprList ->- T_ScalarExprList -sem_ScalarExprList list =- (Prelude.foldr sem_ScalarExprList_Cons sem_ScalarExprList_Nil (Prelude.map sem_ScalarExpr list) )--- semantic domain-type T_ScalarExprList = Catalog ->- ([Maybe Type]) ->- IDEnv ->- LocalBindings ->- ( ScalarExprList ,ScalarExprList ,ScalarExprList ,([Maybe Type]))-data Inh_ScalarExprList = Inh_ScalarExprList {cat_Inh_ScalarExprList :: Catalog,expectedTypes_Inh_ScalarExprList :: ([Maybe Type]),idenv_Inh_ScalarExprList :: IDEnv,lib_Inh_ScalarExprList :: LocalBindings}-data Syn_ScalarExprList = Syn_ScalarExprList {annotatedTree_Syn_ScalarExprList :: ScalarExprList ,fixedUpIdentifiersTree_Syn_ScalarExprList :: ScalarExprList ,originalTree_Syn_ScalarExprList :: ScalarExprList ,uType_Syn_ScalarExprList :: ([Maybe Type])}-wrap_ScalarExprList :: T_ScalarExprList ->- Inh_ScalarExprList ->- Syn_ScalarExprList -wrap_ScalarExprList sem (Inh_ScalarExprList _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib - in (Syn_ScalarExprList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))-sem_ScalarExprList_Cons :: T_ScalarExpr ->- T_ScalarExprList ->- T_ScalarExprList -sem_ScalarExprList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOuType :: ([Maybe Type])- _hdOexpectedType :: (Maybe Type)- _tlOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: ScalarExprList - _lhsOfixedUpIdentifiersTree :: ScalarExprList - _lhsOoriginalTree :: ScalarExprList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: ScalarExpr - _hdIfixedUpIdentifiersTree :: ScalarExpr - _hdIoriginalTree :: ScalarExpr - _hdIuType :: (Maybe Type)- _tlIannotatedTree :: ScalarExprList - _tlIfixedUpIdentifiersTree :: ScalarExprList - _tlIoriginalTree :: ScalarExprList - _tlIuType :: ([Maybe Type])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 107, column 12)- _lhsOuType =- _hdIuType : _tlIuType- -- "./TypeChecking/ParameterizedStatements.ag"(line 86, column 12)- _hdOexpectedType =- case _lhsIexpectedTypes of- (t:_) -> t- _ -> Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 89, column 12)- _tlOexpectedTypes =- case _lhsIexpectedTypes of- (_:ts) -> ts- _ -> []- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree,_hdIuType) =- hd_ _hdOcat _hdOexpectedType _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIuType) =- tl_ _tlOcat _tlOexpectedTypes _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExprList_Nil :: T_ScalarExprList -sem_ScalarExprList_Nil =- (\ _lhsIcat- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOuType :: ([Maybe Type])- _lhsOannotatedTree :: ScalarExprList - _lhsOfixedUpIdentifiersTree :: ScalarExprList - _lhsOoriginalTree :: ScalarExprList - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 108, column 11)- _lhsOuType =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))--- ScalarExprListList -------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- expectedTypes : [Maybe Type]- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - uType : [[Maybe Type]]- alternatives:- alternative Cons:- child hd : ScalarExprList - child tl : ScalarExprListList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprListList = [ScalarExprList ]--- cata-sem_ScalarExprListList :: ScalarExprListList ->- T_ScalarExprListList -sem_ScalarExprListList list =- (Prelude.foldr sem_ScalarExprListList_Cons sem_ScalarExprListList_Nil (Prelude.map sem_ScalarExprList list) )--- semantic domain-type T_ScalarExprListList = Catalog ->- ([Maybe Type]) ->- IDEnv ->- LocalBindings ->- ( ScalarExprListList ,ScalarExprListList ,ScalarExprListList ,([[Maybe Type]]))-data Inh_ScalarExprListList = Inh_ScalarExprListList {cat_Inh_ScalarExprListList :: Catalog,expectedTypes_Inh_ScalarExprListList :: ([Maybe Type]),idenv_Inh_ScalarExprListList :: IDEnv,lib_Inh_ScalarExprListList :: LocalBindings}-data Syn_ScalarExprListList = Syn_ScalarExprListList {annotatedTree_Syn_ScalarExprListList :: ScalarExprListList ,fixedUpIdentifiersTree_Syn_ScalarExprListList :: ScalarExprListList ,originalTree_Syn_ScalarExprListList :: ScalarExprListList ,uType_Syn_ScalarExprListList :: ([[Maybe Type]])}-wrap_ScalarExprListList :: T_ScalarExprListList ->- Inh_ScalarExprListList ->- Syn_ScalarExprListList -wrap_ScalarExprListList sem (Inh_ScalarExprListList _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib - in (Syn_ScalarExprListList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))-sem_ScalarExprListList_Cons :: T_ScalarExprList ->- T_ScalarExprListList ->- T_ScalarExprListList -sem_ScalarExprListList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOuType :: ([[Maybe Type]])- _hdOexpectedTypes :: ([Maybe Type])- _tlOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: ScalarExprListList - _lhsOfixedUpIdentifiersTree :: ScalarExprListList - _lhsOoriginalTree :: ScalarExprListList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: ScalarExprList - _hdIfixedUpIdentifiersTree :: ScalarExprList - _hdIoriginalTree :: ScalarExprList - _hdIuType :: ([Maybe Type])- _tlIannotatedTree :: ScalarExprListList - _tlIfixedUpIdentifiersTree :: ScalarExprListList - _tlIoriginalTree :: ScalarExprListList - _tlIuType :: ([[Maybe Type]])- -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 117, column 12)- _lhsOuType =- _hdIuType : _tlIuType- -- "./TypeChecking/ParameterizedStatements.ag"(line 167, column 12)- _hdOexpectedTypes =- _lhsIexpectedTypes- -- "./TypeChecking/ParameterizedStatements.ag"(line 168, column 12)- _tlOexpectedTypes =- _lhsIexpectedTypes- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree,_hdIuType) =- hd_ _hdOcat _hdOexpectedTypes _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIuType) =- tl_ _tlOcat _tlOexpectedTypes _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))-sem_ScalarExprListList_Nil :: T_ScalarExprListList -sem_ScalarExprListList_Nil =- (\ _lhsIcat- _lhsIexpectedTypes- _lhsIidenv- _lhsIlib ->- (let _lhsOuType :: ([[Maybe Type]])- _lhsOannotatedTree :: ScalarExprListList - _lhsOfixedUpIdentifiersTree :: ScalarExprListList - _lhsOoriginalTree :: ScalarExprListList - -- "./TypeChecking/ScalarExprs/ScalarExprs.ag"(line 118, column 11)- _lhsOuType =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))--- ScalarExprListStatementListPair ------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Tuple:- child x1 : ScalarExprList - child x2 : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprListStatementListPair = ( ScalarExprList ,StatementList )--- cata-sem_ScalarExprListStatementListPair :: ScalarExprListStatementListPair ->- T_ScalarExprListStatementListPair -sem_ScalarExprListStatementListPair ( x1,x2) =- (sem_ScalarExprListStatementListPair_Tuple (sem_ScalarExprList x1 ) (sem_StatementList x2 ) )--- semantic domain-type T_ScalarExprListStatementListPair = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprListStatementListPair ,ScalarExprListStatementListPair ,ScalarExprListStatementListPair )-data Inh_ScalarExprListStatementListPair = Inh_ScalarExprListStatementListPair {cat_Inh_ScalarExprListStatementListPair :: Catalog,idenv_Inh_ScalarExprListStatementListPair :: IDEnv,lib_Inh_ScalarExprListStatementListPair :: LocalBindings}-data Syn_ScalarExprListStatementListPair = Syn_ScalarExprListStatementListPair {annotatedTree_Syn_ScalarExprListStatementListPair :: ScalarExprListStatementListPair ,fixedUpIdentifiersTree_Syn_ScalarExprListStatementListPair :: ScalarExprListStatementListPair ,originalTree_Syn_ScalarExprListStatementListPair :: ScalarExprListStatementListPair }-wrap_ScalarExprListStatementListPair :: T_ScalarExprListStatementListPair ->- Inh_ScalarExprListStatementListPair ->- Syn_ScalarExprListStatementListPair -wrap_ScalarExprListStatementListPair sem (Inh_ScalarExprListStatementListPair _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprListStatementListPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprListStatementListPair_Tuple :: T_ScalarExprList ->- T_StatementList ->- T_ScalarExprListStatementListPair -sem_ScalarExprListStatementListPair_Tuple x1_ x2_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _x2OcatUpdates :: ([CatalogUpdate])- _x2OlibUpdates :: ([LocalBindingsUpdate])- _x1OexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: ScalarExprListStatementListPair - _lhsOfixedUpIdentifiersTree :: ScalarExprListStatementListPair - _lhsOoriginalTree :: ScalarExprListStatementListPair - _x1Ocat :: Catalog- _x1Oidenv :: IDEnv- _x1Olib :: LocalBindings- _x2Ocat :: Catalog- _x2Oidenv :: IDEnv- _x2Olib :: LocalBindings- _x1IannotatedTree :: ScalarExprList - _x1IfixedUpIdentifiersTree :: ScalarExprList - _x1IoriginalTree :: ScalarExprList - _x1IuType :: ([Maybe Type])- _x2IannotatedTree :: StatementList - _x2IfixedUpIdentifiersTree :: StatementList - _x2IoriginalTree :: StatementList - _x2IproducedCat :: Catalog- _x2IproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 121, column 9)- _x2OcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 122, column 9)- _x2OlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 144, column 13)- _x1OexpectedTypes =- []- -- self rule- _annotatedTree =- (_x1IannotatedTree,_x2IannotatedTree)- -- self rule- _fixedUpIdentifiersTree =- (_x1IfixedUpIdentifiersTree,_x2IfixedUpIdentifiersTree)- -- self rule- _originalTree =- (_x1IoriginalTree,_x2IoriginalTree)- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _x1Ocat =- _lhsIcat- -- copy rule (down)- _x1Oidenv =- _lhsIidenv- -- copy rule (down)- _x1Olib =- _lhsIlib- -- copy rule (down)- _x2Ocat =- _lhsIcat- -- copy rule (down)- _x2Oidenv =- _lhsIidenv- -- copy rule (down)- _x2Olib =- _lhsIlib- ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =- x1_ _x1Ocat _x1OexpectedTypes _x1Oidenv _x1Olib - ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2IoriginalTree,_x2IproducedCat,_x2IproducedLib) =- x2_ _x2Ocat _x2OcatUpdates _x2Oidenv _x2Olib _x2OlibUpdates - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ScalarExprListStatementListPairList --------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : ScalarExprListStatementListPair - child tl : ScalarExprListStatementListPairList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprListStatementListPairList = [ScalarExprListStatementListPair ]--- cata-sem_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList ->- T_ScalarExprListStatementListPairList -sem_ScalarExprListStatementListPairList list =- (Prelude.foldr sem_ScalarExprListStatementListPairList_Cons sem_ScalarExprListStatementListPairList_Nil (Prelude.map sem_ScalarExprListStatementListPair list) )--- semantic domain-type T_ScalarExprListStatementListPairList = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprListStatementListPairList ,ScalarExprListStatementListPairList ,ScalarExprListStatementListPairList )-data Inh_ScalarExprListStatementListPairList = Inh_ScalarExprListStatementListPairList {cat_Inh_ScalarExprListStatementListPairList :: Catalog,idenv_Inh_ScalarExprListStatementListPairList :: IDEnv,lib_Inh_ScalarExprListStatementListPairList :: LocalBindings}-data Syn_ScalarExprListStatementListPairList = Syn_ScalarExprListStatementListPairList {annotatedTree_Syn_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList ,fixedUpIdentifiersTree_Syn_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList ,originalTree_Syn_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList }-wrap_ScalarExprListStatementListPairList :: T_ScalarExprListStatementListPairList ->- Inh_ScalarExprListStatementListPairList ->- Syn_ScalarExprListStatementListPairList -wrap_ScalarExprListStatementListPairList sem (Inh_ScalarExprListStatementListPairList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprListStatementListPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprListStatementListPairList_Cons :: T_ScalarExprListStatementListPair ->- T_ScalarExprListStatementListPairList ->- T_ScalarExprListStatementListPairList -sem_ScalarExprListStatementListPairList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExprListStatementListPairList - _lhsOfixedUpIdentifiersTree :: ScalarExprListStatementListPairList - _lhsOoriginalTree :: ScalarExprListStatementListPairList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: ScalarExprListStatementListPair - _hdIfixedUpIdentifiersTree :: ScalarExprListStatementListPair - _hdIoriginalTree :: ScalarExprListStatementListPair - _tlIannotatedTree :: ScalarExprListStatementListPairList - _tlIfixedUpIdentifiersTree :: ScalarExprListStatementListPairList - _tlIoriginalTree :: ScalarExprListStatementListPairList - -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_ScalarExprListStatementListPairList_Nil :: T_ScalarExprListStatementListPairList -sem_ScalarExprListStatementListPairList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExprListStatementListPairList - _lhsOfixedUpIdentifiersTree :: ScalarExprListStatementListPairList - _lhsOoriginalTree :: ScalarExprListStatementListPairList - -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ScalarExprRoot -----------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative ScalarExprRoot:- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data ScalarExprRoot = ScalarExprRoot (ScalarExpr ) - deriving ( Show)--- cata-sem_ScalarExprRoot :: ScalarExprRoot ->- T_ScalarExprRoot -sem_ScalarExprRoot (ScalarExprRoot _expr ) =- (sem_ScalarExprRoot_ScalarExprRoot (sem_ScalarExpr _expr ) )--- semantic domain-type T_ScalarExprRoot = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprRoot ,ScalarExprRoot ,ScalarExprRoot )-data Inh_ScalarExprRoot = Inh_ScalarExprRoot {cat_Inh_ScalarExprRoot :: Catalog,idenv_Inh_ScalarExprRoot :: IDEnv,lib_Inh_ScalarExprRoot :: LocalBindings}-data Syn_ScalarExprRoot = Syn_ScalarExprRoot {annotatedTree_Syn_ScalarExprRoot :: ScalarExprRoot ,fixedUpIdentifiersTree_Syn_ScalarExprRoot :: ScalarExprRoot ,originalTree_Syn_ScalarExprRoot :: ScalarExprRoot }-wrap_ScalarExprRoot :: T_ScalarExprRoot ->- Inh_ScalarExprRoot ->- Syn_ScalarExprRoot -wrap_ScalarExprRoot sem (Inh_ScalarExprRoot _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprRoot _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprRoot_ScalarExprRoot :: T_ScalarExpr ->- T_ScalarExprRoot -sem_ScalarExprRoot_ScalarExprRoot expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: ScalarExprRoot - _lhsOfixedUpIdentifiersTree :: ScalarExprRoot - _lhsOoriginalTree :: ScalarExprRoot - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/ParameterizedStatements.ag"(line 123, column 22)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- ScalarExprRoot _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ScalarExprRoot _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- ScalarExprRoot _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ScalarExprStatementListPair ----------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Tuple:- child x1 : ScalarExpr - child x2 : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprStatementListPair = ( ScalarExpr ,StatementList )--- cata-sem_ScalarExprStatementListPair :: ScalarExprStatementListPair ->- T_ScalarExprStatementListPair -sem_ScalarExprStatementListPair ( x1,x2) =- (sem_ScalarExprStatementListPair_Tuple (sem_ScalarExpr x1 ) (sem_StatementList x2 ) )--- semantic domain-type T_ScalarExprStatementListPair = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprStatementListPair ,ScalarExprStatementListPair ,ScalarExprStatementListPair )-data Inh_ScalarExprStatementListPair = Inh_ScalarExprStatementListPair {cat_Inh_ScalarExprStatementListPair :: Catalog,idenv_Inh_ScalarExprStatementListPair :: IDEnv,lib_Inh_ScalarExprStatementListPair :: LocalBindings}-data Syn_ScalarExprStatementListPair = Syn_ScalarExprStatementListPair {annotatedTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair ,fixedUpIdentifiersTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair ,originalTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair }-wrap_ScalarExprStatementListPair :: T_ScalarExprStatementListPair ->- Inh_ScalarExprStatementListPair ->- Syn_ScalarExprStatementListPair -wrap_ScalarExprStatementListPair sem (Inh_ScalarExprStatementListPair _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprStatementListPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprStatementListPair_Tuple :: T_ScalarExpr ->- T_StatementList ->- T_ScalarExprStatementListPair -sem_ScalarExprStatementListPair_Tuple x1_ x2_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _x2OcatUpdates :: ([CatalogUpdate])- _x2OlibUpdates :: ([LocalBindingsUpdate])- _x1OexpectedType :: (Maybe Type)- _lhsOannotatedTree :: ScalarExprStatementListPair - _lhsOfixedUpIdentifiersTree :: ScalarExprStatementListPair - _lhsOoriginalTree :: ScalarExprStatementListPair - _x1Ocat :: Catalog- _x1Oidenv :: IDEnv- _x1Olib :: LocalBindings- _x2Ocat :: Catalog- _x2Oidenv :: IDEnv- _x2Olib :: LocalBindings- _x1IannotatedTree :: ScalarExpr - _x1IfixedUpIdentifiersTree :: ScalarExpr - _x1IoriginalTree :: ScalarExpr - _x1IuType :: (Maybe Type)- _x2IannotatedTree :: StatementList - _x2IfixedUpIdentifiersTree :: StatementList - _x2IoriginalTree :: StatementList - _x2IproducedCat :: Catalog- _x2IproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 125, column 9)- _x2OcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 126, column 9)- _x2OlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 126, column 13)- _x1OexpectedType =- Nothing- -- self rule- _annotatedTree =- (_x1IannotatedTree,_x2IannotatedTree)- -- self rule- _fixedUpIdentifiersTree =- (_x1IfixedUpIdentifiersTree,_x2IfixedUpIdentifiersTree)- -- self rule- _originalTree =- (_x1IoriginalTree,_x2IoriginalTree)- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _x1Ocat =- _lhsIcat- -- copy rule (down)- _x1Oidenv =- _lhsIidenv- -- copy rule (down)- _x1Olib =- _lhsIlib- -- copy rule (down)- _x2Ocat =- _lhsIcat- -- copy rule (down)- _x2Oidenv =- _lhsIidenv- -- copy rule (down)- _x2Olib =- _lhsIlib- ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =- x1_ _x1Ocat _x1OexpectedType _x1Oidenv _x1Olib - ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2IoriginalTree,_x2IproducedCat,_x2IproducedLib) =- x2_ _x2Ocat _x2OcatUpdates _x2Oidenv _x2Olib _x2OlibUpdates - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- ScalarExprStatementListPairList ------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : ScalarExprStatementListPair - child tl : ScalarExprStatementListPairList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type ScalarExprStatementListPairList = [ScalarExprStatementListPair ]--- cata-sem_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ->- T_ScalarExprStatementListPairList -sem_ScalarExprStatementListPairList list =- (Prelude.foldr sem_ScalarExprStatementListPairList_Cons sem_ScalarExprStatementListPairList_Nil (Prelude.map sem_ScalarExprStatementListPair list) )--- semantic domain-type T_ScalarExprStatementListPairList = Catalog ->- IDEnv ->- LocalBindings ->- ( ScalarExprStatementListPairList ,ScalarExprStatementListPairList ,ScalarExprStatementListPairList )-data Inh_ScalarExprStatementListPairList = Inh_ScalarExprStatementListPairList {cat_Inh_ScalarExprStatementListPairList :: Catalog,idenv_Inh_ScalarExprStatementListPairList :: IDEnv,lib_Inh_ScalarExprStatementListPairList :: LocalBindings}-data Syn_ScalarExprStatementListPairList = Syn_ScalarExprStatementListPairList {annotatedTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ,fixedUpIdentifiersTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ,originalTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList }-wrap_ScalarExprStatementListPairList :: T_ScalarExprStatementListPairList ->- Inh_ScalarExprStatementListPairList ->- Syn_ScalarExprStatementListPairList -wrap_ScalarExprStatementListPairList sem (Inh_ScalarExprStatementListPairList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_ScalarExprStatementListPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_ScalarExprStatementListPairList_Cons :: T_ScalarExprStatementListPair ->- T_ScalarExprStatementListPairList ->- T_ScalarExprStatementListPairList -sem_ScalarExprStatementListPairList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExprStatementListPairList - _lhsOfixedUpIdentifiersTree :: ScalarExprStatementListPairList - _lhsOoriginalTree :: ScalarExprStatementListPairList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: ScalarExprStatementListPair - _hdIfixedUpIdentifiersTree :: ScalarExprStatementListPair - _hdIoriginalTree :: ScalarExprStatementListPair - _tlIannotatedTree :: ScalarExprStatementListPairList - _tlIfixedUpIdentifiersTree :: ScalarExprStatementListPairList - _tlIoriginalTree :: ScalarExprStatementListPairList - -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_ScalarExprStatementListPairList_Nil :: T_ScalarExprStatementListPairList -sem_ScalarExprStatementListPairList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: ScalarExprStatementListPairList - _lhsOfixedUpIdentifiersTree :: ScalarExprStatementListPairList - _lhsOoriginalTree :: ScalarExprStatementListPairList - -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- SelectItem ---------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - itemType : (String,Maybe Type)- originalTree : SELF - seIdTree : [SelectItem]- alternatives:- alternative SelExp:- child ann : {Annotation}- child ex : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative SelectItem:- child ann : {Annotation}- child ex : ScalarExpr - child name : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data SelectItem = SelExp (Annotation) (ScalarExpr ) - | SelectItem (Annotation) (ScalarExpr ) (String) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_SelectItem :: SelectItem ->- T_SelectItem -sem_SelectItem (SelExp _ann _ex ) =- (sem_SelectItem_SelExp _ann (sem_ScalarExpr _ex ) )-sem_SelectItem (SelectItem _ann _ex _name ) =- (sem_SelectItem_SelectItem _ann (sem_ScalarExpr _ex ) _name )--- semantic domain-type T_SelectItem = Catalog ->- IDEnv ->- LocalBindings ->- ( SelectItem ,SelectItem ,((String,Maybe Type)),SelectItem ,([SelectItem]))-data Inh_SelectItem = Inh_SelectItem {cat_Inh_SelectItem :: Catalog,idenv_Inh_SelectItem :: IDEnv,lib_Inh_SelectItem :: LocalBindings}-data Syn_SelectItem = Syn_SelectItem {annotatedTree_Syn_SelectItem :: SelectItem ,fixedUpIdentifiersTree_Syn_SelectItem :: SelectItem ,itemType_Syn_SelectItem :: ((String,Maybe Type)),originalTree_Syn_SelectItem :: SelectItem ,seIdTree_Syn_SelectItem :: ([SelectItem])}-wrap_SelectItem :: T_SelectItem ->- Inh_SelectItem ->- Syn_SelectItem -wrap_SelectItem sem (Inh_SelectItem _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOitemType,_lhsOoriginalTree,_lhsOseIdTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_SelectItem _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOitemType _lhsOoriginalTree _lhsOseIdTree ))-sem_SelectItem_SelExp :: Annotation ->- T_ScalarExpr ->- T_SelectItem -sem_SelectItem_SelExp ann_ ex_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOseIdTree :: ([SelectItem])- _lhsOitemType :: ((String,Maybe Type))- _exOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: SelectItem - _lhsOfixedUpIdentifiersTree :: SelectItem - _lhsOoriginalTree :: SelectItem - _exOcat :: Catalog- _exOidenv :: IDEnv- _exOlib :: LocalBindings- _exIannotatedTree :: ScalarExpr - _exIfixedUpIdentifiersTree :: ScalarExpr - _exIoriginalTree :: ScalarExpr - _exIuType :: (Maybe Type)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 150, column 14)- _lhsOseIdTree =- case _exIfixedUpIdentifiersTree of- Identifier a "*" -> let s = expandStar _lhsIidenv Nothing- in if null s- then [addSIAlias $ SelExp ann_ _exIfixedUpIdentifiersTree]- else makeSelExps ann_ a a s- QIdentifier a0 (Identifier a1 q) "*" ->- let s = expandStar _lhsIidenv $ Just q- in if null s- then [addSIAlias $ SelExp ann_ _exIfixedUpIdentifiersTree]- else makeSelExps ann_ a0 a1 s- _ -> [addSIAlias $ SelExp ann_ _exIfixedUpIdentifiersTree]- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 32, column 9)- _annotatedTree =- SelExp ann_ _exIannotatedTree- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 60, column 9)- _lhsOitemType =- ("", Nothing)- -- "./TypeChecking/ParameterizedStatements.ag"(line 106, column 25)- _exOexpectedType =- Nothing- -- self rule- _fixedUpIdentifiersTree =- SelExp ann_ _exIfixedUpIdentifiersTree- -- self rule- _originalTree =- SelExp ann_ _exIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exOcat =- _lhsIcat- -- copy rule (down)- _exOidenv =- _lhsIidenv- -- copy rule (down)- _exOlib =- _lhsIlib- ( _exIannotatedTree,_exIfixedUpIdentifiersTree,_exIoriginalTree,_exIuType) =- ex_ _exOcat _exOexpectedType _exOidenv _exOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOitemType,_lhsOoriginalTree,_lhsOseIdTree)))-sem_SelectItem_SelectItem :: Annotation ->- T_ScalarExpr ->- String ->- T_SelectItem -sem_SelectItem_SelectItem ann_ ex_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOseIdTree :: ([SelectItem])- _lhsOitemType :: ((String,Maybe Type))- _exOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: SelectItem - _lhsOfixedUpIdentifiersTree :: SelectItem - _lhsOoriginalTree :: SelectItem - _exOcat :: Catalog- _exOidenv :: IDEnv- _exOlib :: LocalBindings- _exIannotatedTree :: ScalarExpr - _exIfixedUpIdentifiersTree :: ScalarExpr - _exIoriginalTree :: ScalarExpr - _exIuType :: (Maybe Type)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 163, column 18)- _lhsOseIdTree =- [SelectItem ann_ _exIfixedUpIdentifiersTree name_]- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 34, column 9)- _annotatedTree =- SelectItem ann_ _exIannotatedTree name_- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 62, column 9)- _lhsOitemType =- (name_, unwrapSetof `fmap` _exIuType)- -- "./TypeChecking/ParameterizedStatements.ag"(line 106, column 25)- _exOexpectedType =- Nothing- -- self rule- _fixedUpIdentifiersTree =- SelectItem ann_ _exIfixedUpIdentifiersTree name_- -- self rule- _originalTree =- SelectItem ann_ _exIoriginalTree name_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exOcat =- _lhsIcat- -- copy rule (down)- _exOidenv =- _lhsIidenv- -- copy rule (down)- _exOlib =- _lhsIlib- ( _exIannotatedTree,_exIfixedUpIdentifiersTree,_exIoriginalTree,_exIuType) =- ex_ _exOcat _exOexpectedType _exOidenv _exOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOitemType,_lhsOoriginalTree,_lhsOseIdTree)))--- SelectItemList -----------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - listType : [(String,Maybe Type)]- originalTree : SELF - alternatives:- alternative Cons:- child hd : SelectItem - child tl : SelectItemList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type SelectItemList = [SelectItem ]--- cata-sem_SelectItemList :: SelectItemList ->- T_SelectItemList -sem_SelectItemList list =- (Prelude.foldr sem_SelectItemList_Cons sem_SelectItemList_Nil (Prelude.map sem_SelectItem list) )--- semantic domain-type T_SelectItemList = Catalog ->- IDEnv ->- LocalBindings ->- ( SelectItemList ,SelectItemList ,([(String,Maybe Type)]),SelectItemList )-data Inh_SelectItemList = Inh_SelectItemList {cat_Inh_SelectItemList :: Catalog,idenv_Inh_SelectItemList :: IDEnv,lib_Inh_SelectItemList :: LocalBindings}-data Syn_SelectItemList = Syn_SelectItemList {annotatedTree_Syn_SelectItemList :: SelectItemList ,fixedUpIdentifiersTree_Syn_SelectItemList :: SelectItemList ,listType_Syn_SelectItemList :: ([(String,Maybe Type)]),originalTree_Syn_SelectItemList :: SelectItemList }-wrap_SelectItemList :: T_SelectItemList ->- Inh_SelectItemList ->- Syn_SelectItemList -wrap_SelectItemList sem (Inh_SelectItemList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_SelectItemList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlistType _lhsOoriginalTree ))-sem_SelectItemList_Cons :: T_SelectItem ->- T_SelectItemList ->- T_SelectItemList -sem_SelectItemList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOfixedUpIdentifiersTree :: SelectItemList - _lhsOlistType :: ([(String,Maybe Type)])- _lhsOannotatedTree :: SelectItemList - _lhsOoriginalTree :: SelectItemList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: SelectItem - _hdIfixedUpIdentifiersTree :: SelectItem - _hdIitemType :: ((String,Maybe Type))- _hdIoriginalTree :: SelectItem - _hdIseIdTree :: ([SelectItem])- _tlIannotatedTree :: SelectItemList - _tlIfixedUpIdentifiersTree :: SelectItemList - _tlIlistType :: ([(String,Maybe Type)])- _tlIoriginalTree :: SelectItemList - -- "./TypeChecking/FixUpIdentifiers.ag"(line 141, column 12)- _lhsOfixedUpIdentifiersTree =- _hdIseIdTree ++ _tlIfixedUpIdentifiersTree- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 12)- _lhsOlistType =- _hdIitemType : _tlIlistType- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIitemType,_hdIoriginalTree,_hdIseIdTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIlistType,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))-sem_SelectItemList_Nil :: T_SelectItemList -sem_SelectItemList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOfixedUpIdentifiersTree :: SelectItemList - _lhsOlistType :: ([(String,Maybe Type)])- _lhsOannotatedTree :: SelectItemList - _lhsOoriginalTree :: SelectItemList - -- "./TypeChecking/FixUpIdentifiers.ag"(line 142, column 11)- _lhsOfixedUpIdentifiersTree =- []- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 43, column 11)- _lhsOlistType =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))--- SelectList ---------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - cidenv : IDEnv- fixedUpIdentifiersTree : SELF - libUpdates : [LocalBindingsUpdate]- listType : [(String,Maybe Type)]- originalTree : SELF - alternatives:- alternative SelectList:- child ann : {Annotation}- child items : SelectItemList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data SelectList = SelectList (Annotation) (SelectItemList ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_SelectList :: SelectList ->- T_SelectList -sem_SelectList (SelectList _ann _items ) =- (sem_SelectList_SelectList _ann (sem_SelectItemList _items ) )--- semantic domain-type T_SelectList = Catalog ->- IDEnv ->- LocalBindings ->- ( SelectList ,IDEnv,SelectList ,([LocalBindingsUpdate]),([(String,Maybe Type)]),SelectList )-data Inh_SelectList = Inh_SelectList {cat_Inh_SelectList :: Catalog,idenv_Inh_SelectList :: IDEnv,lib_Inh_SelectList :: LocalBindings}-data Syn_SelectList = Syn_SelectList {annotatedTree_Syn_SelectList :: SelectList ,cidenv_Syn_SelectList :: IDEnv,fixedUpIdentifiersTree_Syn_SelectList :: SelectList ,libUpdates_Syn_SelectList :: ([LocalBindingsUpdate]),listType_Syn_SelectList :: ([(String,Maybe Type)]),originalTree_Syn_SelectList :: SelectList }-wrap_SelectList :: T_SelectList ->- Inh_SelectList ->- Syn_SelectList -wrap_SelectList sem (Inh_SelectList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_SelectList _lhsOannotatedTree _lhsOcidenv _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOlistType _lhsOoriginalTree ))-sem_SelectList_SelectList :: Annotation ->- T_SelectItemList ->- T_SelectList -sem_SelectList_SelectList ann_ items_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOcidenv :: IDEnv- _lhsOlistType :: ([(String,Maybe Type)])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: SelectList - _lhsOfixedUpIdentifiersTree :: SelectList - _lhsOoriginalTree :: SelectList - _itemsOcat :: Catalog- _itemsOidenv :: IDEnv- _itemsOlib :: LocalBindings- _itemsIannotatedTree :: SelectItemList - _itemsIfixedUpIdentifiersTree :: SelectItemList - _itemsIlistType :: ([(String,Maybe Type)])- _itemsIoriginalTree :: SelectItemList - -- "./TypeChecking/FixUpIdentifiers.ag"(line 124, column 18)- _lhsOcidenv =- makeIDEnv "" $ flip map _itemsIfixedUpIdentifiersTree- $ \(SelectItem _ _ n) -> n- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 77, column 9)- _lhsOlistType =- _itemsIlistType- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 97, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/QueryExprs/SelectLists.ag"(line 131, column 9)- _lhsOannotatedTree =- SelectList ann_- _itemsIannotatedTree- -- self rule- _annotatedTree =- SelectList ann_ _itemsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- SelectList ann_ _itemsIfixedUpIdentifiersTree- -- self rule- _originalTree =- SelectList ann_ _itemsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _itemsOcat =- _lhsIcat- -- copy rule (down)- _itemsOidenv =- _lhsIidenv- -- copy rule (down)- _itemsOlib =- _lhsIlib- ( _itemsIannotatedTree,_itemsIfixedUpIdentifiersTree,_itemsIlistType,_itemsIoriginalTree) =- items_ _itemsOcat _itemsOidenv _itemsOlib - in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOlistType,_lhsOoriginalTree)))--- Statement ----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- inProducedCat : Catalog- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - catUpdates : [CatalogUpdate]- fixedUpIdentifiersTree : SELF - libUpdates : [LocalBindingsUpdate]- originalTree : SELF - alternatives:- alternative AlterSequence:- child ann : {Annotation}- child name : {String}- child ownedBy : SQIdentifier - visit 0:- local libUpdates : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative AlterTable:- child ann : {Annotation}- child name : {String}- child actions : AlterTableActionList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Assignment:- child ann : {Annotation}- child target : ScalarExpr - child value : ScalarExpr - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Block:- child ann : {Annotation}- child lb : {Maybe String}- child vars : VarDefList - child sts : StatementList - visit 0:- local libUpdates : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CaseStatement:- child ann : {Annotation}- child cases : ScalarExprListStatementListPairList - child els : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CaseStatementSimple:- child ann : {Annotation}- child val : ScalarExpr - child cases : ScalarExprListStatementListPairList - child els : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ContinueStatement:- child ann : {Annotation}- child lb : {Maybe String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Copy:- child ann : {Annotation}- child table : {String}- child targetCols : {[String]}- child source : {CopySource}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CopyData:- child ann : {Annotation}- child insData : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateDomain:- child ann : {Annotation}- child name : {String}- child typ : TypeName - child checkName : {String}- child check : MaybeBoolExpr - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local statementType : {Maybe StatementType}- local catUpdates : {[CatalogUpdate]}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateFunction:- child ann : {Annotation}- child name : {String}- child params : ParamDefList - child rettype : TypeName - child rep : {Replace}- child lang : {Language}- child body : FnBody - child vol : {Volatility}- visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local catUpdates : {[CatalogUpdate]}- local backTree : _- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateLanguage:- child ann : {Annotation}- child name : {String}- visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local statementType : {Maybe StatementType}- local catUpdates : {[CatalogUpdate]}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateSequence:- child ann : {Annotation}- child name : {String}- child incr : {Integer}- child min : {Integer}- child max : {Integer}- child start : {Integer}- child cache : {Integer}- visit 0:- local libUpdates : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateTable:- child ann : {Annotation}- child name : {String}- child atts : AttributeDefList - child cons : ConstraintList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local catUpdates : {[CatalogUpdate]}- local attrs : {[(String,Type)]}- local statementType : {Maybe StatementType}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateTableAs:- child ann : {Annotation}- child name : {String}- child expr : QueryExpr - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local catUpdates : {[CatalogUpdate]}- local attrs : {Either [TypeError] [(String,Type)]}- local backTree : _- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateTrigger:- child ann : {Annotation}- child name : {String}- child wh : {TriggerWhen}- child events : {[TriggerEvent]}- child tbl : {String}- child firing : {TriggerFire}- child fnName : {String}- child fnArgs : ScalarExprList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateType:- child ann : {Annotation}- child name : {String}- child atts : TypeAttributeDefList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local attrs : _- local backTree : _- local statementType : {Maybe StatementType}- local catUpdates : {[CatalogUpdate]}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative CreateView:- child ann : {Annotation}- child name : {String}- child colNames : {Maybe [String]}- child expr : QueryExpr - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Delete:- child ann : {Annotation}- child table : SQIdentifier - child using : TableRefList - child whr : MaybeBoolExpr - child returning : MaybeSelectList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local statementType : {Maybe StatementType}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local lib : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative DropFunction:- child ann : {Annotation}- child ifE : {IfExists}- child sigs : StringTypeNameListPairList - child cascade : {Cascade}- visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative DropSomething:- child ann : {Annotation}- child dropType : {DropType}- child ifE : {IfExists}- child names : {[String]}- child cascade : {Cascade}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Execute:- child ann : {Annotation}- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ExitStatement:- child ann : {Annotation}- child lb : {Maybe String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ForIntegerStatement:- child ann : {Annotation}- child lb : {Maybe String}- child var : ScalarExpr - child from : ScalarExpr - child to : ScalarExpr - child sts : StatementList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local implicitVar : _- local backTree : _- local catUpdates : {[CatalogUpdate]}- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ForQueryStatement:- child ann : {Annotation}- child lb : {Maybe String}- child var : ScalarExpr - child sel : QueryExpr - child sts : StatementList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative If:- child ann : {Annotation}- child cases : ScalarExprStatementListPairList - child els : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Insert:- child ann : {Annotation}- child table : SQIdentifier - child targetCols : {[String]}- child insData : QueryExpr - child returning : MaybeSelectList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local statementType : {Maybe StatementType}- local columnTypes : {Either [TypeError] [(String,Type)]}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Into:- child ann : {Annotation}- child strict : {Bool}- child into : ScalarExprList - child stmt : Statement - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative LoopStatement:- child ann : {Annotation}- child lb : {Maybe String}- child sts : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Notify:- child ann : {Annotation}- child name : {String}- visit 0:- local libUpdates : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative NullStatement:- child ann : {Annotation}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Perform:- child ann : {Annotation}- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative QueryStatement:- child ann : {Annotation}- child ex : QueryExpr - visit 0:- local tpe : {Either [TypeError] Type}- local statementType : {Maybe StatementType}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local libUpdates : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Raise:- child ann : {Annotation}- child level : {RaiseType}- child message : {String}- child args : ScalarExprList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Return:- child ann : {Annotation}- child value : MaybeScalarExpr - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local statementType : {Maybe StatementType}- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ReturnNext:- child ann : {Annotation}- child expr : ScalarExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative ReturnQuery:- child ann : {Annotation}- child sel : QueryExpr - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Set:- child ann : {Annotation}- child name : {String}- child values : {[SetValue]}- visit 0:- local libUpdates : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Truncate:- child ann : {Annotation}- child tables : {[String]}- child restartIdentity : {RestartIdentity}- child cascade : {Cascade}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Update:- child ann : {Annotation}- child table : SQIdentifier - child assigns : ScalarExprList - child fromList : TableRefList - child whr : MaybeBoolExpr - child returning : MaybeSelectList - visit 0:- local libUpdates : _- local tpe : {Either [TypeError] Type}- local statementType : {Maybe StatementType}- local backTree : _- local catUpdates : {[CatalogUpdate]}- local lib : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative WhileStatement:- child ann : {Annotation}- child lb : {Maybe String}- child expr : ScalarExpr - child sts : StatementList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data Statement = AlterSequence (Annotation) (String) (SQIdentifier ) - | AlterTable (Annotation) (String) (AlterTableActionList ) - | Assignment (Annotation) (ScalarExpr ) (ScalarExpr ) - | Block (Annotation) ((Maybe String)) (VarDefList ) (StatementList ) - | CaseStatement (Annotation) (ScalarExprListStatementListPairList ) (StatementList ) - | CaseStatementSimple (Annotation) (ScalarExpr ) (ScalarExprListStatementListPairList ) (StatementList ) - | ContinueStatement (Annotation) ((Maybe String)) - | Copy (Annotation) (String) (([String])) (CopySource) - | CopyData (Annotation) (String) - | CreateDomain (Annotation) (String) (TypeName ) (String) (MaybeBoolExpr ) - | CreateFunction (Annotation) (String) (ParamDefList ) (TypeName ) (Replace) (Language) (FnBody ) (Volatility) - | CreateLanguage (Annotation) (String) - | CreateSequence (Annotation) (String) (Integer) (Integer) (Integer) (Integer) (Integer) - | CreateTable (Annotation) (String) (AttributeDefList ) (ConstraintList ) - | CreateTableAs (Annotation) (String) (QueryExpr ) - | CreateTrigger (Annotation) (String) (TriggerWhen) (([TriggerEvent])) (String) (TriggerFire) (String) (ScalarExprList ) - | CreateType (Annotation) (String) (TypeAttributeDefList ) - | CreateView (Annotation) (String) ((Maybe [String])) (QueryExpr ) - | Delete (Annotation) (SQIdentifier ) (TableRefList ) (MaybeBoolExpr ) (MaybeSelectList ) - | DropFunction (Annotation) (IfExists) (StringTypeNameListPairList ) (Cascade) - | DropSomething (Annotation) (DropType) (IfExists) (([String])) (Cascade) - | Execute (Annotation) (ScalarExpr ) - | ExitStatement (Annotation) ((Maybe String)) - | ForIntegerStatement (Annotation) ((Maybe String)) (ScalarExpr ) (ScalarExpr ) (ScalarExpr ) (StatementList ) - | ForQueryStatement (Annotation) ((Maybe String)) (ScalarExpr ) (QueryExpr ) (StatementList ) - | If (Annotation) (ScalarExprStatementListPairList ) (StatementList ) - | Insert (Annotation) (SQIdentifier ) (([String])) (QueryExpr ) (MaybeSelectList ) - | Into (Annotation) (Bool) (ScalarExprList ) (Statement ) - | LoopStatement (Annotation) ((Maybe String)) (StatementList ) - | Notify (Annotation) (String) - | NullStatement (Annotation) - | Perform (Annotation) (ScalarExpr ) - | QueryStatement (Annotation) (QueryExpr ) - | Raise (Annotation) (RaiseType) (String) (ScalarExprList ) - | Return (Annotation) (MaybeScalarExpr ) - | ReturnNext (Annotation) (ScalarExpr ) - | ReturnQuery (Annotation) (QueryExpr ) - | Set (Annotation) (String) (([SetValue])) - | Truncate (Annotation) (([String])) (RestartIdentity) (Cascade) - | Update (Annotation) (SQIdentifier ) (ScalarExprList ) (TableRefList ) (MaybeBoolExpr ) (MaybeSelectList ) - | WhileStatement (Annotation) ((Maybe String)) (ScalarExpr ) (StatementList ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_Statement :: Statement ->- T_Statement -sem_Statement (AlterSequence _ann _name _ownedBy ) =- (sem_Statement_AlterSequence _ann _name (sem_SQIdentifier _ownedBy ) )-sem_Statement (AlterTable _ann _name _actions ) =- (sem_Statement_AlterTable _ann _name (sem_AlterTableActionList _actions ) )-sem_Statement (Assignment _ann _target _value ) =- (sem_Statement_Assignment _ann (sem_ScalarExpr _target ) (sem_ScalarExpr _value ) )-sem_Statement (Block _ann _lb _vars _sts ) =- (sem_Statement_Block _ann _lb (sem_VarDefList _vars ) (sem_StatementList _sts ) )-sem_Statement (CaseStatement _ann _cases _els ) =- (sem_Statement_CaseStatement _ann (sem_ScalarExprListStatementListPairList _cases ) (sem_StatementList _els ) )-sem_Statement (CaseStatementSimple _ann _val _cases _els ) =- (sem_Statement_CaseStatementSimple _ann (sem_ScalarExpr _val ) (sem_ScalarExprListStatementListPairList _cases ) (sem_StatementList _els ) )-sem_Statement (ContinueStatement _ann _lb ) =- (sem_Statement_ContinueStatement _ann _lb )-sem_Statement (Copy _ann _table _targetCols _source ) =- (sem_Statement_Copy _ann _table _targetCols _source )-sem_Statement (CopyData _ann _insData ) =- (sem_Statement_CopyData _ann _insData )-sem_Statement (CreateDomain _ann _name _typ _checkName _check ) =- (sem_Statement_CreateDomain _ann _name (sem_TypeName _typ ) _checkName (sem_MaybeBoolExpr _check ) )-sem_Statement (CreateFunction _ann _name _params _rettype _rep _lang _body _vol ) =- (sem_Statement_CreateFunction _ann _name (sem_ParamDefList _params ) (sem_TypeName _rettype ) _rep _lang (sem_FnBody _body ) _vol )-sem_Statement (CreateLanguage _ann _name ) =- (sem_Statement_CreateLanguage _ann _name )-sem_Statement (CreateSequence _ann _name _incr _min _max _start _cache ) =- (sem_Statement_CreateSequence _ann _name _incr _min _max _start _cache )-sem_Statement (CreateTable _ann _name _atts _cons ) =- (sem_Statement_CreateTable _ann _name (sem_AttributeDefList _atts ) (sem_ConstraintList _cons ) )-sem_Statement (CreateTableAs _ann _name _expr ) =- (sem_Statement_CreateTableAs _ann _name (sem_QueryExpr _expr ) )-sem_Statement (CreateTrigger _ann _name _wh _events _tbl _firing _fnName _fnArgs ) =- (sem_Statement_CreateTrigger _ann _name _wh _events _tbl _firing _fnName (sem_ScalarExprList _fnArgs ) )-sem_Statement (CreateType _ann _name _atts ) =- (sem_Statement_CreateType _ann _name (sem_TypeAttributeDefList _atts ) )-sem_Statement (CreateView _ann _name _colNames _expr ) =- (sem_Statement_CreateView _ann _name _colNames (sem_QueryExpr _expr ) )-sem_Statement (Delete _ann _table _using _whr _returning ) =- (sem_Statement_Delete _ann (sem_SQIdentifier _table ) (sem_TableRefList _using ) (sem_MaybeBoolExpr _whr ) (sem_MaybeSelectList _returning ) )-sem_Statement (DropFunction _ann _ifE _sigs _cascade ) =- (sem_Statement_DropFunction _ann _ifE (sem_StringTypeNameListPairList _sigs ) _cascade )-sem_Statement (DropSomething _ann _dropType _ifE _names _cascade ) =- (sem_Statement_DropSomething _ann _dropType _ifE _names _cascade )-sem_Statement (Execute _ann _expr ) =- (sem_Statement_Execute _ann (sem_ScalarExpr _expr ) )-sem_Statement (ExitStatement _ann _lb ) =- (sem_Statement_ExitStatement _ann _lb )-sem_Statement (ForIntegerStatement _ann _lb _var _from _to _sts ) =- (sem_Statement_ForIntegerStatement _ann _lb (sem_ScalarExpr _var ) (sem_ScalarExpr _from ) (sem_ScalarExpr _to ) (sem_StatementList _sts ) )-sem_Statement (ForQueryStatement _ann _lb _var _sel _sts ) =- (sem_Statement_ForQueryStatement _ann _lb (sem_ScalarExpr _var ) (sem_QueryExpr _sel ) (sem_StatementList _sts ) )-sem_Statement (If _ann _cases _els ) =- (sem_Statement_If _ann (sem_ScalarExprStatementListPairList _cases ) (sem_StatementList _els ) )-sem_Statement (Insert _ann _table _targetCols _insData _returning ) =- (sem_Statement_Insert _ann (sem_SQIdentifier _table ) _targetCols (sem_QueryExpr _insData ) (sem_MaybeSelectList _returning ) )-sem_Statement (Into _ann _strict _into _stmt ) =- (sem_Statement_Into _ann _strict (sem_ScalarExprList _into ) (sem_Statement _stmt ) )-sem_Statement (LoopStatement _ann _lb _sts ) =- (sem_Statement_LoopStatement _ann _lb (sem_StatementList _sts ) )-sem_Statement (Notify _ann _name ) =- (sem_Statement_Notify _ann _name )-sem_Statement (NullStatement _ann ) =- (sem_Statement_NullStatement _ann )-sem_Statement (Perform _ann _expr ) =- (sem_Statement_Perform _ann (sem_ScalarExpr _expr ) )-sem_Statement (QueryStatement _ann _ex ) =- (sem_Statement_QueryStatement _ann (sem_QueryExpr _ex ) )-sem_Statement (Raise _ann _level _message _args ) =- (sem_Statement_Raise _ann _level _message (sem_ScalarExprList _args ) )-sem_Statement (Return _ann _value ) =- (sem_Statement_Return _ann (sem_MaybeScalarExpr _value ) )-sem_Statement (ReturnNext _ann _expr ) =- (sem_Statement_ReturnNext _ann (sem_ScalarExpr _expr ) )-sem_Statement (ReturnQuery _ann _sel ) =- (sem_Statement_ReturnQuery _ann (sem_QueryExpr _sel ) )-sem_Statement (Set _ann _name _values ) =- (sem_Statement_Set _ann _name _values )-sem_Statement (Truncate _ann _tables _restartIdentity _cascade ) =- (sem_Statement_Truncate _ann _tables _restartIdentity _cascade )-sem_Statement (Update _ann _table _assigns _fromList _whr _returning ) =- (sem_Statement_Update _ann (sem_SQIdentifier _table ) (sem_ScalarExprList _assigns ) (sem_TableRefList _fromList ) (sem_MaybeBoolExpr _whr ) (sem_MaybeSelectList _returning ) )-sem_Statement (WhileStatement _ann _lb _expr _sts ) =- (sem_Statement_WhileStatement _ann _lb (sem_ScalarExpr _expr ) (sem_StatementList _sts ) )--- semantic domain-type T_Statement = Catalog ->- IDEnv ->- Catalog ->- LocalBindings ->- ( Statement ,([CatalogUpdate]),Statement ,([LocalBindingsUpdate]),Statement )-data Inh_Statement = Inh_Statement {cat_Inh_Statement :: Catalog,idenv_Inh_Statement :: IDEnv,inProducedCat_Inh_Statement :: Catalog,lib_Inh_Statement :: LocalBindings}-data Syn_Statement = Syn_Statement {annotatedTree_Syn_Statement :: Statement ,catUpdates_Syn_Statement :: ([CatalogUpdate]),fixedUpIdentifiersTree_Syn_Statement :: Statement ,libUpdates_Syn_Statement :: ([LocalBindingsUpdate]),originalTree_Syn_Statement :: Statement }-wrap_Statement :: T_Statement ->- Inh_Statement ->- Syn_Statement -wrap_Statement sem (Inh_Statement _lhsIcat _lhsIidenv _lhsIinProducedCat _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIinProducedCat _lhsIlib - in (Syn_Statement _lhsOannotatedTree _lhsOcatUpdates _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOoriginalTree ))-sem_Statement_AlterSequence :: Annotation ->- String ->- T_SQIdentifier ->- T_Statement -sem_Statement_AlterSequence ann_ name_ ownedBy_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _ownedByOcat :: Catalog- _ownedByOidenv :: IDEnv- _ownedByOlib :: LocalBindings- _ownedByIannotatedTree :: SQIdentifier - _ownedByIfixedUpIdentifiersTree :: SQIdentifier - _ownedByIoriginalTree :: SQIdentifier - _ownedByItbAnnotatedTree :: SQIdentifier - _ownedByItbUType :: (Maybe ([(String,Type)],[(String,Type)]))- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- AlterSequence ann_ name_ _ownedByIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- AlterSequence ann_ name_ _ownedByIfixedUpIdentifiersTree- -- self rule- _originalTree =- AlterSequence ann_ name_ _ownedByIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _ownedByOcat =- _lhsIcat- -- copy rule (down)- _ownedByOidenv =- _lhsIidenv- -- copy rule (down)- _ownedByOlib =- _lhsIlib- ( _ownedByIannotatedTree,_ownedByIfixedUpIdentifiersTree,_ownedByIoriginalTree,_ownedByItbAnnotatedTree,_ownedByItbUType) =- ownedBy_ _ownedByOcat _ownedByOidenv _ownedByOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_AlterTable :: Annotation ->- String ->- T_AlterTableActionList ->- T_Statement -sem_Statement_AlterTable ann_ name_ actions_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _actionsOcat :: Catalog- _actionsOidenv :: IDEnv- _actionsOlib :: LocalBindings- _actionsIannotatedTree :: AlterTableActionList - _actionsIfixedUpIdentifiersTree :: AlterTableActionList - _actionsIoriginalTree :: AlterTableActionList - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- AlterTable ann_ name_ _actionsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- AlterTable ann_ name_ _actionsIfixedUpIdentifiersTree- -- self rule- _originalTree =- AlterTable ann_ name_ _actionsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _actionsOcat =- _lhsIcat- -- copy rule (down)- _actionsOidenv =- _lhsIidenv- -- copy rule (down)- _actionsOlib =- _lhsIlib- ( _actionsIannotatedTree,_actionsIfixedUpIdentifiersTree,_actionsIoriginalTree) =- actions_ _actionsOcat _actionsOidenv _actionsOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Assignment :: Annotation ->- T_ScalarExpr ->- T_ScalarExpr ->- T_Statement -sem_Statement_Assignment ann_ target_ value_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _valueOexpectedType :: (Maybe Type)- _targetOexpectedType :: (Maybe Type)- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _targetOcat :: Catalog- _targetOidenv :: IDEnv- _targetOlib :: LocalBindings- _valueOcat :: Catalog- _valueOidenv :: IDEnv- _valueOlib :: LocalBindings- _targetIannotatedTree :: ScalarExpr - _targetIfixedUpIdentifiersTree :: ScalarExpr - _targetIoriginalTree :: ScalarExpr - _targetIuType :: (Maybe Type)- _valueIannotatedTree :: ScalarExpr - _valueIfixedUpIdentifiersTree :: ScalarExpr - _valueIoriginalTree :: ScalarExpr - _valueIuType :: (Maybe Type)- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 20, column 9)- _tpe =- do- fromType <- lmt _valueIuType- toType <- lmt _targetIuType- checkAssignmentValid _lhsIcat fromType toType- return $ Pseudo Void- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 26, column 9)- _backTree =- Assignment ann_ _targetIannotatedTree _valueIannotatedTree- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 27, column 9)- _catUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 28, column 9)- _statementType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 109, column 18)- _valueOexpectedType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 115, column 18)- _targetOexpectedType =- Nothing- -- self rule- _annotatedTree =- Assignment ann_ _targetIannotatedTree _valueIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Assignment ann_ _targetIfixedUpIdentifiersTree _valueIfixedUpIdentifiersTree- -- self rule- _originalTree =- Assignment ann_ _targetIoriginalTree _valueIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _targetOcat =- _lhsIcat- -- copy rule (down)- _targetOidenv =- _lhsIidenv- -- copy rule (down)- _targetOlib =- _lhsIlib- -- copy rule (down)- _valueOcat =- _lhsIcat- -- copy rule (down)- _valueOidenv =- _lhsIidenv- -- copy rule (down)- _valueOlib =- _lhsIlib- ( _targetIannotatedTree,_targetIfixedUpIdentifiersTree,_targetIoriginalTree,_targetIuType) =- target_ _targetOcat _targetOexpectedType _targetOidenv _targetOlib - ( _valueIannotatedTree,_valueIfixedUpIdentifiersTree,_valueIoriginalTree,_valueIuType) =- value_ _valueOcat _valueOexpectedType _valueOidenv _valueOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Block :: Annotation ->- (Maybe String) ->- T_VarDefList ->- T_StatementList ->- T_Statement -sem_Statement_Block ann_ lb_ vars_ sts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _stsOcatUpdates :: ([CatalogUpdate])- _stsOlib :: LocalBindings- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _lhsOlibUpdates :: ([LocalBindingsUpdate])- _varsOcat :: Catalog- _varsOidenv :: IDEnv- _varsOlib :: LocalBindings- _stsOcat :: Catalog- _stsOidenv :: IDEnv- _stsOlibUpdates :: ([LocalBindingsUpdate])- _varsIannotatedTree :: VarDefList - _varsIdefs :: ([(String,Maybe Type)])- _varsIfixedUpIdentifiersTree :: VarDefList - _varsIoriginalTree :: VarDefList - _stsIannotatedTree :: StatementList - _stsIfixedUpIdentifiersTree :: StatementList - _stsIoriginalTree :: StatementList - _stsIproducedCat :: Catalog- _stsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 100, column 13)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 101, column 13)- _stsOcatUpdates =- []- -- "./TypeChecking/Plpgsql/Block.ag"(line 22, column 9)- _stsOlib =- fromRight _lhsIlib $- lbUpdate _lhsIcat- (LBIds "declarations" lb_ $ mapMaybe lv _varsIdefs)- _lhsIlib- where- lv (_,Nothing) = Nothing- lv (s,Just t) = Just (s,t)- -- self rule- _annotatedTree =- Block ann_ lb_ _varsIannotatedTree _stsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Block ann_ lb_ _varsIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree- -- self rule- _originalTree =- Block ann_ lb_ _varsIoriginalTree _stsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (from local)- _lhsOlibUpdates =- _libUpdates- -- copy rule (down)- _varsOcat =- _lhsIcat- -- copy rule (down)- _varsOidenv =- _lhsIidenv- -- copy rule (down)- _varsOlib =- _lhsIlib- -- copy rule (down)- _stsOcat =- _lhsIcat- -- copy rule (down)- _stsOidenv =- _lhsIidenv- -- copy rule (from local)- _stsOlibUpdates =- _libUpdates- ( _varsIannotatedTree,_varsIdefs,_varsIfixedUpIdentifiersTree,_varsIoriginalTree) =- vars_ _varsOcat _varsOidenv _varsOlib - ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =- sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CaseStatement :: Annotation ->- T_ScalarExprListStatementListPairList ->- T_StatementList ->- T_Statement -sem_Statement_CaseStatement ann_ cases_ els_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _elsOcatUpdates :: ([CatalogUpdate])- _elsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _casesOcat :: Catalog- _casesOidenv :: IDEnv- _casesOlib :: LocalBindings- _elsOcat :: Catalog- _elsOidenv :: IDEnv- _elsOlib :: LocalBindings- _casesIannotatedTree :: ScalarExprListStatementListPairList - _casesIfixedUpIdentifiersTree :: ScalarExprListStatementListPairList - _casesIoriginalTree :: ScalarExprListStatementListPairList - _elsIannotatedTree :: StatementList - _elsIfixedUpIdentifiersTree :: StatementList - _elsIoriginalTree :: StatementList - _elsIproducedCat :: Catalog- _elsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/Statements.ag"(line 134, column 9)- _elsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 135, column 9)- _elsOlibUpdates =- []- -- self rule- _annotatedTree =- CaseStatement ann_ _casesIannotatedTree _elsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CaseStatement ann_ _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree- -- self rule- _originalTree =- CaseStatement ann_ _casesIoriginalTree _elsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _casesOcat =- _lhsIcat- -- copy rule (down)- _casesOidenv =- _lhsIidenv- -- copy rule (down)- _casesOlib =- _lhsIlib- -- copy rule (down)- _elsOcat =- _lhsIcat- -- copy rule (down)- _elsOidenv =- _lhsIidenv- -- copy rule (down)- _elsOlib =- _lhsIlib- ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree) =- cases_ _casesOcat _casesOidenv _casesOlib - ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIproducedCat,_elsIproducedLib) =- els_ _elsOcat _elsOcatUpdates _elsOidenv _elsOlib _elsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CaseStatementSimple :: Annotation ->- T_ScalarExpr ->- T_ScalarExprListStatementListPairList ->- T_StatementList ->- T_Statement -sem_Statement_CaseStatementSimple ann_ val_ cases_ els_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _elsOcatUpdates :: ([CatalogUpdate])- _elsOlibUpdates :: ([LocalBindingsUpdate])- _valOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _valOcat :: Catalog- _valOidenv :: IDEnv- _valOlib :: LocalBindings- _casesOcat :: Catalog- _casesOidenv :: IDEnv- _casesOlib :: LocalBindings- _elsOcat :: Catalog- _elsOidenv :: IDEnv- _elsOlib :: LocalBindings- _valIannotatedTree :: ScalarExpr - _valIfixedUpIdentifiersTree :: ScalarExpr - _valIoriginalTree :: ScalarExpr - _valIuType :: (Maybe Type)- _casesIannotatedTree :: ScalarExprListStatementListPairList - _casesIfixedUpIdentifiersTree :: ScalarExprListStatementListPairList - _casesIoriginalTree :: ScalarExprListStatementListPairList - _elsIannotatedTree :: StatementList - _elsIfixedUpIdentifiersTree :: StatementList - _elsIoriginalTree :: StatementList - _elsIproducedCat :: Catalog- _elsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/Statements.ag"(line 134, column 9)- _elsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 135, column 9)- _elsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 110, column 27)- _valOexpectedType =- Nothing- -- self rule- _annotatedTree =- CaseStatementSimple ann_ _valIannotatedTree _casesIannotatedTree _elsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CaseStatementSimple ann_ _valIfixedUpIdentifiersTree _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree- -- self rule- _originalTree =- CaseStatementSimple ann_ _valIoriginalTree _casesIoriginalTree _elsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _valOcat =- _lhsIcat- -- copy rule (down)- _valOidenv =- _lhsIidenv- -- copy rule (down)- _valOlib =- _lhsIlib- -- copy rule (down)- _casesOcat =- _lhsIcat- -- copy rule (down)- _casesOidenv =- _lhsIidenv- -- copy rule (down)- _casesOlib =- _lhsIlib- -- copy rule (down)- _elsOcat =- _lhsIcat- -- copy rule (down)- _elsOidenv =- _lhsIidenv- -- copy rule (down)- _elsOlib =- _lhsIlib- ( _valIannotatedTree,_valIfixedUpIdentifiersTree,_valIoriginalTree,_valIuType) =- val_ _valOcat _valOexpectedType _valOidenv _valOlib - ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree) =- cases_ _casesOcat _casesOidenv _casesOlib - ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIproducedCat,_elsIproducedLib) =- els_ _elsOcat _elsOcatUpdates _elsOidenv _elsOlib _elsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_ContinueStatement :: Annotation ->- (Maybe String) ->- T_Statement -sem_Statement_ContinueStatement ann_ lb_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- ContinueStatement ann_ lb_- -- self rule- _fixedUpIdentifiersTree =- ContinueStatement ann_ lb_- -- self rule- _originalTree =- ContinueStatement ann_ lb_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Copy :: Annotation ->- String ->- ([String]) ->- CopySource ->- T_Statement -sem_Statement_Copy ann_ table_ targetCols_ source_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- Copy ann_ table_ targetCols_ source_- -- self rule- _fixedUpIdentifiersTree =- Copy ann_ table_ targetCols_ source_- -- self rule- _originalTree =- Copy ann_ table_ targetCols_ source_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CopyData :: Annotation ->- String ->- T_Statement -sem_Statement_CopyData ann_ insData_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- CopyData ann_ insData_- -- self rule- _fixedUpIdentifiersTree =- CopyData ann_ insData_- -- self rule- _originalTree =- CopyData ann_ insData_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateDomain :: Annotation ->- String ->- T_TypeName ->- String ->- T_MaybeBoolExpr ->- T_Statement -sem_Statement_CreateDomain ann_ name_ typ_ checkName_ check_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _catUpdates :: ([CatalogUpdate])- _checkOlib :: LocalBindings- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _checkOcat :: Catalog- _checkOidenv :: IDEnv- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - _checkIannotatedTree :: MaybeBoolExpr - _checkIfixedUpIdentifiersTree :: MaybeBoolExpr - _checkIoriginalTree :: MaybeBoolExpr - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 65, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 66, column 9)- _backTree =- CreateDomain ann_ name_ _typIannotatedTree checkName_ _checkIannotatedTree- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 67, column 9)- _statementType =- Nothing- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 68, column 9)- _catUpdates =- maybe [] (\t -> [CatCreateDomain (DomainType name_) t]) _typInamedType- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 70, column 9)- _checkOlib =- either (const _lhsIlib) id $ do- nt <- lmt _typInamedType- lbUpdate _lhsIcat- (LBIds "domain check value" Nothing [("value", nt)])- _lhsIlib- -- self rule- _annotatedTree =- CreateDomain ann_ name_ _typIannotatedTree checkName_ _checkIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CreateDomain ann_ name_ _typIfixedUpIdentifiersTree checkName_ _checkIfixedUpIdentifiersTree- -- self rule- _originalTree =- CreateDomain ann_ name_ _typIoriginalTree checkName_ _checkIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- -- copy rule (down)- _checkOcat =- _lhsIcat- -- copy rule (down)- _checkOidenv =- _lhsIidenv- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - ( _checkIannotatedTree,_checkIfixedUpIdentifiersTree,_checkIoriginalTree) =- check_ _checkOcat _checkOidenv _checkOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateFunction :: Annotation ->- String ->- T_ParamDefList ->- T_TypeName ->- Replace ->- Language ->- T_FnBody ->- Volatility ->- T_Statement -sem_Statement_CreateFunction ann_ name_ params_ rettype_ rep_ lang_ body_ vol_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _bodyOlib :: LocalBindings- _paramsOpos :: Int- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _bodyOcat :: Catalog- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _paramsOcat :: Catalog- _paramsOidenv :: IDEnv- _paramsOlib :: LocalBindings- _rettypeOcat :: Catalog- _rettypeOidenv :: IDEnv- _rettypeOlib :: LocalBindings- _bodyOidenv :: IDEnv- _paramsIannotatedTree :: ParamDefList - _paramsIfixedUpIdentifiersTree :: ParamDefList - _paramsIoriginalTree :: ParamDefList - _paramsIparams :: ([(ParamName, Maybe Type)])- _rettypeIannotatedTree :: TypeName - _rettypeIfixedUpIdentifiersTree :: TypeName - _rettypeInamedType :: (Maybe Type)- _rettypeIoriginalTree :: TypeName - _bodyIannotatedTree :: FnBody - _bodyIfixedUpIdentifiersTree :: FnBody - _bodyIoriginalTree :: FnBody - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 63, column 9)- _bodyOlib =- either (const _lhsIlib) id $ do- _ <- lmt _rettypeInamedType- lbUpdate _lhsIcat (LBIds (name_ ++ " parameters") (Just name_) paramsNoPos) _lhsIlib- >>= lbUpdate _lhsIcat (LBIds (name_ ++ " parameters") Nothing paramsPosOnly)- where- paramsPosOnly :: [(String,Type)]- paramsPosOnly = mapMaybe prm _paramsIparams- prm :: (ParamName,Maybe Type) -> Maybe (String,Type)- prm (NamedParam p _,Just t) = Just ("$" ++ show p, t)- prm (UnnamedParam p,Just t) = Just ("$" ++ show p, t)- prm _ = Nothing- paramsNoPos :: [(String,Type)]- paramsNoPos = mapMaybe pnp _paramsIparams- pnp :: (ParamName,Maybe Type) -> Maybe (String,Type)- pnp (NamedParam _ n,Just t) = Just (n,t)- pnp _ = Nothing- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 79, column 9)- _paramsOpos =- 1- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 88, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 89, column 9)- _catUpdates =- either (const []) id $ do- let ps = mapMaybe lpt _paramsIparams- rt <- lmt _rettypeInamedType- return [CatCreateFunction FunName- (map toLower name_)- ps- rt- False]- where- lpt (_,Just t) = Just t- lpt _ = Nothing- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 101, column 9)- _backTree =- CreateFunction ann_- name_- _paramsIannotatedTree- _rettypeIannotatedTree- rep_- lang_- _bodyIannotatedTree- vol_- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 109, column 9)- _statementType =- Nothing- -- "./TypeChecking/Ddl/CreateFunction.ag"(line 110, column 9)- _bodyOcat =- _lhsIinProducedCat- -- self rule- _annotatedTree =- CreateFunction ann_ name_ _paramsIannotatedTree _rettypeIannotatedTree rep_ lang_ _bodyIannotatedTree vol_- -- self rule- _fixedUpIdentifiersTree =- CreateFunction ann_ name_ _paramsIfixedUpIdentifiersTree _rettypeIfixedUpIdentifiersTree rep_ lang_ _bodyIfixedUpIdentifiersTree vol_- -- self rule- _originalTree =- CreateFunction ann_ name_ _paramsIoriginalTree _rettypeIoriginalTree rep_ lang_ _bodyIoriginalTree vol_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _paramsOcat =- _lhsIcat- -- copy rule (down)- _paramsOidenv =- _lhsIidenv- -- copy rule (down)- _paramsOlib =- _lhsIlib- -- copy rule (down)- _rettypeOcat =- _lhsIcat- -- copy rule (down)- _rettypeOidenv =- _lhsIidenv- -- copy rule (down)- _rettypeOlib =- _lhsIlib- -- copy rule (down)- _bodyOidenv =- _lhsIidenv- ( _paramsIannotatedTree,_paramsIfixedUpIdentifiersTree,_paramsIoriginalTree,_paramsIparams) =- params_ _paramsOcat _paramsOidenv _paramsOlib _paramsOpos - ( _rettypeIannotatedTree,_rettypeIfixedUpIdentifiersTree,_rettypeInamedType,_rettypeIoriginalTree) =- rettype_ _rettypeOcat _rettypeOidenv _rettypeOlib - ( _bodyIannotatedTree,_bodyIfixedUpIdentifiersTree,_bodyIoriginalTree) =- body_ _bodyOcat _bodyOidenv _bodyOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateLanguage :: Annotation ->- String ->- T_Statement -sem_Statement_CreateLanguage ann_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _catUpdates :: ([CatalogUpdate])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 78, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 79, column 9)- _backTree =- CreateLanguage ann_ name_- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 80, column 9)- _statementType =- Nothing- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 81, column 9)- _catUpdates =- [CatCreateFunction FunName "plpgsql_call_handler" [] (Pseudo LanguageHandler) False- ,CatCreateFunction FunName "plpgsql_validator" [ScalarType "oid"] (Pseudo Void) False]- -- self rule- _annotatedTree =- CreateLanguage ann_ name_- -- self rule- _fixedUpIdentifiersTree =- CreateLanguage ann_ name_- -- self rule- _originalTree =- CreateLanguage ann_ name_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateSequence :: Annotation ->- String ->- Integer ->- Integer ->- Integer ->- Integer ->- Integer ->- T_Statement -sem_Statement_CreateSequence ann_ name_ incr_ min_ max_ start_ cache_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- CreateSequence ann_ name_ incr_ min_ max_ start_ cache_- -- self rule- _fixedUpIdentifiersTree =- CreateSequence ann_ name_ incr_ min_ max_ start_ cache_- -- self rule- _originalTree =- CreateSequence ann_ name_ incr_ min_ max_ start_ cache_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateTable :: Annotation ->- String ->- T_AttributeDefList ->- T_ConstraintList ->- T_Statement -sem_Statement_CreateTable ann_ name_ atts_ cons_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _attrs :: ([(String,Type)])- _statementType :: (Maybe StatementType)- _consOlib :: LocalBindings- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _attsOcat :: Catalog- _attsOidenv :: IDEnv- _attsOlib :: LocalBindings- _consOcat :: Catalog- _consOidenv :: IDEnv- _attsIannotatedTree :: AttributeDefList - _attsIattrs :: ([(String, Maybe Type)])- _attsIfixedUpIdentifiersTree :: AttributeDefList - _attsIoriginalTree :: AttributeDefList - _consIannotatedTree :: ConstraintList - _consIfixedUpIdentifiersTree :: ConstraintList - _consIoriginalTree :: ConstraintList - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Ddl/CreateTable.ag"(line 31, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/CreateTable.ag"(line 32, column 9)- _catUpdates =- [CatCreateTable name_ _attrs defaultSystemColumns]- -- "./TypeChecking/Ddl/CreateTable.ag"(line 35, column 9)- _attrs =- mapMaybe okAt _attsIattrs- where- okAt (s, Just t) = Just (s,t)- okAt (_,Nothing) = Nothing- -- "./TypeChecking/Ddl/CreateTable.ag"(line 40, column 9)- _statementType =- Nothing- -- "./TypeChecking/Ddl/CreateTable.ag"(line 41, column 9)- _backTree =- CreateTable ann_- name_- _attsIannotatedTree- _consIannotatedTree- -- "./TypeChecking/Ddl/CreateTable.ag"(line 45, column 9)- _consOlib =- case lbUpdate _lhsIcat- (LBIds "attributedefs" Nothing _attrs )- _lhsIlib of- Left x -> error $ "statement-createtable-cons.lib " ++ show x- Right e -> e- -- self rule- _annotatedTree =- CreateTable ann_ name_ _attsIannotatedTree _consIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CreateTable ann_ name_ _attsIfixedUpIdentifiersTree _consIfixedUpIdentifiersTree- -- self rule- _originalTree =- CreateTable ann_ name_ _attsIoriginalTree _consIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _attsOcat =- _lhsIcat- -- copy rule (down)- _attsOidenv =- _lhsIidenv- -- copy rule (down)- _attsOlib =- _lhsIlib- -- copy rule (down)- _consOcat =- _lhsIcat- -- copy rule (down)- _consOidenv =- _lhsIidenv- ( _attsIannotatedTree,_attsIattrs,_attsIfixedUpIdentifiersTree,_attsIoriginalTree) =- atts_ _attsOcat _attsOidenv _attsOlib - ( _consIannotatedTree,_consIfixedUpIdentifiersTree,_consIoriginalTree) =- cons_ _consOcat _consOidenv _consOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateTableAs :: Annotation ->- String ->- T_QueryExpr ->- T_Statement -sem_Statement_CreateTableAs ann_ name_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _exprOcsql :: LocalBindings- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _attrs :: (Either [TypeError] [(String,Type)])- _statementType :: (Maybe StatementType)- _exprOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: QueryExpr - _exprIcidenv :: IDEnv- _exprIfixedUpIdentifiersTree :: QueryExpr - _exprIlibUpdates :: ([LocalBindingsUpdate])- _exprIoriginalTree :: QueryExpr - _exprIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 122, column 21)- _exprOcsql =- emptyBindings- -- "./TypeChecking/Ddl/CreateTable.ag"(line 64, column 9)- _tpe =- CompositeType <$> lmt _exprIuType- -- "./TypeChecking/Ddl/CreateTable.ag"(line 65, column 9)- _catUpdates =- either (const []) id $ do- ats <- _attrs- return [CatCreateTable name_ ats defaultSystemColumns]- -- "./TypeChecking/Ddl/CreateTable.ag"(line 71, column 9)- _attrs =- lmt _exprIuType- -- "./TypeChecking/Ddl/CreateTable.ag"(line 73, column 9)- _backTree =- CreateTableAs ann_ name_ _exprIannotatedTree- -- "./TypeChecking/Ddl/CreateTable.ag"(line 74, column 9)- _statementType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 175, column 32)- _exprOexpectedTypes =- []- -- self rule- _annotatedTree =- CreateTableAs ann_ name_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CreateTableAs ann_ name_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- CreateTableAs ann_ name_ _exprIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIcidenv,_exprIfixedUpIdentifiersTree,_exprIlibUpdates,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOcsql _exprOexpectedTypes _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateTrigger :: Annotation ->- String ->- TriggerWhen ->- ([TriggerEvent]) ->- String ->- TriggerFire ->- String ->- T_ScalarExprList ->- T_Statement -sem_Statement_CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ fnArgs_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _fnArgsOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _fnArgsOcat :: Catalog- _fnArgsOidenv :: IDEnv- _fnArgsOlib :: LocalBindings- _fnArgsIannotatedTree :: ScalarExprList - _fnArgsIfixedUpIdentifiersTree :: ScalarExprList - _fnArgsIoriginalTree :: ScalarExprList - _fnArgsIuType :: ([Maybe Type])- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 153, column 21)- _fnArgsOexpectedTypes =- []- -- self rule- _annotatedTree =- CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ _fnArgsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ _fnArgsIfixedUpIdentifiersTree- -- self rule- _originalTree =- CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ _fnArgsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _fnArgsOcat =- _lhsIcat- -- copy rule (down)- _fnArgsOidenv =- _lhsIidenv- -- copy rule (down)- _fnArgsOlib =- _lhsIlib- ( _fnArgsIannotatedTree,_fnArgsIfixedUpIdentifiersTree,_fnArgsIoriginalTree,_fnArgsIuType) =- fnArgs_ _fnArgsOcat _fnArgsOexpectedTypes _fnArgsOidenv _fnArgsOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateType :: Annotation ->- String ->- T_TypeAttributeDefList ->- T_Statement -sem_Statement_CreateType ann_ name_ atts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _catUpdates :: ([CatalogUpdate])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _attsOcat :: Catalog- _attsOidenv :: IDEnv- _attsOlib :: LocalBindings- _attsIannotatedTree :: TypeAttributeDefList - _attsIattrs :: ([(String, Maybe Type)])- _attsIfixedUpIdentifiersTree :: TypeAttributeDefList - _attsIoriginalTree :: TypeAttributeDefList - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 48, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 49, column 9)- _attrs =- mapMaybe okAt _attsIattrs- where- okAt (s, Just t) = Just (s,t)- okAt (_,Nothing) = Nothing- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 53, column 9)- _backTree =- CreateType ann_ name_ _attsIannotatedTree- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 54, column 9)- _statementType =- Nothing- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 55, column 9)- _catUpdates =- [CatCreateComposite name_ _attrs ]- -- self rule- _annotatedTree =- CreateType ann_ name_ _attsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CreateType ann_ name_ _attsIfixedUpIdentifiersTree- -- self rule- _originalTree =- CreateType ann_ name_ _attsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _attsOcat =- _lhsIcat- -- copy rule (down)- _attsOidenv =- _lhsIidenv- -- copy rule (down)- _attsOlib =- _lhsIlib- ( _attsIannotatedTree,_attsIattrs,_attsIfixedUpIdentifiersTree,_attsIoriginalTree) =- atts_ _attsOcat _attsOidenv _attsOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_CreateView :: Annotation ->- String ->- (Maybe [String]) ->- T_QueryExpr ->- T_Statement -sem_Statement_CreateView ann_ name_ colNames_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _exprOcsql :: LocalBindings- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _exprOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: QueryExpr - _exprIcidenv :: IDEnv- _exprIfixedUpIdentifiersTree :: QueryExpr - _exprIlibUpdates :: ([LocalBindingsUpdate])- _exprIoriginalTree :: QueryExpr - _exprIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 123, column 18)- _exprOcsql =- emptyBindings- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 15, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 16, column 9)- _backTree =- CreateView ann_ name_ colNames_ _exprIannotatedTree- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 17, column 9)- _catUpdates =- maybe [] (\a -> [CatCreateView name_ a]) _exprIuType- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 19, column 9)- _statementType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 175, column 32)- _exprOexpectedTypes =- []- -- self rule- _annotatedTree =- CreateView ann_ name_ colNames_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- CreateView ann_ name_ colNames_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- CreateView ann_ name_ colNames_ _exprIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIcidenv,_exprIfixedUpIdentifiersTree,_exprIlibUpdates,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOcsql _exprOexpectedTypes _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Delete :: Annotation ->- T_SQIdentifier ->- T_TableRefList ->- T_MaybeBoolExpr ->- T_MaybeSelectList ->- T_Statement -sem_Statement_Delete ann_ table_ using_ whr_ returning_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _catUpdates :: ([CatalogUpdate])- _whrOlib :: LocalBindings- _returningOlib :: LocalBindings- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _tableOcat :: Catalog- _tableOidenv :: IDEnv- _tableOlib :: LocalBindings- _usingOcat :: Catalog- _usingOidenv :: IDEnv- _usingOlib :: LocalBindings- _whrOcat :: Catalog- _whrOidenv :: IDEnv- _returningOcat :: Catalog- _returningOidenv :: IDEnv- _tableIannotatedTree :: SQIdentifier - _tableIfixedUpIdentifiersTree :: SQIdentifier - _tableIoriginalTree :: SQIdentifier - _tableItbAnnotatedTree :: SQIdentifier - _tableItbUType :: (Maybe ([(String,Type)],[(String,Type)]))- _usingIannotatedTree :: TableRefList - _usingIfixedUpIdentifiersTree :: TableRefList - _usingIlibUpdates :: ([LocalBindingsUpdate])- _usingInewLib2 :: LocalBindings- _usingIoriginalTree :: TableRefList - _usingItrefIDs :: ([(String,[String])])- _whrIannotatedTree :: MaybeBoolExpr - _whrIfixedUpIdentifiersTree :: MaybeBoolExpr - _whrIoriginalTree :: MaybeBoolExpr - _returningIannotatedTree :: MaybeSelectList - _returningIfixedUpIdentifiersTree :: MaybeSelectList - _returningIlistType :: ([(String,Maybe Type)])- _returningIoriginalTree :: MaybeSelectList - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Dml/Delete.ag"(line 13, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Dml/Delete.ag"(line 14, column 9)- _statementType =- do- pt <- sequence $ getPlaceholderTypes _whrIannotatedTree- lt <- liftList _returningIlistType- return (pt,lt)- -- "./TypeChecking/Dml/Delete.ag"(line 19, column 9)- _backTree =- Delete ann_ _tableItbAnnotatedTree _usingIannotatedTree _whrIannotatedTree _returningIannotatedTree- -- "./TypeChecking/Dml/Delete.ag"(line 20, column 9)- _catUpdates =- []- -- "./TypeChecking/Dml/Delete.ag"(line 22, column 9)- _lib =- either (const _lhsIlib) id $ do- a <- lmt (allAtts <$> _tableItbUType)- lbUpdate _lhsIcat (LBIds "delete table attrs" (Just $ getTName _tableIannotatedTree) a) _lhsIlib- -- "./TypeChecking/Dml/Delete.ag"(line 26, column 9)- _whrOlib =- _lib- -- "./TypeChecking/Dml/Delete.ag"(line 27, column 9)- _returningOlib =- _lib- -- self rule- _annotatedTree =- Delete ann_ _tableIannotatedTree _usingIannotatedTree _whrIannotatedTree _returningIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Delete ann_ _tableIfixedUpIdentifiersTree _usingIfixedUpIdentifiersTree _whrIfixedUpIdentifiersTree _returningIfixedUpIdentifiersTree- -- self rule- _originalTree =- Delete ann_ _tableIoriginalTree _usingIoriginalTree _whrIoriginalTree _returningIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _tableOcat =- _lhsIcat- -- copy rule (down)- _tableOidenv =- _lhsIidenv- -- copy rule (from local)- _tableOlib =- _lib- -- copy rule (down)- _usingOcat =- _lhsIcat- -- copy rule (down)- _usingOidenv =- _lhsIidenv- -- copy rule (from local)- _usingOlib =- _lib- -- copy rule (down)- _whrOcat =- _lhsIcat- -- copy rule (down)- _whrOidenv =- _lhsIidenv- -- copy rule (down)- _returningOcat =- _lhsIcat- -- copy rule (down)- _returningOidenv =- _lhsIidenv- ( _tableIannotatedTree,_tableIfixedUpIdentifiersTree,_tableIoriginalTree,_tableItbAnnotatedTree,_tableItbUType) =- table_ _tableOcat _tableOidenv _tableOlib - ( _usingIannotatedTree,_usingIfixedUpIdentifiersTree,_usingIlibUpdates,_usingInewLib2,_usingIoriginalTree,_usingItrefIDs) =- using_ _usingOcat _usingOidenv _usingOlib - ( _whrIannotatedTree,_whrIfixedUpIdentifiersTree,_whrIoriginalTree) =- whr_ _whrOcat _whrOidenv _whrOlib - ( _returningIannotatedTree,_returningIfixedUpIdentifiersTree,_returningIlistType,_returningIoriginalTree) =- returning_ _returningOcat _returningOidenv _returningOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_DropFunction :: Annotation ->- IfExists ->- T_StringTypeNameListPairList ->- Cascade ->- T_Statement -sem_Statement_DropFunction ann_ ifE_ sigs_ cascade_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _sigsOcat :: Catalog- _sigsOidenv :: IDEnv- _sigsOlib :: LocalBindings- _sigsIannotatedTree :: StringTypeNameListPairList - _sigsIfixedUpIdentifiersTree :: StringTypeNameListPairList - _sigsIfnSigs :: ([(String,[Maybe Type])])- _sigsIoriginalTree :: StringTypeNameListPairList - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Ddl/Drops.ag"(line 10, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Ddl/Drops.ag"(line 11, column 9)- _backTree =- DropFunction ann_ ifE_ _sigsIannotatedTree cascade_- -- "./TypeChecking/Ddl/Drops.ag"(line 12, column 9)- _catUpdates =- either (const []) id $- Right $ map mcu $ mapMaybe goodSig _sigsIfnSigs- where- mcu :: (String,[Type]) -> CatalogUpdate- mcu (nm,args) = CatDropFunction ifE nm args- ifE = ifE_ == IfExists- goodSig :: (String,[Maybe Type]) -> Maybe (String,[Type])- goodSig (s, ts) = do- ts1 <- sequence ts- return (s,ts1)- -- "./TypeChecking/Ddl/Drops.ag"(line 23, column 9)- _statementType =- Nothing- -- self rule- _annotatedTree =- DropFunction ann_ ifE_ _sigsIannotatedTree cascade_- -- self rule- _fixedUpIdentifiersTree =- DropFunction ann_ ifE_ _sigsIfixedUpIdentifiersTree cascade_- -- self rule- _originalTree =- DropFunction ann_ ifE_ _sigsIoriginalTree cascade_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _sigsOcat =- _lhsIcat- -- copy rule (down)- _sigsOidenv =- _lhsIidenv- -- copy rule (down)- _sigsOlib =- _lhsIlib- ( _sigsIannotatedTree,_sigsIfixedUpIdentifiersTree,_sigsIfnSigs,_sigsIoriginalTree) =- sigs_ _sigsOcat _sigsOidenv _sigsOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_DropSomething :: Annotation ->- DropType ->- IfExists ->- ([String]) ->- Cascade ->- T_Statement -sem_Statement_DropSomething ann_ dropType_ ifE_ names_ cascade_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- DropSomething ann_ dropType_ ifE_ names_ cascade_- -- self rule- _fixedUpIdentifiersTree =- DropSomething ann_ dropType_ ifE_ names_ cascade_- -- self rule- _originalTree =- DropSomething ann_ dropType_ ifE_ names_ cascade_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Execute :: Annotation ->- T_ScalarExpr ->- T_Statement -sem_Statement_Execute ann_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 112, column 9)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- Execute ann_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Execute ann_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- Execute ann_ _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_ExitStatement :: Annotation ->- (Maybe String) ->- T_Statement -sem_Statement_ExitStatement ann_ lb_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- ExitStatement ann_ lb_- -- self rule- _fixedUpIdentifiersTree =- ExitStatement ann_ lb_- -- self rule- _originalTree =- ExitStatement ann_ lb_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_ForIntegerStatement :: Annotation ->- (Maybe String) ->- T_ScalarExpr ->- T_ScalarExpr ->- T_ScalarExpr ->- T_StatementList ->- T_Statement -sem_Statement_ForIntegerStatement ann_ lb_ var_ from_ to_ sts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _stsOcatUpdates :: ([CatalogUpdate])- _stsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _stsOlib :: LocalBindings- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _fromOexpectedType :: (Maybe Type)- _toOexpectedType :: (Maybe Type)- _varOexpectedType :: (Maybe Type)- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _varOcat :: Catalog- _varOidenv :: IDEnv- _varOlib :: LocalBindings- _fromOcat :: Catalog- _fromOidenv :: IDEnv- _fromOlib :: LocalBindings- _toOcat :: Catalog- _toOidenv :: IDEnv- _toOlib :: LocalBindings- _stsOcat :: Catalog- _stsOidenv :: IDEnv- _varIannotatedTree :: ScalarExpr - _varIfixedUpIdentifiersTree :: ScalarExpr - _varIoriginalTree :: ScalarExpr - _varIuType :: (Maybe Type)- _fromIannotatedTree :: ScalarExpr - _fromIfixedUpIdentifiersTree :: ScalarExpr - _fromIoriginalTree :: ScalarExpr - _fromIuType :: (Maybe Type)- _toIannotatedTree :: ScalarExpr - _toIfixedUpIdentifiersTree :: ScalarExpr - _toIoriginalTree :: ScalarExpr - _toIuType :: (Maybe Type)- _stsIannotatedTree :: StatementList - _stsIfixedUpIdentifiersTree :: StatementList - _stsIoriginalTree :: StatementList - _stsIproducedCat :: Catalog- _stsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 138, column 9)- _stsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 139, column 9)- _stsOlibUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 32, column 9)- _tpe =- do- fromType <- lmt _fromIuType- toType <- lmt _toIuType- errorWhen (fromType /= toType) [FromToTypesNotSame fromType toType]- case _varIuType of- Just t -> checkAssignmentValid _lhsIcat fromType t- Nothing -> return ()- return $ Pseudo Void- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 41, column 9)- _implicitVar =- case _varIannotatedTree of- Identifier a i | errs a == [UnrecognisedIdentifier i] -> True- _ -> False- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 44, column 9)- _stsOlib =- if _implicitVar- then either (const _lhsIlib) id $ do- ft <- lmt _fromIuType- lbUpdate _lhsIcat- (LBIds "local for loop variable" Nothing [((getName _varIannotatedTree),ft)]) _lhsIlib- else _lhsIlib- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 52, column 9)- _backTree =- let i = if _implicitVar- then let (Identifier a i') = _varIannotatedTree- in Identifier a { errs = []} i'- else _varIannotatedTree- in ForIntegerStatement ann_ lb_ i _fromIannotatedTree _toIannotatedTree _stsIannotatedTree- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 58, column 9)- _catUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 59, column 9)- _statementType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 113, column 27)- _fromOexpectedType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 114, column 27)- _toOexpectedType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 116, column 45)- _varOexpectedType =- Nothing- -- self rule- _annotatedTree =- ForIntegerStatement ann_ lb_ _varIannotatedTree _fromIannotatedTree _toIannotatedTree _stsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ForIntegerStatement ann_ lb_ _varIfixedUpIdentifiersTree _fromIfixedUpIdentifiersTree _toIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree- -- self rule- _originalTree =- ForIntegerStatement ann_ lb_ _varIoriginalTree _fromIoriginalTree _toIoriginalTree _stsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _varOcat =- _lhsIcat- -- copy rule (down)- _varOidenv =- _lhsIidenv- -- copy rule (down)- _varOlib =- _lhsIlib- -- copy rule (down)- _fromOcat =- _lhsIcat- -- copy rule (down)- _fromOidenv =- _lhsIidenv- -- copy rule (down)- _fromOlib =- _lhsIlib- -- copy rule (down)- _toOcat =- _lhsIcat- -- copy rule (down)- _toOidenv =- _lhsIidenv- -- copy rule (down)- _toOlib =- _lhsIlib- -- copy rule (down)- _stsOcat =- _lhsIcat- -- copy rule (down)- _stsOidenv =- _lhsIidenv- ( _varIannotatedTree,_varIfixedUpIdentifiersTree,_varIoriginalTree,_varIuType) =- var_ _varOcat _varOexpectedType _varOidenv _varOlib - ( _fromIannotatedTree,_fromIfixedUpIdentifiersTree,_fromIoriginalTree,_fromIuType) =- from_ _fromOcat _fromOexpectedType _fromOidenv _fromOlib - ( _toIannotatedTree,_toIfixedUpIdentifiersTree,_toIoriginalTree,_toIuType) =- to_ _toOcat _toOexpectedType _toOidenv _toOlib - ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =- sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_ForQueryStatement :: Annotation ->- (Maybe String) ->- T_ScalarExpr ->- T_QueryExpr ->- T_StatementList ->- T_Statement -sem_Statement_ForQueryStatement ann_ lb_ var_ sel_ sts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _stsOcatUpdates :: ([CatalogUpdate])- _stsOlibUpdates :: ([LocalBindingsUpdate])- _selOcsql :: LocalBindings- _tpe :: (Either [TypeError] Type)- _stsOlib :: LocalBindings- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _varOexpectedType :: (Maybe Type)- _selOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _varOcat :: Catalog- _varOidenv :: IDEnv- _varOlib :: LocalBindings- _selOcat :: Catalog- _selOidenv :: IDEnv- _selOlib :: LocalBindings- _stsOcat :: Catalog- _stsOidenv :: IDEnv- _varIannotatedTree :: ScalarExpr - _varIfixedUpIdentifiersTree :: ScalarExpr - _varIoriginalTree :: ScalarExpr - _varIuType :: (Maybe Type)- _selIannotatedTree :: QueryExpr - _selIcidenv :: IDEnv- _selIfixedUpIdentifiersTree :: QueryExpr - _selIlibUpdates :: ([LocalBindingsUpdate])- _selIoriginalTree :: QueryExpr - _selIuType :: (Maybe [(String,Type)])- _stsIannotatedTree :: StatementList - _stsIfixedUpIdentifiersTree :: StatementList - _stsIoriginalTree :: StatementList - _stsIproducedCat :: Catalog- _stsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 138, column 9)- _stsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 139, column 9)- _stsOlibUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 124, column 25)- _selOcsql =- emptyBindings- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 64, column 9)- _tpe =- do- st <- lmt (CompositeType <$> _selIuType)- toType <- lmt _varIuType- checkAssignmentValid _lhsIcat st toType- return $ Pseudo Void- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 74, column 9)- _stsOlib =- either (const _lhsIlib) id $ do- _ <- _tpe- st <- lmt (CompositeType <$> _selIuType)- lbUpdate _lhsIcat (LBIds "for loop record type" Nothing [(getName _varIannotatedTree,st)]) _lhsIlib- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 80, column 9)- _backTree =- ForQueryStatement ann_ lb_ _varIannotatedTree _selIannotatedTree _stsIannotatedTree- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 81, column 9)- _catUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 82, column 9)- _statementType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 116, column 45)- _varOexpectedType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 177, column 9)- _selOexpectedTypes =- []- -- self rule- _annotatedTree =- ForQueryStatement ann_ lb_ _varIannotatedTree _selIannotatedTree _stsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ForQueryStatement ann_ lb_ _varIfixedUpIdentifiersTree _selIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree- -- self rule- _originalTree =- ForQueryStatement ann_ lb_ _varIoriginalTree _selIoriginalTree _stsIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _varOcat =- _lhsIcat- -- copy rule (down)- _varOidenv =- _lhsIidenv- -- copy rule (down)- _varOlib =- _lhsIlib- -- copy rule (down)- _selOcat =- _lhsIcat- -- copy rule (down)- _selOidenv =- _lhsIidenv- -- copy rule (down)- _selOlib =- _lhsIlib- -- copy rule (down)- _stsOcat =- _lhsIcat- -- copy rule (down)- _stsOidenv =- _lhsIidenv- ( _varIannotatedTree,_varIfixedUpIdentifiersTree,_varIoriginalTree,_varIuType) =- var_ _varOcat _varOexpectedType _varOidenv _varOlib - ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =- sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib - ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =- sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_If :: Annotation ->- T_ScalarExprStatementListPairList ->- T_StatementList ->- T_Statement -sem_Statement_If ann_ cases_ els_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _elsOcatUpdates :: ([CatalogUpdate])- _elsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _casesOcat :: Catalog- _casesOidenv :: IDEnv- _casesOlib :: LocalBindings- _elsOcat :: Catalog- _elsOidenv :: IDEnv- _elsOlib :: LocalBindings- _casesIannotatedTree :: ScalarExprStatementListPairList - _casesIfixedUpIdentifiersTree :: ScalarExprStatementListPairList - _casesIoriginalTree :: ScalarExprStatementListPairList - _elsIannotatedTree :: StatementList - _elsIfixedUpIdentifiersTree :: StatementList - _elsIoriginalTree :: StatementList - _elsIproducedCat :: Catalog- _elsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/Statements.ag"(line 134, column 9)- _elsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 135, column 9)- _elsOlibUpdates =- []- -- self rule- _annotatedTree =- If ann_ _casesIannotatedTree _elsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- If ann_ _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree- -- self rule- _originalTree =- If ann_ _casesIoriginalTree _elsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _casesOcat =- _lhsIcat- -- copy rule (down)- _casesOidenv =- _lhsIidenv- -- copy rule (down)- _casesOlib =- _lhsIlib- -- copy rule (down)- _elsOcat =- _lhsIcat- -- copy rule (down)- _elsOidenv =- _lhsIidenv- -- copy rule (down)- _elsOlib =- _lhsIlib- ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree) =- cases_ _casesOcat _casesOidenv _casesOlib - ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIproducedCat,_elsIproducedLib) =- els_ _elsOcat _elsOcatUpdates _elsOidenv _elsOlib _elsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Insert :: Annotation ->- T_SQIdentifier ->- ([String]) ->- T_QueryExpr ->- T_MaybeSelectList ->- T_Statement -sem_Statement_Insert ann_ table_ targetCols_ insData_ returning_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _insDataOcsql :: LocalBindings- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _columnTypes :: (Either [TypeError] [(String,Type)])- _catUpdates :: ([CatalogUpdate])- _insDataOexpectedTypes :: ([Maybe Type])- _returningOlib :: LocalBindings- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _tableOcat :: Catalog- _tableOidenv :: IDEnv- _tableOlib :: LocalBindings- _insDataOcat :: Catalog- _insDataOidenv :: IDEnv- _insDataOlib :: LocalBindings- _returningOcat :: Catalog- _returningOidenv :: IDEnv- _tableIannotatedTree :: SQIdentifier - _tableIfixedUpIdentifiersTree :: SQIdentifier - _tableIoriginalTree :: SQIdentifier - _tableItbAnnotatedTree :: SQIdentifier - _tableItbUType :: (Maybe ([(String,Type)],[(String,Type)]))- _insDataIannotatedTree :: QueryExpr - _insDataIcidenv :: IDEnv- _insDataIfixedUpIdentifiersTree :: QueryExpr - _insDataIlibUpdates :: ([LocalBindingsUpdate])- _insDataIoriginalTree :: QueryExpr - _insDataIuType :: (Maybe [(String,Type)])- _returningIannotatedTree :: MaybeSelectList - _returningIfixedUpIdentifiersTree :: MaybeSelectList - _returningIlistType :: ([(String,Maybe Type)])- _returningIoriginalTree :: MaybeSelectList - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 125, column 14)- _insDataOcsql =- emptyBindings- -- "./TypeChecking/Dml/Insert.ag"(line 14, column 9)- _tpe =- either Left (const $ Right $ Pseudo Void) _columnTypes- -- "./TypeChecking/Dml/Insert.ag"(line 15, column 9)- _statementType =- Just (catMaybes $ getPlaceholderTypes _insDataIannotatedTree- ,fromMaybe [] $ liftList _returningIlistType)- -- "./TypeChecking/Dml/Insert.ag"(line 20, column 9)- _columnTypes =- do- atts <- lmt (allAtts <$> _tableItbUType)- pAtts <- lmt (fst <$> _tableItbUType)- tAtts <- case targetCols_ of- [] -> return pAtts- _ -> mapM (lkpA atts) targetCols_- expAtts <- lmt _insDataIuType- checkAssignmentsValid _lhsIcat (map snd expAtts) (map snd tAtts)- return tAtts- where- lkpA :: [(String,Type)] -> String -> E (String,Type)- lkpA m n = maybe (Left [UnrecognisedIdentifier n])- (\t -> Right (n,t))- $ lookup n m- -- "./TypeChecking/Dml/Insert.ag"(line 36, column 9)- _backTree =- Insert ann_ _tableItbAnnotatedTree- targetCols_- _insDataIannotatedTree- _returningIannotatedTree- -- "./TypeChecking/Dml/Insert.ag"(line 40, column 9)- _catUpdates =- []- -- "./TypeChecking/Dml/Insert.ag"(line 41, column 9)- _insDataOexpectedTypes =- maybe [] id $ do- ts <- etmt $ _columnTypes- return $ map (Just . snd) ts- -- "./TypeChecking/Dml/Insert.ag"(line 45, column 9)- _returningOlib =- either (const _lhsIlib) id $ do- atts <- lmt (allAtts <$> _tableItbUType)- lbUpdate _lhsIcat (LBIds "insert target table" (Just $ getTName _tableIannotatedTree) atts) _lhsIlib- -- self rule- _annotatedTree =- Insert ann_ _tableIannotatedTree targetCols_ _insDataIannotatedTree _returningIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Insert ann_ _tableIfixedUpIdentifiersTree targetCols_ _insDataIfixedUpIdentifiersTree _returningIfixedUpIdentifiersTree- -- self rule- _originalTree =- Insert ann_ _tableIoriginalTree targetCols_ _insDataIoriginalTree _returningIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _tableOcat =- _lhsIcat- -- copy rule (down)- _tableOidenv =- _lhsIidenv- -- copy rule (down)- _tableOlib =- _lhsIlib- -- copy rule (down)- _insDataOcat =- _lhsIcat- -- copy rule (down)- _insDataOidenv =- _lhsIidenv- -- copy rule (down)- _insDataOlib =- _lhsIlib- -- copy rule (down)- _returningOcat =- _lhsIcat- -- copy rule (down)- _returningOidenv =- _lhsIidenv- ( _tableIannotatedTree,_tableIfixedUpIdentifiersTree,_tableIoriginalTree,_tableItbAnnotatedTree,_tableItbUType) =- table_ _tableOcat _tableOidenv _tableOlib - ( _insDataIannotatedTree,_insDataIcidenv,_insDataIfixedUpIdentifiersTree,_insDataIlibUpdates,_insDataIoriginalTree,_insDataIuType) =- insData_ _insDataOcat _insDataOcsql _insDataOexpectedTypes _insDataOidenv _insDataOlib - ( _returningIannotatedTree,_returningIfixedUpIdentifiersTree,_returningIlistType,_returningIoriginalTree) =- returning_ _returningOcat _returningOidenv _returningOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Into :: Annotation ->- Bool ->- T_ScalarExprList ->- T_Statement ->- T_Statement -sem_Statement_Into ann_ strict_ into_ stmt_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _intoOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _intoOcat :: Catalog- _intoOidenv :: IDEnv- _intoOlib :: LocalBindings- _stmtOcat :: Catalog- _stmtOidenv :: IDEnv- _stmtOinProducedCat :: Catalog- _stmtOlib :: LocalBindings- _intoIannotatedTree :: ScalarExprList - _intoIfixedUpIdentifiersTree :: ScalarExprList - _intoIoriginalTree :: ScalarExprList - _intoIuType :: ([Maybe Type])- _stmtIannotatedTree :: Statement - _stmtIcatUpdates :: ([CatalogUpdate])- _stmtIfixedUpIdentifiersTree :: Statement - _stmtIlibUpdates :: ([LocalBindingsUpdate])- _stmtIoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 117, column 12)- _intoOexpectedTypes =- []- -- self rule- _annotatedTree =- Into ann_ strict_ _intoIannotatedTree _stmtIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Into ann_ strict_ _intoIfixedUpIdentifiersTree _stmtIfixedUpIdentifiersTree- -- self rule- _originalTree =- Into ann_ strict_ _intoIoriginalTree _stmtIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _intoOcat =- _lhsIcat- -- copy rule (down)- _intoOidenv =- _lhsIidenv- -- copy rule (down)- _intoOlib =- _lhsIlib- -- copy rule (down)- _stmtOcat =- _lhsIcat- -- copy rule (down)- _stmtOidenv =- _lhsIidenv- -- copy rule (down)- _stmtOinProducedCat =- _lhsIinProducedCat- -- copy rule (down)- _stmtOlib =- _lhsIlib- ( _intoIannotatedTree,_intoIfixedUpIdentifiersTree,_intoIoriginalTree,_intoIuType) =- into_ _intoOcat _intoOexpectedTypes _intoOidenv _intoOlib - ( _stmtIannotatedTree,_stmtIcatUpdates,_stmtIfixedUpIdentifiersTree,_stmtIlibUpdates,_stmtIoriginalTree) =- stmt_ _stmtOcat _stmtOidenv _stmtOinProducedCat _stmtOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_LoopStatement :: Annotation ->- (Maybe String) ->- T_StatementList ->- T_Statement -sem_Statement_LoopStatement ann_ lb_ sts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _stsOcatUpdates :: ([CatalogUpdate])- _stsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _stsOcat :: Catalog- _stsOidenv :: IDEnv- _stsOlib :: LocalBindings- _stsIannotatedTree :: StatementList - _stsIfixedUpIdentifiersTree :: StatementList - _stsIoriginalTree :: StatementList - _stsIproducedCat :: Catalog- _stsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/Statements.ag"(line 138, column 9)- _stsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 139, column 9)- _stsOlibUpdates =- []- -- self rule- _annotatedTree =- LoopStatement ann_ lb_ _stsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- LoopStatement ann_ lb_ _stsIfixedUpIdentifiersTree- -- self rule- _originalTree =- LoopStatement ann_ lb_ _stsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _stsOcat =- _lhsIcat- -- copy rule (down)- _stsOidenv =- _lhsIidenv- -- copy rule (down)- _stsOlib =- _lhsIlib- ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =- sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Notify :: Annotation ->- String ->- T_Statement -sem_Statement_Notify ann_ name_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- Notify ann_ name_- -- self rule- _fixedUpIdentifiersTree =- Notify ann_ name_- -- self rule- _originalTree =- Notify ann_ name_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_NullStatement :: Annotation ->- T_Statement -sem_Statement_NullStatement ann_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- NullStatement ann_- -- self rule- _fixedUpIdentifiersTree =- NullStatement ann_- -- self rule- _originalTree =- NullStatement ann_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Perform :: Annotation ->- T_ScalarExpr ->- T_Statement -sem_Statement_Perform ann_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 112, column 9)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- Perform ann_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Perform ann_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- Perform ann_ _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_QueryStatement :: Annotation ->- T_QueryExpr ->- T_Statement -sem_Statement_QueryStatement ann_ ex_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _catUpdates :: ([CatalogUpdate])- _exOcsql :: LocalBindings- _exOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exOcat :: Catalog- _exOidenv :: IDEnv- _exOlib :: LocalBindings- _exIannotatedTree :: QueryExpr - _exIcidenv :: IDEnv- _exIfixedUpIdentifiersTree :: QueryExpr - _exIlibUpdates :: ([LocalBindingsUpdate])- _exIoriginalTree :: QueryExpr - _exIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 14, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 15, column 9)- _statementType =- do- pt <- sequence $ getPlaceholderTypes _exIannotatedTree- st <- _exIuType- return (pt- ,case st of- [(_,(Pseudo Void))] -> []- t -> t)- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 23, column 9)- _backTree =- QueryStatement ann_ _exIannotatedTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 24, column 9)- _catUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 126, column 22)- _exOcsql =- emptyBindings- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 137, column 9)- _libUpdates =- _exIlibUpdates- -- "./TypeChecking/ParameterizedStatements.ag"(line 178, column 22)- _exOexpectedTypes =- []- -- self rule- _annotatedTree =- QueryStatement ann_ _exIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- QueryStatement ann_ _exIfixedUpIdentifiersTree- -- self rule- _originalTree =- QueryStatement ann_ _exIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exOcat =- _lhsIcat- -- copy rule (down)- _exOidenv =- _lhsIidenv- -- copy rule (down)- _exOlib =- _lhsIlib- ( _exIannotatedTree,_exIcidenv,_exIfixedUpIdentifiersTree,_exIlibUpdates,_exIoriginalTree,_exIuType) =- ex_ _exOcat _exOcsql _exOexpectedTypes _exOidenv _exOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Raise :: Annotation ->- RaiseType ->- String ->- T_ScalarExprList ->- T_Statement -sem_Statement_Raise ann_ level_ message_ args_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _argsOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _argsOcat :: Catalog- _argsOidenv :: IDEnv- _argsOlib :: LocalBindings- _argsIannotatedTree :: ScalarExprList - _argsIfixedUpIdentifiersTree :: ScalarExprList - _argsIoriginalTree :: ScalarExprList - _argsIuType :: ([Maybe Type])- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 154, column 13)- _argsOexpectedTypes =- []- -- self rule- _annotatedTree =- Raise ann_ level_ message_ _argsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Raise ann_ level_ message_ _argsIfixedUpIdentifiersTree- -- self rule- _originalTree =- Raise ann_ level_ message_ _argsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _argsOcat =- _lhsIcat- -- copy rule (down)- _argsOidenv =- _lhsIidenv- -- copy rule (down)- _argsOlib =- _lhsIlib- ( _argsIannotatedTree,_argsIfixedUpIdentifiersTree,_argsIoriginalTree,_argsIuType) =- args_ _argsOcat _argsOexpectedTypes _argsOidenv _argsOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Return :: Annotation ->- T_MaybeScalarExpr ->- T_Statement -sem_Statement_Return ann_ value_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _catUpdates :: ([CatalogUpdate])- _statementType :: (Maybe StatementType)- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _valueOcat :: Catalog- _valueOidenv :: IDEnv- _valueOlib :: LocalBindings- _valueIannotatedTree :: MaybeScalarExpr - _valueIfixedUpIdentifiersTree :: MaybeScalarExpr - _valueIoriginalTree :: MaybeScalarExpr - _valueIuType :: (Maybe Type)- -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 12, column 9)- _tpe =- maybe (Right $ Pseudo Void) Right _valueIuType- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 13, column 9)- _backTree =- Return ann_ _valueIannotatedTree- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 14, column 9)- _catUpdates =- []- -- "./TypeChecking/Plpgsql/Plpgsql.ag"(line 15, column 9)- _statementType =- Nothing- -- self rule- _annotatedTree =- Return ann_ _valueIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Return ann_ _valueIfixedUpIdentifiersTree- -- self rule- _originalTree =- Return ann_ _valueIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _valueOcat =- _lhsIcat- -- copy rule (down)- _valueOidenv =- _lhsIidenv- -- copy rule (down)- _valueOlib =- _lhsIlib- ( _valueIannotatedTree,_valueIfixedUpIdentifiersTree,_valueIoriginalTree,_valueIuType) =- value_ _valueOcat _valueOidenv _valueOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_ReturnNext :: Annotation ->- T_ScalarExpr ->- T_Statement -sem_Statement_ReturnNext ann_ expr_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 112, column 9)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- ReturnNext ann_ _exprIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ReturnNext ann_ _exprIfixedUpIdentifiersTree- -- self rule- _originalTree =- ReturnNext ann_ _exprIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_ReturnQuery :: Annotation ->- T_QueryExpr ->- T_Statement -sem_Statement_ReturnQuery ann_ sel_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _selOcsql :: LocalBindings- _selOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _selOcat :: Catalog- _selOidenv :: IDEnv- _selOlib :: LocalBindings- _selIannotatedTree :: QueryExpr - _selIcidenv :: IDEnv- _selIfixedUpIdentifiersTree :: QueryExpr - _selIlibUpdates :: ([LocalBindingsUpdate])- _selIoriginalTree :: QueryExpr - _selIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 127, column 19)- _selOcsql =- emptyBindings- -- "./TypeChecking/ParameterizedStatements.ag"(line 177, column 9)- _selOexpectedTypes =- []- -- self rule- _annotatedTree =- ReturnQuery ann_ _selIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ReturnQuery ann_ _selIfixedUpIdentifiersTree- -- self rule- _originalTree =- ReturnQuery ann_ _selIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _selOcat =- _lhsIcat- -- copy rule (down)- _selOidenv =- _lhsIidenv- -- copy rule (down)- _selOlib =- _lhsIlib- ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =- sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Set :: Annotation ->- String ->- ([SetValue]) ->- T_Statement -sem_Statement_Set ann_ name_ values_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- Set ann_ name_ values_- -- self rule- _fixedUpIdentifiersTree =- Set ann_ name_ values_- -- self rule- _originalTree =- Set ann_ name_ values_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Truncate :: Annotation ->- ([String]) ->- RestartIdentity ->- Cascade ->- T_Statement -sem_Statement_Truncate ann_ tables_ restartIdentity_ cascade_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- self rule- _annotatedTree =- Truncate ann_ tables_ restartIdentity_ cascade_- -- self rule- _fixedUpIdentifiersTree =- Truncate ann_ tables_ restartIdentity_ cascade_- -- self rule- _originalTree =- Truncate ann_ tables_ restartIdentity_ cascade_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_Update :: Annotation ->- T_SQIdentifier ->- T_ScalarExprList ->- T_TableRefList ->- T_MaybeBoolExpr ->- T_MaybeSelectList ->- T_Statement -sem_Statement_Update ann_ table_ assigns_ fromList_ whr_ returning_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOannotatedTree :: Statement - _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _tpe :: (Either [TypeError] Type)- _statementType :: (Maybe StatementType)- _catUpdates :: ([CatalogUpdate])- _whrOlib :: LocalBindings- _assignsOlib :: LocalBindings- _returningOlib :: LocalBindings- _assignsOexpectedTypes :: ([Maybe Type])- _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _tableOcat :: Catalog- _tableOidenv :: IDEnv- _tableOlib :: LocalBindings- _assignsOcat :: Catalog- _assignsOidenv :: IDEnv- _fromListOcat :: Catalog- _fromListOidenv :: IDEnv- _fromListOlib :: LocalBindings- _whrOcat :: Catalog- _whrOidenv :: IDEnv- _returningOcat :: Catalog- _returningOidenv :: IDEnv- _tableIannotatedTree :: SQIdentifier - _tableIfixedUpIdentifiersTree :: SQIdentifier - _tableIoriginalTree :: SQIdentifier - _tableItbAnnotatedTree :: SQIdentifier - _tableItbUType :: (Maybe ([(String,Type)],[(String,Type)]))- _assignsIannotatedTree :: ScalarExprList - _assignsIfixedUpIdentifiersTree :: ScalarExprList - _assignsIoriginalTree :: ScalarExprList - _assignsIuType :: ([Maybe Type])- _fromListIannotatedTree :: TableRefList - _fromListIfixedUpIdentifiersTree :: TableRefList - _fromListIlibUpdates :: ([LocalBindingsUpdate])- _fromListInewLib2 :: LocalBindings- _fromListIoriginalTree :: TableRefList - _fromListItrefIDs :: ([(String,[String])])- _whrIannotatedTree :: MaybeBoolExpr - _whrIfixedUpIdentifiersTree :: MaybeBoolExpr - _whrIoriginalTree :: MaybeBoolExpr - _returningIannotatedTree :: MaybeSelectList - _returningIfixedUpIdentifiersTree :: MaybeSelectList - _returningIlistType :: ([(String,Maybe Type)])- _returningIoriginalTree :: MaybeSelectList - -- "./TypeChecking/Statements.ag"(line 82, column 9)- _lhsOannotatedTree =- updateAnnotation- (\a -> a {stType = _statementType- ,catUpd = _catUpdates }) $- setTypeAddErrors _tpe _backTree- -- "./TypeChecking/Statements.ag"(line 88, column 9)- _lhsOcatUpdates =- _catUpdates- -- "./TypeChecking/Statements.ag"(line 89, column 9)- _lhsOlibUpdates =- _libUpdates- -- "./TypeChecking/Statements.ag"(line 94, column 9)- _libUpdates =- []- -- "./TypeChecking/Dml/Update.ag"(line 13, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/Dml/Update.ag"(line 18, column 9)- _statementType =- do- pt <- sequence $ getPlaceholderTypes _assignsIannotatedTree- ++ getPlaceholderTypes _whrIannotatedTree- return (pt,fromMaybe [] $ liftList _returningIlistType)- -- "./TypeChecking/Dml/Update.ag"(line 24, column 9)- _backTree =- Update ann_- _tableItbAnnotatedTree- _assignsIannotatedTree- _fromListIannotatedTree- _whrIannotatedTree- _returningIannotatedTree- -- "./TypeChecking/Dml/Update.ag"(line 30, column 9)- _catUpdates =- []- -- "./TypeChecking/Dml/Update.ag"(line 35, column 9)- _lib =- either (const _lhsIlib) id $ do- a <- lmt (allAtts <$> _tableItbUType)- lbUpdate _lhsIcat (LBIds "updated table attrs" (Just $ getTName _tableIannotatedTree) a) _lhsIlib- -- "./TypeChecking/Dml/Update.ag"(line 39, column 9)- _whrOlib =- _lib- -- "./TypeChecking/Dml/Update.ag"(line 40, column 9)- _assignsOlib =- _lib- -- "./TypeChecking/Dml/Update.ag"(line 41, column 9)- _returningOlib =- _lib- -- "./TypeChecking/ParameterizedStatements.ag"(line 155, column 14)- _assignsOexpectedTypes =- []- -- self rule- _annotatedTree =- Update ann_ _tableIannotatedTree _assignsIannotatedTree _fromListIannotatedTree _whrIannotatedTree _returningIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Update ann_ _tableIfixedUpIdentifiersTree _assignsIfixedUpIdentifiersTree _fromListIfixedUpIdentifiersTree _whrIfixedUpIdentifiersTree _returningIfixedUpIdentifiersTree- -- self rule- _originalTree =- Update ann_ _tableIoriginalTree _assignsIoriginalTree _fromListIoriginalTree _whrIoriginalTree _returningIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _tableOcat =- _lhsIcat- -- copy rule (down)- _tableOidenv =- _lhsIidenv- -- copy rule (from local)- _tableOlib =- _lib- -- copy rule (down)- _assignsOcat =- _lhsIcat- -- copy rule (down)- _assignsOidenv =- _lhsIidenv- -- copy rule (down)- _fromListOcat =- _lhsIcat- -- copy rule (down)- _fromListOidenv =- _lhsIidenv- -- copy rule (from local)- _fromListOlib =- _lib- -- copy rule (down)- _whrOcat =- _lhsIcat- -- copy rule (down)- _whrOidenv =- _lhsIidenv- -- copy rule (down)- _returningOcat =- _lhsIcat- -- copy rule (down)- _returningOidenv =- _lhsIidenv- ( _tableIannotatedTree,_tableIfixedUpIdentifiersTree,_tableIoriginalTree,_tableItbAnnotatedTree,_tableItbUType) =- table_ _tableOcat _tableOidenv _tableOlib - ( _assignsIannotatedTree,_assignsIfixedUpIdentifiersTree,_assignsIoriginalTree,_assignsIuType) =- assigns_ _assignsOcat _assignsOexpectedTypes _assignsOidenv _assignsOlib - ( _fromListIannotatedTree,_fromListIfixedUpIdentifiersTree,_fromListIlibUpdates,_fromListInewLib2,_fromListIoriginalTree,_fromListItrefIDs) =- fromList_ _fromListOcat _fromListOidenv _fromListOlib - ( _whrIannotatedTree,_whrIfixedUpIdentifiersTree,_whrIoriginalTree) =- whr_ _whrOcat _whrOidenv _whrOlib - ( _returningIannotatedTree,_returningIfixedUpIdentifiersTree,_returningIlistType,_returningIoriginalTree) =- returning_ _returningOcat _returningOidenv _returningOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))-sem_Statement_WhileStatement :: Annotation ->- (Maybe String) ->- T_ScalarExpr ->- T_StatementList ->- T_Statement -sem_Statement_WhileStatement ann_ lb_ expr_ sts_ =- (\ _lhsIcat- _lhsIidenv- _lhsIinProducedCat- _lhsIlib ->- (let _lhsOcatUpdates :: ([CatalogUpdate])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _stsOcatUpdates :: ([CatalogUpdate])- _stsOlibUpdates :: ([LocalBindingsUpdate])- _exprOexpectedType :: (Maybe Type)- _lhsOannotatedTree :: Statement - _lhsOfixedUpIdentifiersTree :: Statement - _lhsOoriginalTree :: Statement - _exprOcat :: Catalog- _exprOidenv :: IDEnv- _exprOlib :: LocalBindings- _stsOcat :: Catalog- _stsOidenv :: IDEnv- _stsOlib :: LocalBindings- _exprIannotatedTree :: ScalarExpr - _exprIfixedUpIdentifiersTree :: ScalarExpr - _exprIoriginalTree :: ScalarExpr - _exprIuType :: (Maybe Type)- _stsIannotatedTree :: StatementList - _stsIfixedUpIdentifiersTree :: StatementList - _stsIoriginalTree :: StatementList - _stsIproducedCat :: Catalog- _stsIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 116, column 9)- _lhsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 117, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/Statements.ag"(line 138, column 9)- _stsOcatUpdates =- []- -- "./TypeChecking/Statements.ag"(line 139, column 9)- _stsOlibUpdates =- []- -- "./TypeChecking/ParameterizedStatements.ag"(line 112, column 9)- _exprOexpectedType =- Nothing- -- self rule- _annotatedTree =- WhileStatement ann_ lb_ _exprIannotatedTree _stsIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- WhileStatement ann_ lb_ _exprIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree- -- self rule- _originalTree =- WhileStatement ann_ lb_ _exprIoriginalTree _stsIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _exprOcat =- _lhsIcat- -- copy rule (down)- _exprOidenv =- _lhsIidenv- -- copy rule (down)- _exprOlib =- _lhsIlib- -- copy rule (down)- _stsOcat =- _lhsIcat- -- copy rule (down)- _stsOidenv =- _lhsIidenv- -- copy rule (down)- _stsOlib =- _lhsIlib- ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =- expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib - ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =- sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))--- StatementList ------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- catUpdates : [CatalogUpdate]- idenv : IDEnv- lib : LocalBindings- libUpdates : [LocalBindingsUpdate]- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - producedCat : Catalog- producedLib : LocalBindings- alternatives:- alternative Cons:- child hd : Statement - child tl : StatementList - visit 0:- local newCat : _- local newLib : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local newCat : _- local newLib : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type StatementList = [Statement ]--- cata-sem_StatementList :: StatementList ->- T_StatementList -sem_StatementList list =- (Prelude.foldr sem_StatementList_Cons sem_StatementList_Nil (Prelude.map sem_Statement list) )--- semantic domain-type T_StatementList = Catalog ->- ([CatalogUpdate]) ->- IDEnv ->- LocalBindings ->- ([LocalBindingsUpdate]) ->- ( StatementList ,StatementList ,StatementList ,Catalog,LocalBindings)-data Inh_StatementList = Inh_StatementList {cat_Inh_StatementList :: Catalog,catUpdates_Inh_StatementList :: ([CatalogUpdate]),idenv_Inh_StatementList :: IDEnv,lib_Inh_StatementList :: LocalBindings,libUpdates_Inh_StatementList :: ([LocalBindingsUpdate])}-data Syn_StatementList = Syn_StatementList {annotatedTree_Syn_StatementList :: StatementList ,fixedUpIdentifiersTree_Syn_StatementList :: StatementList ,originalTree_Syn_StatementList :: StatementList ,producedCat_Syn_StatementList :: Catalog,producedLib_Syn_StatementList :: LocalBindings}-wrap_StatementList :: T_StatementList ->- Inh_StatementList ->- Syn_StatementList -wrap_StatementList sem (Inh_StatementList _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib _lhsIlibUpdates ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib) = sem _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib _lhsIlibUpdates - in (Syn_StatementList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOproducedCat _lhsOproducedLib ))-sem_StatementList_Cons :: T_Statement ->- T_StatementList ->- T_StatementList -sem_StatementList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIcatUpdates- _lhsIidenv- _lhsIlib- _lhsIlibUpdates ->- (let _hdOcat :: Catalog- _tlOcat :: Catalog- _hdOlib :: LocalBindings- _tlOlib :: LocalBindings- _lhsOproducedCat :: Catalog- _lhsOproducedLib :: LocalBindings- _tlOcatUpdates :: ([CatalogUpdate])- _tlOlibUpdates :: ([LocalBindingsUpdate])- _hdOinProducedCat :: Catalog- _lhsOannotatedTree :: StatementList - _lhsOfixedUpIdentifiersTree :: StatementList - _lhsOoriginalTree :: StatementList - _hdOidenv :: IDEnv- _tlOidenv :: IDEnv- _hdIannotatedTree :: Statement - _hdIcatUpdates :: ([CatalogUpdate])- _hdIfixedUpIdentifiersTree :: Statement - _hdIlibUpdates :: ([LocalBindingsUpdate])- _hdIoriginalTree :: Statement - _tlIannotatedTree :: StatementList - _tlIfixedUpIdentifiersTree :: StatementList - _tlIoriginalTree :: StatementList - _tlIproducedCat :: Catalog- _tlIproducedLib :: LocalBindings- -- "./TypeChecking/Statements.ag"(line 56, column 9)- _newCat =- fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates- -- "./TypeChecking/Statements.ag"(line 57, column 9)- _newLib =- fromRight _lhsIlib $ foldM (flip $ lbUpdate _lhsIcat) _lhsIlib _lhsIlibUpdates- -- "./TypeChecking/Statements.ag"(line 59, column 9)- _hdOcat =- _newCat- -- "./TypeChecking/Statements.ag"(line 60, column 9)- _tlOcat =- _newCat- -- "./TypeChecking/Statements.ag"(line 61, column 9)- _hdOlib =- _newLib- -- "./TypeChecking/Statements.ag"(line 62, column 9)- _tlOlib =- _newLib- -- "./TypeChecking/Statements.ag"(line 66, column 9)- _lhsOproducedCat =- _tlIproducedCat- -- "./TypeChecking/Statements.ag"(line 67, column 9)- _lhsOproducedLib =- _tlIproducedLib- -- "./TypeChecking/Statements.ag"(line 70, column 9)- _tlOcatUpdates =- _hdIcatUpdates- -- "./TypeChecking/Statements.ag"(line 71, column 9)- _tlOlibUpdates =- _hdIlibUpdates- -- "./TypeChecking/Statements.ag"(line 97, column 12)- _hdOinProducedCat =- _tlIproducedCat- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _tlOidenv =- _lhsIidenv- ( _hdIannotatedTree,_hdIcatUpdates,_hdIfixedUpIdentifiersTree,_hdIlibUpdates,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOinProducedCat _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIproducedCat,_tlIproducedLib) =- tl_ _tlOcat _tlOcatUpdates _tlOidenv _tlOlib _tlOlibUpdates - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib)))-sem_StatementList_Nil :: T_StatementList -sem_StatementList_Nil =- (\ _lhsIcat- _lhsIcatUpdates- _lhsIidenv- _lhsIlib- _lhsIlibUpdates ->- (let _lhsOproducedCat :: Catalog- _lhsOproducedLib :: LocalBindings- _lhsOannotatedTree :: StatementList - _lhsOfixedUpIdentifiersTree :: StatementList - _lhsOoriginalTree :: StatementList - -- "./TypeChecking/Statements.ag"(line 56, column 9)- _newCat =- fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates- -- "./TypeChecking/Statements.ag"(line 57, column 9)- _newLib =- fromRight _lhsIlib $ foldM (flip $ lbUpdate _lhsIcat) _lhsIlib _lhsIlibUpdates- -- "./TypeChecking/Statements.ag"(line 73, column 9)- _lhsOproducedCat =- _newCat- -- "./TypeChecking/Statements.ag"(line 74, column 9)- _lhsOproducedLib =- _newLib- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib)))--- StringTypeNameListPair ---------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - fnSig : (String,[Maybe Type])- originalTree : SELF - alternatives:- alternative Tuple:- child x1 : {String}- child x2 : TypeNameList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type StringTypeNameListPair = ( (String),TypeNameList )--- cata-sem_StringTypeNameListPair :: StringTypeNameListPair ->- T_StringTypeNameListPair -sem_StringTypeNameListPair ( x1,x2) =- (sem_StringTypeNameListPair_Tuple x1 (sem_TypeNameList x2 ) )--- semantic domain-type T_StringTypeNameListPair = Catalog ->- IDEnv ->- LocalBindings ->- ( StringTypeNameListPair ,StringTypeNameListPair ,((String,[Maybe Type])),StringTypeNameListPair )-data Inh_StringTypeNameListPair = Inh_StringTypeNameListPair {cat_Inh_StringTypeNameListPair :: Catalog,idenv_Inh_StringTypeNameListPair :: IDEnv,lib_Inh_StringTypeNameListPair :: LocalBindings}-data Syn_StringTypeNameListPair = Syn_StringTypeNameListPair {annotatedTree_Syn_StringTypeNameListPair :: StringTypeNameListPair ,fixedUpIdentifiersTree_Syn_StringTypeNameListPair :: StringTypeNameListPair ,fnSig_Syn_StringTypeNameListPair :: ((String,[Maybe Type])),originalTree_Syn_StringTypeNameListPair :: StringTypeNameListPair }-wrap_StringTypeNameListPair :: T_StringTypeNameListPair ->- Inh_StringTypeNameListPair ->- Syn_StringTypeNameListPair -wrap_StringTypeNameListPair sem (Inh_StringTypeNameListPair _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSig,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_StringTypeNameListPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOfnSig _lhsOoriginalTree ))-sem_StringTypeNameListPair_Tuple :: String ->- T_TypeNameList ->- T_StringTypeNameListPair -sem_StringTypeNameListPair_Tuple x1_ x2_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOfnSig :: ((String,[Maybe Type]))- _lhsOannotatedTree :: StringTypeNameListPair - _lhsOfixedUpIdentifiersTree :: StringTypeNameListPair - _lhsOoriginalTree :: StringTypeNameListPair - _x2Ocat :: Catalog- _x2Oidenv :: IDEnv- _x2Olib :: LocalBindings- _x2IannotatedTree :: TypeNameList - _x2IfixedUpIdentifiersTree :: TypeNameList - _x2InamedTypes :: ([Maybe Type])- _x2IoriginalTree :: TypeNameList - -- "./TypeChecking/Ddl/Drops.ag"(line 32, column 13)- _lhsOfnSig =- (x1_, _x2InamedTypes)- -- self rule- _annotatedTree =- (x1_,_x2IannotatedTree)- -- self rule- _fixedUpIdentifiersTree =- (x1_,_x2IfixedUpIdentifiersTree)- -- self rule- _originalTree =- (x1_,_x2IoriginalTree)- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _x2Ocat =- _lhsIcat- -- copy rule (down)- _x2Oidenv =- _lhsIidenv- -- copy rule (down)- _x2Olib =- _lhsIlib- ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2InamedTypes,_x2IoriginalTree) =- x2_ _x2Ocat _x2Oidenv _x2Olib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSig,_lhsOoriginalTree)))--- StringTypeNameListPairList -----------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - fnSigs : [(String,[Maybe Type])]- originalTree : SELF - alternatives:- alternative Cons:- child hd : StringTypeNameListPair - child tl : StringTypeNameListPairList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type StringTypeNameListPairList = [StringTypeNameListPair ]--- cata-sem_StringTypeNameListPairList :: StringTypeNameListPairList ->- T_StringTypeNameListPairList -sem_StringTypeNameListPairList list =- (Prelude.foldr sem_StringTypeNameListPairList_Cons sem_StringTypeNameListPairList_Nil (Prelude.map sem_StringTypeNameListPair list) )--- semantic domain-type T_StringTypeNameListPairList = Catalog ->- IDEnv ->- LocalBindings ->- ( StringTypeNameListPairList ,StringTypeNameListPairList ,([(String,[Maybe Type])]),StringTypeNameListPairList )-data Inh_StringTypeNameListPairList = Inh_StringTypeNameListPairList {cat_Inh_StringTypeNameListPairList :: Catalog,idenv_Inh_StringTypeNameListPairList :: IDEnv,lib_Inh_StringTypeNameListPairList :: LocalBindings}-data Syn_StringTypeNameListPairList = Syn_StringTypeNameListPairList {annotatedTree_Syn_StringTypeNameListPairList :: StringTypeNameListPairList ,fixedUpIdentifiersTree_Syn_StringTypeNameListPairList :: StringTypeNameListPairList ,fnSigs_Syn_StringTypeNameListPairList :: ([(String,[Maybe Type])]),originalTree_Syn_StringTypeNameListPairList :: StringTypeNameListPairList }-wrap_StringTypeNameListPairList :: T_StringTypeNameListPairList ->- Inh_StringTypeNameListPairList ->- Syn_StringTypeNameListPairList -wrap_StringTypeNameListPairList sem (Inh_StringTypeNameListPairList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSigs,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_StringTypeNameListPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOfnSigs _lhsOoriginalTree ))-sem_StringTypeNameListPairList_Cons :: T_StringTypeNameListPair ->- T_StringTypeNameListPairList ->- T_StringTypeNameListPairList -sem_StringTypeNameListPairList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOfnSigs :: ([(String,[Maybe Type])])- _lhsOannotatedTree :: StringTypeNameListPairList - _lhsOfixedUpIdentifiersTree :: StringTypeNameListPairList - _lhsOoriginalTree :: StringTypeNameListPairList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: StringTypeNameListPair - _hdIfixedUpIdentifiersTree :: StringTypeNameListPair - _hdIfnSig :: ((String,[Maybe Type]))- _hdIoriginalTree :: StringTypeNameListPair - _tlIannotatedTree :: StringTypeNameListPairList - _tlIfixedUpIdentifiersTree :: StringTypeNameListPairList - _tlIfnSigs :: ([(String,[Maybe Type])])- _tlIoriginalTree :: StringTypeNameListPairList - -- "./TypeChecking/Ddl/Drops.ag"(line 27, column 12)- _lhsOfnSigs =- _hdIfnSig : _tlIfnSigs- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIfnSig,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIfnSigs,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSigs,_lhsOoriginalTree)))-sem_StringTypeNameListPairList_Nil :: T_StringTypeNameListPairList -sem_StringTypeNameListPairList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOfnSigs :: ([(String,[Maybe Type])])- _lhsOannotatedTree :: StringTypeNameListPairList - _lhsOfixedUpIdentifiersTree :: StringTypeNameListPairList - _lhsOoriginalTree :: StringTypeNameListPairList - -- "./TypeChecking/Ddl/Drops.ag"(line 28, column 11)- _lhsOfnSigs =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSigs,_lhsOoriginalTree)))--- TableAlias ---------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- expectedNumCols : Maybe Int- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative FullAlias:- child ann : {Annotation}- child tb : {String}- child cols : {[String]}- visit 0:- local errs : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative NoAlias:- child ann : {Annotation}- visit 0:- local backTree : _- local errs : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative TableAlias:- child ann : {Annotation}- child tb : {String}- visit 0:- local backTree : _- local errs : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data TableAlias = FullAlias (Annotation) (String) (([String])) - | NoAlias (Annotation) - | TableAlias (Annotation) (String) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_TableAlias :: TableAlias ->- T_TableAlias -sem_TableAlias (FullAlias _ann _tb _cols ) =- (sem_TableAlias_FullAlias _ann _tb _cols )-sem_TableAlias (NoAlias _ann ) =- (sem_TableAlias_NoAlias _ann )-sem_TableAlias (TableAlias _ann _tb ) =- (sem_TableAlias_TableAlias _ann _tb )--- semantic domain-type T_TableAlias = Catalog ->- (Maybe Int) ->- IDEnv ->- LocalBindings ->- ( TableAlias ,TableAlias ,TableAlias )-data Inh_TableAlias = Inh_TableAlias {cat_Inh_TableAlias :: Catalog,expectedNumCols_Inh_TableAlias :: (Maybe Int),idenv_Inh_TableAlias :: IDEnv,lib_Inh_TableAlias :: LocalBindings}-data Syn_TableAlias = Syn_TableAlias {annotatedTree_Syn_TableAlias :: TableAlias ,fixedUpIdentifiersTree_Syn_TableAlias :: TableAlias ,originalTree_Syn_TableAlias :: TableAlias }-wrap_TableAlias :: T_TableAlias ->- Inh_TableAlias ->- Syn_TableAlias -wrap_TableAlias sem (Inh_TableAlias _lhsIcat _lhsIexpectedNumCols _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIexpectedNumCols _lhsIidenv _lhsIlib - in (Syn_TableAlias _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_TableAlias_FullAlias :: Annotation ->- String ->- ([String]) ->- T_TableAlias -sem_TableAlias_FullAlias ann_ tb_ cols_ =- (\ _lhsIcat- _lhsIexpectedNumCols- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: TableAlias - _lhsOfixedUpIdentifiersTree :: TableAlias - _lhsOoriginalTree :: TableAlias - -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 286, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 288, column 9)- _errs =- case _lhsIexpectedNumCols of- Nothing -> []- Just n -> if n == length cols_- then []- else [WrongNumberOfAliasCols n $ length cols_]- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 293, column 9)- _backTree =- FullAlias ann_ tb_ cols_- -- self rule- _annotatedTree =- FullAlias ann_ tb_ cols_- -- self rule- _fixedUpIdentifiersTree =- FullAlias ann_ tb_ cols_- -- self rule- _originalTree =- FullAlias ann_ tb_ cols_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_TableAlias_NoAlias :: Annotation ->- T_TableAlias -sem_TableAlias_NoAlias ann_ =- (\ _lhsIcat- _lhsIexpectedNumCols- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: TableAlias - _lhsOfixedUpIdentifiersTree :: TableAlias - _lhsOoriginalTree :: TableAlias - -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 286, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 296, column 15)- _backTree =- NoAlias ann_- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 297, column 15)- _errs =- []- -- self rule- _annotatedTree =- NoAlias ann_- -- self rule- _fixedUpIdentifiersTree =- NoAlias ann_- -- self rule- _originalTree =- NoAlias ann_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_TableAlias_TableAlias :: Annotation ->- String ->- T_TableAlias -sem_TableAlias_TableAlias ann_ tb_ =- (\ _lhsIcat- _lhsIexpectedNumCols- _lhsIidenv- _lhsIlib ->- (let _lhsOannotatedTree :: TableAlias - _lhsOfixedUpIdentifiersTree :: TableAlias - _lhsOoriginalTree :: TableAlias - -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 286, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 294, column 18)- _backTree =- TableAlias ann_ tb_- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 295, column 18)- _errs =- []- -- self rule- _annotatedTree =- TableAlias ann_ tb_- -- self rule- _fixedUpIdentifiersTree =- TableAlias ann_ tb_- -- self rule- _originalTree =- TableAlias ann_ tb_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- TableRef -----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - libUpdates : [LocalBindingsUpdate]- newLib2 : LocalBindings- originalTree : SELF - trefIDs : [(String,[String])]- alternatives:- alternative FunTref:- child ann : {Annotation}- child fn : ScalarExpr - child alias : TableAlias - visit 0:- local _tup2 : {([(String,[String])],TableRef)}- local errs : _- local eqfunIdens : {Either [TypeError] (String,[(String,Type)])}- local qfunIdens : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative JoinTref:- child ann : {Annotation}- child tbl : TableRef - child nat : {Natural}- child joinType : {JoinType}- child tbl1 : TableRef - child onExpr : OnExpr - child alias : TableAlias - visit 0:- local _tup3 : _- local trefIDs : _- local errs : _- local joinErrors : _- local libUpdates : _- local newLib : {Either [TypeError] LocalBindings}- local newLib2 : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative SubTref:- child ann : {Annotation}- child sel : QueryExpr - child alias : TableAlias - visit 0:- local _tup4 : {([(String,[String])],TableRef)}- local errs : _- local selectAttrs : {Either [TypeError] [(String,Type)]}- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Tref:- child ann : {Annotation}- child tbl : SQIdentifier - child alias : TableAlias - visit 0:- local _tup5 : {([(String,[String])],TableRef)}- local errs : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data TableRef = FunTref (Annotation) (ScalarExpr ) (TableAlias ) - | JoinTref (Annotation) (TableRef ) (Natural) (JoinType) (TableRef ) (OnExpr ) (TableAlias ) - | SubTref (Annotation) (QueryExpr ) (TableAlias ) - | Tref (Annotation) (SQIdentifier ) (TableAlias ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_TableRef :: TableRef ->- T_TableRef -sem_TableRef (FunTref _ann _fn _alias ) =- (sem_TableRef_FunTref _ann (sem_ScalarExpr _fn ) (sem_TableAlias _alias ) )-sem_TableRef (JoinTref _ann _tbl _nat _joinType _tbl1 _onExpr _alias ) =- (sem_TableRef_JoinTref _ann (sem_TableRef _tbl ) _nat _joinType (sem_TableRef _tbl1 ) (sem_OnExpr _onExpr ) (sem_TableAlias _alias ) )-sem_TableRef (SubTref _ann _sel _alias ) =- (sem_TableRef_SubTref _ann (sem_QueryExpr _sel ) (sem_TableAlias _alias ) )-sem_TableRef (Tref _ann _tbl _alias ) =- (sem_TableRef_Tref _ann (sem_SQIdentifier _tbl ) (sem_TableAlias _alias ) )--- semantic domain-type T_TableRef = Catalog ->- IDEnv ->- LocalBindings ->- ( TableRef ,TableRef ,([LocalBindingsUpdate]),LocalBindings,TableRef ,([(String,[String])]))-data Inh_TableRef = Inh_TableRef {cat_Inh_TableRef :: Catalog,idenv_Inh_TableRef :: IDEnv,lib_Inh_TableRef :: LocalBindings}-data Syn_TableRef = Syn_TableRef {annotatedTree_Syn_TableRef :: TableRef ,fixedUpIdentifiersTree_Syn_TableRef :: TableRef ,libUpdates_Syn_TableRef :: ([LocalBindingsUpdate]),newLib2_Syn_TableRef :: LocalBindings,originalTree_Syn_TableRef :: TableRef ,trefIDs_Syn_TableRef :: ([(String,[String])])}-wrap_TableRef :: T_TableRef ->- Inh_TableRef ->- Syn_TableRef -wrap_TableRef sem (Inh_TableRef _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_TableRef _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOnewLib2 _lhsOoriginalTree _lhsOtrefIDs ))-sem_TableRef_FunTref :: Annotation ->- T_ScalarExpr ->- T_TableAlias ->- T_TableRef -sem_TableRef_FunTref ann_ fn_ alias_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let __tup2 :: (([(String,[String])],TableRef))- _lhsOtrefIDs :: ([(String,[String])])- _lhsOfixedUpIdentifiersTree :: TableRef - _lhsOannotatedTree :: TableRef - _eqfunIdens :: (Either [TypeError] (String,[(String,Type)]))- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOnewLib2 :: LocalBindings- _aliasOexpectedNumCols :: (Maybe Int)- _fnOexpectedType :: (Maybe Type)- _lhsOoriginalTree :: TableRef - _fnOcat :: Catalog- _fnOidenv :: IDEnv- _fnOlib :: LocalBindings- _aliasOcat :: Catalog- _aliasOidenv :: IDEnv- _aliasOlib :: LocalBindings- _fnIannotatedTree :: ScalarExpr - _fnIfixedUpIdentifiersTree :: ScalarExpr - _fnIoriginalTree :: ScalarExpr - _fnIuType :: (Maybe Type)- _aliasIannotatedTree :: TableAlias - _aliasIfixedUpIdentifiersTree :: TableAlias - _aliasIoriginalTree :: TableAlias - -- "./TypeChecking/FixUpIdentifiers.ag"(line 382, column 15)- __tup2 =- let (FunCall _ f _) = _fnIfixedUpIdentifiersTree- (trs,al) = doAlias _aliasIannotatedTree [(f,[f])]- in (trs,FunTref ann_ _fnIfixedUpIdentifiersTree al)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 382, column 15)- (_lhsOtrefIDs,_) =- __tup2- -- "./TypeChecking/FixUpIdentifiers.ag"(line 382, column 15)- (_,_lhsOfixedUpIdentifiersTree) =- __tup2- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 102, column 9)- _errs =- case _eqfunIdens of- Left e -> e- Right _ -> []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 108, column 9)- _eqfunIdens =- funIdens _lhsIcat (getAlias "" _aliasIoriginalTree) _fnIannotatedTree _fnIuType- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 109, column 9)- _lhsOlibUpdates =- [LBTref "fn"- (fst _qfunIdens )- (snd _qfunIdens )- []]- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 113, column 9)- _qfunIdens =- fromRight ("",[]) _eqfunIdens- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 247, column 9)- _lhsOnewLib2 =- emptyBindings- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 260, column 9)- _backTree =- FunTref ann_ _fnIannotatedTree _aliasIannotatedTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 281, column 9)- _aliasOexpectedNumCols =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 120, column 15)- _fnOexpectedType =- Nothing- -- self rule- _annotatedTree =- FunTref ann_ _fnIannotatedTree _aliasIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- FunTref ann_ _fnIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree- -- self rule- _originalTree =- FunTref ann_ _fnIoriginalTree _aliasIoriginalTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _fnOcat =- _lhsIcat- -- copy rule (down)- _fnOidenv =- _lhsIidenv- -- copy rule (down)- _fnOlib =- _lhsIlib- -- copy rule (down)- _aliasOcat =- _lhsIcat- -- copy rule (down)- _aliasOidenv =- _lhsIidenv- -- copy rule (down)- _aliasOlib =- _lhsIlib- ( _fnIannotatedTree,_fnIfixedUpIdentifiersTree,_fnIoriginalTree,_fnIuType) =- fn_ _fnOcat _fnOexpectedType _fnOidenv _fnOlib - ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =- alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))-sem_TableRef_JoinTref :: Annotation ->- T_TableRef ->- Natural ->- JoinType ->- T_TableRef ->- T_OnExpr ->- T_TableAlias ->- T_TableRef -sem_TableRef_JoinTref ann_ tbl_ nat_ joinType_ tbl1_ onExpr_ alias_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOfixedUpIdentifiersTree :: TableRef - _lhsOtrefIDs :: ([(String,[String])])- _onExprOidenv :: IDEnv- _lhsOannotatedTree :: TableRef - _lhsOlibUpdates :: ([LocalBindingsUpdate])- _newLib :: (Either [TypeError] LocalBindings)- _lhsOnewLib2 :: LocalBindings- _onExprOlib :: LocalBindings- _aliasOexpectedNumCols :: (Maybe Int)- _lhsOoriginalTree :: TableRef - _tblOcat :: Catalog- _tblOidenv :: IDEnv- _tblOlib :: LocalBindings- _tbl1Ocat :: Catalog- _tbl1Oidenv :: IDEnv- _tbl1Olib :: LocalBindings- _onExprOcat :: Catalog- _aliasOcat :: Catalog- _aliasOidenv :: IDEnv- _aliasOlib :: LocalBindings- _tblIannotatedTree :: TableRef - _tblIfixedUpIdentifiersTree :: TableRef - _tblIlibUpdates :: ([LocalBindingsUpdate])- _tblInewLib2 :: LocalBindings- _tblIoriginalTree :: TableRef - _tblItrefIDs :: ([(String,[String])])- _tbl1IannotatedTree :: TableRef - _tbl1IfixedUpIdentifiersTree :: TableRef - _tbl1IlibUpdates :: ([LocalBindingsUpdate])- _tbl1InewLib2 :: LocalBindings- _tbl1IoriginalTree :: TableRef - _tbl1ItrefIDs :: ([(String,[String])])- _onExprIannotatedTree :: OnExpr - _onExprIfixedUpIdentifiersTree :: OnExpr - _onExprIoriginalTree :: OnExpr - _aliasIannotatedTree :: TableAlias - _aliasIfixedUpIdentifiersTree :: TableAlias - _aliasIoriginalTree :: TableAlias - -- "./TypeChecking/FixUpIdentifiers.ag"(line 388, column 9)- __tup3 =- let (trs,al) = doAlias _aliasIannotatedTree $ _tblItrefIDs ++ _tbl1ItrefIDs- in (trs, JoinTref ann_ _tblIfixedUpIdentifiersTree- nat_ joinType_ _tbl1IfixedUpIdentifiersTree- _onExprIfixedUpIdentifiersTree al)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 388, column 9)- (_trefIDs,_) =- __tup3- -- "./TypeChecking/FixUpIdentifiers.ag"(line 388, column 9)- (_,_lhsOfixedUpIdentifiersTree) =- __tup3- -- "./TypeChecking/FixUpIdentifiers.ag"(line 394, column 9)- _lhsOtrefIDs =- _trefIDs- -- "./TypeChecking/FixUpIdentifiers.ag"(line 395, column 9)- _onExprOidenv =- IDEnv _trefIDs- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 118, column 9)- _errs =- fromLeft [] _newLib- ++ _joinErrors- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 120, column 9)- _lhsOlibUpdates =- if _joinErrors == []- then _libUpdates- else []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 125, column 9)- _joinErrors =- fromLeft [] (foldM (flip $ lbUpdate _lhsIcat) _lhsIlib _libUpdates )- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 126, column 9)- _libUpdates =- case (_tblIlibUpdates, _tbl1IlibUpdates) of- ([u1], [u2]) -> [LBJoinTref "join" u1 u2 jids- (case _aliasIoriginalTree of- NoAlias _ -> Nothing- TableAlias _ t -> Just t- FullAlias _ t _ -> Just t)]- _ -> []- where- jids = case (nat_, _onExprIoriginalTree) of- (Natural, _) -> Left ()- (_,Just (JoinUsing _ s)) -> Right s- _ -> Right []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 140, column 9)- _newLib =- case (_tblIlibUpdates, _tbl1IlibUpdates) of- ([u1],[u2]) -> lbUpdate _lhsIcat- (LBJoinTref "join" u1 u2 (Right []) Nothing) _lhsIlib- _ -> Right _lhsIlib- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 220, column 9)- _newLib2 =- let t0t :: [(String,Maybe Type)]- t0t = getUnqualifiedBindings _tblInewLib2- t1t = getUnqualifiedBindings _tbl1InewLib2- in case _aliasIoriginalTree of- (FullAlias _ n cs) ->- createLocalBindings $ Just [(n,zip cs $ map snd (t0t ++ t1t))]- (TableAlias _ n) ->- createLocalBindings $ Just [(n, t0t ++ t1t)]- NoAlias _ ->- joinBindings _tblInewLib2 _tbl1InewLib2- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 233, column 9)- _lhsOnewLib2 =- _newLib2- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 234, column 9)- _onExprOlib =- _newLib2- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 262, column 9)- _backTree =- JoinTref ann_- _tblIannotatedTree- nat_- joinType_- _tbl1IannotatedTree- _onExprIannotatedTree- _aliasIannotatedTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 281, column 9)- _aliasOexpectedNumCols =- Nothing- -- self rule- _annotatedTree =- JoinTref ann_ _tblIannotatedTree nat_ joinType_ _tbl1IannotatedTree _onExprIannotatedTree _aliasIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- JoinTref ann_ _tblIfixedUpIdentifiersTree nat_ joinType_ _tbl1IfixedUpIdentifiersTree _onExprIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree- -- self rule- _originalTree =- JoinTref ann_ _tblIoriginalTree nat_ joinType_ _tbl1IoriginalTree _onExprIoriginalTree _aliasIoriginalTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _tblOcat =- _lhsIcat- -- copy rule (down)- _tblOidenv =- _lhsIidenv- -- copy rule (down)- _tblOlib =- _lhsIlib- -- copy rule (down)- _tbl1Ocat =- _lhsIcat- -- copy rule (down)- _tbl1Oidenv =- _lhsIidenv- -- copy rule (down)- _tbl1Olib =- _lhsIlib- -- copy rule (down)- _onExprOcat =- _lhsIcat- -- copy rule (down)- _aliasOcat =- _lhsIcat- -- copy rule (down)- _aliasOidenv =- _lhsIidenv- -- copy rule (down)- _aliasOlib =- _lhsIlib- ( _tblIannotatedTree,_tblIfixedUpIdentifiersTree,_tblIlibUpdates,_tblInewLib2,_tblIoriginalTree,_tblItrefIDs) =- tbl_ _tblOcat _tblOidenv _tblOlib - ( _tbl1IannotatedTree,_tbl1IfixedUpIdentifiersTree,_tbl1IlibUpdates,_tbl1InewLib2,_tbl1IoriginalTree,_tbl1ItrefIDs) =- tbl1_ _tbl1Ocat _tbl1Oidenv _tbl1Olib - ( _onExprIannotatedTree,_onExprIfixedUpIdentifiersTree,_onExprIoriginalTree) =- onExpr_ _onExprOcat _onExprOidenv _onExprOlib - ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =- alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))-sem_TableRef_SubTref :: Annotation ->- T_QueryExpr ->- T_TableAlias ->- T_TableRef -sem_TableRef_SubTref ann_ sel_ alias_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let __tup4 :: (([(String,[String])],TableRef))- _lhsOtrefIDs :: ([(String,[String])])- _lhsOfixedUpIdentifiersTree :: TableRef - _selOcsql :: LocalBindings- _lhsOannotatedTree :: TableRef - _selectAttrs :: (Either [TypeError] [(String,Type)])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOnewLib2 :: LocalBindings- _aliasOexpectedNumCols :: (Maybe Int)- _selOexpectedTypes :: ([Maybe Type])- _lhsOoriginalTree :: TableRef - _selOcat :: Catalog- _selOidenv :: IDEnv- _selOlib :: LocalBindings- _aliasOcat :: Catalog- _aliasOidenv :: IDEnv- _aliasOlib :: LocalBindings- _selIannotatedTree :: QueryExpr - _selIcidenv :: IDEnv- _selIfixedUpIdentifiersTree :: QueryExpr - _selIlibUpdates :: ([LocalBindingsUpdate])- _selIoriginalTree :: QueryExpr - _selIuType :: (Maybe [(String,Type)])- _aliasIannotatedTree :: TableAlias - _aliasIfixedUpIdentifiersTree :: TableAlias - _aliasIoriginalTree :: TableAlias - -- "./TypeChecking/FixUpIdentifiers.ag"(line 377, column 15)- __tup4 =- let IDEnv x = _selIcidenv- (trs,al) = doAlias _aliasIannotatedTree x- in (trs, SubTref ann_ _selIfixedUpIdentifiersTree al)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 377, column 15)- (_lhsOtrefIDs,_) =- __tup4- -- "./TypeChecking/FixUpIdentifiers.ag"(line 377, column 15)- (_,_lhsOfixedUpIdentifiersTree) =- __tup4- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 129, column 15)- _selOcsql =- emptyBindings- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 72, column 9)- _errs =- case _selectAttrs of- Left e -> e- Right _ -> []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 76, column 9)- _selectAttrs =- lmt _selIuType- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 77, column 9)- _lhsOlibUpdates =- [LBTref "sub query" (getAlias "" _aliasIoriginalTree)- (fromRight [] _selectAttrs ) []]- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 237, column 9)- _lhsOnewLib2 =- createLocalBindings $ do- pu <- _selIuType- let (n,cs) = case _aliasIoriginalTree of- (FullAlias _ n cs) -> (n,cs)- _ -> (n, [])- return [(n,zip cs $ map (Just . snd) pu)]- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 256, column 9)- _backTree =- SubTref ann_ _selIannotatedTree _aliasIannotatedTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 281, column 9)- _aliasOexpectedNumCols =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 180, column 15)- _selOexpectedTypes =- []- -- self rule- _annotatedTree =- SubTref ann_ _selIannotatedTree _aliasIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- SubTref ann_ _selIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree- -- self rule- _originalTree =- SubTref ann_ _selIoriginalTree _aliasIoriginalTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _selOcat =- _lhsIcat- -- copy rule (down)- _selOidenv =- _lhsIidenv- -- copy rule (down)- _selOlib =- _lhsIlib- -- copy rule (down)- _aliasOcat =- _lhsIcat- -- copy rule (down)- _aliasOidenv =- _lhsIidenv- -- copy rule (down)- _aliasOlib =- _lhsIlib- ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =- sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib - ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =- alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))-sem_TableRef_Tref :: Annotation ->- T_SQIdentifier ->- T_TableAlias ->- T_TableRef -sem_TableRef_Tref ann_ tbl_ alias_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let __tup5 :: (([(String,[String])],TableRef))- _lhsOtrefIDs :: ([(String,[String])])- _lhsOfixedUpIdentifiersTree :: TableRef - _lhsOannotatedTree :: TableRef - _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOnewLib2 :: LocalBindings- _aliasOexpectedNumCols :: (Maybe Int)- _lhsOoriginalTree :: TableRef - _tblOcat :: Catalog- _tblOidenv :: IDEnv- _tblOlib :: LocalBindings- _aliasOcat :: Catalog- _aliasOidenv :: IDEnv- _aliasOlib :: LocalBindings- _tblIannotatedTree :: SQIdentifier - _tblIfixedUpIdentifiersTree :: SQIdentifier - _tblIoriginalTree :: SQIdentifier - _tblItbAnnotatedTree :: SQIdentifier - _tblItbUType :: (Maybe ([(String,Type)],[(String,Type)]))- _aliasIannotatedTree :: TableAlias - _aliasIfixedUpIdentifiersTree :: TableAlias - _aliasIoriginalTree :: TableAlias - -- "./TypeChecking/FixUpIdentifiers.ag"(line 369, column 12)- __tup5 =- let tn = getTName _tblIfixedUpIdentifiersTree- ids = case catCompositePublicAttrs _lhsIcat relationComposites tn of- Right attrs -> [(tn, map fst attrs)]- Left _ -> [(tn,[])]- (trs,al) = doAlias _aliasIannotatedTree ids- in (trs,Tref ann_ _tblIfixedUpIdentifiersTree al)- -- "./TypeChecking/FixUpIdentifiers.ag"(line 369, column 12)- (_lhsOtrefIDs,_) =- __tup5- -- "./TypeChecking/FixUpIdentifiers.ag"(line 369, column 12)- (_,_lhsOfixedUpIdentifiersTree) =- __tup5- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)- _lhsOannotatedTree =- addTypeErrors _errs _backTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 85, column 9)- _errs =- []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 86, column 9)- _lhsOlibUpdates =- maybe [] id $ do- let n = getTName _tblIannotatedTree- (pu,pr) <- _tblItbUType- return [LBTref ("tref: " ++ n)- (getAlias n _aliasIoriginalTree)- pu- pr]- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 208, column 9)- _lhsOnewLib2 =- createLocalBindings $ do- let n = getTName _tblIannotatedTree- (pu,pr) <- _tblItbUType- let (n,cs) = case _aliasIoriginalTree of- (FullAlias _ n cs) -> (n,cs)- _ -> (n, [])- return [(n,zip cs $ map (Just . snd) pu)- ,(n,map (second Just) pr)]- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 258, column 9)- _backTree =- Tref ann_ _tblItbAnnotatedTree _aliasIannotatedTree- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 275, column 9)- _aliasOexpectedNumCols =- do- let n = getTName _tblIannotatedTree- (pu,_) <- _tblItbUType- return $ length pu- -- self rule- _annotatedTree =- Tref ann_ _tblIannotatedTree _aliasIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- Tref ann_ _tblIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree- -- self rule- _originalTree =- Tref ann_ _tblIoriginalTree _aliasIoriginalTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _tblOcat =- _lhsIcat- -- copy rule (down)- _tblOidenv =- _lhsIidenv- -- copy rule (down)- _tblOlib =- _lhsIlib- -- copy rule (down)- _aliasOcat =- _lhsIcat- -- copy rule (down)- _aliasOidenv =- _lhsIidenv- -- copy rule (down)- _aliasOlib =- _lhsIlib- ( _tblIannotatedTree,_tblIfixedUpIdentifiersTree,_tblIoriginalTree,_tblItbAnnotatedTree,_tblItbUType) =- tbl_ _tblOcat _tblOidenv _tblOlib - ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =- alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))--- TableRefList -------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - libUpdates : [LocalBindingsUpdate]- newLib2 : LocalBindings- originalTree : SELF - trefIDs : [(String,[String])]- alternatives:- alternative Cons:- child hd : TableRef - child tl : TableRefList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type TableRefList = [TableRef ]--- cata-sem_TableRefList :: TableRefList ->- T_TableRefList -sem_TableRefList list =- (Prelude.foldr sem_TableRefList_Cons sem_TableRefList_Nil (Prelude.map sem_TableRef list) )--- semantic domain-type T_TableRefList = Catalog ->- IDEnv ->- LocalBindings ->- ( TableRefList ,TableRefList ,([LocalBindingsUpdate]),LocalBindings,TableRefList ,([(String,[String])]))-data Inh_TableRefList = Inh_TableRefList {cat_Inh_TableRefList :: Catalog,idenv_Inh_TableRefList :: IDEnv,lib_Inh_TableRefList :: LocalBindings}-data Syn_TableRefList = Syn_TableRefList {annotatedTree_Syn_TableRefList :: TableRefList ,fixedUpIdentifiersTree_Syn_TableRefList :: TableRefList ,libUpdates_Syn_TableRefList :: ([LocalBindingsUpdate]),newLib2_Syn_TableRefList :: LocalBindings,originalTree_Syn_TableRefList :: TableRefList ,trefIDs_Syn_TableRefList :: ([(String,[String])])}-wrap_TableRefList :: T_TableRefList ->- Inh_TableRefList ->- Syn_TableRefList -wrap_TableRefList sem (Inh_TableRefList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_TableRefList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOnewLib2 _lhsOoriginalTree _lhsOtrefIDs ))-sem_TableRefList_Cons :: T_TableRef ->- T_TableRefList ->- T_TableRefList -sem_TableRefList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOtrefIDs :: ([(String,[String])])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOnewLib2 :: LocalBindings- _lhsOannotatedTree :: TableRefList - _lhsOfixedUpIdentifiersTree :: TableRefList - _lhsOoriginalTree :: TableRefList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: TableRef - _hdIfixedUpIdentifiersTree :: TableRef - _hdIlibUpdates :: ([LocalBindingsUpdate])- _hdInewLib2 :: LocalBindings- _hdIoriginalTree :: TableRef - _hdItrefIDs :: ([(String,[String])])- _tlIannotatedTree :: TableRefList - _tlIfixedUpIdentifiersTree :: TableRefList - _tlIlibUpdates :: ([LocalBindingsUpdate])- _tlInewLib2 :: LocalBindings- _tlIoriginalTree :: TableRefList - _tlItrefIDs :: ([(String,[String])])- -- "./TypeChecking/FixUpIdentifiers.ag"(line 365, column 12)- _lhsOtrefIDs =- _hdItrefIDs ++ _tlItrefIDs- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 61, column 9)- _lhsOlibUpdates =- _hdIlibUpdates- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 204, column 9)- _lhsOnewLib2 =- joinBindings _hdInewLib2 _tlInewLib2- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIlibUpdates,_hdInewLib2,_hdIoriginalTree,_hdItrefIDs) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIlibUpdates,_tlInewLib2,_tlIoriginalTree,_tlItrefIDs) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))-sem_TableRefList_Nil :: T_TableRefList -sem_TableRefList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOtrefIDs :: ([(String,[String])])- _lhsOlibUpdates :: ([LocalBindingsUpdate])- _lhsOnewLib2 :: LocalBindings- _lhsOannotatedTree :: TableRefList - _lhsOfixedUpIdentifiersTree :: TableRefList - _lhsOoriginalTree :: TableRefList - -- "./TypeChecking/FixUpIdentifiers.ag"(line 366, column 11)- _lhsOtrefIDs =- []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 59, column 9)- _lhsOlibUpdates =- []- -- "./TypeChecking/QueryExprs/TableRefs.ag"(line 202, column 9)- _lhsOnewLib2 =- createLocalBindings $ Just []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))--- TypeAttributeDef ---------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - attrName : String- fixedUpIdentifiersTree : SELF - namedType : Maybe Type- originalTree : SELF - alternatives:- alternative TypeAttDef:- child ann : {Annotation}- child name : {String}- child typ : TypeName - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data TypeAttributeDef = TypeAttDef (Annotation) (String) (TypeName ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_TypeAttributeDef :: TypeAttributeDef ->- T_TypeAttributeDef -sem_TypeAttributeDef (TypeAttDef _ann _name _typ ) =- (sem_TypeAttributeDef_TypeAttDef _ann _name (sem_TypeName _typ ) )--- semantic domain-type T_TypeAttributeDef = Catalog ->- IDEnv ->- LocalBindings ->- ( TypeAttributeDef ,String,TypeAttributeDef ,(Maybe Type),TypeAttributeDef )-data Inh_TypeAttributeDef = Inh_TypeAttributeDef {cat_Inh_TypeAttributeDef :: Catalog,idenv_Inh_TypeAttributeDef :: IDEnv,lib_Inh_TypeAttributeDef :: LocalBindings}-data Syn_TypeAttributeDef = Syn_TypeAttributeDef {annotatedTree_Syn_TypeAttributeDef :: TypeAttributeDef ,attrName_Syn_TypeAttributeDef :: String,fixedUpIdentifiersTree_Syn_TypeAttributeDef :: TypeAttributeDef ,namedType_Syn_TypeAttributeDef :: (Maybe Type),originalTree_Syn_TypeAttributeDef :: TypeAttributeDef }-wrap_TypeAttributeDef :: T_TypeAttributeDef ->- Inh_TypeAttributeDef ->- Syn_TypeAttributeDef -wrap_TypeAttributeDef sem (Inh_TypeAttributeDef _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_TypeAttributeDef _lhsOannotatedTree _lhsOattrName _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree ))-sem_TypeAttributeDef_TypeAttDef :: Annotation ->- String ->- T_TypeName ->- T_TypeAttributeDef -sem_TypeAttributeDef_TypeAttDef ann_ name_ typ_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOattrName :: String- _lhsOnamedType :: (Maybe Type)- _lhsOannotatedTree :: TypeAttributeDef - _lhsOfixedUpIdentifiersTree :: TypeAttributeDef - _lhsOoriginalTree :: TypeAttributeDef - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - -- "./TypeChecking/Ddl/MiscCreates.ag"(line 37, column 9)- _lhsOattrName =- name_- -- "./TypeChecking/Ddl/MiscCreates.ag"(line 38, column 9)- _lhsOnamedType =- _typInamedType- -- self rule- _annotatedTree =- TypeAttDef ann_ name_ _typIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- TypeAttDef ann_ name_ _typIfixedUpIdentifiersTree- -- self rule- _originalTree =- TypeAttDef ann_ name_ _typIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - in ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))--- TypeAttributeDefList -----------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - attrs : [(String, Maybe Type)]- fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : TypeAttributeDef - child tl : TypeAttributeDefList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type TypeAttributeDefList = [TypeAttributeDef ]--- cata-sem_TypeAttributeDefList :: TypeAttributeDefList ->- T_TypeAttributeDefList -sem_TypeAttributeDefList list =- (Prelude.foldr sem_TypeAttributeDefList_Cons sem_TypeAttributeDefList_Nil (Prelude.map sem_TypeAttributeDef list) )--- semantic domain-type T_TypeAttributeDefList = Catalog ->- IDEnv ->- LocalBindings ->- ( TypeAttributeDefList ,([(String, Maybe Type)]),TypeAttributeDefList ,TypeAttributeDefList )-data Inh_TypeAttributeDefList = Inh_TypeAttributeDefList {cat_Inh_TypeAttributeDefList :: Catalog,idenv_Inh_TypeAttributeDefList :: IDEnv,lib_Inh_TypeAttributeDefList :: LocalBindings}-data Syn_TypeAttributeDefList = Syn_TypeAttributeDefList {annotatedTree_Syn_TypeAttributeDefList :: TypeAttributeDefList ,attrs_Syn_TypeAttributeDefList :: ([(String, Maybe Type)]),fixedUpIdentifiersTree_Syn_TypeAttributeDefList :: TypeAttributeDefList ,originalTree_Syn_TypeAttributeDefList :: TypeAttributeDefList }-wrap_TypeAttributeDefList :: T_TypeAttributeDefList ->- Inh_TypeAttributeDefList ->- Syn_TypeAttributeDefList -wrap_TypeAttributeDefList sem (Inh_TypeAttributeDefList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_TypeAttributeDefList _lhsOannotatedTree _lhsOattrs _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_TypeAttributeDefList_Cons :: T_TypeAttributeDef ->- T_TypeAttributeDefList ->- T_TypeAttributeDefList -sem_TypeAttributeDefList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOattrs :: ([(String, Maybe Type)])- _lhsOannotatedTree :: TypeAttributeDefList - _lhsOfixedUpIdentifiersTree :: TypeAttributeDefList - _lhsOoriginalTree :: TypeAttributeDefList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: TypeAttributeDef - _hdIattrName :: String- _hdIfixedUpIdentifiersTree :: TypeAttributeDef - _hdInamedType :: (Maybe Type)- _hdIoriginalTree :: TypeAttributeDef - _tlIannotatedTree :: TypeAttributeDefList - _tlIattrs :: ([(String, Maybe Type)])- _tlIfixedUpIdentifiersTree :: TypeAttributeDefList - _tlIoriginalTree :: TypeAttributeDefList - -- "./TypeChecking/Ddl/MiscCreates.ag"(line 43, column 12)- _lhsOattrs =- (_hdIattrName, _hdInamedType) : _tlIattrs- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIattrName,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIattrs,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_TypeAttributeDefList_Nil :: T_TypeAttributeDefList -sem_TypeAttributeDefList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOattrs :: ([(String, Maybe Type)])- _lhsOannotatedTree :: TypeAttributeDefList - _lhsOfixedUpIdentifiersTree :: TypeAttributeDefList - _lhsOoriginalTree :: TypeAttributeDefList - -- "./TypeChecking/Ddl/MiscCreates.ag"(line 44, column 11)- _lhsOattrs =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- TypeName -----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - namedType : Maybe Type- originalTree : SELF - alternatives:- alternative ArrayTypeName:- child ann : {Annotation}- child typ : TypeName - visit 0:- local tpe : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Prec2TypeName:- child ann : {Annotation}- child tn : {String}- child prec : {Integer}- child prec1 : {Integer}- visit 0:- local tpe : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative PrecTypeName:- child ann : {Annotation}- child tn : {String}- child prec : {Integer}- visit 0:- local tpe : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative SetOfTypeName:- child ann : {Annotation}- child typ : TypeName - visit 0:- local tpe : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative SimpleTypeName:- child ann : {Annotation}- child tn : {String}- visit 0:- local tpe : _- local backTree : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data TypeName = ArrayTypeName (Annotation) (TypeName ) - | Prec2TypeName (Annotation) (String) (Integer) (Integer) - | PrecTypeName (Annotation) (String) (Integer) - | SetOfTypeName (Annotation) (TypeName ) - | SimpleTypeName (Annotation) (String) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_TypeName :: TypeName ->- T_TypeName -sem_TypeName (ArrayTypeName _ann _typ ) =- (sem_TypeName_ArrayTypeName _ann (sem_TypeName _typ ) )-sem_TypeName (Prec2TypeName _ann _tn _prec _prec1 ) =- (sem_TypeName_Prec2TypeName _ann _tn _prec _prec1 )-sem_TypeName (PrecTypeName _ann _tn _prec ) =- (sem_TypeName_PrecTypeName _ann _tn _prec )-sem_TypeName (SetOfTypeName _ann _typ ) =- (sem_TypeName_SetOfTypeName _ann (sem_TypeName _typ ) )-sem_TypeName (SimpleTypeName _ann _tn ) =- (sem_TypeName_SimpleTypeName _ann _tn )--- semantic domain-type T_TypeName = Catalog ->- IDEnv ->- LocalBindings ->- ( TypeName ,TypeName ,(Maybe Type),TypeName )-data Inh_TypeName = Inh_TypeName {cat_Inh_TypeName :: Catalog,idenv_Inh_TypeName :: IDEnv,lib_Inh_TypeName :: LocalBindings}-data Syn_TypeName = Syn_TypeName {annotatedTree_Syn_TypeName :: TypeName ,fixedUpIdentifiersTree_Syn_TypeName :: TypeName ,namedType_Syn_TypeName :: (Maybe Type),originalTree_Syn_TypeName :: TypeName }-wrap_TypeName :: T_TypeName ->- Inh_TypeName ->- Syn_TypeName -wrap_TypeName sem (Inh_TypeName _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_TypeName _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree ))-sem_TypeName_ArrayTypeName :: Annotation ->- T_TypeName ->- T_TypeName -sem_TypeName_ArrayTypeName ann_ typ_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOannotatedTree :: TypeName - _lhsOfixedUpIdentifiersTree :: TypeName - _lhsOoriginalTree :: TypeName - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - -- "./TypeChecking/Misc.ag"(line 19, column 10)- _lhsOnamedType =- etmt _tpe- -- "./TypeChecking/Misc.ag"(line 20, column 10)- _lhsOannotatedTree =- addTypeErrors (tes _tpe ) _backTree- -- "./TypeChecking/Misc.ag"(line 27, column 9)- _tpe =- lmt _typInamedType >>= Right . ArrayType- -- "./TypeChecking/Misc.ag"(line 28, column 9)- _backTree =- ArrayTypeName ann_ _typIannotatedTree- -- self rule- _annotatedTree =- ArrayTypeName ann_ _typIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- ArrayTypeName ann_ _typIfixedUpIdentifiersTree- -- self rule- _originalTree =- ArrayTypeName ann_ _typIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))-sem_TypeName_Prec2TypeName :: Annotation ->- String ->- Integer ->- Integer ->- T_TypeName -sem_TypeName_Prec2TypeName ann_ tn_ prec_ prec1_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOannotatedTree :: TypeName - _lhsOfixedUpIdentifiersTree :: TypeName - _lhsOoriginalTree :: TypeName - -- "./TypeChecking/Misc.ag"(line 19, column 10)- _lhsOnamedType =- etmt _tpe- -- "./TypeChecking/Misc.ag"(line 20, column 10)- _lhsOannotatedTree =- addTypeErrors (tes _tpe ) _backTree- -- "./TypeChecking/Misc.ag"(line 36, column 9)- _tpe =- catLookupType _lhsIcat $ canonicalizeTypeName tn_- -- "./TypeChecking/Misc.ag"(line 37, column 9)- _backTree =- Prec2TypeName ann_ tn_ prec_ prec1_- -- self rule- _annotatedTree =- Prec2TypeName ann_ tn_ prec_ prec1_- -- self rule- _fixedUpIdentifiersTree =- Prec2TypeName ann_ tn_ prec_ prec1_- -- self rule- _originalTree =- Prec2TypeName ann_ tn_ prec_ prec1_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))-sem_TypeName_PrecTypeName :: Annotation ->- String ->- Integer ->- T_TypeName -sem_TypeName_PrecTypeName ann_ tn_ prec_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOannotatedTree :: TypeName - _lhsOfixedUpIdentifiersTree :: TypeName - _lhsOoriginalTree :: TypeName - -- "./TypeChecking/Misc.ag"(line 19, column 10)- _lhsOnamedType =- etmt _tpe- -- "./TypeChecking/Misc.ag"(line 20, column 10)- _lhsOannotatedTree =- addTypeErrors (tes _tpe ) _backTree- -- "./TypeChecking/Misc.ag"(line 33, column 9)- _tpe =- catLookupType _lhsIcat $ canonicalizeTypeName tn_- -- "./TypeChecking/Misc.ag"(line 34, column 9)- _backTree =- PrecTypeName ann_ tn_ prec_- -- self rule- _annotatedTree =- PrecTypeName ann_ tn_ prec_- -- self rule- _fixedUpIdentifiersTree =- PrecTypeName ann_ tn_ prec_- -- self rule- _originalTree =- PrecTypeName ann_ tn_ prec_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))-sem_TypeName_SetOfTypeName :: Annotation ->- T_TypeName ->- T_TypeName -sem_TypeName_SetOfTypeName ann_ typ_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOannotatedTree :: TypeName - _lhsOfixedUpIdentifiersTree :: TypeName - _lhsOoriginalTree :: TypeName - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - -- "./TypeChecking/Misc.ag"(line 19, column 10)- _lhsOnamedType =- etmt _tpe- -- "./TypeChecking/Misc.ag"(line 20, column 10)- _lhsOannotatedTree =- addTypeErrors (tes _tpe ) _backTree- -- "./TypeChecking/Misc.ag"(line 30, column 9)- _tpe =- lmt _typInamedType >>= Right . SetOfType- -- "./TypeChecking/Misc.ag"(line 31, column 9)- _backTree =- SetOfTypeName ann_ _typIannotatedTree- -- self rule- _annotatedTree =- SetOfTypeName ann_ _typIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- SetOfTypeName ann_ _typIfixedUpIdentifiersTree- -- self rule- _originalTree =- SetOfTypeName ann_ _typIoriginalTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))-sem_TypeName_SimpleTypeName :: Annotation ->- String ->- T_TypeName -sem_TypeName_SimpleTypeName ann_ tn_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedType :: (Maybe Type)- _lhsOannotatedTree :: TypeName - _lhsOfixedUpIdentifiersTree :: TypeName - _lhsOoriginalTree :: TypeName - -- "./TypeChecking/Misc.ag"(line 19, column 10)- _lhsOnamedType =- etmt _tpe- -- "./TypeChecking/Misc.ag"(line 20, column 10)- _lhsOannotatedTree =- addTypeErrors (tes _tpe ) _backTree- -- "./TypeChecking/Misc.ag"(line 24, column 9)- _tpe =- catLookupType _lhsIcat $ canonicalizeTypeName tn_- -- "./TypeChecking/Misc.ag"(line 25, column 9)- _backTree =- SimpleTypeName ann_ tn_- -- self rule- _annotatedTree =- SimpleTypeName ann_ tn_- -- self rule- _fixedUpIdentifiersTree =- SimpleTypeName ann_ tn_- -- self rule- _originalTree =- SimpleTypeName ann_ tn_- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))--- TypeNameList -------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - namedTypes : [Maybe Type]- originalTree : SELF - alternatives:- alternative Cons:- child hd : TypeName - child tl : TypeNameList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type TypeNameList = [TypeName ]--- cata-sem_TypeNameList :: TypeNameList ->- T_TypeNameList -sem_TypeNameList list =- (Prelude.foldr sem_TypeNameList_Cons sem_TypeNameList_Nil (Prelude.map sem_TypeName list) )--- semantic domain-type T_TypeNameList = Catalog ->- IDEnv ->- LocalBindings ->- ( TypeNameList ,TypeNameList ,([Maybe Type]),TypeNameList )-data Inh_TypeNameList = Inh_TypeNameList {cat_Inh_TypeNameList :: Catalog,idenv_Inh_TypeNameList :: IDEnv,lib_Inh_TypeNameList :: LocalBindings}-data Syn_TypeNameList = Syn_TypeNameList {annotatedTree_Syn_TypeNameList :: TypeNameList ,fixedUpIdentifiersTree_Syn_TypeNameList :: TypeNameList ,namedTypes_Syn_TypeNameList :: ([Maybe Type]),originalTree_Syn_TypeNameList :: TypeNameList }-wrap_TypeNameList :: T_TypeNameList ->- Inh_TypeNameList ->- Syn_TypeNameList -wrap_TypeNameList sem (Inh_TypeNameList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedTypes,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_TypeNameList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOnamedTypes _lhsOoriginalTree ))-sem_TypeNameList_Cons :: T_TypeName ->- T_TypeNameList ->- T_TypeNameList -sem_TypeNameList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedTypes :: ([Maybe Type])- _lhsOannotatedTree :: TypeNameList - _lhsOfixedUpIdentifiersTree :: TypeNameList - _lhsOoriginalTree :: TypeNameList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: TypeName - _hdIfixedUpIdentifiersTree :: TypeName - _hdInamedType :: (Maybe Type)- _hdIoriginalTree :: TypeName - _tlIannotatedTree :: TypeNameList - _tlIfixedUpIdentifiersTree :: TypeNameList - _tlInamedTypes :: ([Maybe Type])- _tlIoriginalTree :: TypeNameList - -- "./TypeChecking/Ddl/Drops.ag"(line 37, column 12)- _lhsOnamedTypes =- _hdInamedType : _tlInamedTypes- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlInamedTypes,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedTypes,_lhsOoriginalTree)))-sem_TypeNameList_Nil :: T_TypeNameList -sem_TypeNameList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOnamedTypes :: ([Maybe Type])- _lhsOannotatedTree :: TypeNameList - _lhsOfixedUpIdentifiersTree :: TypeNameList - _lhsOoriginalTree :: TypeNameList - -- "./TypeChecking/Ddl/Drops.ag"(line 38, column 11)- _lhsOnamedTypes =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedTypes,_lhsOoriginalTree)))--- VarDef -------------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - def : (String,Maybe Type)- fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative ParamAlias:- child ann : {Annotation}- child name : {String}- child i : {Integer}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative VarAlias:- child ann : {Annotation}- child name : {String}- child aliased : {String}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative VarDef:- child ann : {Annotation}- child name : {String}- child typ : TypeName - child value : {Maybe ScalarExpr}- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data VarDef = ParamAlias (Annotation) (String) (Integer) - | VarAlias (Annotation) (String) (String) - | VarDef (Annotation) (String) (TypeName ) ((Maybe ScalarExpr)) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_VarDef :: VarDef ->- T_VarDef -sem_VarDef (ParamAlias _ann _name _i ) =- (sem_VarDef_ParamAlias _ann _name _i )-sem_VarDef (VarAlias _ann _name _aliased ) =- (sem_VarDef_VarAlias _ann _name _aliased )-sem_VarDef (VarDef _ann _name _typ _value ) =- (sem_VarDef_VarDef _ann _name (sem_TypeName _typ ) _value )--- semantic domain-type T_VarDef = Catalog ->- IDEnv ->- LocalBindings ->- ( VarDef ,((String,Maybe Type)),VarDef ,VarDef )-data Inh_VarDef = Inh_VarDef {cat_Inh_VarDef :: Catalog,idenv_Inh_VarDef :: IDEnv,lib_Inh_VarDef :: LocalBindings}-data Syn_VarDef = Syn_VarDef {annotatedTree_Syn_VarDef :: VarDef ,def_Syn_VarDef :: ((String,Maybe Type)),fixedUpIdentifiersTree_Syn_VarDef :: VarDef ,originalTree_Syn_VarDef :: VarDef }-wrap_VarDef :: T_VarDef ->- Inh_VarDef ->- Syn_VarDef -wrap_VarDef sem (Inh_VarDef _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_VarDef _lhsOannotatedTree _lhsOdef _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_VarDef_ParamAlias :: Annotation ->- String ->- Integer ->- T_VarDef -sem_VarDef_ParamAlias ann_ name_ i_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOdef :: ((String,Maybe Type))- _lhsOannotatedTree :: VarDef - _lhsOfixedUpIdentifiersTree :: VarDef - _lhsOoriginalTree :: VarDef - -- "./TypeChecking/Plpgsql/Block.ag"(line 14, column 18)- _lhsOdef =- (name_, Nothing)- -- self rule- _annotatedTree =- ParamAlias ann_ name_ i_- -- self rule- _fixedUpIdentifiersTree =- ParamAlias ann_ name_ i_- -- self rule- _originalTree =- ParamAlias ann_ name_ i_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_VarDef_VarAlias :: Annotation ->- String ->- String ->- T_VarDef -sem_VarDef_VarAlias ann_ name_ aliased_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOdef :: ((String,Maybe Type))- _lhsOannotatedTree :: VarDef - _lhsOfixedUpIdentifiersTree :: VarDef - _lhsOoriginalTree :: VarDef - -- "./TypeChecking/Plpgsql/Block.ag"(line 13, column 16)- _lhsOdef =- (name_, Nothing)- -- self rule- _annotatedTree =- VarAlias ann_ name_ aliased_- -- self rule- _fixedUpIdentifiersTree =- VarAlias ann_ name_ aliased_- -- self rule- _originalTree =- VarAlias ann_ name_ aliased_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_VarDef_VarDef :: Annotation ->- String ->- T_TypeName ->- (Maybe ScalarExpr) ->- T_VarDef -sem_VarDef_VarDef ann_ name_ typ_ value_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOdef :: ((String,Maybe Type))- _lhsOannotatedTree :: VarDef - _lhsOfixedUpIdentifiersTree :: VarDef - _lhsOoriginalTree :: VarDef - _typOcat :: Catalog- _typOidenv :: IDEnv- _typOlib :: LocalBindings- _typIannotatedTree :: TypeName - _typIfixedUpIdentifiersTree :: TypeName - _typInamedType :: (Maybe Type)- _typIoriginalTree :: TypeName - -- "./TypeChecking/Plpgsql/Block.ag"(line 10, column 14)- _lhsOdef =- (name_, if _typInamedType == Just (Pseudo Record)- then Just (PgRecord Nothing)- else _typInamedType)- -- self rule- _annotatedTree =- VarDef ann_ name_ _typIannotatedTree value_- -- self rule- _fixedUpIdentifiersTree =- VarDef ann_ name_ _typIfixedUpIdentifiersTree value_- -- self rule- _originalTree =- VarDef ann_ name_ _typIoriginalTree value_- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _typOcat =- _lhsIcat- -- copy rule (down)- _typOidenv =- _lhsIidenv- -- copy rule (down)- _typOlib =- _lhsIlib- ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =- typ_ _typOcat _typOidenv _typOlib - in ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- VarDefList ---------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - defs : [(String,Maybe Type)]- fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative Cons:- child hd : VarDef - child tl : VarDefList - visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type VarDefList = [VarDef ]--- cata-sem_VarDefList :: VarDefList ->- T_VarDefList -sem_VarDefList list =- (Prelude.foldr sem_VarDefList_Cons sem_VarDefList_Nil (Prelude.map sem_VarDef list) )--- semantic domain-type T_VarDefList = Catalog ->- IDEnv ->- LocalBindings ->- ( VarDefList ,([(String,Maybe Type)]),VarDefList ,VarDefList )-data Inh_VarDefList = Inh_VarDefList {cat_Inh_VarDefList :: Catalog,idenv_Inh_VarDefList :: IDEnv,lib_Inh_VarDefList :: LocalBindings}-data Syn_VarDefList = Syn_VarDefList {annotatedTree_Syn_VarDefList :: VarDefList ,defs_Syn_VarDefList :: ([(String,Maybe Type)]),fixedUpIdentifiersTree_Syn_VarDefList :: VarDefList ,originalTree_Syn_VarDefList :: VarDefList }-wrap_VarDefList :: T_VarDefList ->- Inh_VarDefList ->- Syn_VarDefList -wrap_VarDefList sem (Inh_VarDefList _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOdefs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_VarDefList _lhsOannotatedTree _lhsOdefs _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_VarDefList_Cons :: T_VarDef ->- T_VarDefList ->- T_VarDefList -sem_VarDefList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOdefs :: ([(String,Maybe Type)])- _lhsOannotatedTree :: VarDefList - _lhsOfixedUpIdentifiersTree :: VarDefList - _lhsOoriginalTree :: VarDefList - _hdOcat :: Catalog- _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOcat :: Catalog- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: VarDef - _hdIdef :: ((String,Maybe Type))- _hdIfixedUpIdentifiersTree :: VarDef - _hdIoriginalTree :: VarDef - _tlIannotatedTree :: VarDefList - _tlIdefs :: ([(String,Maybe Type)])- _tlIfixedUpIdentifiersTree :: VarDefList - _tlIoriginalTree :: VarDefList - -- "./TypeChecking/Plpgsql/Block.ag"(line 17, column 12)- _lhsOdefs =- _hdIdef : _tlIdefs- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOcat =- _lhsIcat- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOcat =- _lhsIcat- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIdef,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIdefs,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =- tl_ _tlOcat _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOdefs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))-sem_VarDefList_Nil :: T_VarDefList -sem_VarDefList_Nil =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _lhsOdefs :: ([(String,Maybe Type)])- _lhsOannotatedTree :: VarDefList - _lhsOfixedUpIdentifiersTree :: VarDefList - _lhsOoriginalTree :: VarDefList - -- "./TypeChecking/Plpgsql/Block.ag"(line 18, column 11)- _lhsOdefs =- []- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOdefs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- WithQuery ----------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - catUpdates : [CatalogUpdate]- fixedUpIdentifiersTree : SELF - originalTree : SELF - alternatives:- alternative WithQuery:- child ann : {Annotation}- child name : {String}- child colAliases : {Maybe [String]}- child ex : QueryExpr - visit 0:- local tpe : _- local backTree : _- local attrs : _- local catUpdates : _- local statementType : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-data WithQuery = WithQuery (Annotation) (String) ((Maybe [String])) (QueryExpr ) - deriving ( Data,Eq,Show,Typeable)--- cata-sem_WithQuery :: WithQuery ->- T_WithQuery -sem_WithQuery (WithQuery _ann _name _colAliases _ex ) =- (sem_WithQuery_WithQuery _ann _name _colAliases (sem_QueryExpr _ex ) )--- semantic domain-type T_WithQuery = Catalog ->- IDEnv ->- LocalBindings ->- ( WithQuery ,([CatalogUpdate]),WithQuery ,WithQuery )-data Inh_WithQuery = Inh_WithQuery {cat_Inh_WithQuery :: Catalog,idenv_Inh_WithQuery :: IDEnv,lib_Inh_WithQuery :: LocalBindings}-data Syn_WithQuery = Syn_WithQuery {annotatedTree_Syn_WithQuery :: WithQuery ,catUpdates_Syn_WithQuery :: ([CatalogUpdate]),fixedUpIdentifiersTree_Syn_WithQuery :: WithQuery ,originalTree_Syn_WithQuery :: WithQuery }-wrap_WithQuery :: T_WithQuery ->- Inh_WithQuery ->- Syn_WithQuery -wrap_WithQuery sem (Inh_WithQuery _lhsIcat _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib - in (Syn_WithQuery _lhsOannotatedTree _lhsOcatUpdates _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))-sem_WithQuery_WithQuery :: Annotation ->- String ->- (Maybe [String]) ->- T_QueryExpr ->- T_WithQuery -sem_WithQuery_WithQuery ann_ name_ colAliases_ ex_ =- (\ _lhsIcat- _lhsIidenv- _lhsIlib ->- (let _exOcsql :: LocalBindings- _exOexpectedTypes :: ([Maybe Type])- _lhsOannotatedTree :: WithQuery - _lhsOfixedUpIdentifiersTree :: WithQuery - _lhsOoriginalTree :: WithQuery - _lhsOcatUpdates :: ([CatalogUpdate])- _exOcat :: Catalog- _exOidenv :: IDEnv- _exOlib :: LocalBindings- _exIannotatedTree :: QueryExpr - _exIcidenv :: IDEnv- _exIfixedUpIdentifiersTree :: QueryExpr - _exIlibUpdates :: ([LocalBindingsUpdate])- _exIoriginalTree :: QueryExpr - _exIuType :: (Maybe [(String,Type)])- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 131, column 17)- _exOcsql =- emptyBindings- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 272, column 9)- _tpe =- Right $ Pseudo Void- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 273, column 9)- _backTree =- WithQuery ann_ name_ colAliases_ _exIannotatedTree- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 274, column 9)- _attrs =- maybe [] id $ _exIuType- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 275, column 9)- _catUpdates =- [CatCreateView name_ _attrs ]- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 276, column 9)- _statementType =- Nothing- -- "./TypeChecking/ParameterizedStatements.ag"(line 182, column 17)- _exOexpectedTypes =- []- -- self rule- _annotatedTree =- WithQuery ann_ name_ colAliases_ _exIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- WithQuery ann_ name_ colAliases_ _exIfixedUpIdentifiersTree- -- self rule- _originalTree =- WithQuery ann_ name_ colAliases_ _exIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (from local)- _lhsOcatUpdates =- _catUpdates- -- copy rule (down)- _exOcat =- _lhsIcat- -- copy rule (down)- _exOidenv =- _lhsIidenv- -- copy rule (down)- _exOlib =- _lhsIlib- ( _exIannotatedTree,_exIcidenv,_exIfixedUpIdentifiersTree,_exIlibUpdates,_exIoriginalTree,_exIuType) =- ex_ _exOcat _exOcsql _exOexpectedTypes _exOidenv _exOlib - in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))--- WithQueryList ------------------------------------------------{-- visit 0:- inherited attributes:- cat : Catalog- catUpdates : [CatalogUpdate]- idenv : IDEnv- lib : LocalBindings- synthesized attributes:- annotatedTree : SELF - fixedUpIdentifiersTree : SELF - originalTree : SELF - producedCat : Catalog- alternatives:- alternative Cons:- child hd : WithQuery - child tl : WithQueryList - visit 0:- local newCat : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _- alternative Nil:- visit 0:- local newCat : _- local annotatedTree : _- local fixedUpIdentifiersTree : _- local originalTree : _--}-type WithQueryList = [WithQuery ]--- cata-sem_WithQueryList :: WithQueryList ->- T_WithQueryList -sem_WithQueryList list =- (Prelude.foldr sem_WithQueryList_Cons sem_WithQueryList_Nil (Prelude.map sem_WithQuery list) )--- semantic domain-type T_WithQueryList = Catalog ->- ([CatalogUpdate]) ->- IDEnv ->- LocalBindings ->- ( WithQueryList ,WithQueryList ,WithQueryList ,Catalog)-data Inh_WithQueryList = Inh_WithQueryList {cat_Inh_WithQueryList :: Catalog,catUpdates_Inh_WithQueryList :: ([CatalogUpdate]),idenv_Inh_WithQueryList :: IDEnv,lib_Inh_WithQueryList :: LocalBindings}-data Syn_WithQueryList = Syn_WithQueryList {annotatedTree_Syn_WithQueryList :: WithQueryList ,fixedUpIdentifiersTree_Syn_WithQueryList :: WithQueryList ,originalTree_Syn_WithQueryList :: WithQueryList ,producedCat_Syn_WithQueryList :: Catalog}-wrap_WithQueryList :: T_WithQueryList ->- Inh_WithQueryList ->- Syn_WithQueryList -wrap_WithQueryList sem (Inh_WithQueryList _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib ) =- (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat) = sem _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib - in (Syn_WithQueryList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOproducedCat ))-sem_WithQueryList_Cons :: T_WithQuery ->- T_WithQueryList ->- T_WithQueryList -sem_WithQueryList_Cons hd_ tl_ =- (\ _lhsIcat- _lhsIcatUpdates- _lhsIidenv- _lhsIlib ->- (let _hdOcat :: Catalog- _tlOcat :: Catalog- _lhsOproducedCat :: Catalog- _tlOcatUpdates :: ([CatalogUpdate])- _lhsOannotatedTree :: WithQueryList - _lhsOfixedUpIdentifiersTree :: WithQueryList - _lhsOoriginalTree :: WithQueryList - _hdOidenv :: IDEnv- _hdOlib :: LocalBindings- _tlOidenv :: IDEnv- _tlOlib :: LocalBindings- _hdIannotatedTree :: WithQuery - _hdIcatUpdates :: ([CatalogUpdate])- _hdIfixedUpIdentifiersTree :: WithQuery - _hdIoriginalTree :: WithQuery - _tlIannotatedTree :: WithQueryList - _tlIfixedUpIdentifiersTree :: WithQueryList - _tlIoriginalTree :: WithQueryList - _tlIproducedCat :: Catalog- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 256, column 9)- _newCat =- fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 258, column 9)- _hdOcat =- _newCat- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 259, column 9)- _tlOcat =- _newCat- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 263, column 9)- _lhsOproducedCat =- _tlIproducedCat- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 266, column 9)- _tlOcatUpdates =- _hdIcatUpdates- -- self rule- _annotatedTree =- (:) _hdIannotatedTree _tlIannotatedTree- -- self rule- _fixedUpIdentifiersTree =- (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree- -- self rule- _originalTree =- (:) _hdIoriginalTree _tlIoriginalTree- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- -- copy rule (down)- _hdOidenv =- _lhsIidenv- -- copy rule (down)- _hdOlib =- _lhsIlib- -- copy rule (down)- _tlOidenv =- _lhsIidenv- -- copy rule (down)- _tlOlib =- _lhsIlib- ( _hdIannotatedTree,_hdIcatUpdates,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =- hd_ _hdOcat _hdOidenv _hdOlib - ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIproducedCat) =- tl_ _tlOcat _tlOcatUpdates _tlOidenv _tlOlib - in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat)))-sem_WithQueryList_Nil :: T_WithQueryList -sem_WithQueryList_Nil =- (\ _lhsIcat- _lhsIcatUpdates- _lhsIidenv- _lhsIlib ->- (let _lhsOproducedCat :: Catalog- _lhsOannotatedTree :: WithQueryList - _lhsOfixedUpIdentifiersTree :: WithQueryList - _lhsOoriginalTree :: WithQueryList - -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 256, column 9)- _newCat =- fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates- -- "./TypeChecking/QueryExprs/QueryStatement.ag"(line 268, column 9)- _lhsOproducedCat =- _newCat- -- self rule- _annotatedTree =- []- -- self rule- _fixedUpIdentifiersTree =- []- -- self rule- _originalTree =- []- -- self rule- _lhsOannotatedTree =- _annotatedTree- -- self rule- _lhsOfixedUpIdentifiersTree =- _fixedUpIdentifiersTree- -- self rule- _lhsOoriginalTree =- _originalTree- in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat)))
− src/Database/HsSqlPpp/AstInternals/Catalog/CatalogInternal.lhs
@@ -1,531 +0,0 @@--This module contains the implementation of the Catalog data types-and functions, and provides the api for the other type checking-modules.--> {-# LANGUAGE DeriveDataTypeable #-}->-> module Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-> (-> Catalog-> ,CastContext(..)-> ,CompositeFlavour(..)-> ,relationComposites-> ,CompositeDef-> ,FunctionPrototype-> ,DomainDefinition-> ,FunFlav(..)-> ,emptyCatalog-> ,defaultCatalog-> ,CatalogUpdate(..)-> ,ppCatUpdate-> ,updateCatalog-> ,deconstructCatalog-> -- type checker stuff-> ,catCompositeDef-> ,catCompositeAttrsPair-> ,catCompositeAttrs-> ,catCompositePublicAttrs-> ,catTypeCategory-> ,catPreferredType-> ,catCast-> ,catDomainBaseType-> ,catLookupFns-> ,catTypeExists-> ,catLookupType-> ,OperatorType(..)-> ,getOperatorType-> ,isOperatorName-> -- comparing catalogs-> ,CatalogDiff(..)-> ,compareCatalogs-> ,ppCatDiff-> ) where->-> import Control.Monad-> import Data.List-> import Data.Data-> -- import Debug.Trace-> import Data.Char->-> import Database.HsSqlPpp.AstInternals.TypeType-> import Database.HsSqlPpp.Utils.Utils->-> -- | The main datatype, this holds the catalog and context-> -- information to type check against.-> data Catalog = Catalog-> {catTypeNames :: [(String, Type)]-> ,catDomainDefs :: [DomainDefinition]-> ,catCasts :: [(Type,Type,CastContext)]-> ,catTypeCategories :: [(Type,String,Bool)]-> ,catPrefixOperators :: [FunctionPrototype]-> ,catPostfixOperators :: [FunctionPrototype]-> ,catBinaryOperators :: [FunctionPrototype]-> ,catFunctions :: [FunctionPrototype]-> ,catAggregates :: [FunctionPrototype]-> ,catWindowFunctions :: [FunctionPrototype]-> ,catAttrDefs :: [CompositeDef]-> ,catUpdates :: [CatalogUpdate]}-> deriving Show->-> -- | Represents an empty catalog. This doesn't contain things-> -- like the \'and\' operator, 'defaultCatalog' contains these.-> emptyCatalog :: Catalog-> emptyCatalog = Catalog [] [] [] [] [] [] [] [] [] [] [] []->-> -- | Represents what you probably want to use as a starting point if-> -- you are building an catalog from scratch. It contains-> -- information on built in function like things that aren't in the-> -- PostgreSQL catalog, such as greatest, coalesce, keyword operators-> -- like \'and\', etc..-> defaultCatalog :: Catalog-> defaultCatalog =-> emptyCatalog {catTypeNames = pseudoTypes-> ,catBinaryOperators = pe : keywordOperatorTypes-> ,catFunctions = specialFunctionTypes}-> where-> pe = ("=", [Pseudo AnyElement, Pseudo AnyElement], typeBool, False)->-> -- | Use to note what the flavour of a cast is, i.e. if/when it can-> -- be used implicitly.-> data CastContext = ImplicitCastContext-> | AssignmentCastContext-> | ExplicitCastContext-> deriving (Eq,Show,Ord,Typeable,Data)->-> -- | Used to distinguish between standalone composite types, and-> -- automatically generated ones, generated from a table or view-> -- respectively.-> data CompositeFlavour = Composite | TableComposite | ViewComposite-> deriving (Eq,Ord,Show)->-> relationComposites :: [CompositeFlavour]-> relationComposites = [TableComposite,ViewComposite]->-> -- | Provides the definition of a composite type. The components are-> -- composite (or table or view) name, the flavour of the composite,-> -- the types of the composite attributes, and the types of the-> -- system columns iff the composite represents a table type (the-> -- third and fourth components are always 'CompositeType's).-> type CompositeDef = (String, CompositeFlavour, Type, Type)->-> -- | The components are: function (or operator) name, argument-> -- types, return type and is variadic.-> type FunctionPrototype = (String, [Type], Type, Bool)->-> -- | The components are domain type, base type (todo: add check-> -- constraint).-> type DomainDefinition = (Type,Type)->-> data CatalogUpdate =-> -- | add a new scalar type with the name given, also creates-> -- an array type automatically-> CatCreateScalar Type String Bool-> -- | add a new domain to the catalog-> | CatCreateDomain Type Type-> -- | add a new composite type to the catalog-> | CatCreateComposite String [(String,Type)]-> -- | add a new cast to the catalog-> | CatCreateCast Type Type CastContext-> -- | add a new table to the catalog with the given public and private columns-> -- also creates the composite type to go with this table-> | CatCreateTable String [(String,Type)] [(String,Type)]-> -- | add the view to the catalog, using the column names and types supplied-> | CatCreateView String [(String,Type)]-> -- | add a new function to the catalog-> | CatCreateFunction FunFlav String [Type] Type Bool-> -- | drop a function from the catalog-> | CatDropFunction Bool String [Type]-> deriving (Eq,Ord,Typeable,Data,Show)->-> -- | attempt to show a readable representation of a 'CatalogUpdate' value-> ppCatUpdate :: CatalogUpdate -> String-> ppCatUpdate (CatCreateScalar t c p) =-> "CatCreateScalar " ++ show t ++ "(" ++ c ++ "," ++ show p ++ ")"-> ppCatUpdate (CatCreateDomain t b) =-> "CatCreateDomain " ++ show t ++ " as " ++ show b-> ppCatUpdate (CatCreateComposite nm flds) =-> "CatCreateComposite " ++ nm ++ showFlds flds-> ppCatUpdate (CatCreateCast s t ctx) =-> "CatCreateCast " ++ show s ++ "->" ++ show t ++ " " ++ show ctx-> ppCatUpdate (CatCreateTable nm flds1 flds2) =-> "CatCreateTable " ++ nm ++ showFlds flds1 ++ showFlds flds2-> ppCatUpdate (CatCreateView nm flds) =-> "CatCreateView " ++ nm ++ showFlds flds-> ppCatUpdate (CatCreateFunction flav nm args ret vdc) =-> "CatCreateFunction " ++ show flav ++ " " ++ nm-> ++ " returns " ++ show ret-> ++ "(" ++ intercalate "," (map show args) ++ ")"-> ++ if vdc then " variadic" else ""-> ppCatUpdate (CatDropFunction _ nm args) =-> "CatDropFunction " ++ nm ++ "(" ++ show args ++ ")"->-> showFlds :: [(String,Type)] -> String-> showFlds flds = "(\n" ++ sfs flds ++ ")"-> where-> sfs ((nm,t):fs) = " " ++ show nm-> ++ " " ++ show t ++ "\n" ++ sfs fs-> sfs [] = ""->-> data FunFlav = FunPrefix | FunPostfix | FunBinary-> | FunName | FunAgg | FunWindow-> deriving (Eq,Show,Ord,Typeable,Data)->-> -- | Applies a list of 'CatalogUpdate's to an 'Catalog' value-> -- to produce a new Catalog value.-> updateCatalog :: Catalog-> -> [CatalogUpdate]-> -> Either [TypeError] Catalog-> updateCatalog cat' eus =-> foldM updateCat' (cat' {catUpdates = catUpdates cat' ++ eus}) eus-> where-> updateCat' cat (CatCreateScalar ty catl pref) = do-> errorWhen (not allowed)-> [BadCatalogUpdate $ "can only add scalar types\-> \this way, got " ++ show ty]-> let ScalarType nm = ty-> return $ addTypeWithArray cat nm ty catl pref-> where-> allowed = case ty of-> ScalarType _ -> True-> _ -> False->-> updateCat' cat (CatCreateDomain ty baseTy) = do-> errorWhen (not allowed)-> [BadCatalogUpdate $ "can only add domain types\-> \this way, got " ++ show ty]-> errorWhen (not baseAllowed)-> [BadCatalogUpdate $ "can only add domain types\-> \based on scalars, got "-> ++ show baseTy]-> let DomainType nm = ty-> catl <- catTypeCategory cat baseTy-> return (addTypeWithArray cat nm ty catl False) {-> catDomainDefs =-> (ty,baseTy):catDomainDefs cat-> ,catCasts =-> (ty,baseTy,ImplicitCastContext):catCasts cat}-> where-> allowed = case ty of-> DomainType _ -> True-> _ -> False-> baseAllowed = case baseTy of-> ScalarType _ -> True-> _ -> False-> updateCat' cat (CatCreateComposite nm flds) =-> return $ (addTypeWithArray cat nm (NamedCompositeType nm) "C" False) {-> catAttrDefs =-> (nm,Composite,CompositeType flds, CompositeType [])-> : catAttrDefs cat}->-> updateCat' cat (CatCreateCast src tgt ctx) =-> return $ cat {catCasts = (src,tgt,ctx):catCasts cat}->-> updateCat' cat (CatCreateTable nm attrs sysAttrs) = do-> checkTypeDoesntExist cat nm (NamedCompositeType nm)-> return $ (addTypeWithArray cat nm-> (NamedCompositeType nm) "C" False) {-> catAttrDefs =-> (nm,TableComposite-> ,CompositeType attrs-> , CompositeType sysAttrs)-> : catAttrDefs cat}->-> updateCat' cat (CatCreateView nm attrs) = do-> checkTypeDoesntExist cat nm (NamedCompositeType nm)-> return $ (addTypeWithArray cat nm-> (NamedCompositeType nm) "C" False) {-> catAttrDefs =-> (nm,ViewComposite,CompositeType attrs, CompositeType [])-> : catAttrDefs cat}->-> updateCat' cat (CatCreateFunction f nm args ret vdc) =-> return $ case f of-> FunPrefix -> cat {catPrefixOperators =-> fp : catPrefixOperators cat}-> FunPostfix -> cat {catPostfixOperators =-> fp : catPostfixOperators cat}-> FunBinary -> cat {catBinaryOperators =-> fp : catBinaryOperators cat}-> FunAgg -> cat {catAggregates =-> fp : catAggregates cat}-> FunWindow -> cat {catWindowFunctions =-> fp : catWindowFunctions cat}-> FunName -> cat {catFunctions =-> fp : catFunctions cat}-> where fp = (nm,args,ret,vdc)->-> updateCat' cat (CatDropFunction _ifexists nm args) = do-> let matches = filter matchingFn (catFunctions cat)-> errorWhen (null matches)-> [BadCatalogUpdate-> $ "couldn't find function to drop "-> ++ show nm ++ "(" ++ show args++")"]-> errorWhen (length matches > 1)-> [BadCatalogUpdate-> $ "multiple matching functions to drop "-> ++ show nm ++ "(" ++ show args++")"]-> return cat {catFunctions = filter (not . matchingFn)-> (catFunctions cat)-> ,catUpdates = filter (not.matchingUpdate)-> (catUpdates cat)}-> where-> matchingFn (nm1,a1,_,_) =-> map toLower nm == map toLower nm1 && args == a1-> matchingUpdate (CatDropFunction _ nm2 a2)-> | map toLower nm2 == map toLower nm-> && a2 == args = True-> matchingUpdate (CatCreateFunction _ nm2 a2 _ _)-> | map toLower nm2 == map toLower nm-> && a2 == args = True-> matchingUpdate _ = False--todo:-look for matching function in list, if not found then error-remove from list, and remove from update list--> addTypeWithArray cat nm ty catl pref =-> cat {catTypeNames =-> ('_':nm,ArrayType ty)-> : (nm,ty)-> : catTypeNames cat-> ,catTypeCategories =-> (ArrayType ty,"A",False)-> : (ty,catl,pref)-> : catTypeCategories cat}-> checkTypeDoesntExist cat nm ty = do-> errorWhen (any (==nm) $ map fst $ catTypeNames cat)-> [TypeAlreadyExists ty]-> errorWhen (any (==ty) $ map snd $ catTypeNames cat)-> [TypeAlreadyExists ty]-> return ()-> {--> | Takes part an 'Catalog' value to produce a list of 'CatalogUpdate's.-> You can use this to look inside the Catalog data type e.g. if you want to-> examine a catalog. It should be the case that:-> @-> updateCatalog emptyCatalog (deconstructCatalog cat) = cat-> @ -}-> deconstructCatalog :: Catalog -> [CatalogUpdate]-> deconstructCatalog = catUpdates------------------------------------------------------------------------------------= type checking stuff--> catCompositeDef :: Catalog -> [CompositeFlavour] -> String-> -> Either [TypeError] CompositeDef-> catCompositeDef cat flvs nm = do-> let c = filter m $ catAttrDefs cat-> errorWhen (null c)-> [UnrecognisedRelation nm]-> case c of-> (_,fl1,r,s):[] -> return (nm,fl1,r,s)-> _ -> Left [InternalError $ "problem getting attributes for: "-> ++ show nm ++ ", " ++ show c]-> where-> m (n,t,_,_) = n == nm && (null flvs || t `elem` flvs)->-> catCompositeAttrsPair :: Catalog -> [CompositeFlavour] -> String-> -> Either [TypeError] ([(String,Type)],[(String,Type)])-> catCompositeAttrsPair cat flvs ty = do-> (_,_,CompositeType a,CompositeType b) <- catCompositeDef cat flvs ty-> return (a,b)->-> catCompositeAttrs :: Catalog -> [CompositeFlavour] -> String-> -> Either [TypeError] [(String,Type)]-> catCompositeAttrs cat flvs ty = do-> (a,b) <- catCompositeAttrsPair cat flvs ty-> return $ a ++ b->-> catCompositePublicAttrs :: Catalog -> [CompositeFlavour] -> String-> -> Either [TypeError] [(String,Type)]-> catCompositePublicAttrs cat flvs ty = do-> (a,_) <- catCompositeAttrsPair cat flvs ty-> return a->-> catTypeCategory :: Catalog -> Type -> Either [TypeError] String-> catTypeCategory cat ty =-> fmap fst $ catGetCategoryInfo cat ty->-> catPreferredType :: Catalog -> Type -> Either [TypeError] Bool-> catPreferredType cat ty =-> fmap snd $ catGetCategoryInfo cat ty->-> catCast :: Catalog -> CastContext -> Type -> Type -> Either [TypeError] Bool-> catCast cat ctx from to = {-trace ("check cast " ++ show from ++ show to) $-}-> case from of-> t@(DomainType _) -> do-> baseType <- catDomainBaseType cat t-> cc <- catCast cat ctx baseType to-> return $ (baseType == to) ||-> (cc ||-> any (== (from, to, ctx)) (catCasts cat))-> _ -> Right $ any (==(from,to,ctx)) (catCasts cat)->-> catDomainBaseType :: Catalog -> Type -> Either [TypeError] Type-> catDomainBaseType cat ty =-> --check type is domain, check it exists in main list-> case lookup ty (catDomainDefs cat) of-> Nothing -> Left [DomainDefNotFound ty]-> Just t -> Right t->-> catLookupFns :: Catalog -> String -> [FunctionPrototype]-> catLookupFns cat name =-> filter (\(nm,_,_,_) -> map toLower nm == map toLower name) catGetAllFns-> where-> catGetAllFns =-> concat [catPrefixOperators cat-> ,catPostfixOperators cat-> ,catBinaryOperators cat-> ,catFunctions cat-> ,catAggregates cat-> ,catWindowFunctions cat]--== internal support for type checker fns above--> catGetCategoryInfo :: Catalog -> Type -> Either [TypeError] (String, Bool)-> catGetCategoryInfo cat ty =-> case ty of-> SetOfType _ -> Right ("", False)-> AnonymousRecordType _ -> Right ("", False)-> ArrayType (Pseudo _) -> Right ("A",False)-> Pseudo _ -> Right ("P",False)-> _ -> let l = filter (\(t,_,_) -> ty == t) $ catTypeCategories cat-> in if null l-> then Left [InternalError $ "no type category for " ++ show ty]-> else let (_,c,p):_ =l-> in Right (c,p)->-> catTypeExists :: Catalog -> Type -> Either [TypeError] Type-> catTypeExists cat t =-> errorWhen (t `notElem` map snd (catTypeNames cat))-> [UnknownTypeError t] >>-> Right t->-> catLookupType :: Catalog -> String -> Either [TypeError] Type-> catLookupType cat name =-> liftME [UnknownTypeName name] $-> lookup name (catTypeNames cat)->--================================================================================--= built in stuff--keyword operators, all of these are built in and don't appear in any-postgresql catalog--This is wrong, these need to be separated into prefix, postfix, binary--> keywordOperatorTypes :: [FunctionPrototype]-> keywordOperatorTypes = [-> ("!and", [typeBool, typeBool], typeBool, False)-> ,("!or", [typeBool, typeBool], typeBool, False)-> ,("!like", [ScalarType "text", ScalarType "text"], typeBool, False)-> ,("!like", [ScalarType "char", ScalarType "char"], typeBool, False)-> ,("!like", [ScalarType "varchar", ScalarType "varchar"], typeBool, False)-> ,("!notlike", [ScalarType "text", ScalarType "text"], typeBool, False)-> ,("!notlike", [ScalarType "char", ScalarType "char"], typeBool, False)-> ,("!notlike", [ScalarType "varchar", ScalarType "varchar"], typeBool, False)-> ,("!not", [typeBool], typeBool, False)-> ,("!isnull", [Pseudo AnyElement], typeBool, False)-> ,("!isnotnull", [Pseudo AnyElement], typeBool, False)-> ,("!arrayctor", [ArrayType $ Pseudo AnyElement], Pseudo AnyArray, True)-> ,("!between", [Pseudo AnyElement-> ,Pseudo AnyElement-> ,Pseudo AnyElement], typeBool, False)-> ,("!substring",[ScalarType "text",typeInt,typeInt],ScalarType "text",False)-> ,("!substring",[ScalarType "varchar",typeInt,typeInt],ScalarType "varchar",False)-> ,("!substring",[ScalarType "char",typeInt,typeInt],ScalarType "char",False)-> ,("!arraysub", [Pseudo AnyArray,typeInt], Pseudo AnyElement, False)-> ]->-> -- these look like functions, but don't appear in the postgresql catalog.->-> specialFunctionTypes :: [FunctionPrototype]-> specialFunctionTypes = [-> ("coalesce", [ArrayType $ Pseudo AnyElement], Pseudo AnyElement, True)-> ,("nullif", [Pseudo AnyElement, Pseudo AnyElement], Pseudo AnyElement,False)-> ,("greatest", [ArrayType $ Pseudo AnyElement], Pseudo AnyElement,True)-> ,("least", [ArrayType $ Pseudo AnyElement], Pseudo AnyElement,True)-> ]->-> pseudoTypes :: [(String, Type)]-> pseudoTypes =-> [("any",Pseudo Any)-> ,("anyarray",Pseudo AnyArray)-> ,("anyelement",Pseudo AnyElement)-> ,("anyenum",Pseudo AnyEnum)-> ,("anynonarray",Pseudo AnyNonArray)-> ,("cstring",Pseudo Cstring)-> ,("record",Pseudo Record)-> ,("trigger",Pseudo Trigger)-> ,("void",Pseudo Void)-> ,("_cstring",ArrayType $ Pseudo Cstring)-> ,("_record",ArrayType $ Pseudo Record)-> --,Pseudo Internal-> --,Pseudo LanguageHandler-> --,Pseudo Opaque-> ]--================================================================================--= getOperatorType--used by the pretty printer, not sure this is a very good design--for now, assume that all the overloaded operators that have the-same name are all either binary, prefix or postfix, otherwise the-getoperatortype would need the types of the arguments to determine-the operator type, and the parser would have to be a lot cleverer-although, parsec handles - being unary and binary without breaking-a sweat, so maybe this isn't too difficult?--this is why binary @ operator isn't currently supported--> data OperatorType = BinaryOp | PrefixOp | PostfixOp-> deriving (Eq,Show)->-> getOperatorType :: Catalog -> String -> Either [TypeError] OperatorType-> getOperatorType cat s =-> case () of-> _ | s `elem` ["!and", "!or","!like","!notlike","."] -> Right BinaryOp-> | s `elem` ["!not"] -> Right PrefixOp-> | s `elem` ["!isnull", "!isnotnull"] -> Right PostfixOp-> | any (\(x,_,_,_) -> x == s) (catBinaryOperators cat) ->-> Right BinaryOp-> | any (\(x,_,_,_) -> x == s || (x=="-" && s=="u-"))-> (catPrefixOperators cat) ->-> Right PrefixOp-> | any (\(x,_,_,_) -> x == s) (catPostfixOperators cat) ->-> Right PostfixOp-> | otherwise ->-> Left [InternalError $ "don't know flavour of operator " ++ s]->-> isOperatorName :: String -> Bool-> isOperatorName = any (`elem` "+-*/<>=~!@#%^&|`?.")--================================================================================--> -- | items in first catalog and not second, items in second and not first.-> data CatalogDiff = CatalogDiff [CatalogUpdate] [CatalogUpdate]-> deriving Show->-> -- | find differences between two catalogs-> compareCatalogs :: Catalog -> Catalog -> Catalog -> CatalogDiff-> compareCatalogs base start end =-> let baseCatBits = deconstructCatalog base-> startCatBits = deconstructCatalog start \\ baseCatBits-> endCatBits = deconstructCatalog end \\ baseCatBits-> missing = sort $ endCatBits \\ startCatBits-> extras = sort $ startCatBits \\ endCatBits-> in CatalogDiff missing extras->-> -- | print a catdiff in a more human readable way than show.-> ppCatDiff :: CatalogDiff -> String-> ppCatDiff (CatalogDiff missing extr) =-> "\nmissing:\n"-> ++ intercalate "\n" (map ppCatUpdate missing)-> ++ "\nextra:\n"-> ++ intercalate "\n" (map ppCatUpdate extr)
− src/Database/HsSqlPpp/AstInternals/Catalog/DefaultTemplate1Catalog.lhs
@@ -1,13044 +0,0 @@-----This file is auto generated, to regenerate run-MUMBLE MUMBLE SOMETHING--from the project root (i.e. where the cabal file is located).--> module Database.HsSqlPpp.AstInternals.Catalog.DefaultTemplate1Catalog-> (defaultTemplate1Catalog) where->-> import Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-> import Database.HsSqlPpp.AstInternals.TypeType->-> defaultTemplate1Catalog :: Catalog-> defaultTemplate1Catalog =-> (\l -> case l of-> Left x -> error $ show x-> Right e -> e) $-> updateCatalog defaultCatalog-- -> [CatCreateScalar (ScalarType "bool") "B" True,-> CatCreateScalar (ScalarType "bytea") "U" False,-> CatCreateScalar (ScalarType "char") "S" False,-> CatCreateScalar (ScalarType "name") "S" False,-> CatCreateScalar (ScalarType "int8") "N" False,-> CatCreateScalar (ScalarType "int2") "N" False,-> CatCreateScalar (ScalarType "int2vector") "A" False,-> CatCreateScalar (ScalarType "int4") "N" False,-> CatCreateScalar (ScalarType "regproc") "N" False,-> CatCreateScalar (ScalarType "text") "S" True,-> CatCreateScalar (ScalarType "oid") "N" True,-> CatCreateScalar (ScalarType "tid") "U" False,-> CatCreateScalar (ScalarType "xid") "U" False,-> CatCreateScalar (ScalarType "cid") "U" False,-> CatCreateScalar (ScalarType "oidvector") "A" False,-> CatCreateScalar (ScalarType "xml") "U" False,-> CatCreateScalar (ScalarType "point") "G" False,-> CatCreateScalar (ScalarType "lseg") "G" False,-> CatCreateScalar (ScalarType "path") "G" False,-> CatCreateScalar (ScalarType "box") "G" False,-> CatCreateScalar (ScalarType "polygon") "G" False,-> CatCreateScalar (ScalarType "line") "G" False,-> CatCreateScalar (ScalarType "float4") "N" False,-> CatCreateScalar (ScalarType "float8") "N" True,-> CatCreateScalar (ScalarType "abstime") "D" False,-> CatCreateScalar (ScalarType "reltime") "T" False,-> CatCreateScalar (ScalarType "tinterval") "T" False,-> CatCreateScalar (ScalarType "circle") "G" False,-> CatCreateScalar (ScalarType "money") "N" False,-> CatCreateScalar (ScalarType "macaddr") "U" False,-> CatCreateScalar (ScalarType "inet") "I" True,-> CatCreateScalar (ScalarType "cidr") "I" False,-> CatCreateScalar (ScalarType "aclitem") "U" False,-> CatCreateScalar (ScalarType "bpchar") "S" False,-> CatCreateScalar (ScalarType "varchar") "S" False,-> CatCreateScalar (ScalarType "date") "D" False,-> CatCreateScalar (ScalarType "time") "D" False,-> CatCreateScalar (ScalarType "timestamp") "D" False,-> CatCreateScalar (ScalarType "timestamptz") "D" True,-> CatCreateScalar (ScalarType "interval") "T" True,-> CatCreateScalar (ScalarType "timetz") "D" False,-> CatCreateScalar (ScalarType "bit") "V" False,-> CatCreateScalar (ScalarType "varbit") "V" True,-> CatCreateScalar (ScalarType "numeric") "N" False,-> CatCreateScalar (ScalarType "refcursor") "U" False,-> CatCreateScalar (ScalarType "regprocedure") "N" False,-> CatCreateScalar (ScalarType "regoper") "N" False,-> CatCreateScalar (ScalarType "regoperator") "N" False,-> CatCreateScalar (ScalarType "regclass") "N" False,-> CatCreateScalar (ScalarType "regtype") "N" False,-> CatCreateScalar (ScalarType "uuid") "U" False,-> CatCreateScalar (ScalarType "tsvector") "U" False,-> CatCreateScalar (ScalarType "gtsvector") "U" False,-> CatCreateScalar (ScalarType "tsquery") "U" False,-> CatCreateScalar (ScalarType "regconfig") "N" False,-> CatCreateScalar (ScalarType "regdictionary") "N" False,-> CatCreateScalar (ScalarType "txid_snapshot") "U" False,-> CatCreateDomain (DomainType "information_schema.cardinal_number")-> (ScalarType "int4"),-> CatCreateDomain (DomainType "information_schema.character_data")-> (ScalarType "varchar"),-> CatCreateDomain (DomainType "information_schema.sql_identifier")-> (ScalarType "varchar"),-> CatCreateDomain (DomainType "information_schema.time_stamp")-> (ScalarType "timestamptz"),-> CatCreateCast (ScalarType "int8") (ScalarType "int2")-> AssignmentCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "float4")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "float8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "numeric")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "int8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "int4")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "float4")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "float8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "numeric")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "int8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "int2")-> AssignmentCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "float4")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "float8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "numeric")-> ImplicitCastContext,-> CatCreateCast (ScalarType "float4") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float4") (ScalarType "int2")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float4") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float4") (ScalarType "float8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "float4") (ScalarType "numeric")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float8") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float8") (ScalarType "int2")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float8") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float8") (ScalarType "float4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "float8") (ScalarType "numeric")-> AssignmentCastContext,-> CatCreateCast (ScalarType "numeric") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "numeric") (ScalarType "int2")-> AssignmentCastContext,-> CatCreateCast (ScalarType "numeric") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "numeric") (ScalarType "float4")-> ImplicitCastContext,-> CatCreateCast (ScalarType "numeric") (ScalarType "float8")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "bool")-> ExplicitCastContext,-> CatCreateCast (ScalarType "bool") (ScalarType "int4")-> ExplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regproc")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regproc") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regproc")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regproc")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regproc")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regproc") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regproc") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regproc") (ScalarType "regprocedure")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regprocedure") (ScalarType "regproc")-> ImplicitCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regprocedure")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regprocedure") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regprocedure")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regprocedure")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regprocedure")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regprocedure") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regprocedure") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regoper")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regoper") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regoper")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regoper")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regoper")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regoper") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regoper") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regoper") (ScalarType "regoperator")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regoperator") (ScalarType "regoper")-> ImplicitCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regoperator")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regoperator") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regoperator")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regoperator")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regoperator")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regoperator") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regoperator") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regclass")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regclass") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regclass")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regclass")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regclass")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regclass") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regclass") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regtype")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regtype") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regtype")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regtype")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regtype")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regtype") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regtype") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regconfig")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regconfig") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regconfig")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regconfig")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regconfig")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regconfig") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regconfig") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "oid") (ScalarType "regdictionary")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regdictionary") (ScalarType "oid")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "regdictionary")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int2") (ScalarType "regdictionary")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "regdictionary")-> ImplicitCastContext,-> CatCreateCast (ScalarType "regdictionary") (ScalarType "int8")-> AssignmentCastContext,-> CatCreateCast (ScalarType "regdictionary") (ScalarType "int4")-> AssignmentCastContext,-> CatCreateCast (ScalarType "text") (ScalarType "regclass")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "regclass")-> ImplicitCastContext,-> CatCreateCast (ScalarType "text") (ScalarType "bpchar")-> ImplicitCastContext,-> CatCreateCast (ScalarType "text") (ScalarType "varchar")-> ImplicitCastContext,-> CatCreateCast (ScalarType "bpchar") (ScalarType "text")-> ImplicitCastContext,-> CatCreateCast (ScalarType "bpchar") (ScalarType "varchar")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "text")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "bpchar")-> ImplicitCastContext,-> CatCreateCast (ScalarType "char") (ScalarType "text")-> ImplicitCastContext,-> CatCreateCast (ScalarType "char") (ScalarType "bpchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "char") (ScalarType "varchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "name") (ScalarType "text")-> ImplicitCastContext,-> CatCreateCast (ScalarType "name") (ScalarType "bpchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "name") (ScalarType "varchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "text") (ScalarType "char")-> AssignmentCastContext,-> CatCreateCast (ScalarType "bpchar") (ScalarType "char")-> AssignmentCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "char")-> AssignmentCastContext,-> CatCreateCast (ScalarType "text") (ScalarType "name")-> ImplicitCastContext,-> CatCreateCast (ScalarType "bpchar") (ScalarType "name")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "name")-> ImplicitCastContext,-> CatCreateCast (ScalarType "char") (ScalarType "int4")-> ExplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "char")-> ExplicitCastContext,-> CatCreateCast (ScalarType "abstime") (ScalarType "date")-> AssignmentCastContext,-> CatCreateCast (ScalarType "abstime") (ScalarType "time")-> AssignmentCastContext,-> CatCreateCast (ScalarType "abstime") (ScalarType "timestamp")-> ImplicitCastContext,-> CatCreateCast (ScalarType "abstime") (ScalarType "timestamptz")-> ImplicitCastContext,-> CatCreateCast (ScalarType "reltime") (ScalarType "interval")-> ImplicitCastContext,-> CatCreateCast (ScalarType "date") (ScalarType "timestamp")-> ImplicitCastContext,-> CatCreateCast (ScalarType "date") (ScalarType "timestamptz")-> ImplicitCastContext,-> CatCreateCast (ScalarType "time") (ScalarType "interval")-> ImplicitCastContext,-> CatCreateCast (ScalarType "time") (ScalarType "timetz")-> ImplicitCastContext,-> CatCreateCast (ScalarType "timestamp") (ScalarType "abstime")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamp") (ScalarType "date")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamp") (ScalarType "time")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamp") (ScalarType "timestamptz")-> ImplicitCastContext,-> CatCreateCast (ScalarType "timestamptz") (ScalarType "abstime")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamptz") (ScalarType "date")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamptz") (ScalarType "time")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamptz") (ScalarType "timestamp")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timestamptz") (ScalarType "timetz")-> AssignmentCastContext,-> CatCreateCast (ScalarType "interval") (ScalarType "reltime")-> AssignmentCastContext,-> CatCreateCast (ScalarType "interval") (ScalarType "time")-> AssignmentCastContext,-> CatCreateCast (ScalarType "timetz") (ScalarType "time")-> AssignmentCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "abstime")-> ExplicitCastContext,-> CatCreateCast (ScalarType "abstime") (ScalarType "int4")-> ExplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "reltime")-> ExplicitCastContext,-> CatCreateCast (ScalarType "reltime") (ScalarType "int4")-> ExplicitCastContext,-> CatCreateCast (ScalarType "lseg") (ScalarType "point")-> ExplicitCastContext,-> CatCreateCast (ScalarType "path") (ScalarType "point")-> ExplicitCastContext,-> CatCreateCast (ScalarType "path") (ScalarType "polygon")-> AssignmentCastContext,-> CatCreateCast (ScalarType "box") (ScalarType "point")-> ExplicitCastContext,-> CatCreateCast (ScalarType "box") (ScalarType "lseg")-> ExplicitCastContext,-> CatCreateCast (ScalarType "box") (ScalarType "polygon")-> AssignmentCastContext,-> CatCreateCast (ScalarType "box") (ScalarType "circle")-> ExplicitCastContext,-> CatCreateCast (ScalarType "polygon") (ScalarType "point")-> ExplicitCastContext,-> CatCreateCast (ScalarType "polygon") (ScalarType "path")-> AssignmentCastContext,-> CatCreateCast (ScalarType "polygon") (ScalarType "box")-> ExplicitCastContext,-> CatCreateCast (ScalarType "polygon") (ScalarType "circle")-> ExplicitCastContext,-> CatCreateCast (ScalarType "circle") (ScalarType "point")-> ExplicitCastContext,-> CatCreateCast (ScalarType "circle") (ScalarType "box")-> ExplicitCastContext,-> CatCreateCast (ScalarType "circle") (ScalarType "polygon")-> ExplicitCastContext,-> CatCreateCast (ScalarType "cidr") (ScalarType "inet")-> ImplicitCastContext,-> CatCreateCast (ScalarType "inet") (ScalarType "cidr")-> AssignmentCastContext,-> CatCreateCast (ScalarType "bit") (ScalarType "varbit")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varbit") (ScalarType "bit")-> ImplicitCastContext,-> CatCreateCast (ScalarType "int8") (ScalarType "bit")-> ExplicitCastContext,-> CatCreateCast (ScalarType "int4") (ScalarType "bit")-> ExplicitCastContext,-> CatCreateCast (ScalarType "bit") (ScalarType "int8")-> ExplicitCastContext,-> CatCreateCast (ScalarType "bit") (ScalarType "int4")-> ExplicitCastContext,-> CatCreateCast (ScalarType "cidr") (ScalarType "text")-> AssignmentCastContext,-> CatCreateCast (ScalarType "inet") (ScalarType "text")-> AssignmentCastContext,-> CatCreateCast (ScalarType "bool") (ScalarType "text")-> AssignmentCastContext,-> CatCreateCast (ScalarType "xml") (ScalarType "text")-> AssignmentCastContext,-> CatCreateCast (ScalarType "text") (ScalarType "xml")-> ExplicitCastContext,-> CatCreateCast (ScalarType "cidr") (ScalarType "varchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "inet") (ScalarType "varchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "bool") (ScalarType "varchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "xml") (ScalarType "varchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "xml")-> ExplicitCastContext,-> CatCreateCast (ScalarType "cidr") (ScalarType "bpchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "inet") (ScalarType "bpchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "bool") (ScalarType "bpchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "xml") (ScalarType "bpchar")-> AssignmentCastContext,-> CatCreateCast (ScalarType "bpchar") (ScalarType "xml")-> ExplicitCastContext,-> CatCreateCast (ScalarType "bpchar") (ScalarType "bpchar")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varchar") (ScalarType "varchar")-> ImplicitCastContext,-> CatCreateCast (ScalarType "time") (ScalarType "time")-> ImplicitCastContext,-> CatCreateCast (ScalarType "timestamp") (ScalarType "timestamp")-> ImplicitCastContext,-> CatCreateCast (ScalarType "timestamptz") (ScalarType "timestamptz")-> ImplicitCastContext,-> CatCreateCast (ScalarType "interval") (ScalarType "interval")-> ImplicitCastContext,-> CatCreateCast (ScalarType "timetz") (ScalarType "timetz")-> ImplicitCastContext,-> CatCreateCast (ScalarType "bit") (ScalarType "bit")-> ImplicitCastContext,-> CatCreateCast (ScalarType "varbit") (ScalarType "varbit")-> ImplicitCastContext,-> CatCreateCast (ScalarType "numeric") (ScalarType "numeric")-> ImplicitCastContext,-> CatCreateFunction FunPrefix "~" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunPrefix "~" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunPrefix "~" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunPrefix "~" [ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunPrefix "~" [ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunPrefix "||/" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "|/" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "|" [ScalarType "tinterval"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunPrefix "@@" [ScalarType "circle"]-> (ScalarType "point")-> False,-> CatCreateFunction FunPrefix "@@" [ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunPrefix "@@" [ScalarType "path"]-> (ScalarType "point")-> False,-> CatCreateFunction FunPrefix "@@" [ScalarType "polygon"]-> (ScalarType "point")-> False,-> CatCreateFunction FunPrefix "@@" [ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunPrefix "@-@" [ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "@-@" [ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "@" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunPrefix "@" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunPrefix "@" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunPrefix "@" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "@" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunPrefix "@" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunPrefix "?|" [ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunPrefix "?|" [ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunPrefix "?-" [ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunPrefix "?-" [ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunPrefix "-" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunPrefix "+" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunPrefix "+" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunPrefix "+" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunPrefix "+" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunPrefix "+" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunPrefix "+" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunPrefix "#" [ScalarType "path"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunPrefix "#" [ScalarType "polygon"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunPrefix "!!" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunPrefix "!!" [ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunPostfix "!" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "~~*"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~~*"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~~*"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~~"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~~"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~~"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~>~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~>~"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~>=~"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~>=~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~="-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~="-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~="-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~="-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~="-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~<~"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~<~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~<=~"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~<=~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~*"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~*"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~*"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "polygon", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "~"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "||" [Pseudo AnyArray, Pseudo AnyArray]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunBinary "||"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunBinary "||"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "varbit")-> False,-> CatCreateFunction FunBinary "||"-> [Pseudo AnyElement, Pseudo AnyArray]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunBinary "||"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunBinary "||"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunBinary "||"-> [Pseudo AnyNonArray, ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunBinary "||"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunBinary "||"-> [Pseudo AnyArray, Pseudo AnyElement]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunBinary "||"-> [ScalarType "text", Pseudo AnyNonArray]-> (ScalarType "text")-> False,-> CatCreateFunction FunBinary "|>>"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "|>>"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "|>>"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "|&>"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "|&>"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "|&>"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "|"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "|"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "|"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "|"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunBinary "|"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunBinary "^"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "^"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "@@@"-> [ScalarType "tsquery", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@@@"-> [ScalarType "tsvector", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@@"-> [ScalarType "text", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@@"-> [ScalarType "tsquery", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@@"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@@"-> [ScalarType "tsvector", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "polygon", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "@>"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?||"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?||"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?|"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?-|"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?-|"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?-"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "?#"-> [ScalarType "line", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">^"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">^"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>="-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">>"-> [ScalarType "bit", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">=" [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">=" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">=" [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">="-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">" [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">" [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary ">"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "aclitem", ScalarType "aclitem"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int2vector", ScalarType "int2vector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "=" [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "cid", ScalarType "cid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "xid", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "=" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "=" [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "xid", ScalarType "xid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "="-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<^"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<^"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "point", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "point", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "point", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "point", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "point", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<@"-> [ScalarType "point", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<?>"-> [ScalarType "abstime", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>" [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>" [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<>"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<=" [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<=" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<=" [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<="-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<|"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<|"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<|"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<="-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "bit", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "<<"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "circle", ScalarType "polygon"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "point", ScalarType "line"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "point", ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "point", ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "point", ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "point", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<->"-> [ScalarType "line", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "<#>"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "tinterval")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<" [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<" [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "<"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "money", ScalarType "float4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "money", ScalarType "int4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "interval", ScalarType "float8"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "money", ScalarType "int2"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "money", ScalarType "float8"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "/"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "timestamptz", ScalarType "interval"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "date", ScalarType "int4"]-> (ScalarType "date")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "date", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "-"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ArrayType (ScalarType "aclitem"))-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "inet", ScalarType "int8"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "time", ScalarType "interval"]-> (ScalarType "time")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "timetz", ScalarType "interval"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "abstime", ScalarType "reltime"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "timestamp", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "-"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "date", ScalarType "time"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "timetz", ScalarType "interval"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "time", ScalarType "interval"]-> (ScalarType "time")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "timestamp", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "time", ScalarType "date"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "date", ScalarType "timetz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "path")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int8", ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunBinary "+"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ArrayType (ScalarType "aclitem"))-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "inet", ScalarType "int8"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "interval", ScalarType "date"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "date", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "timetz", ScalarType "date"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "interval", ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "interval", ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "date", ScalarType "int4"]-> (ScalarType "date")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "interval", ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "int4", ScalarType "date"]-> (ScalarType "date")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "timestamptz", ScalarType "interval"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "abstime", ScalarType "reltime"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunBinary "+"-> [ScalarType "interval", ScalarType "time"]-> (ScalarType "time")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "money", ScalarType "float4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float4", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "money", ScalarType "float8"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "money", ScalarType "int4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "money", ScalarType "int2"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float8", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int4", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int2", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float8", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "interval", ScalarType "float8"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "*"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunBinary "&>"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&>"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&>"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&<|"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&<|"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&<|"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&<"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&<"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&<"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&&" [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&&"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&&"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&&"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&&"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "&&"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunBinary "&"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunBinary "&"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunBinary "&"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "&"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "&"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "%"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "%"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunBinary "%"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "%"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "#>="-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "#>"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "#="-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "#<>"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "#<="-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "#<"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "line", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "point", ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "line", ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "point", ScalarType "line"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "point", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "##"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "box")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunBinary "#"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunBinary "!~~*"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~~*"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~~*"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~~"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~~"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~~"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~*"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~*"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~*"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunBinary "!~"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "RI_FKey_cascade_del" [] (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_cascade_upd" [] (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_check_ins" [] (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_check_upd" [] (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_noaction_del" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_noaction_upd" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_restrict_del" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_restrict_upd" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_setdefault_del" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_setdefault_upd" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_setnull_del" [] (Pseudo Trigger)-> False,-> CatCreateFunction FunName "RI_FKey_setnull_upd" [] (Pseudo Trigger)-> False,-> CatCreateFunction FunName "abbrev" [ScalarType "cidr"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "abbrev" [ScalarType "inet"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "abs" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "abs" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "abs" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "abs" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "abs" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "abs" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "abstime" [ScalarType "timestamp"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "abstime" [ScalarType "timestamptz"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "abstimeeq"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "abstimege"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "abstimegt"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "abstimein" [Pseudo Cstring]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "abstimele"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "abstimelt"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "abstimene"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "abstimeout" [ScalarType "abstime"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "abstimerecv" [Pseudo Internal]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "abstimesend" [ScalarType "abstime"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "aclcontains"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "aclinsert"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ArrayType (ScalarType "aclitem"))-> False,-> CatCreateFunction FunName "aclitemeq"-> [ScalarType "aclitem", ScalarType "aclitem"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "aclitemin" [Pseudo Cstring]-> (ScalarType "aclitem")-> False,-> CatCreateFunction FunName "aclitemout" [ScalarType "aclitem"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "aclremove"-> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]-> (ArrayType (ScalarType "aclitem"))-> False,-> CatCreateFunction FunName "acos" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "age" [ScalarType "xid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "age" [ScalarType "timestamp"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "age" [ScalarType "timestamptz"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "age"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "age"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "any_in" [Pseudo Cstring] (Pseudo Any)-> False,-> CatCreateFunction FunName "any_out" [Pseudo Any] (Pseudo Cstring)-> False,-> CatCreateFunction FunName "anyarray_in" [Pseudo Cstring]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "anyarray_out" [Pseudo AnyArray]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "anyarray_recv" [Pseudo Internal]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "anyarray_send" [Pseudo AnyArray]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "anyelement_in" [Pseudo Cstring]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunName "anyelement_out" [Pseudo AnyElement]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "anyenum_in" [Pseudo Cstring]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "anyenum_out" [Pseudo AnyEnum]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "anynonarray_in" [Pseudo Cstring]-> (Pseudo AnyNonArray)-> False,-> CatCreateFunction FunName "anynonarray_out" [Pseudo AnyNonArray]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "anytextcat"-> [Pseudo AnyNonArray, ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "area" [ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "area" [ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "area" [ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "areajoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "areasel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "array_agg_finalfn" [Pseudo Internal]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_agg_transfn"-> [Pseudo Internal, Pseudo AnyElement]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "array_append"-> [Pseudo AnyArray, Pseudo AnyElement]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_cat"-> [Pseudo AnyArray, Pseudo AnyArray]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_dims" [Pseudo AnyArray]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "array_eq"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "array_fill"-> [Pseudo AnyElement, ArrayType (ScalarType "int4")]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_fill"-> [Pseudo AnyElement, ArrayType (ScalarType "int4"),-> ArrayType (ScalarType "int4")]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_ge"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "array_gt"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "array_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_larger"-> [Pseudo AnyArray, Pseudo AnyArray]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_le"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "array_length"-> [Pseudo AnyArray, ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "array_lower"-> [Pseudo AnyArray, ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "array_lt"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "array_ndims" [Pseudo AnyArray]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "array_ne"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "array_out" [Pseudo AnyArray]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "array_prepend"-> [Pseudo AnyElement, Pseudo AnyArray]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_send" [Pseudo AnyArray]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "array_smaller"-> [Pseudo AnyArray, Pseudo AnyArray]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "array_to_string"-> [Pseudo AnyArray, ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "array_upper"-> [Pseudo AnyArray, ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "arraycontained"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "arraycontains"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "arrayoverlap"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ascii" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "ascii_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "ascii_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "asin" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "atan" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "atan2"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "big5_to_euc_tw"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "big5_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "big5_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "bit"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bit"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bit"-> [ScalarType "bit", ScalarType "int4", ScalarType "bool"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bit_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bit_length" [ScalarType "bytea"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bit_length" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bit_length" [ScalarType "bit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bit_out" [ScalarType "bit"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "bit_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bit_send" [ScalarType "bit"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "bitand"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bitcat"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "varbit")-> False,-> CatCreateFunction FunName "bitcmp"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "biteq"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bitge"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bitgt"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bitle"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bitlt"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bitne"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bitnot" [ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bitor"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bitshiftleft"-> [ScalarType "bit", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bitshiftright"-> [ScalarType "bit", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bittypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bittypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "bitxor"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "bool" [ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "booland_statefunc"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "booleq"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolge"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolgt"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolin" [Pseudo Cstring]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolle"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boollt"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolne"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolor_statefunc"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolout" [ScalarType "bool"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "boolrecv" [Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "boolsend" [ScalarType "bool"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "box" [ScalarType "polygon"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box" [ScalarType "circle"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_above"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_above_eq"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_add"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_below"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_below_eq"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_center" [ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "box_contain"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_contained"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_distance"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "box_div"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_eq"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_ge"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_gt"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_in" [Pseudo Cstring]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_intersect"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_le"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_left"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_lt"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_mul"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_out" [ScalarType "box"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "box_overabove"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_overbelow"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_overlap"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_overleft"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_overright"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_recv" [Pseudo Internal]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "box_right"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_same"-> [ScalarType "box", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "box_send" [ScalarType "box"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "box_sub"-> [ScalarType "box", ScalarType "point"]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "bpchar" [ScalarType "char"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpchar" [ScalarType "name"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpchar"-> [ScalarType "bpchar", ScalarType "int4", ScalarType "bool"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpchar_larger"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpchar_pattern_ge"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpchar_pattern_gt"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpchar_pattern_le"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpchar_pattern_lt"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpchar_smaller"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpcharcmp"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bpchareq"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharge"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpchargt"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpchariclike"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharicnlike"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharicregexeq"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharicregexne"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharin"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpcharle"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharlike"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharlt"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharne"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharnlike"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharout" [ScalarType "bpchar"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "bpcharrecv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunName "bpcharregexeq"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharregexne"-> [ScalarType "bpchar", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bpcharsend" [ScalarType "bpchar"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "bpchartypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bpchartypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "broadcast" [ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "btabstimecmp"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btarraycmp"-> [Pseudo AnyArray, Pseudo AnyArray]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btbeginscan"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "btboolcmp"-> [ScalarType "bool", ScalarType "bool"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btbpchar_pattern_cmp"-> [ScalarType "bpchar", ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btbuild"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "btbulkdelete"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "btcharcmp"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btcostestimate"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "btendscan" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "btfloat48cmp"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btfloat4cmp"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btfloat84cmp"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btfloat8cmp"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btgetbitmap"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "btgettuple"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "btinsert"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "btint24cmp"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint28cmp"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint2cmp"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint42cmp"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint48cmp"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint4cmp"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint82cmp"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint84cmp"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btint8cmp"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btmarkpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "btnamecmp"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btoidcmp"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btoidvectorcmp"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btoptions"-> [ArrayType (ScalarType "text"), ScalarType "bool"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "btrecordcmp"-> [Pseudo Record, Pseudo Record]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btreltimecmp"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btrescan"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "btrestrpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "btrim" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "btrim"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "btrim"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "bttext_pattern_cmp"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bttextcmp"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bttidcmp"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "bttintervalcmp"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "btvacuumcleanup"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "byteacat"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "byteacmp"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "byteaeq"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "byteage"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "byteagt"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "byteain" [Pseudo Cstring]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "byteale"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bytealike"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "bytealt"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "byteane"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "byteanlike"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "byteaout" [ScalarType "bytea"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "bytearecv" [Pseudo Internal]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "byteasend" [ScalarType "bytea"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "cash_cmp"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "cash_div_flt4"-> [ScalarType "money", ScalarType "float4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_div_flt8"-> [ScalarType "money", ScalarType "float8"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_div_int2"-> [ScalarType "money", ScalarType "int2"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_div_int4"-> [ScalarType "money", ScalarType "int4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_eq"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cash_ge"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cash_gt"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cash_in" [Pseudo Cstring]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_le"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cash_lt"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cash_mi"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_mul_flt4"-> [ScalarType "money", ScalarType "float4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_mul_flt8"-> [ScalarType "money", ScalarType "float8"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_mul_int2"-> [ScalarType "money", ScalarType "int2"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_mul_int4"-> [ScalarType "money", ScalarType "int4"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_ne"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cash_out" [ScalarType "money"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "cash_pl"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_recv" [Pseudo Internal]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cash_send" [ScalarType "money"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "cash_words" [ScalarType "money"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "cashlarger"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cashsmaller"-> [ScalarType "money", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "cbrt" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "ceil" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "ceil" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "ceiling" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "ceiling" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "center" [ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "center" [ScalarType "circle"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "char" [ScalarType "int4"]-> (ScalarType "char")-> False,-> CatCreateFunction FunName "char" [ScalarType "text"]-> (ScalarType "char")-> False,-> CatCreateFunction FunName "char_length" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "char_length" [ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "character_length" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "character_length" [ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "chareq"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "charge"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "chargt"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "charin" [Pseudo Cstring]-> (ScalarType "char")-> False,-> CatCreateFunction FunName "charle"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "charlt"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "charne"-> [ScalarType "char", ScalarType "char"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "charout" [ScalarType "char"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "charrecv" [Pseudo Internal]-> (ScalarType "char")-> False,-> CatCreateFunction FunName "charsend" [ScalarType "char"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "chr" [ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "cideq"-> [ScalarType "cid", ScalarType "cid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "cidin" [Pseudo Cstring]-> (ScalarType "cid")-> False,-> CatCreateFunction FunName "cidout" [ScalarType "cid"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "cidr" [ScalarType "inet"]-> (ScalarType "cidr")-> False,-> CatCreateFunction FunName "cidr_in" [Pseudo Cstring]-> (ScalarType "cidr")-> False,-> CatCreateFunction FunName "cidr_out" [ScalarType "cidr"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "cidr_recv" [Pseudo Internal]-> (ScalarType "cidr")-> False,-> CatCreateFunction FunName "cidr_send" [ScalarType "cidr"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "cidrecv" [Pseudo Internal]-> (ScalarType "cid")-> False,-> CatCreateFunction FunName "cidsend" [ScalarType "cid"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "circle" [ScalarType "box"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle" [ScalarType "polygon"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle"-> [ScalarType "point", ScalarType "float8"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle_above"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_add_pt"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle_below"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_center" [ScalarType "circle"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "circle_contain"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_contain_pt"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_contained"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_distance"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "circle_div_pt"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle_eq"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_ge"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_gt"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_in" [Pseudo Cstring]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle_le"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_left"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_lt"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_mul_pt"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle_ne"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_out" [ScalarType "circle"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "circle_overabove"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_overbelow"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_overlap"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_overleft"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_overright"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_recv" [Pseudo Internal]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "circle_right"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_same"-> [ScalarType "circle", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "circle_send" [ScalarType "circle"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "circle_sub_pt"-> [ScalarType "circle", ScalarType "point"]-> (ScalarType "circle")-> False,-> CatCreateFunction FunName "clock_timestamp" []-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "close_lb"-> [ScalarType "line", ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_ls"-> [ScalarType "line", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_lseg"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_pb"-> [ScalarType "point", ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_pl"-> [ScalarType "point", ScalarType "line"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_ps"-> [ScalarType "point", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_sb"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "close_sl"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "col_description"-> [ScalarType "oid", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "contjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "contsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "convert"-> [ScalarType "bytea", ScalarType "name", ScalarType "name"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "convert_from"-> [ScalarType "bytea", ScalarType "name"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "convert_to"-> [ScalarType "text", ScalarType "name"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "cos" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "cot" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "cstring_in" [Pseudo Cstring]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "cstring_out" [Pseudo Cstring]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "cstring_recv" [Pseudo Internal]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "cstring_send" [Pseudo Cstring]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "current_database" [] (ScalarType "name")-> False,-> CatCreateFunction FunName "current_query" [] (ScalarType "text")-> False,-> CatCreateFunction FunName "current_schema" [] (ScalarType "name")-> False,-> CatCreateFunction FunName "current_schemas" [ScalarType "bool"]-> (ArrayType (ScalarType "name"))-> False,-> CatCreateFunction FunName "current_setting" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "current_user" [] (ScalarType "name")-> False,-> CatCreateFunction FunName "currtid"-> [ScalarType "oid", ScalarType "tid"]-> (ScalarType "tid")-> False,-> CatCreateFunction FunName "currtid2"-> [ScalarType "text", ScalarType "tid"]-> (ScalarType "tid")-> False,-> CatCreateFunction FunName "currval" [ScalarType "regclass"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "cursor_to_xml"-> [ScalarType "refcursor", ScalarType "int4", ScalarType "bool",-> ScalarType "bool", ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "cursor_to_xmlschema"-> [ScalarType "refcursor", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "database_to_xml"-> [ScalarType "bool", ScalarType "bool", ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "database_to_xml_and_xmlschema"-> [ScalarType "bool", ScalarType "bool", ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "database_to_xmlschema"-> [ScalarType "bool", ScalarType "bool", ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "date" [ScalarType "abstime"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date" [ScalarType "timestamp"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date" [ScalarType "timestamptz"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_cmp"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "date_cmp_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "date_cmp_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "date_eq"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_eq_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_eq_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_ge"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_ge_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_ge_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_gt"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_gt_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_gt_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_in" [Pseudo Cstring]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_larger"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_le"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_le_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_le_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_lt"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_lt_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_lt_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_mi"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "date_mi_interval"-> [ScalarType "date", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "date_mii"-> [ScalarType "date", ScalarType "int4"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_ne"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_ne_timestamp"-> [ScalarType "date", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_ne_timestamptz"-> [ScalarType "date", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "date_out" [ScalarType "date"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "abstime"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "reltime"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "date"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "time"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "timestamp"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "timestamptz"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "interval"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_part"-> [ScalarType "text", ScalarType "timetz"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "date_pl_interval"-> [ScalarType "date", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "date_pli"-> [ScalarType "date", ScalarType "int4"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_recv" [Pseudo Internal]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_send" [ScalarType "date"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "date_smaller"-> [ScalarType "date", ScalarType "date"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "date_trunc"-> [ScalarType "text", ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "date_trunc"-> [ScalarType "text", ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "date_trunc"-> [ScalarType "text", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "datetime_pl"-> [ScalarType "date", ScalarType "time"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "datetimetz_pl"-> [ScalarType "date", ScalarType "timetz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "dcbrt" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "decode"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "degrees" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dexp" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "diagonal" [ScalarType "box"]-> (ScalarType "lseg")-> False,-> CatCreateFunction FunName "diameter" [ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dispell_init" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dispell_lexize"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dist_cpoly"-> [ScalarType "circle", ScalarType "polygon"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_lb"-> [ScalarType "line", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_pb"-> [ScalarType "point", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_pc"-> [ScalarType "point", ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_pl"-> [ScalarType "point", ScalarType "line"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_ppath"-> [ScalarType "point", ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_ps"-> [ScalarType "point", ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_sb"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dist_sl"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "div"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "dlog1" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dlog10" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "domain_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (Pseudo Any)-> False,-> CatCreateFunction FunName "domain_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (Pseudo Any)-> False,-> CatCreateFunction FunName "dpow"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dround" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dsimple_init" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dsimple_lexize"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dsnowball_init" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dsnowball_lexize"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dsqrt" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "dsynonym_init" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dsynonym_lexize"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "dtrunc" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "encode"-> [ScalarType "bytea", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "enum_cmp"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "enum_eq"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "enum_first" [Pseudo AnyEnum]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "enum_ge"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "enum_gt"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "enum_in"-> [Pseudo Cstring, ScalarType "oid"]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "enum_larger"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "enum_last" [Pseudo AnyEnum]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "enum_le"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "enum_lt"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "enum_ne"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "enum_out" [Pseudo AnyEnum]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "enum_range" [Pseudo AnyEnum]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "enum_range"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunName "enum_recv"-> [Pseudo Cstring, ScalarType "oid"]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "enum_send" [Pseudo AnyEnum]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "enum_smaller"-> [Pseudo AnyEnum, Pseudo AnyEnum]-> (Pseudo AnyEnum)-> False,-> CatCreateFunction FunName "eqjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "eqsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "euc_cn_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_cn_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_jis_2004_to_shift_jis_2004"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_jis_2004_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_jp_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_jp_to_sjis"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_jp_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_kr_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_kr_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_tw_to_big5"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_tw_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "euc_tw_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "exp" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "exp" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "factorial" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "family" [ScalarType "inet"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "flatfile_update_trigger" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "float4" [ScalarType "int8"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4" [ScalarType "int2"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4" [ScalarType "int4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4" [ScalarType "float8"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4" [ScalarType "numeric"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float48div"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float48eq"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float48ge"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float48gt"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float48le"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float48lt"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float48mi"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float48mul"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float48ne"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float48pl"-> [ScalarType "float4", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float4_accum"-> [ArrayType (ScalarType "float8"), ScalarType "float4"]-> (ArrayType (ScalarType "float8"))-> False,-> CatCreateFunction FunName "float4abs" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4div"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4eq"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float4ge"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float4gt"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float4in" [Pseudo Cstring]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4larger"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4le"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float4lt"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float4mi"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4mul"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4ne"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float4out" [ScalarType "float4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "float4pl"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4recv" [Pseudo Internal]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4send" [ScalarType "float4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "float4smaller"-> [ScalarType "float4", ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4um" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float4up" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "float8" [ScalarType "int8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8" [ScalarType "int2"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8" [ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8" [ScalarType "numeric"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float84div"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float84eq"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float84ge"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float84gt"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float84le"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float84lt"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float84mi"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float84mul"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float84ne"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float84pl"-> [ScalarType "float8", ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_accum"-> [ArrayType (ScalarType "float8"), ScalarType "float8"]-> (ArrayType (ScalarType "float8"))-> False,-> CatCreateFunction FunName "float8_avg"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_corr"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_covar_pop"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_covar_samp"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_accum"-> [ArrayType (ScalarType "float8"), ScalarType "float8",-> ScalarType "float8"]-> (ArrayType (ScalarType "float8"))-> False,-> CatCreateFunction FunName "float8_regr_avgx"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_avgy"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_intercept"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_r2"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_slope"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_sxx"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_sxy"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_regr_syy"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_stddev_pop"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_stddev_samp"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_var_pop"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8_var_samp"-> [ArrayType (ScalarType "float8")]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8abs" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8div"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8eq"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float8ge"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float8gt"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float8in" [Pseudo Cstring]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8larger"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8le"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float8lt"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float8mi"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8mul"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8ne"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "float8out" [ScalarType "float8"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "float8pl"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8recv" [Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8send" [ScalarType "float8"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "float8smaller"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8um" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "float8up" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "floor" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "floor" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "flt4_mul_cash"-> [ScalarType "float4", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "flt8_mul_cash"-> [ScalarType "float8", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "fmgr_c_validator" [ScalarType "oid"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "fmgr_internal_validator"-> [ScalarType "oid"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "fmgr_sql_validator" [ScalarType "oid"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "format_type"-> [ScalarType "oid", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "gb18030_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gbk_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "generate_series"-> [ScalarType "int8", ScalarType "int8"]-> (SetOfType (ScalarType "int8"))-> False,-> CatCreateFunction FunName "generate_series"-> [ScalarType "int4", ScalarType "int4"]-> (SetOfType (ScalarType "int4"))-> False,-> CatCreateFunction FunName "generate_series"-> [ScalarType "int8", ScalarType "int8", ScalarType "int8"]-> (SetOfType (ScalarType "int8"))-> False,-> CatCreateFunction FunName "generate_series"-> [ScalarType "int4", ScalarType "int4", ScalarType "int4"]-> (SetOfType (ScalarType "int4"))-> False,-> CatCreateFunction FunName "generate_series"-> [ScalarType "timestamp", ScalarType "timestamp",-> ScalarType "interval"]-> (SetOfType (ScalarType "timestamp"))-> False,-> CatCreateFunction FunName "generate_series"-> [ScalarType "timestamptz", ScalarType "timestamptz",-> ScalarType "interval"]-> (SetOfType (ScalarType "timestamptz"))-> False,-> CatCreateFunction FunName "generate_subscripts"-> [Pseudo AnyArray, ScalarType "int4"]-> (SetOfType (ScalarType "int4"))-> False,-> CatCreateFunction FunName "generate_subscripts"-> [Pseudo AnyArray, ScalarType "int4", ScalarType "bool"]-> (SetOfType (ScalarType "int4"))-> False,-> CatCreateFunction FunName "get_bit"-> [ScalarType "bytea", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "get_byte"-> [ScalarType "bytea", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "get_current_ts_config" []-> (ScalarType "regconfig")-> False,-> CatCreateFunction FunName "getdatabaseencoding" []-> (ScalarType "name")-> False,-> CatCreateFunction FunName "getpgusername" [] (ScalarType "name")-> False,-> CatCreateFunction FunName "gin_cmp_prefix"-> [ScalarType "text", ScalarType "text", ScalarType "int2",-> Pseudo Internal]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "gin_cmp_tslexeme"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "gin_extract_tsquery"-> [ScalarType "tsquery", Pseudo Internal, ScalarType "int2",-> Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gin_extract_tsvector"-> [ScalarType "tsvector", Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gin_tsquery_consistent"-> [Pseudo Internal, ScalarType "int2", ScalarType "tsquery",-> ScalarType "int4", Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ginarrayconsistent"-> [Pseudo Internal, ScalarType "int2", Pseudo AnyArray,-> ScalarType "int4", Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ginarrayextract"-> [Pseudo AnyArray, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "ginbeginscan"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "ginbuild"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "ginbulkdelete"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gincostestimate"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "ginendscan" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gingetbitmap"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "gininsert"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ginmarkpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "ginoptions"-> [ArrayType (ScalarType "text"), ScalarType "bool"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "ginqueryarrayextract"-> [Pseudo AnyArray, Pseudo Internal, ScalarType "int2",-> Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "ginrescan"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "ginrestrpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "ginvacuumcleanup"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_box_compress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_box_consistent"-> [Pseudo Internal, ScalarType "box", ScalarType "int4",-> ScalarType "oid", Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gist_box_decompress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_box_penalty"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_box_picksplit"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_box_same"-> [ScalarType "box", ScalarType "box", Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_box_union"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "box")-> False,-> CatCreateFunction FunName "gist_circle_compress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_circle_consistent"-> [Pseudo Internal, ScalarType "circle", ScalarType "int4",-> ScalarType "oid", Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gist_poly_compress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gist_poly_consistent"-> [Pseudo Internal, ScalarType "polygon", ScalarType "int4",-> ScalarType "oid", Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gistbeginscan"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gistbuild"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gistbulkdelete"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gistcostestimate"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gistendscan" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gistgetbitmap"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "gistgettuple"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gistinsert"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gistmarkpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gistoptions"-> [ArrayType (ScalarType "text"), ScalarType "bool"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "gistrescan"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gistrestrpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "gistvacuumcleanup"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsquery_compress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsquery_consistent"-> [Pseudo Internal, Pseudo Internal, ScalarType "int4",-> ScalarType "oid", Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gtsquery_decompress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsquery_penalty"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsquery_picksplit"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsquery_same"-> [ScalarType "int8", ScalarType "int8", Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsquery_union"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvector_compress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvector_consistent"-> [Pseudo Internal, ScalarType "gtsvector", ScalarType "int4",-> ScalarType "oid", Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "gtsvector_decompress" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvector_penalty"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvector_picksplit"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvector_same"-> [ScalarType "gtsvector", ScalarType "gtsvector", Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvector_union"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "gtsvectorin" [Pseudo Cstring]-> (ScalarType "gtsvector")-> False,-> CatCreateFunction FunName "gtsvectorout" [ScalarType "gtsvector"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "has_any_column_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_any_column_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_any_column_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_any_column_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_any_column_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_any_column_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "text", ScalarType "int2", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "oid", ScalarType "int2", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "int2",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "int2",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "int2",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "int2",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_column_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text",-> ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_database_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_database_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_database_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_database_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_database_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_database_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_function_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_function_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_function_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_function_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_function_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_function_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_language_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_language_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_language_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_language_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_language_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_language_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_schema_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_schema_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_schema_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_schema_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_schema_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_schema_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_server_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_server_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_server_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_server_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_server_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_server_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_table_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_table_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_table_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_table_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_table_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_table_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_tablespace_privilege"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_tablespace_privilege"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_tablespace_privilege"-> [ScalarType "name", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_tablespace_privilege"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_tablespace_privilege"-> [ScalarType "oid", ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "has_tablespace_privilege"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "hash_aclitem" [ScalarType "aclitem"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hash_numeric" [ScalarType "numeric"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashbeginscan"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "hashbpchar" [ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashbuild"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "hashbulkdelete"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "hashchar" [ScalarType "char"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashcostestimate"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "hashendscan" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "hashenum" [Pseudo AnyEnum]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashfloat4" [ScalarType "float4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashfloat8" [ScalarType "float8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashgetbitmap"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "hashgettuple"-> [Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "hashinet" [ScalarType "inet"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashinsert"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "hashint2" [ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashint2vector"-> [ScalarType "int2vector"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashint4" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashint8" [ScalarType "int8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashmacaddr" [ScalarType "macaddr"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashmarkpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "hashname" [ScalarType "name"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashoid" [ScalarType "oid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashoidvector" [ScalarType "oidvector"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashoptions"-> [ArrayType (ScalarType "text"), ScalarType "bool"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "hashrescan"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "hashrestrpos" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "hashtext" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "hashvacuumcleanup"-> [Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "hashvarlena" [Pseudo Internal]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "height" [ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "host" [ScalarType "inet"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "hostmask" [ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "iclikejoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "iclikesel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "icnlikejoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "icnlikesel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "icregexeqjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "icregexeqsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "icregexnejoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "icregexnesel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "inet_client_addr" [] (ScalarType "inet")-> False,-> CatCreateFunction FunName "inet_client_port" [] (ScalarType "int4")-> False,-> CatCreateFunction FunName "inet_in" [Pseudo Cstring]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "inet_out" [ScalarType "inet"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "inet_recv" [Pseudo Internal]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "inet_send" [ScalarType "inet"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "inet_server_addr" [] (ScalarType "inet")-> False,-> CatCreateFunction FunName "inet_server_port" [] (ScalarType "int4")-> False,-> CatCreateFunction FunName "inetand"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "inetmi"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "inetmi_int8"-> [ScalarType "inet", ScalarType "int8"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "inetnot" [ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "inetor"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "inetpl"-> [ScalarType "inet", ScalarType "int8"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "initcap" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "int2" [ScalarType "int8"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2" [ScalarType "int4"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2" [ScalarType "float4"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2" [ScalarType "float8"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2" [ScalarType "numeric"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int24div"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int24eq"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int24ge"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int24gt"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int24le"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int24lt"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int24mi"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int24mul"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int24ne"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int24pl"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int28div"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int28eq"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int28ge"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int28gt"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int28le"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int28lt"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int28mi"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int28mul"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int28ne"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int28pl"-> [ScalarType "int2", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int2_accum"-> [ArrayType (ScalarType "numeric"), ScalarType "int2"]-> (ArrayType (ScalarType "numeric"))-> False,-> CatCreateFunction FunName "int2_avg_accum"-> [ArrayType (ScalarType "int8"), ScalarType "int2"]-> (ArrayType (ScalarType "int8"))-> False,-> CatCreateFunction FunName "int2_mul_cash"-> [ScalarType "int2", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "int2_sum"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int2abs" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2and"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2div"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2eq"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2ge"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2gt"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2in" [Pseudo Cstring]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2larger"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2le"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2lt"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2mi"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2mod"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2mul"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2ne"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2not" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2or"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2out" [ScalarType "int2"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "int2pl"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2recv" [Pseudo Internal]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2send" [ScalarType "int2"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "int2shl"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2shr"-> [ScalarType "int2", ScalarType "int4"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2smaller"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2um" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2up" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int2vectoreq"-> [ScalarType "int2vector", ScalarType "int2vector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int2vectorin" [Pseudo Cstring]-> (ScalarType "int2vector")-> False,-> CatCreateFunction FunName "int2vectorout" [ScalarType "int2vector"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "int2vectorrecv" [Pseudo Internal]-> (ScalarType "int2vector")-> False,-> CatCreateFunction FunName "int2vectorsend"-> [ScalarType "int2vector"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "int2xor"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "int4" [ScalarType "bool"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "char"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "int8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "float4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "float8"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "bit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4" [ScalarType "numeric"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int42div"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int42eq"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int42ge"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int42gt"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int42le"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int42lt"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int42mi"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int42mul"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int42ne"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int42pl"-> [ScalarType "int4", ScalarType "int2"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int48div"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int48eq"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int48ge"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int48gt"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int48le"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int48lt"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int48mi"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int48mul"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int48ne"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int48pl"-> [ScalarType "int4", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int4_accum"-> [ArrayType (ScalarType "numeric"), ScalarType "int4"]-> (ArrayType (ScalarType "numeric"))-> False,-> CatCreateFunction FunName "int4_avg_accum"-> [ArrayType (ScalarType "int8"), ScalarType "int4"]-> (ArrayType (ScalarType "int8"))-> False,-> CatCreateFunction FunName "int4_mul_cash"-> [ScalarType "int4", ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunName "int4_sum"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int4abs" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4and"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4div"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4eq"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int4ge"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int4gt"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int4in" [Pseudo Cstring]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4inc" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4larger"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4le"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int4lt"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int4mi"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4mod"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4mul"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4ne"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int4not" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4or"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4out" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "int4pl"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4recv" [Pseudo Internal]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4send" [ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "int4shl"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4shr"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4smaller"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4um" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4up" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int4xor"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "int8" [ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8" [ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8" [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8" [ScalarType "float4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8" [ScalarType "float8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8" [ScalarType "bit"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8" [ScalarType "numeric"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int82div"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int82eq"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int82ge"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int82gt"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int82le"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int82lt"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int82mi"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int82mul"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int82ne"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int82pl"-> [ScalarType "int8", ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int84div"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int84eq"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int84ge"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int84gt"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int84le"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int84lt"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int84mi"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int84mul"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int84ne"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int84pl"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8_accum"-> [ArrayType (ScalarType "numeric"), ScalarType "int8"]-> (ArrayType (ScalarType "numeric"))-> False,-> CatCreateFunction FunName "int8_avg"-> [ArrayType (ScalarType "int8")]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "int8_avg_accum"-> [ArrayType (ScalarType "numeric"), ScalarType "int8"]-> (ArrayType (ScalarType "numeric"))-> False,-> CatCreateFunction FunName "int8_sum"-> [ScalarType "numeric", ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "int8abs" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8and"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8div"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8eq"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int8ge"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int8gt"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int8in" [Pseudo Cstring]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8inc" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8inc_any"-> [ScalarType "int8", Pseudo Any]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8inc_float8_float8"-> [ScalarType "int8", ScalarType "float8", ScalarType "float8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8larger"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8le"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int8lt"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int8mi"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8mod"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8mul"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8ne"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "int8not" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8or"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8out" [ScalarType "int8"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "int8pl"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8pl_inet"-> [ScalarType "int8", ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "int8recv" [Pseudo Internal]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8send" [ScalarType "int8"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "int8shl"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8shr"-> [ScalarType "int8", ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8smaller"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8um" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8up" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "int8xor"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "integer_pl_date"-> [ScalarType "int4", ScalarType "date"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "inter_lb"-> [ScalarType "line", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "inter_sb"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "inter_sl"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "internal_in" [Pseudo Cstring]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "internal_out" [Pseudo Internal]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "interval" [ScalarType "reltime"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval" [ScalarType "time"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval"-> [ScalarType "interval", ScalarType "int4"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_accum"-> [ArrayType (ScalarType "interval"), ScalarType "interval"]-> (ArrayType (ScalarType "interval"))-> False,-> CatCreateFunction FunName "interval_avg"-> [ArrayType (ScalarType "interval")]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_cmp"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "interval_div"-> [ScalarType "interval", ScalarType "float8"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_eq"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "interval_ge"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "interval_gt"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "interval_hash" [ScalarType "interval"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "interval_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_larger"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_le"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "interval_lt"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "interval_mi"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_mul"-> [ScalarType "interval", ScalarType "float8"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_ne"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "interval_out" [ScalarType "interval"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "interval_pl"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_pl_date"-> [ScalarType "interval", ScalarType "date"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "interval_pl_time"-> [ScalarType "interval", ScalarType "time"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "interval_pl_timestamp"-> [ScalarType "interval", ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "interval_pl_timestamptz"-> [ScalarType "interval", ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "interval_pl_timetz"-> [ScalarType "interval", ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "interval_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_send" [ScalarType "interval"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "interval_smaller"-> [ScalarType "interval", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "interval_um" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "intervaltypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "intervaltypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "intinterval"-> [ScalarType "abstime", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isclosed" [ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isfinite" [ScalarType "abstime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isfinite" [ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isfinite" [ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isfinite" [ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isfinite" [ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ishorizontal" [ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ishorizontal" [ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ishorizontal"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "iso8859_1_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "iso8859_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "iso_to_koi8r"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "iso_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "iso_to_win1251"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "iso_to_win866"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "isopen" [ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isparallel"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isparallel"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isperp"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isperp"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isvertical" [ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isvertical" [ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "isvertical"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "johab_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "justify_days" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "justify_hours" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "justify_interval"-> [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "koi8r_to_iso"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "koi8r_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "koi8r_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "koi8r_to_win1251"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "koi8r_to_win866"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "koi8u_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "language_handler_in" [Pseudo Cstring]-> (Pseudo LanguageHandler)-> False,-> CatCreateFunction FunName "language_handler_out"-> [Pseudo LanguageHandler]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "lastval" [] (ScalarType "int8") False,-> CatCreateFunction FunName "latin1_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "latin2_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "latin2_to_win1250"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "latin3_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "latin4_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "length" [ScalarType "bytea"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "length" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "length" [ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "length" [ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "length" [ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "length" [ScalarType "bit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "length" [ScalarType "tsvector"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "length"-> [ScalarType "bytea", ScalarType "name"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "like"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "like"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "like"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "like_escape"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "like_escape"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "likejoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "likesel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "line"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "line")-> False,-> CatCreateFunction FunName "line_distance"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "line_eq"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "line_horizontal" [ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "line_in" [Pseudo Cstring]-> (ScalarType "line")-> False,-> CatCreateFunction FunName "line_interpt"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "line_intersect"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "line_out" [ScalarType "line"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "line_parallel"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "line_perp"-> [ScalarType "line", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "line_recv" [Pseudo Internal]-> (ScalarType "line")-> False,-> CatCreateFunction FunName "line_send" [ScalarType "line"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "line_vertical" [ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ln" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "ln" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "lo_close" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lo_creat" [ScalarType "int4"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "lo_create" [ScalarType "oid"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "lo_export"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lo_import" [ScalarType "text"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "lo_import"-> [ScalarType "text", ScalarType "oid"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "lo_lseek"-> [ScalarType "int4", ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lo_open"-> [ScalarType "oid", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lo_tell" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lo_truncate"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lo_unlink" [ScalarType "oid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "log" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "log" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "log"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "loread"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "lower" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "lowrite"-> [ScalarType "int4", ScalarType "bytea"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "lpad"-> [ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "lpad"-> [ScalarType "text", ScalarType "int4", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "lseg" [ScalarType "box"]-> (ScalarType "lseg")-> False,-> CatCreateFunction FunName "lseg"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "lseg")-> False,-> CatCreateFunction FunName "lseg_center" [ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "lseg_distance"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "lseg_eq"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_ge"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_gt"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_horizontal" [ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_in" [Pseudo Cstring]-> (ScalarType "lseg")-> False,-> CatCreateFunction FunName "lseg_interpt"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "lseg_intersect"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_le"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_length" [ScalarType "lseg"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "lseg_lt"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_ne"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_out" [ScalarType "lseg"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "lseg_parallel"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_perp"-> [ScalarType "lseg", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "lseg_recv" [Pseudo Internal]-> (ScalarType "lseg")-> False,-> CatCreateFunction FunName "lseg_send" [ScalarType "lseg"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "lseg_vertical" [ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ltrim" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "ltrim"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "macaddr_cmp"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "macaddr_eq"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "macaddr_ge"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "macaddr_gt"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "macaddr_in" [Pseudo Cstring]-> (ScalarType "macaddr")-> False,-> CatCreateFunction FunName "macaddr_le"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "macaddr_lt"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "macaddr_ne"-> [ScalarType "macaddr", ScalarType "macaddr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "macaddr_out" [ScalarType "macaddr"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "macaddr_recv" [Pseudo Internal]-> (ScalarType "macaddr")-> False,-> CatCreateFunction FunName "macaddr_send" [ScalarType "macaddr"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "makeaclitem"-> [ScalarType "oid", ScalarType "oid", ScalarType "text",-> ScalarType "bool"]-> (ScalarType "aclitem")-> False,-> CatCreateFunction FunName "masklen" [ScalarType "inet"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "md5" [ScalarType "bytea"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "md5" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "mic_to_ascii"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_big5"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_euc_cn"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_euc_jp"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_euc_kr"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_euc_tw"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_iso"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_koi8r"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_latin1"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_latin2"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_latin3"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_latin4"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_sjis"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_win1250"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_win1251"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mic_to_win866"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "mktinterval"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "tinterval")-> False,-> CatCreateFunction FunName "mod"-> [ScalarType "int8", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "mod"-> [ScalarType "int2", ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunName "mod"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "mod"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "mul_d_interval"-> [ScalarType "float8", ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "name" [ScalarType "text"]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "name" [ScalarType "bpchar"]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "name" [ScalarType "varchar"]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "nameeq"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namege"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namegt"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nameiclike"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nameicnlike"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nameicregexeq"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nameicregexne"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namein" [Pseudo Cstring]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "namele"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namelike"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namelt"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namene"-> [ScalarType "name", ScalarType "name"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namenlike"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nameout" [ScalarType "name"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "namerecv" [Pseudo Internal]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "nameregexeq"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nameregexne"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "namesend" [ScalarType "name"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "neqjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "neqsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "netmask" [ScalarType "inet"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "network" [ScalarType "inet"]-> (ScalarType "cidr")-> False,-> CatCreateFunction FunName "network_cmp"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "network_eq"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_ge"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_gt"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_le"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_lt"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_ne"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_sub"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_subeq"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_sup"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "network_supeq"-> [ScalarType "inet", ScalarType "inet"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "nextval" [ScalarType "regclass"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "nlikejoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "nlikesel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "notlike"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "notlike"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "notlike"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "now" [] (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "npoints" [ScalarType "path"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "npoints" [ScalarType "polygon"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "numeric" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric" [ScalarType "float4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric" [ScalarType "float8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric"-> [ScalarType "numeric", ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_abs" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_accum"-> [ArrayType (ScalarType "numeric"), ScalarType "numeric"]-> (ArrayType (ScalarType "numeric"))-> False,-> CatCreateFunction FunName "numeric_add"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_avg"-> [ArrayType (ScalarType "numeric")]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_avg_accum"-> [ArrayType (ScalarType "numeric"), ScalarType "numeric"]-> (ArrayType (ScalarType "numeric"))-> False,-> CatCreateFunction FunName "numeric_cmp"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "numeric_div"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_div_trunc"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_eq"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "numeric_exp" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_fac" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_ge"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "numeric_gt"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "numeric_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_inc" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_larger"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_le"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "numeric_ln" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_log"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_lt"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "numeric_mod"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_mul"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_ne"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "numeric_out" [ScalarType "numeric"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "numeric_power"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_send" [ScalarType "numeric"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "numeric_smaller"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_sqrt" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_stddev_pop"-> [ArrayType (ScalarType "numeric")]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_stddev_samp"-> [ArrayType (ScalarType "numeric")]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_sub"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_uminus" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_uplus" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_var_pop"-> [ArrayType (ScalarType "numeric")]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numeric_var_samp"-> [ArrayType (ScalarType "numeric")]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "numerictypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "numerictypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "numnode" [ScalarType "tsquery"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "obj_description" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "obj_description"-> [ScalarType "oid", ScalarType "name"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "octet_length" [ScalarType "bytea"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "octet_length" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "octet_length" [ScalarType "bpchar"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "octet_length" [ScalarType "bit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "oid" [ScalarType "int8"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "oideq"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidge"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidgt"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidin" [Pseudo Cstring]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "oidlarger"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "oidle"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidlt"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidne"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidout" [ScalarType "oid"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "oidrecv" [Pseudo Internal]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "oidsend" [ScalarType "oid"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "oidsmaller"-> [ScalarType "oid", ScalarType "oid"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "oidvectoreq"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidvectorge"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidvectorgt"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidvectorin" [Pseudo Cstring]-> (ScalarType "oidvector")-> False,-> CatCreateFunction FunName "oidvectorle"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidvectorlt"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidvectorne"-> [ScalarType "oidvector", ScalarType "oidvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "oidvectorout" [ScalarType "oidvector"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "oidvectorrecv" [Pseudo Internal]-> (ScalarType "oidvector")-> False,-> CatCreateFunction FunName "oidvectorsend" [ScalarType "oidvector"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "oidvectortypes" [ScalarType "oidvector"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "on_pb"-> [ScalarType "point", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "on_pl"-> [ScalarType "point", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "on_ppath"-> [ScalarType "point", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "on_ps"-> [ScalarType "point", ScalarType "lseg"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "on_sb"-> [ScalarType "lseg", ScalarType "box"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "on_sl"-> [ScalarType "lseg", ScalarType "line"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "opaque_in" [Pseudo Cstring]-> (Pseudo Opaque)-> False,-> CatCreateFunction FunName "opaque_out" [Pseudo Opaque]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "time", ScalarType "time", ScalarType "time",-> ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "time", ScalarType "time", ScalarType "time",-> ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "time", ScalarType "interval", ScalarType "time",-> ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "time", ScalarType "interval", ScalarType "time",-> ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamp", ScalarType "timestamp",-> ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamp", ScalarType "timestamp",-> ScalarType "timestamp", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamp", ScalarType "interval",-> ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamp", ScalarType "interval",-> ScalarType "timestamp", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamptz", ScalarType "timestamptz",-> ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamptz", ScalarType "timestamptz",-> ScalarType "timestamptz", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamptz", ScalarType "interval",-> ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timestamptz", ScalarType "interval",-> ScalarType "timestamptz", ScalarType "interval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlaps"-> [ScalarType "timetz", ScalarType "timetz", ScalarType "timetz",-> ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "overlay"-> [ScalarType "text", ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "overlay"-> [ScalarType "text", ScalarType "text", ScalarType "int4",-> ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "path" [ScalarType "polygon"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_add"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_add_pt"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_center" [ScalarType "path"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "path_contain_pt"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_distance"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "path_div_pt"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_in" [Pseudo Cstring]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_inter"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_length" [ScalarType "path"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "path_mul_pt"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_n_eq"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_n_ge"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_n_gt"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_n_le"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_n_lt"-> [ScalarType "path", ScalarType "path"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "path_npoints" [ScalarType "path"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "path_out" [ScalarType "path"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "path_recv" [Pseudo Internal]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "path_send" [ScalarType "path"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "path_sub_pt"-> [ScalarType "path", ScalarType "point"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "pclose" [ScalarType "path"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "pg_advisory_lock" [ScalarType "int8"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_advisory_lock"-> [ScalarType "int4", ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_advisory_lock_shared"-> [ScalarType "int8"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_advisory_lock_shared"-> [ScalarType "int4", ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_advisory_unlock" [ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_advisory_unlock"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_advisory_unlock_all" [] (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_advisory_unlock_shared"-> [ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_advisory_unlock_shared"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_backend_pid" [] (ScalarType "int4")-> False,-> CatCreateFunction FunName "pg_cancel_backend" [ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_char_to_encoding" [ScalarType "name"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "pg_client_encoding" []-> (ScalarType "name")-> False,-> CatCreateFunction FunName "pg_column_size" [Pseudo Any]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "pg_conf_load_time" []-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_conversion_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_current_xlog_insert_location" []-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_current_xlog_location" []-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_cursor" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_database_size" [ScalarType "name"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_database_size" [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_encoding_to_char" [ScalarType "int4"]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "pg_function_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_get_constraintdef" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_constraintdef"-> [ScalarType "oid", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_expr"-> [ScalarType "text", ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_expr"-> [ScalarType "text", ScalarType "oid", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_function_arguments"-> [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_function_identity_arguments"-> [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_function_result"-> [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_functiondef" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_indexdef" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_indexdef"-> [ScalarType "oid", ScalarType "int4", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_keywords" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_get_ruledef" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_ruledef"-> [ScalarType "oid", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_serial_sequence"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_triggerdef" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_userbyid" [ScalarType "oid"]-> (ScalarType "name")-> False,-> CatCreateFunction FunName "pg_get_viewdef" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_viewdef" [ScalarType "oid"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_viewdef"-> [ScalarType "text", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_get_viewdef"-> [ScalarType "oid", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_has_role"-> [ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_has_role"-> [ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_has_role"-> [ScalarType "name", ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_has_role"-> [ScalarType "name", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_has_role"-> [ScalarType "oid", ScalarType "name", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_has_role"-> [ScalarType "oid", ScalarType "oid", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_is_other_temp_schema"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_lock_status" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_ls_dir" [ScalarType "text"]-> (SetOfType (ScalarType "text"))-> False,-> CatCreateFunction FunName "pg_my_temp_schema" [] (ScalarType "oid")-> False,-> CatCreateFunction FunName "pg_opclass_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_operator_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_options_to_table"-> [ArrayType (ScalarType "text")]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_postmaster_start_time" []-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_prepared_statement" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_prepared_xact" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_read_file"-> [ScalarType "text", ScalarType "int8", ScalarType "int8"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_relation_size"-> [ScalarType "regclass"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_relation_size"-> [ScalarType "regclass", ScalarType "text"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_reload_conf" [] (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_rotate_logfile" []-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_show_all_settings" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_size_pretty" [ScalarType "int8"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_sleep" [ScalarType "float8"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_start_backup"-> [ScalarType "text", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_stat_clear_snapshot" [] (Pseudo Void)-> False,-> CatCreateFunction FunName "pg_stat_file" [ScalarType "text"]-> (Pseudo Record)-> False,-> CatCreateFunction FunName "pg_stat_get_activity"-> [ScalarType "int4"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_stat_get_backend_activity"-> [ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_activity_start"-> [ScalarType "int4"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_client_addr"-> [ScalarType "int4"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_client_port"-> [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_dbid"-> [ScalarType "int4"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_idset" []-> (SetOfType (ScalarType "int4"))-> False,-> CatCreateFunction FunName "pg_stat_get_backend_pid"-> [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_start"-> [ScalarType "int4"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_userid"-> [ScalarType "int4"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_waiting"-> [ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_stat_get_backend_xact_start"-> [ScalarType "int4"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName-> "pg_stat_get_bgwriter_buf_written_checkpoints"-> []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_bgwriter_buf_written_clean"-> []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_bgwriter_maxwritten_clean"-> []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName-> "pg_stat_get_bgwriter_requested_checkpoints"-> []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_bgwriter_timed_checkpoints"-> []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_blocks_fetched"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_blocks_hit"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_buf_alloc" []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_buf_written_backend" []-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_blocks_fetched"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_blocks_hit"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_numbackends"-> [ScalarType "oid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "pg_stat_get_db_tuples_deleted"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_tuples_fetched"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_tuples_inserted"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_tuples_returned"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_tuples_updated"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_xact_commit"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_db_xact_rollback"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_dead_tuples"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_function_calls"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_function_self_time"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_function_time"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_last_analyze_time"-> [ScalarType "oid"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_stat_get_last_autoanalyze_time"-> [ScalarType "oid"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_stat_get_last_autovacuum_time"-> [ScalarType "oid"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_stat_get_last_vacuum_time"-> [ScalarType "oid"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "pg_stat_get_live_tuples"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_numscans" [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_tuples_deleted"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_tuples_fetched"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_tuples_hot_updated"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_tuples_inserted"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_tuples_returned"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_get_tuples_updated"-> [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_stat_reset" [] (Pseudo Void) False,-> CatCreateFunction FunName "pg_stop_backup" [] (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_switch_xlog" [] (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_table_is_visible" [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_tablespace_databases"-> [ScalarType "oid"]-> (SetOfType (ScalarType "oid"))-> False,-> CatCreateFunction FunName "pg_tablespace_size" [ScalarType "name"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_tablespace_size" [ScalarType "oid"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_terminate_backend"-> [ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_timezone_abbrevs" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_timezone_names" []-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "pg_total_relation_size"-> [ScalarType "regclass"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "pg_try_advisory_lock"-> [ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_try_advisory_lock"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_try_advisory_lock_shared"-> [ScalarType "int8"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_try_advisory_lock_shared"-> [ScalarType "int4", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_ts_config_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_ts_dict_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_ts_parser_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_ts_template_is_visible"-> [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_type_is_visible" [ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pg_typeof" [Pseudo Any]-> (ScalarType "regtype")-> False,-> CatCreateFunction FunName "pg_xlogfile_name" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "pg_xlogfile_name_offset"-> [ScalarType "text"]-> (Pseudo Record)-> False,-> CatCreateFunction FunName "pi" [] (ScalarType "float8") False,-> CatCreateFunction FunName "plainto_tsquery" [ScalarType "text"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "plainto_tsquery"-> [ScalarType "regconfig", ScalarType "text"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "point" [ScalarType "lseg"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point" [ScalarType "path"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point" [ScalarType "box"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point" [ScalarType "polygon"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point" [ScalarType "circle"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_above"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_add"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_below"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_distance"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "point_div"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_eq"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_horiz"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_in" [Pseudo Cstring]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_left"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_mul"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_ne"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_out" [ScalarType "point"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "point_recv" [Pseudo Internal]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_right"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "point_send" [ScalarType "point"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "point_sub"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "point_vert"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_above"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_below"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_center" [ScalarType "polygon"]-> (ScalarType "point")-> False,-> CatCreateFunction FunName "poly_contain"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_contain_pt"-> [ScalarType "polygon", ScalarType "point"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_contained"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_distance"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "poly_in" [Pseudo Cstring]-> (ScalarType "polygon")-> False,-> CatCreateFunction FunName "poly_left"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_npoints" [ScalarType "polygon"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "poly_out" [ScalarType "polygon"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "poly_overabove"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_overbelow"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_overlap"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_overleft"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_overright"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_recv" [Pseudo Internal]-> (ScalarType "polygon")-> False,-> CatCreateFunction FunName "poly_right"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_same"-> [ScalarType "polygon", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "poly_send" [ScalarType "polygon"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "polygon" [ScalarType "path"]-> (ScalarType "polygon")-> False,-> CatCreateFunction FunName "polygon" [ScalarType "box"]-> (ScalarType "polygon")-> False,-> CatCreateFunction FunName "polygon" [ScalarType "circle"]-> (ScalarType "polygon")-> False,-> CatCreateFunction FunName "polygon"-> [ScalarType "int4", ScalarType "circle"]-> (ScalarType "polygon")-> False,-> CatCreateFunction FunName "popen" [ScalarType "path"]-> (ScalarType "path")-> False,-> CatCreateFunction FunName "position"-> [ScalarType "bytea", ScalarType "bytea"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "position"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "position"-> [ScalarType "bit", ScalarType "bit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "positionjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "positionsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "postgresql_fdw_validator"-> [ArrayType (ScalarType "text"), ScalarType "oid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pow"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "pow"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "power"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "power"-> [ScalarType "numeric", ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "prsd_end" [Pseudo Internal]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "prsd_headline"-> [Pseudo Internal, Pseudo Internal, ScalarType "tsquery"]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "prsd_lextype" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "prsd_nexttoken"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "prsd_start"-> [Pseudo Internal, ScalarType "int4"]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "pt_contained_circle"-> [ScalarType "point", ScalarType "circle"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "pt_contained_poly"-> [ScalarType "point", ScalarType "polygon"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "query_to_xml"-> [ScalarType "text", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "query_to_xml_and_xmlschema"-> [ScalarType "text", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "query_to_xmlschema"-> [ScalarType "text", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "querytree" [ScalarType "tsquery"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "quote_ident" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "quote_literal" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "quote_literal" [Pseudo AnyElement]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "quote_nullable" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "quote_nullable" [Pseudo AnyElement]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "radians" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "radius" [ScalarType "circle"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "random" [] (ScalarType "float8") False,-> CatCreateFunction FunName "record_eq"-> [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "record_ge"-> [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "record_gt"-> [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "record_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (Pseudo Record)-> False,-> CatCreateFunction FunName "record_le"-> [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "record_lt"-> [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "record_ne"-> [Pseudo Record, Pseudo Record]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "record_out" [Pseudo Record]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "record_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (Pseudo Record)-> False,-> CatCreateFunction FunName "record_send" [Pseudo Record]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regclass" [ScalarType "text"]-> (ScalarType "regclass")-> False,-> CatCreateFunction FunName "regclassin" [Pseudo Cstring]-> (ScalarType "regclass")-> False,-> CatCreateFunction FunName "regclassout" [ScalarType "regclass"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regclassrecv" [Pseudo Internal]-> (ScalarType "regclass")-> False,-> CatCreateFunction FunName "regclasssend" [ScalarType "regclass"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regconfigin" [Pseudo Cstring]-> (ScalarType "regconfig")-> False,-> CatCreateFunction FunName "regconfigout" [ScalarType "regconfig"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regconfigrecv" [Pseudo Internal]-> (ScalarType "regconfig")-> False,-> CatCreateFunction FunName "regconfigsend" [ScalarType "regconfig"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regdictionaryin" [Pseudo Cstring]-> (ScalarType "regdictionary")-> False,-> CatCreateFunction FunName "regdictionaryout"-> [ScalarType "regdictionary"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regdictionaryrecv" [Pseudo Internal]-> (ScalarType "regdictionary")-> False,-> CatCreateFunction FunName "regdictionarysend"-> [ScalarType "regdictionary"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regexeqjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "regexeqsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "regexnejoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "regexnesel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "regexp_matches"-> [ScalarType "text", ScalarType "text"]-> (SetOfType (ArrayType (ScalarType "text")))-> False,-> CatCreateFunction FunName "regexp_matches"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (SetOfType (ArrayType (ScalarType "text")))-> False,-> CatCreateFunction FunName "regexp_replace"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "regexp_replace"-> [ScalarType "text", ScalarType "text", ScalarType "text",-> ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "regexp_split_to_array"-> [ScalarType "text", ScalarType "text"]-> (ArrayType (ScalarType "text"))-> False,-> CatCreateFunction FunName "regexp_split_to_array"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (ArrayType (ScalarType "text"))-> False,-> CatCreateFunction FunName "regexp_split_to_table"-> [ScalarType "text", ScalarType "text"]-> (SetOfType (ScalarType "text"))-> False,-> CatCreateFunction FunName "regexp_split_to_table"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (SetOfType (ScalarType "text"))-> False,-> CatCreateFunction FunName "regoperatorin" [Pseudo Cstring]-> (ScalarType "regoperator")-> False,-> CatCreateFunction FunName "regoperatorout"-> [ScalarType "regoperator"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regoperatorrecv" [Pseudo Internal]-> (ScalarType "regoperator")-> False,-> CatCreateFunction FunName "regoperatorsend"-> [ScalarType "regoperator"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regoperin" [Pseudo Cstring]-> (ScalarType "regoper")-> False,-> CatCreateFunction FunName "regoperout" [ScalarType "regoper"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regoperrecv" [Pseudo Internal]-> (ScalarType "regoper")-> False,-> CatCreateFunction FunName "regopersend" [ScalarType "regoper"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regprocedurein" [Pseudo Cstring]-> (ScalarType "regprocedure")-> False,-> CatCreateFunction FunName "regprocedureout"-> [ScalarType "regprocedure"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regprocedurerecv" [Pseudo Internal]-> (ScalarType "regprocedure")-> False,-> CatCreateFunction FunName "regproceduresend"-> [ScalarType "regprocedure"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regprocin" [Pseudo Cstring]-> (ScalarType "regproc")-> False,-> CatCreateFunction FunName "regprocout" [ScalarType "regproc"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regprocrecv" [Pseudo Internal]-> (ScalarType "regproc")-> False,-> CatCreateFunction FunName "regprocsend" [ScalarType "regproc"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "regtypein" [Pseudo Cstring]-> (ScalarType "regtype")-> False,-> CatCreateFunction FunName "regtypeout" [ScalarType "regtype"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "regtyperecv" [Pseudo Internal]-> (ScalarType "regtype")-> False,-> CatCreateFunction FunName "regtypesend" [ScalarType "regtype"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "reltime" [ScalarType "interval"]-> (ScalarType "reltime")-> False,-> CatCreateFunction FunName "reltimeeq"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "reltimege"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "reltimegt"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "reltimein" [Pseudo Cstring]-> (ScalarType "reltime")-> False,-> CatCreateFunction FunName "reltimele"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "reltimelt"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "reltimene"-> [ScalarType "reltime", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "reltimeout" [ScalarType "reltime"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "reltimerecv" [Pseudo Internal]-> (ScalarType "reltime")-> False,-> CatCreateFunction FunName "reltimesend" [ScalarType "reltime"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "repeat"-> [ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "replace"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "round" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "round" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "round"-> [ScalarType "numeric", ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "rpad"-> [ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "rpad"-> [ScalarType "text", ScalarType "int4", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "rtrim" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "rtrim"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "scalargtjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "scalargtsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "scalarltjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "scalarltsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "schema_to_xml"-> [ScalarType "name", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "schema_to_xml_and_xmlschema"-> [ScalarType "name", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "schema_to_xmlschema"-> [ScalarType "name", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "session_user" [] (ScalarType "name")-> False,-> CatCreateFunction FunName "set_bit"-> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "set_byte"-> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "set_config"-> [ScalarType "text", ScalarType "text", ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "set_masklen"-> [ScalarType "cidr", ScalarType "int4"]-> (ScalarType "cidr")-> False,-> CatCreateFunction FunName "set_masklen"-> [ScalarType "inet", ScalarType "int4"]-> (ScalarType "inet")-> False,-> CatCreateFunction FunName "setseed" [ScalarType "float8"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "setval"-> [ScalarType "regclass", ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "setval"-> [ScalarType "regclass", ScalarType "int8", ScalarType "bool"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "setweight"-> [ScalarType "tsvector", ScalarType "char"]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "shell_in" [Pseudo Cstring]-> (Pseudo Opaque)-> False,-> CatCreateFunction FunName "shell_out" [Pseudo Opaque]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "shift_jis_2004_to_euc_jis_2004"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "shift_jis_2004_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "shobj_description"-> [ScalarType "oid", ScalarType "name"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "sign" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "sign" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "similar_escape"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "sin" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "sjis_to_euc_jp"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "sjis_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "sjis_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "slope"-> [ScalarType "point", ScalarType "point"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "smgreq"-> [ScalarType "smgr", ScalarType "smgr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "smgrin" [Pseudo Cstring]-> (ScalarType "smgr")-> False,-> CatCreateFunction FunName "smgrne"-> [ScalarType "smgr", ScalarType "smgr"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "smgrout" [ScalarType "smgr"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "split_part"-> [ScalarType "text", ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "sqrt" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "sqrt" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "statement_timestamp" []-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "string_to_array"-> [ScalarType "text", ScalarType "text"]-> (ArrayType (ScalarType "text"))-> False,-> CatCreateFunction FunName "strip" [ScalarType "tsvector"]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "strpos"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "substr"-> [ScalarType "bytea", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "substr"-> [ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "substr"-> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "substr"-> [ScalarType "text", ScalarType "int4", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "bytea", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "bit", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "text", ScalarType "int4", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "substring"-> [ScalarType "bit", ScalarType "int4", ScalarType "int4"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunName "suppress_redundant_updates_trigger" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "table_to_xml"-> [ScalarType "regclass", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "table_to_xml_and_xmlschema"-> [ScalarType "regclass", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "table_to_xmlschema"-> [ScalarType "regclass", ScalarType "bool", ScalarType "bool",-> ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "tan" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "text" [ScalarType "bool"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text" [ScalarType "char"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text" [ScalarType "name"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text" [ScalarType "xml"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text" [ScalarType "inet"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text" [ScalarType "bpchar"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text_ge"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_gt"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_larger"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "text_le"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_lt"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_pattern_ge"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_pattern_gt"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_pattern_le"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_pattern_lt"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "text_smaller"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "textanycat"-> [ScalarType "text", Pseudo AnyNonArray]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "textcat"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "texteq"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "texticlike"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "texticnlike"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "texticregexeq"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "texticregexne"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "textin" [Pseudo Cstring]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "textlen" [ScalarType "text"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "textlike"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "textne"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "textnlike"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "textout" [ScalarType "text"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "textrecv" [Pseudo Internal]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "textregexeq"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "textregexne"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "textsend" [ScalarType "text"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "thesaurus_init" [Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "thesaurus_lexize"-> [Pseudo Internal, Pseudo Internal, Pseudo Internal,-> Pseudo Internal]-> (Pseudo Internal)-> False,-> CatCreateFunction FunName "tideq"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tidge"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tidgt"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tidin" [Pseudo Cstring]-> (ScalarType "tid")-> False,-> CatCreateFunction FunName "tidlarger"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "tid")-> False,-> CatCreateFunction FunName "tidle"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tidlt"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tidne"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tidout" [ScalarType "tid"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "tidrecv" [Pseudo Internal]-> (ScalarType "tid")-> False,-> CatCreateFunction FunName "tidsend" [ScalarType "tid"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "tidsmaller"-> [ScalarType "tid", ScalarType "tid"]-> (ScalarType "tid")-> False,-> CatCreateFunction FunName "time" [ScalarType "abstime"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time" [ScalarType "timestamp"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time" [ScalarType "timestamptz"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time" [ScalarType "interval"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time" [ScalarType "timetz"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time"-> [ScalarType "time", ScalarType "int4"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time_cmp"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "time_eq"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "time_ge"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "time_gt"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "time_hash" [ScalarType "time"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "time_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time_larger"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time_le"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "time_lt"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "time_mi_interval"-> [ScalarType "time", ScalarType "interval"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time_mi_time"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "time_ne"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "time_out" [ScalarType "time"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "time_pl_interval"-> [ScalarType "time", ScalarType "interval"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "time_send" [ScalarType "time"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "time_smaller"-> [ScalarType "time", ScalarType "time"]-> (ScalarType "time")-> False,-> CatCreateFunction FunName "timedate_pl"-> [ScalarType "time", ScalarType "date"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timemi"-> [ScalarType "abstime", ScalarType "reltime"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "timenow" [] (ScalarType "abstime")-> False,-> CatCreateFunction FunName "timeofday" [] (ScalarType "text") False,-> CatCreateFunction FunName "timepl"-> [ScalarType "abstime", ScalarType "reltime"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "timestamp" [ScalarType "abstime"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp" [ScalarType "date"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp" [ScalarType "timestamptz"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp"-> [ScalarType "date", ScalarType "time"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp"-> [ScalarType "timestamp", ScalarType "int4"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp_cmp"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamp_cmp_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamp_cmp_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamp_eq"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_eq_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_eq_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_ge"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_ge_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_ge_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_gt"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_gt_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_gt_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_hash" [ScalarType "timestamp"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamp_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp_larger"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp_le"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_le_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_le_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_lt"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_lt_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_lt_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_mi"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "timestamp_mi_interval"-> [ScalarType "timestamp", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp_ne"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_ne_date"-> [ScalarType "timestamp", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_ne_timestamptz"-> [ScalarType "timestamp", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamp_out" [ScalarType "timestamp"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timestamp_pl_interval"-> [ScalarType "timestamp", ScalarType "interval"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamp_send" [ScalarType "timestamp"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "timestamp_smaller"-> [ScalarType "timestamp", ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timestamptypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamptypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timestamptz" [ScalarType "abstime"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz" [ScalarType "date"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz" [ScalarType "timestamp"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz"-> [ScalarType "date", ScalarType "time"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz"-> [ScalarType "date", ScalarType "timetz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz"-> [ScalarType "timestamptz", ScalarType "int4"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz_cmp"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamptz_cmp_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamptz_cmp_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamptz_eq"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_eq_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_eq_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_ge"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_ge_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_ge_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_gt"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_gt_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_gt_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz_larger"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz_le"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_le_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_le_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_lt"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_lt_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_lt_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_mi"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunName "timestamptz_mi_interval"-> [ScalarType "timestamptz", ScalarType "interval"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz_ne"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_ne_date"-> [ScalarType "timestamptz", ScalarType "date"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_ne_timestamp"-> [ScalarType "timestamptz", ScalarType "timestamp"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timestamptz_out"-> [ScalarType "timestamptz"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timestamptz_pl_interval"-> [ScalarType "timestamptz", ScalarType "interval"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptz_send"-> [ScalarType "timestamptz"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "timestamptz_smaller"-> [ScalarType "timestamptz", ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timestamptztypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timestamptztypmodout"-> [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timetypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timetypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timetz" [ScalarType "time"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz" [ScalarType "timestamptz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz"-> [ScalarType "timetz", ScalarType "int4"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz_cmp"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timetz_eq"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timetz_ge"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timetz_gt"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timetz_hash" [ScalarType "timetz"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timetz_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz_larger"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz_le"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timetz_lt"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timetz_mi_interval"-> [ScalarType "timetz", ScalarType "interval"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz_ne"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "timetz_out" [ScalarType "timetz"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timetz_pl_interval"-> [ScalarType "timetz", ScalarType "interval"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetz_send" [ScalarType "timetz"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "timetz_smaller"-> [ScalarType "timetz", ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timetzdate_pl"-> [ScalarType "timetz", ScalarType "date"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timetztypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "timetztypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "timezone"-> [ScalarType "text", ScalarType "timestamp"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timezone"-> [ScalarType "text", ScalarType "timestamptz"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timezone"-> [ScalarType "text", ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "timezone"-> [ScalarType "interval", ScalarType "timestamp"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "timezone"-> [ScalarType "interval", ScalarType "timestamptz"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunName "timezone"-> [ScalarType "interval", ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunName "tinterval"-> [ScalarType "abstime", ScalarType "abstime"]-> (ScalarType "tinterval")-> False,-> CatCreateFunction FunName "tintervalct"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalend" [ScalarType "tinterval"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "tintervaleq"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalge"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalgt"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalin" [Pseudo Cstring]-> (ScalarType "tinterval")-> False,-> CatCreateFunction FunName "tintervalle"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalleneq"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervallenge"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervallengt"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervallenle"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervallenlt"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervallenne"-> [ScalarType "tinterval", ScalarType "reltime"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervallt"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalne"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalout" [ScalarType "tinterval"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "tintervalov"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalrecv" [Pseudo Internal]-> (ScalarType "tinterval")-> False,-> CatCreateFunction FunName "tintervalrel" [ScalarType "tinterval"]-> (ScalarType "reltime")-> False,-> CatCreateFunction FunName "tintervalsame"-> [ScalarType "tinterval", ScalarType "tinterval"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tintervalsend" [ScalarType "tinterval"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "tintervalstart" [ScalarType "tinterval"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunName "to_ascii" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_ascii"-> [ScalarType "text", ScalarType "name"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_ascii"-> [ScalarType "text", ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "int8", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "int4", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "float4", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "float8", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "timestamp", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "timestamptz", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "interval", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_char"-> [ScalarType "numeric", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_date"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "date")-> False,-> CatCreateFunction FunName "to_hex" [ScalarType "int8"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_hex" [ScalarType "int4"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "to_number"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "to_timestamp" [ScalarType "float8"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "to_timestamp"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "to_tsquery" [ScalarType "text"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "to_tsquery"-> [ScalarType "regconfig", ScalarType "text"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "to_tsvector" [ScalarType "text"]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "to_tsvector"-> [ScalarType "regconfig", ScalarType "text"]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "transaction_timestamp" []-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunName "translate"-> [ScalarType "text", ScalarType "text", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "trigger_in" [Pseudo Cstring]-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "trigger_out" [Pseudo Trigger]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "trunc" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "trunc" [ScalarType "macaddr"]-> (ScalarType "macaddr")-> False,-> CatCreateFunction FunName "trunc" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "trunc"-> [ScalarType "numeric", ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunName "ts_debug" [ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_debug"-> [ScalarType "regconfig", ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_headline"-> [ScalarType "text", ScalarType "tsquery"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "ts_headline"-> [ScalarType "text", ScalarType "tsquery", ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "ts_headline"-> [ScalarType "regconfig", ScalarType "text", ScalarType "tsquery"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "ts_headline"-> [ScalarType "regconfig", ScalarType "text", ScalarType "tsquery",-> ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "ts_lexize"-> [ScalarType "regdictionary", ScalarType "text"]-> (ArrayType (ScalarType "text"))-> False,-> CatCreateFunction FunName "ts_match_qv"-> [ScalarType "tsquery", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ts_match_tq"-> [ScalarType "text", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ts_match_tt"-> [ScalarType "text", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ts_match_vq"-> [ScalarType "tsvector", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "ts_parse"-> [ScalarType "text", ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_parse"-> [ScalarType "oid", ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_rank"-> [ScalarType "tsvector", ScalarType "tsquery"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank"-> [ArrayType (ScalarType "float4"), ScalarType "tsvector",-> ScalarType "tsquery"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank"-> [ScalarType "tsvector", ScalarType "tsquery", ScalarType "int4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank"-> [ArrayType (ScalarType "float4"), ScalarType "tsvector",-> ScalarType "tsquery", ScalarType "int4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank_cd"-> [ScalarType "tsvector", ScalarType "tsquery"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank_cd"-> [ArrayType (ScalarType "float4"), ScalarType "tsvector",-> ScalarType "tsquery"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank_cd"-> [ScalarType "tsvector", ScalarType "tsquery", ScalarType "int4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rank_cd"-> [ArrayType (ScalarType "float4"), ScalarType "tsvector",-> ScalarType "tsquery", ScalarType "int4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunName "ts_rewrite"-> [ScalarType "tsquery", ScalarType "text"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "ts_rewrite"-> [ScalarType "tsquery", ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "ts_stat" [ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_stat"-> [ScalarType "text", ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_token_type" [ScalarType "text"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_token_type" [ScalarType "oid"]-> (SetOfType (Pseudo Record))-> False,-> CatCreateFunction FunName "ts_typanalyze" [Pseudo Internal]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsmatchjoinsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int2", Pseudo Internal]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "tsmatchsel"-> [Pseudo Internal, ScalarType "oid", Pseudo Internal,-> ScalarType "int4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "tsq_mcontained"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsq_mcontains"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_and"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "tsquery_cmp"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "tsquery_eq"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_ge"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_gt"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_le"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_lt"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_ne"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsquery_not" [ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "tsquery_or"-> [ScalarType "tsquery", ScalarType "tsquery"]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "tsqueryin" [Pseudo Cstring]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "tsqueryout" [ScalarType "tsquery"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "tsqueryrecv" [Pseudo Internal]-> (ScalarType "tsquery")-> False,-> CatCreateFunction FunName "tsquerysend" [ScalarType "tsquery"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "tsvector_cmp"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "tsvector_concat"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "tsvector_eq"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsvector_ge"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsvector_gt"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsvector_le"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsvector_lt"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsvector_ne"-> [ScalarType "tsvector", ScalarType "tsvector"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "tsvector_update_trigger" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "tsvector_update_trigger_column" []-> (Pseudo Trigger)-> False,-> CatCreateFunction FunName "tsvectorin" [Pseudo Cstring]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "tsvectorout" [ScalarType "tsvector"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "tsvectorrecv" [Pseudo Internal]-> (ScalarType "tsvector")-> False,-> CatCreateFunction FunName "tsvectorsend" [ScalarType "tsvector"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "txid_current" [] (ScalarType "int8")-> False,-> CatCreateFunction FunName "txid_current_snapshot" []-> (ScalarType "txid_snapshot")-> False,-> CatCreateFunction FunName "txid_snapshot_in" [Pseudo Cstring]-> (ScalarType "txid_snapshot")-> False,-> CatCreateFunction FunName "txid_snapshot_out"-> [ScalarType "txid_snapshot"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "txid_snapshot_recv" [Pseudo Internal]-> (ScalarType "txid_snapshot")-> False,-> CatCreateFunction FunName "txid_snapshot_send"-> [ScalarType "txid_snapshot"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "txid_snapshot_xip"-> [ScalarType "txid_snapshot"]-> (SetOfType (ScalarType "int8"))-> False,-> CatCreateFunction FunName "txid_snapshot_xmax"-> [ScalarType "txid_snapshot"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "txid_snapshot_xmin"-> [ScalarType "txid_snapshot"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunName "txid_visible_in_snapshot"-> [ScalarType "int8", ScalarType "txid_snapshot"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uhc_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "unknownin" [Pseudo Cstring]-> (ScalarType "unknown")-> False,-> CatCreateFunction FunName "unknownout" [ScalarType "unknown"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "unknownrecv" [Pseudo Internal]-> (ScalarType "unknown")-> False,-> CatCreateFunction FunName "unknownsend" [ScalarType "unknown"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "unnest" [Pseudo AnyArray]-> (SetOfType (Pseudo AnyElement))-> False,-> CatCreateFunction FunName "upper" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunName "utf8_to_ascii"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_big5"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_euc_cn"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_euc_jis_2004"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_euc_jp"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_euc_kr"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_euc_tw"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_gb18030"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_gbk"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_iso8859"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_iso8859_1"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_johab"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_koi8r"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_koi8u"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_shift_jis_2004"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_sjis"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_uhc"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "utf8_to_win"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "uuid_cmp"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "uuid_eq"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uuid_ge"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uuid_gt"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uuid_hash" [ScalarType "uuid"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "uuid_in" [Pseudo Cstring]-> (ScalarType "uuid")-> False,-> CatCreateFunction FunName "uuid_le"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uuid_lt"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uuid_ne"-> [ScalarType "uuid", ScalarType "uuid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "uuid_out" [ScalarType "uuid"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "uuid_recv" [Pseudo Internal]-> (ScalarType "uuid")-> False,-> CatCreateFunction FunName "uuid_send" [ScalarType "uuid"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "varbit"-> [ScalarType "varbit", ScalarType "int4", ScalarType "bool"]-> (ScalarType "varbit")-> False,-> CatCreateFunction FunName "varbit_in"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "varbit")-> False,-> CatCreateFunction FunName "varbit_out" [ScalarType "varbit"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "varbit_recv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "varbit")-> False,-> CatCreateFunction FunName "varbit_send" [ScalarType "varbit"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "varbitcmp"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "varbiteq"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "varbitge"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "varbitgt"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "varbitle"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "varbitlt"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "varbitne"-> [ScalarType "varbit", ScalarType "varbit"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "varbittypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "varbittypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "varchar" [ScalarType "name"]-> (ScalarType "varchar")-> False,-> CatCreateFunction FunName "varchar"-> [ScalarType "varchar", ScalarType "int4", ScalarType "bool"]-> (ScalarType "varchar")-> False,-> CatCreateFunction FunName "varcharin"-> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]-> (ScalarType "varchar")-> False,-> CatCreateFunction FunName "varcharout" [ScalarType "varchar"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "varcharrecv"-> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]-> (ScalarType "varchar")-> False,-> CatCreateFunction FunName "varcharsend" [ScalarType "varchar"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "varchartypmodin"-> [ArrayType (Pseudo Cstring)]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "varchartypmodout" [ScalarType "int4"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "version" [] (ScalarType "text") False,-> CatCreateFunction FunName "void_in" [Pseudo Cstring] (Pseudo Void)-> False,-> CatCreateFunction FunName "void_out" [Pseudo Void] (Pseudo Cstring)-> False,-> CatCreateFunction FunName "width" [ScalarType "box"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunName "width_bucket"-> [ScalarType "float8", ScalarType "float8", ScalarType "float8",-> ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "width_bucket"-> [ScalarType "numeric", ScalarType "numeric", ScalarType "numeric",-> ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunName "win1250_to_latin2"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win1250_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win1251_to_iso"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win1251_to_koi8r"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win1251_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win1251_to_win866"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win866_to_iso"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win866_to_koi8r"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win866_to_mic"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win866_to_win1251"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "win_to_utf8"-> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,-> Pseudo Internal, ScalarType "int4"]-> (Pseudo Void)-> False,-> CatCreateFunction FunName "xideq"-> [ScalarType "xid", ScalarType "xid"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "xideqint4"-> [ScalarType "xid", ScalarType "int4"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "xidin" [Pseudo Cstring]-> (ScalarType "xid")-> False,-> CatCreateFunction FunName "xidout" [ScalarType "xid"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "xidrecv" [Pseudo Internal]-> (ScalarType "xid")-> False,-> CatCreateFunction FunName "xidsend" [ScalarType "xid"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "xml" [ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "xml_in" [Pseudo Cstring]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "xml_out" [ScalarType "xml"]-> (Pseudo Cstring)-> False,-> CatCreateFunction FunName "xml_recv" [Pseudo Internal]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "xml_send" [ScalarType "xml"]-> (ScalarType "bytea")-> False,-> CatCreateFunction FunName "xmlcomment" [ScalarType "text"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "xmlconcat2"-> [ScalarType "xml", ScalarType "xml"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunName "xmlvalidate"-> [ScalarType "xml", ScalarType "text"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunName "xpath"-> [ScalarType "text", ScalarType "xml"]-> (ArrayType (ScalarType "xml"))-> False,-> CatCreateFunction FunName "xpath"-> [ScalarType "text", ScalarType "xml",-> ArrayType (ScalarType "text")]-> (ArrayType (ScalarType "xml"))-> False,-> CatCreateFunction FunAgg "array_agg" [Pseudo AnyElement]-> (Pseudo AnyArray)-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunAgg "avg" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "bit_and" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "bit_and" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunAgg "bit_and" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunAgg "bit_and" [ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunAgg "bit_or" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "bit_or" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunAgg "bit_or" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunAgg "bit_or" [ScalarType "bit"]-> (ScalarType "bit")-> False,-> CatCreateFunction FunAgg "bool_and" [ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunAgg "bool_or" [ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunAgg "corr"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "count" [] (ScalarType "int8") False,-> CatCreateFunction FunAgg "count" [Pseudo Any] (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "covar_pop"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "covar_samp"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "every" [ScalarType "bool"]-> (ScalarType "bool")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "oid"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "tid"]-> (ScalarType "tid")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "abstime"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "bpchar"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "date"]-> (ScalarType "date")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "time"]-> (ScalarType "time")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunAgg "max" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "max" [Pseudo AnyArray] (Pseudo AnyArray)-> False,-> CatCreateFunction FunAgg "max" [Pseudo AnyEnum] (Pseudo AnyEnum)-> False,-> CatCreateFunction FunAgg "min" [ScalarType "int8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "int2"]-> (ScalarType "int2")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "text"]-> (ScalarType "text")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "oid"]-> (ScalarType "oid")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "tid"]-> (ScalarType "tid")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "abstime"]-> (ScalarType "abstime")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "bpchar"]-> (ScalarType "bpchar")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "date"]-> (ScalarType "date")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "time"]-> (ScalarType "time")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "timestamp"]-> (ScalarType "timestamp")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "timestamptz"]-> (ScalarType "timestamptz")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "timetz"]-> (ScalarType "timetz")-> False,-> CatCreateFunction FunAgg "min" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "min" [Pseudo AnyArray] (Pseudo AnyArray)-> False,-> CatCreateFunction FunAgg "min" [Pseudo AnyEnum] (Pseudo AnyEnum)-> False,-> CatCreateFunction FunAgg "regr_avgx"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_avgy"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_count"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "regr_intercept"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_r2"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_slope"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_sxx"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_sxy"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "regr_syy"-> [ScalarType "float8", ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_pop" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_pop" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_pop" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_pop" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev_pop" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev_pop" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_samp" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_samp" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_samp" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "stddev_samp" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev_samp" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "stddev_samp" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "int2"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "int4"]-> (ScalarType "int8")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "float4"]-> (ScalarType "float4")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "money"]-> (ScalarType "money")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "interval"]-> (ScalarType "interval")-> False,-> CatCreateFunction FunAgg "sum" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_pop" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_pop" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_pop" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_pop" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "var_pop" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "var_pop" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_samp" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_samp" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_samp" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "var_samp" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "var_samp" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "var_samp" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "variance" [ScalarType "int8"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "variance" [ScalarType "int2"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "variance" [ScalarType "int4"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "variance" [ScalarType "float4"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "variance" [ScalarType "float8"]-> (ScalarType "float8")-> False,-> CatCreateFunction FunAgg "variance" [ScalarType "numeric"]-> (ScalarType "numeric")-> False,-> CatCreateFunction FunAgg "xmlagg" [ScalarType "xml"]-> (ScalarType "xml")-> False,-> CatCreateFunction FunWindow "cume_dist" [] (ScalarType "float8")-> False,-> CatCreateFunction FunWindow "dense_rank" [] (ScalarType "int8")-> False,-> CatCreateFunction FunWindow "first_value" [Pseudo AnyElement]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "lag" [Pseudo AnyElement]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "lag"-> [Pseudo AnyElement, ScalarType "int4"]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "lag"-> [Pseudo AnyElement, ScalarType "int4", Pseudo AnyElement]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "last_value" [Pseudo AnyElement]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "lead" [Pseudo AnyElement]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "lead"-> [Pseudo AnyElement, ScalarType "int4"]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "lead"-> [Pseudo AnyElement, ScalarType "int4", Pseudo AnyElement]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "nth_value"-> [Pseudo AnyElement, ScalarType "int4"]-> (Pseudo AnyElement)-> False,-> CatCreateFunction FunWindow "ntile" [ScalarType "int4"]-> (ScalarType "int4")-> False,-> CatCreateFunction FunWindow "percent_rank" [] (ScalarType "float8")-> False,-> CatCreateFunction FunWindow "rank" [] (ScalarType "int8") False,-> CatCreateFunction FunWindow "row_number" [] (ScalarType "int8")-> False,-> CatCreateTable "pg_aggregate"-> [("aggfnoid", ScalarType "regproc"),-> ("aggtransfn", ScalarType "regproc"),-> ("aggfinalfn", ScalarType "regproc"),-> ("aggsortop", ScalarType "oid"),-> ("aggtranstype", ScalarType "oid"),-> ("agginitval", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_am"-> [("amname", ScalarType "name"),-> ("amstrategies", ScalarType "int2"),-> ("amsupport", ScalarType "int2"),-> ("amcanorder", ScalarType "bool"),-> ("amcanbackward", ScalarType "bool"),-> ("amcanunique", ScalarType "bool"),-> ("amcanmulticol", ScalarType "bool"),-> ("amoptionalkey", ScalarType "bool"),-> ("amindexnulls", ScalarType "bool"),-> ("amsearchnulls", ScalarType "bool"),-> ("amstorage", ScalarType "bool"),-> ("amclusterable", ScalarType "bool"),-> ("amkeytype", ScalarType "oid"),-> ("aminsert", ScalarType "regproc"),-> ("ambeginscan", ScalarType "regproc"),-> ("amgettuple", ScalarType "regproc"),-> ("amgetbitmap", ScalarType "regproc"),-> ("amrescan", ScalarType "regproc"),-> ("amendscan", ScalarType "regproc"),-> ("ammarkpos", ScalarType "regproc"),-> ("amrestrpos", ScalarType "regproc"),-> ("ambuild", ScalarType "regproc"),-> ("ambulkdelete", ScalarType "regproc"),-> ("amvacuumcleanup", ScalarType "regproc"),-> ("amcostestimate", ScalarType "regproc"),-> ("amoptions", ScalarType "regproc")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_amop"-> [("amopfamily", ScalarType "oid"),-> ("amoplefttype", ScalarType "oid"),-> ("amoprighttype", ScalarType "oid"),-> ("amopstrategy", ScalarType "int2"), ("amopopr", ScalarType "oid"),-> ("amopmethod", ScalarType "oid")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_amproc"-> [("amprocfamily", ScalarType "oid"),-> ("amproclefttype", ScalarType "oid"),-> ("amprocrighttype", ScalarType "oid"),-> ("amprocnum", ScalarType "int2"), ("amproc", ScalarType "regproc")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_attrdef"-> [("adrelid", ScalarType "oid"), ("adnum", ScalarType "int2"),-> ("adbin", ScalarType "text"), ("adsrc", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_attribute"-> [("attrelid", ScalarType "oid"), ("attname", ScalarType "name"),-> ("atttypid", ScalarType "oid"),-> ("attstattarget", ScalarType "int4"),-> ("attlen", ScalarType "int2"), ("attnum", ScalarType "int2"),-> ("attndims", ScalarType "int4"),-> ("attcacheoff", ScalarType "int4"),-> ("atttypmod", ScalarType "int4"), ("attbyval", ScalarType "bool"),-> ("attstorage", ScalarType "char"), ("attalign", ScalarType "char"),-> ("attnotnull", ScalarType "bool"),-> ("atthasdef", ScalarType "bool"),-> ("attisdropped", ScalarType "bool"),-> ("attislocal", ScalarType "bool"),-> ("attinhcount", ScalarType "int4"),-> ("attacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_auth_members"-> [("roleid", ScalarType "oid"), ("member", ScalarType "oid"),-> ("grantor", ScalarType "oid"), ("admin_option", ScalarType "bool")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_authid"-> [("rolname", ScalarType "name"), ("rolsuper", ScalarType "bool"),-> ("rolinherit", ScalarType "bool"),-> ("rolcreaterole", ScalarType "bool"),-> ("rolcreatedb", ScalarType "bool"),-> ("rolcatupdate", ScalarType "bool"),-> ("rolcanlogin", ScalarType "bool"),-> ("rolconnlimit", ScalarType "int4"),-> ("rolpassword", ScalarType "text"),-> ("rolvaliduntil", ScalarType "timestamptz"),-> ("rolconfig", ArrayType (ScalarType "text"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_cast"-> [("castsource", ScalarType "oid"),-> ("casttarget", ScalarType "oid"), ("castfunc", ScalarType "oid"),-> ("castcontext", ScalarType "char"),-> ("castmethod", ScalarType "char")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_class"-> [("relname", ScalarType "name"),-> ("relnamespace", ScalarType "oid"), ("reltype", ScalarType "oid"),-> ("relowner", ScalarType "oid"), ("relam", ScalarType "oid"),-> ("relfilenode", ScalarType "oid"),-> ("reltablespace", ScalarType "oid"),-> ("relpages", ScalarType "int4"),-> ("reltuples", ScalarType "float4"),-> ("reltoastrelid", ScalarType "oid"),-> ("reltoastidxid", ScalarType "oid"),-> ("relhasindex", ScalarType "bool"),-> ("relisshared", ScalarType "bool"),-> ("relistemp", ScalarType "bool"), ("relkind", ScalarType "char"),-> ("relnatts", ScalarType "int2"), ("relchecks", ScalarType "int2"),-> ("relhasoids", ScalarType "bool"),-> ("relhaspkey", ScalarType "bool"),-> ("relhasrules", ScalarType "bool"),-> ("relhastriggers", ScalarType "bool"),-> ("relhassubclass", ScalarType "bool"),-> ("relfrozenxid", ScalarType "xid"),-> ("relacl", ArrayType (ScalarType "aclitem")),-> ("reloptions", ArrayType (ScalarType "text"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_constraint"-> [("conname", ScalarType "name"),-> ("connamespace", ScalarType "oid"), ("contype", ScalarType "char"),-> ("condeferrable", ScalarType "bool"),-> ("condeferred", ScalarType "bool"), ("conrelid", ScalarType "oid"),-> ("contypid", ScalarType "oid"), ("confrelid", ScalarType "oid"),-> ("confupdtype", ScalarType "char"),-> ("confdeltype", ScalarType "char"),-> ("confmatchtype", ScalarType "char"),-> ("conislocal", ScalarType "bool"),-> ("coninhcount", ScalarType "int4"),-> ("conkey", ArrayType (ScalarType "int2")),-> ("confkey", ArrayType (ScalarType "int2")),-> ("conpfeqop", ArrayType (ScalarType "oid")),-> ("conppeqop", ArrayType (ScalarType "oid")),-> ("conffeqop", ArrayType (ScalarType "oid")),-> ("conbin", ScalarType "text"), ("consrc", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_conversion"-> [("conname", ScalarType "name"),-> ("connamespace", ScalarType "oid"), ("conowner", ScalarType "oid"),-> ("conforencoding", ScalarType "int4"),-> ("contoencoding", ScalarType "int4"),-> ("conproc", ScalarType "regproc"),-> ("condefault", ScalarType "bool")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_database"-> [("datname", ScalarType "name"), ("datdba", ScalarType "oid"),-> ("encoding", ScalarType "int4"), ("datcollate", ScalarType "name"),-> ("datctype", ScalarType "name"),-> ("datistemplate", ScalarType "bool"),-> ("datallowconn", ScalarType "bool"),-> ("datconnlimit", ScalarType "int4"),-> ("datlastsysoid", ScalarType "oid"),-> ("datfrozenxid", ScalarType "xid"),-> ("dattablespace", ScalarType "oid"),-> ("datconfig", ArrayType (ScalarType "text")),-> ("datacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_depend"-> [("classid", ScalarType "oid"), ("objid", ScalarType "oid"),-> ("objsubid", ScalarType "int4"), ("refclassid", ScalarType "oid"),-> ("refobjid", ScalarType "oid"), ("refobjsubid", ScalarType "int4"),-> ("deptype", ScalarType "char")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_description"-> [("objoid", ScalarType "oid"), ("classoid", ScalarType "oid"),-> ("objsubid", ScalarType "int4"),-> ("description", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_enum"-> [("enumtypid", ScalarType "oid"), ("enumlabel", ScalarType "name")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_foreign_data_wrapper"-> [("fdwname", ScalarType "name"), ("fdwowner", ScalarType "oid"),-> ("fdwvalidator", ScalarType "oid"),-> ("fdwacl", ArrayType (ScalarType "aclitem")),-> ("fdwoptions", ArrayType (ScalarType "text"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_foreign_server"-> [("srvname", ScalarType "name"), ("srvowner", ScalarType "oid"),-> ("srvfdw", ScalarType "oid"), ("srvtype", ScalarType "text"),-> ("srvversion", ScalarType "text"),-> ("srvacl", ArrayType (ScalarType "aclitem")),-> ("srvoptions", ArrayType (ScalarType "text"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_index"-> [("indexrelid", ScalarType "oid"), ("indrelid", ScalarType "oid"),-> ("indnatts", ScalarType "int2"),-> ("indisunique", ScalarType "bool"),-> ("indisprimary", ScalarType "bool"),-> ("indisclustered", ScalarType "bool"),-> ("indisvalid", ScalarType "bool"),-> ("indcheckxmin", ScalarType "bool"),-> ("indisready", ScalarType "bool"),-> ("indkey", ScalarType "int2vector"),-> ("indclass", ScalarType "oidvector"),-> ("indoption", ScalarType "int2vector"),-> ("indexprs", ScalarType "text"), ("indpred", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_inherits"-> [("inhrelid", ScalarType "oid"), ("inhparent", ScalarType "oid"),-> ("inhseqno", ScalarType "int4")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_language"-> [("lanname", ScalarType "name"), ("lanowner", ScalarType "oid"),-> ("lanispl", ScalarType "bool"),-> ("lanpltrusted", ScalarType "bool"),-> ("lanplcallfoid", ScalarType "oid"),-> ("lanvalidator", ScalarType "oid"),-> ("lanacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_largeobject"-> [("loid", ScalarType "oid"), ("pageno", ScalarType "int4"),-> ("data", ScalarType "bytea")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_listener"-> [("relname", ScalarType "name"),-> ("listenerpid", ScalarType "int4"),-> ("notification", ScalarType "int4")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_namespace"-> [("nspname", ScalarType "name"), ("nspowner", ScalarType "oid"),-> ("nspacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_opclass"-> [("opcmethod", ScalarType "oid"), ("opcname", ScalarType "name"),-> ("opcnamespace", ScalarType "oid"), ("opcowner", ScalarType "oid"),-> ("opcfamily", ScalarType "oid"), ("opcintype", ScalarType "oid"),-> ("opcdefault", ScalarType "bool"),-> ("opckeytype", ScalarType "oid")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_operator"-> [("oprname", ScalarType "name"),-> ("oprnamespace", ScalarType "oid"), ("oprowner", ScalarType "oid"),-> ("oprkind", ScalarType "char"), ("oprcanmerge", ScalarType "bool"),-> ("oprcanhash", ScalarType "bool"), ("oprleft", ScalarType "oid"),-> ("oprright", ScalarType "oid"), ("oprresult", ScalarType "oid"),-> ("oprcom", ScalarType "oid"), ("oprnegate", ScalarType "oid"),-> ("oprcode", ScalarType "regproc"),-> ("oprrest", ScalarType "regproc"),-> ("oprjoin", ScalarType "regproc")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_opfamily"-> [("opfmethod", ScalarType "oid"), ("opfname", ScalarType "name"),-> ("opfnamespace", ScalarType "oid"), ("opfowner", ScalarType "oid")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_pltemplate"-> [("tmplname", ScalarType "name"),-> ("tmpltrusted", ScalarType "bool"),-> ("tmpldbacreate", ScalarType "bool"),-> ("tmplhandler", ScalarType "text"),-> ("tmplvalidator", ScalarType "text"),-> ("tmpllibrary", ScalarType "text"),-> ("tmplacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_proc"-> [("proname", ScalarType "name"),-> ("pronamespace", ScalarType "oid"), ("proowner", ScalarType "oid"),-> ("prolang", ScalarType "oid"), ("procost", ScalarType "float4"),-> ("prorows", ScalarType "float4"),-> ("provariadic", ScalarType "oid"), ("proisagg", ScalarType "bool"),-> ("proiswindow", ScalarType "bool"),-> ("prosecdef", ScalarType "bool"),-> ("proisstrict", ScalarType "bool"),-> ("proretset", ScalarType "bool"),-> ("provolatile", ScalarType "char"),-> ("pronargs", ScalarType "int2"),-> ("pronargdefaults", ScalarType "int2"),-> ("prorettype", ScalarType "oid"),-> ("proargtypes", ScalarType "oidvector"),-> ("proallargtypes", ArrayType (ScalarType "oid")),-> ("proargmodes", ArrayType (ScalarType "char")),-> ("proargnames", ArrayType (ScalarType "text")),-> ("proargdefaults", ScalarType "text"),-> ("prosrc", ScalarType "text"), ("probin", ScalarType "bytea"),-> ("proconfig", ArrayType (ScalarType "text")),-> ("proacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_rewrite"-> [("rulename", ScalarType "name"), ("ev_class", ScalarType "oid"),-> ("ev_attr", ScalarType "int2"), ("ev_type", ScalarType "char"),-> ("ev_enabled", ScalarType "char"),-> ("is_instead", ScalarType "bool"), ("ev_qual", ScalarType "text"),-> ("ev_action", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_shdepend"-> [("dbid", ScalarType "oid"), ("classid", ScalarType "oid"),-> ("objid", ScalarType "oid"), ("objsubid", ScalarType "int4"),-> ("refclassid", ScalarType "oid"), ("refobjid", ScalarType "oid"),-> ("deptype", ScalarType "char")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_shdescription"-> [("objoid", ScalarType "oid"), ("classoid", ScalarType "oid"),-> ("description", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_statistic"-> [("starelid", ScalarType "oid"), ("staattnum", ScalarType "int2"),-> ("stanullfrac", ScalarType "float4"),-> ("stawidth", ScalarType "int4"),-> ("stadistinct", ScalarType "float4"),-> ("stakind1", ScalarType "int2"), ("stakind2", ScalarType "int2"),-> ("stakind3", ScalarType "int2"), ("stakind4", ScalarType "int2"),-> ("staop1", ScalarType "oid"), ("staop2", ScalarType "oid"),-> ("staop3", ScalarType "oid"), ("staop4", ScalarType "oid"),-> ("stanumbers1", ArrayType (ScalarType "float4")),-> ("stanumbers2", ArrayType (ScalarType "float4")),-> ("stanumbers3", ArrayType (ScalarType "float4")),-> ("stanumbers4", ArrayType (ScalarType "float4")),-> ("stavalues1", Pseudo AnyArray), ("stavalues2", Pseudo AnyArray),-> ("stavalues3", Pseudo AnyArray), ("stavalues4", Pseudo AnyArray)]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_tablespace"-> [("spcname", ScalarType "name"), ("spcowner", ScalarType "oid"),-> ("spclocation", ScalarType "text"),-> ("spcacl", ArrayType (ScalarType "aclitem"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_trigger"-> [("tgrelid", ScalarType "oid"), ("tgname", ScalarType "name"),-> ("tgfoid", ScalarType "oid"), ("tgtype", ScalarType "int2"),-> ("tgenabled", ScalarType "char"),-> ("tgisconstraint", ScalarType "bool"),-> ("tgconstrname", ScalarType "name"),-> ("tgconstrrelid", ScalarType "oid"),-> ("tgconstraint", ScalarType "oid"),-> ("tgdeferrable", ScalarType "bool"),-> ("tginitdeferred", ScalarType "bool"),-> ("tgnargs", ScalarType "int2"),-> ("tgattr", ScalarType "int2vector"),-> ("tgargs", ScalarType "bytea")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_ts_config"-> [("cfgname", ScalarType "name"),-> ("cfgnamespace", ScalarType "oid"), ("cfgowner", ScalarType "oid"),-> ("cfgparser", ScalarType "oid")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_ts_config_map"-> [("mapcfg", ScalarType "oid"), ("maptokentype", ScalarType "int4"),-> ("mapseqno", ScalarType "int4"), ("mapdict", ScalarType "oid")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "pg_ts_dict"-> [("dictname", ScalarType "name"),-> ("dictnamespace", ScalarType "oid"),-> ("dictowner", ScalarType "oid"),-> ("dicttemplate", ScalarType "oid"),-> ("dictinitoption", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_ts_parser"-> [("prsname", ScalarType "name"),-> ("prsnamespace", ScalarType "oid"),-> ("prsstart", ScalarType "regproc"),-> ("prstoken", ScalarType "regproc"),-> ("prsend", ScalarType "regproc"),-> ("prsheadline", ScalarType "regproc"),-> ("prslextype", ScalarType "regproc")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_ts_template"-> [("tmplname", ScalarType "name"),-> ("tmplnamespace", ScalarType "oid"),-> ("tmplinit", ScalarType "regproc"),-> ("tmpllexize", ScalarType "regproc")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_type"-> [("typname", ScalarType "name"),-> ("typnamespace", ScalarType "oid"), ("typowner", ScalarType "oid"),-> ("typlen", ScalarType "int2"), ("typbyval", ScalarType "bool"),-> ("typtype", ScalarType "char"), ("typcategory", ScalarType "char"),-> ("typispreferred", ScalarType "bool"),-> ("typisdefined", ScalarType "bool"),-> ("typdelim", ScalarType "char"), ("typrelid", ScalarType "oid"),-> ("typelem", ScalarType "oid"), ("typarray", ScalarType "oid"),-> ("typinput", ScalarType "regproc"),-> ("typoutput", ScalarType "regproc"),-> ("typreceive", ScalarType "regproc"),-> ("typsend", ScalarType "regproc"),-> ("typmodin", ScalarType "regproc"),-> ("typmodout", ScalarType "regproc"),-> ("typanalyze", ScalarType "regproc"),-> ("typalign", ScalarType "char"), ("typstorage", ScalarType "char"),-> ("typnotnull", ScalarType "bool"),-> ("typbasetype", ScalarType "oid"),-> ("typtypmod", ScalarType "int4"), ("typndims", ScalarType "int4"),-> ("typdefaultbin", ScalarType "text"),-> ("typdefault", ScalarType "text")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "pg_user_mapping"-> [("umuser", ScalarType "oid"), ("umserver", ScalarType "oid"),-> ("umoptions", ArrayType (ScalarType "text"))]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),-> ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_features"-> [("feature_id", DomainType "information_schema.character_data"),-> ("feature_name", DomainType "information_schema.character_data"),-> ("sub_feature_id", DomainType "information_schema.character_data"),-> ("sub_feature_name",-> DomainType "information_schema.character_data"),-> ("is_supported", DomainType "information_schema.character_data"),-> ("is_verified_by", DomainType "information_schema.character_data"),-> ("comments", DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_implementation_info"-> [("implementation_info_id",-> DomainType "information_schema.character_data"),-> ("implementation_info_name",-> DomainType "information_schema.character_data"),-> ("integer_value", DomainType "information_schema.cardinal_number"),-> ("character_value",-> DomainType "information_schema.character_data"),-> ("comments", DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_languages"-> [("sql_language_source",-> DomainType "information_schema.character_data"),-> ("sql_language_year",-> DomainType "information_schema.character_data"),-> ("sql_language_conformance",-> DomainType "information_schema.character_data"),-> ("sql_language_integrity",-> DomainType "information_schema.character_data"),-> ("sql_language_implementation",-> DomainType "information_schema.character_data"),-> ("sql_language_binding_style",-> DomainType "information_schema.character_data"),-> ("sql_language_programming_language",-> DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_packages"-> [("feature_id", DomainType "information_schema.character_data"),-> ("feature_name", DomainType "information_schema.character_data"),-> ("is_supported", DomainType "information_schema.character_data"),-> ("is_verified_by", DomainType "information_schema.character_data"),-> ("comments", DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_parts"-> [("feature_id", DomainType "information_schema.character_data"),-> ("feature_name", DomainType "information_schema.character_data"),-> ("is_supported", DomainType "information_schema.character_data"),-> ("is_verified_by", DomainType "information_schema.character_data"),-> ("comments", DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_sizing"-> [("sizing_id", DomainType "information_schema.cardinal_number"),-> ("sizing_name", DomainType "information_schema.character_data"),-> ("supported_value",-> DomainType "information_schema.cardinal_number"),-> ("comments", DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateTable "information_schema.sql_sizing_profiles"-> [("sizing_id", DomainType "information_schema.cardinal_number"),-> ("sizing_name", DomainType "information_schema.character_data"),-> ("profile_id", DomainType "information_schema.character_data"),-> ("required_value",-> DomainType "information_schema.cardinal_number"),-> ("comments", DomainType "information_schema.character_data")]-> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),-> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),-> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],-> CatCreateView "information_schema._pg_foreign_data_wrappers"-> [("oid", ScalarType "oid"), ("fdwowner", ScalarType "oid"),-> ("fdwoptions", ArrayType (ScalarType "text")),-> ("foreign_data_wrapper_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_name",-> DomainType "information_schema.sql_identifier"),-> ("authorization_identifier",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_language",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema._pg_foreign_servers"-> [("oid", ScalarType "oid"),-> ("srvoptions", ArrayType (ScalarType "text")),-> ("foreign_server_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_name",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_name",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_type",-> DomainType "information_schema.character_data"),-> ("foreign_server_version",-> DomainType "information_schema.character_data"),-> ("authorization_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema._pg_user_mappings"-> [("oid", ScalarType "oid"),-> ("umoptions", ArrayType (ScalarType "text")),-> ("umuser", ScalarType "oid"),-> ("authorization_identifier",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_name",-> DomainType "information_schema.sql_identifier"),-> ("srvowner", DomainType "information_schema.sql_identifier")],-> CatCreateView-> "information_schema.administrable_role_authorizations"-> [("grantee", DomainType "information_schema.sql_identifier"),-> ("role_name", DomainType "information_schema.sql_identifier"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.applicable_roles"-> [("grantee", DomainType "information_schema.sql_identifier"),-> ("role_name", DomainType "information_schema.sql_identifier"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.attributes"-> [("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("attribute_name", DomainType "information_schema.sql_identifier"),-> ("ordinal_position",-> DomainType "information_schema.cardinal_number"),-> ("attribute_default",-> DomainType "information_schema.character_data"),-> ("is_nullable", DomainType "information_schema.character_data"),-> ("data_type", DomainType "information_schema.character_data"),-> ("character_maximum_length",-> DomainType "information_schema.cardinal_number"),-> ("character_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("collation_name", DomainType "information_schema.sql_identifier"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("interval_type", DomainType "information_schema.character_data"),-> ("interval_precision",-> DomainType "information_schema.character_data"),-> ("attribute_udt_catalog",-> DomainType "information_schema.sql_identifier"),-> ("attribute_udt_schema",-> DomainType "information_schema.sql_identifier"),-> ("attribute_udt_name",-> DomainType "information_schema.sql_identifier"),-> ("scope_catalog", DomainType "information_schema.sql_identifier"),-> ("scope_schema", DomainType "information_schema.sql_identifier"),-> ("scope_name", DomainType "information_schema.sql_identifier"),-> ("maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("dtd_identifier", DomainType "information_schema.sql_identifier"),-> ("is_derived_reference_attribute",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema.check_constraint_routine_usage"-> [("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("specific_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.check_constraints"-> [("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("check_clause", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.column_domain_usage"-> [("domain_catalog",-> DomainType "information_schema.sql_identifier"),-> ("domain_schema", DomainType "information_schema.sql_identifier"),-> ("domain_name", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.column_privileges"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.column_udt_usage"-> [("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.columns"-> [("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier"),-> ("ordinal_position",-> DomainType "information_schema.cardinal_number"),-> ("column_default", DomainType "information_schema.character_data"),-> ("is_nullable", DomainType "information_schema.character_data"),-> ("data_type", DomainType "information_schema.character_data"),-> ("character_maximum_length",-> DomainType "information_schema.cardinal_number"),-> ("character_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("interval_type", DomainType "information_schema.character_data"),-> ("interval_precision",-> DomainType "information_schema.character_data"),-> ("character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("collation_name", DomainType "information_schema.sql_identifier"),-> ("domain_catalog", DomainType "information_schema.sql_identifier"),-> ("domain_schema", DomainType "information_schema.sql_identifier"),-> ("domain_name", DomainType "information_schema.sql_identifier"),-> ("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("scope_catalog", DomainType "information_schema.sql_identifier"),-> ("scope_schema", DomainType "information_schema.sql_identifier"),-> ("scope_name", DomainType "information_schema.sql_identifier"),-> ("maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("dtd_identifier", DomainType "information_schema.sql_identifier"),-> ("is_self_referencing",-> DomainType "information_schema.character_data"),-> ("is_identity", DomainType "information_schema.character_data"),-> ("identity_generation",-> DomainType "information_schema.character_data"),-> ("identity_start", DomainType "information_schema.character_data"),-> ("identity_increment",-> DomainType "information_schema.character_data"),-> ("identity_maximum",-> DomainType "information_schema.character_data"),-> ("identity_minimum",-> DomainType "information_schema.character_data"),-> ("identity_cycle", DomainType "information_schema.character_data"),-> ("is_generated", DomainType "information_schema.character_data"),-> ("generation_expression",-> DomainType "information_schema.character_data"),-> ("is_updatable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.constraint_column_usage"-> [("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier"),-> ("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.constraint_table_usage"-> [("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.data_type_privileges"-> [("object_catalog",-> DomainType "information_schema.sql_identifier"),-> ("object_schema", DomainType "information_schema.sql_identifier"),-> ("object_name", DomainType "information_schema.sql_identifier"),-> ("object_type", DomainType "information_schema.character_data"),-> ("dtd_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.domain_constraints"-> [("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("domain_catalog", DomainType "information_schema.sql_identifier"),-> ("domain_schema", DomainType "information_schema.sql_identifier"),-> ("domain_name", DomainType "information_schema.sql_identifier"),-> ("is_deferrable", DomainType "information_schema.character_data"),-> ("initially_deferred",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema.domain_udt_usage"-> [("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("domain_catalog", DomainType "information_schema.sql_identifier"),-> ("domain_schema", DomainType "information_schema.sql_identifier"),-> ("domain_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.domains"-> [("domain_catalog",-> DomainType "information_schema.sql_identifier"),-> ("domain_schema", DomainType "information_schema.sql_identifier"),-> ("domain_name", DomainType "information_schema.sql_identifier"),-> ("data_type", DomainType "information_schema.character_data"),-> ("character_maximum_length",-> DomainType "information_schema.cardinal_number"),-> ("character_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("collation_name", DomainType "information_schema.sql_identifier"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("interval_type", DomainType "information_schema.character_data"),-> ("interval_precision",-> DomainType "information_schema.character_data"),-> ("domain_default", DomainType "information_schema.character_data"),-> ("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("scope_catalog", DomainType "information_schema.sql_identifier"),-> ("scope_schema", DomainType "information_schema.sql_identifier"),-> ("scope_name", DomainType "information_schema.sql_identifier"),-> ("maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("dtd_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.element_types"-> [("object_catalog",-> DomainType "information_schema.sql_identifier"),-> ("object_schema", DomainType "information_schema.sql_identifier"),-> ("object_name", DomainType "information_schema.sql_identifier"),-> ("object_type", DomainType "information_schema.character_data"),-> ("collection_type_identifier",-> DomainType "information_schema.sql_identifier"),-> ("data_type", DomainType "information_schema.character_data"),-> ("character_maximum_length",-> DomainType "information_schema.cardinal_number"),-> ("character_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("collation_name", DomainType "information_schema.sql_identifier"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("interval_type", DomainType "information_schema.character_data"),-> ("interval_precision",-> DomainType "information_schema.character_data"),-> ("domain_default", DomainType "information_schema.character_data"),-> ("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("scope_catalog", DomainType "information_schema.sql_identifier"),-> ("scope_schema", DomainType "information_schema.sql_identifier"),-> ("scope_name", DomainType "information_schema.sql_identifier"),-> ("maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("dtd_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.enabled_roles"-> [("role_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.foreign_data_wrapper_options"-> [("foreign_data_wrapper_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_name",-> DomainType "information_schema.sql_identifier"),-> ("option_name", DomainType "information_schema.sql_identifier"),-> ("option_value", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.foreign_data_wrappers"-> [("foreign_data_wrapper_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_name",-> DomainType "information_schema.sql_identifier"),-> ("authorization_identifier",-> DomainType "information_schema.sql_identifier"),-> ("library_name", DomainType "information_schema.character_data"),-> ("foreign_data_wrapper_language",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema.foreign_server_options"-> [("foreign_server_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_name",-> DomainType "information_schema.sql_identifier"),-> ("option_name", DomainType "information_schema.sql_identifier"),-> ("option_value", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.foreign_servers"-> [("foreign_server_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_name",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_data_wrapper_name",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_type",-> DomainType "information_schema.character_data"),-> ("foreign_server_version",-> DomainType "information_schema.character_data"),-> ("authorization_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.information_schema_catalog_name"-> [("catalog_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.key_column_usage"-> [("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier"),-> ("ordinal_position",-> DomainType "information_schema.cardinal_number"),-> ("position_in_unique_constraint",-> DomainType "information_schema.cardinal_number")],-> CatCreateView "information_schema.parameters"-> [("specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("specific_name", DomainType "information_schema.sql_identifier"),-> ("ordinal_position",-> DomainType "information_schema.cardinal_number"),-> ("parameter_mode", DomainType "information_schema.character_data"),-> ("is_result", DomainType "information_schema.character_data"),-> ("as_locator", DomainType "information_schema.character_data"),-> ("parameter_name", DomainType "information_schema.sql_identifier"),-> ("data_type", DomainType "information_schema.character_data"),-> ("character_maximum_length",-> DomainType "information_schema.cardinal_number"),-> ("character_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("collation_name", DomainType "information_schema.sql_identifier"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("interval_type", DomainType "information_schema.character_data"),-> ("interval_precision",-> DomainType "information_schema.character_data"),-> ("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("scope_catalog", DomainType "information_schema.sql_identifier"),-> ("scope_schema", DomainType "information_schema.sql_identifier"),-> ("scope_name", DomainType "information_schema.sql_identifier"),-> ("maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("dtd_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "pg_cursors"-> [("name", ScalarType "text"), ("statement", ScalarType "text"),-> ("is_holdable", ScalarType "bool"),-> ("is_binary", ScalarType "bool"),-> ("is_scrollable", ScalarType "bool"),-> ("creation_time", ScalarType "timestamptz")],-> CatCreateView "pg_group"-> [("groname", ScalarType "name"), ("grosysid", ScalarType "oid"),-> ("grolist", ArrayType (ScalarType "oid"))],-> CatCreateView "pg_indexes"-> [("schemaname", ScalarType "name"),-> ("tablename", ScalarType "name"), ("indexname", ScalarType "name"),-> ("tablespace", ScalarType "name"),-> ("indexdef", ScalarType "text")],-> CatCreateView "pg_locks"-> [("locktype", ScalarType "text"), ("database", ScalarType "oid"),-> ("relation", ScalarType "oid"), ("page", ScalarType "int4"),-> ("tuple", ScalarType "int2"), ("virtualxid", ScalarType "text"),-> ("transactionid", ScalarType "xid"), ("classid", ScalarType "oid"),-> ("objid", ScalarType "oid"), ("objsubid", ScalarType "int2"),-> ("virtualtransaction", ScalarType "text"),-> ("pid", ScalarType "int4"), ("mode", ScalarType "text"),-> ("granted", ScalarType "bool")],-> CatCreateView "pg_prepared_statements"-> [("name", ScalarType "text"), ("statement", ScalarType "text"),-> ("prepare_time", ScalarType "timestamptz"),-> ("parameter_types", ArrayType (ScalarType "regtype")),-> ("from_sql", ScalarType "bool")],-> CatCreateView "pg_prepared_xacts"-> [("transaction", ScalarType "xid"), ("gid", ScalarType "text"),-> ("prepared", ScalarType "timestamptz"),-> ("owner", ScalarType "name"), ("database", ScalarType "name")],-> CatCreateView "pg_roles"-> [("rolname", ScalarType "name"), ("rolsuper", ScalarType "bool"),-> ("rolinherit", ScalarType "bool"),-> ("rolcreaterole", ScalarType "bool"),-> ("rolcreatedb", ScalarType "bool"),-> ("rolcatupdate", ScalarType "bool"),-> ("rolcanlogin", ScalarType "bool"),-> ("rolconnlimit", ScalarType "int4"),-> ("rolpassword", ScalarType "text"),-> ("rolvaliduntil", ScalarType "timestamptz"),-> ("rolconfig", ArrayType (ScalarType "text")),-> ("oid", ScalarType "oid")],-> CatCreateView "pg_rules"-> [("schemaname", ScalarType "name"),-> ("tablename", ScalarType "name"), ("rulename", ScalarType "name"),-> ("definition", ScalarType "text")],-> CatCreateView "pg_settings"-> [("name", ScalarType "text"), ("setting", ScalarType "text"),-> ("unit", ScalarType "text"), ("category", ScalarType "text"),-> ("short_desc", ScalarType "text"),-> ("extra_desc", ScalarType "text"), ("context", ScalarType "text"),-> ("vartype", ScalarType "text"), ("source", ScalarType "text"),-> ("min_val", ScalarType "text"), ("max_val", ScalarType "text"),-> ("enumvals", ArrayType (ScalarType "text")),-> ("boot_val", ScalarType "text"), ("reset_val", ScalarType "text"),-> ("sourcefile", ScalarType "text"),-> ("sourceline", ScalarType "int4")],-> CatCreateView "pg_shadow"-> [("usename", ScalarType "name"), ("usesysid", ScalarType "oid"),-> ("usecreatedb", ScalarType "bool"),-> ("usesuper", ScalarType "bool"), ("usecatupd", ScalarType "bool"),-> ("passwd", ScalarType "text"), ("valuntil", ScalarType "abstime"),-> ("useconfig", ArrayType (ScalarType "text"))],-> CatCreateView "pg_stat_activity"-> [("datid", ScalarType "oid"), ("datname", ScalarType "name"),-> ("procpid", ScalarType "int4"), ("usesysid", ScalarType "oid"),-> ("usename", ScalarType "name"),-> ("current_query", ScalarType "text"),-> ("waiting", ScalarType "bool"),-> ("xact_start", ScalarType "timestamptz"),-> ("query_start", ScalarType "timestamptz"),-> ("backend_start", ScalarType "timestamptz"),-> ("client_addr", ScalarType "inet"),-> ("client_port", ScalarType "int4")],-> CatCreateView "pg_stat_all_indexes"-> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),-> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),-> ("indexrelname", ScalarType "name"),-> ("idx_scan", ScalarType "int8"),-> ("idx_tup_read", ScalarType "int8"),-> ("idx_tup_fetch", ScalarType "int8")],-> CatCreateView "pg_stat_all_tables"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"), ("seq_scan", ScalarType "int8"),-> ("seq_tup_read", ScalarType "int8"),-> ("idx_scan", ScalarType "int8"),-> ("idx_tup_fetch", ScalarType "int8"),-> ("n_tup_ins", ScalarType "int8"), ("n_tup_upd", ScalarType "int8"),-> ("n_tup_del", ScalarType "int8"),-> ("n_tup_hot_upd", ScalarType "int8"),-> ("n_live_tup", ScalarType "int8"),-> ("n_dead_tup", ScalarType "int8"),-> ("last_vacuum", ScalarType "timestamptz"),-> ("last_autovacuum", ScalarType "timestamptz"),-> ("last_analyze", ScalarType "timestamptz"),-> ("last_autoanalyze", ScalarType "timestamptz")],-> CatCreateView "pg_stat_bgwriter"-> [("checkpoints_timed", ScalarType "int8"),-> ("checkpoints_req", ScalarType "int8"),-> ("buffers_checkpoint", ScalarType "int8"),-> ("buffers_clean", ScalarType "int8"),-> ("maxwritten_clean", ScalarType "int8"),-> ("buffers_backend", ScalarType "int8"),-> ("buffers_alloc", ScalarType "int8")],-> CatCreateView "pg_stat_database"-> [("datid", ScalarType "oid"), ("datname", ScalarType "name"),-> ("numbackends", ScalarType "int4"),-> ("xact_commit", ScalarType "int8"),-> ("xact_rollback", ScalarType "int8"),-> ("blks_read", ScalarType "int8"), ("blks_hit", ScalarType "int8"),-> ("tup_returned", ScalarType "int8"),-> ("tup_fetched", ScalarType "int8"),-> ("tup_inserted", ScalarType "int8"),-> ("tup_updated", ScalarType "int8"),-> ("tup_deleted", ScalarType "int8")],-> CatCreateView "pg_stat_sys_indexes"-> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),-> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),-> ("indexrelname", ScalarType "name"),-> ("idx_scan", ScalarType "int8"),-> ("idx_tup_read", ScalarType "int8"),-> ("idx_tup_fetch", ScalarType "int8")],-> CatCreateView "pg_stat_sys_tables"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"), ("seq_scan", ScalarType "int8"),-> ("seq_tup_read", ScalarType "int8"),-> ("idx_scan", ScalarType "int8"),-> ("idx_tup_fetch", ScalarType "int8"),-> ("n_tup_ins", ScalarType "int8"), ("n_tup_upd", ScalarType "int8"),-> ("n_tup_del", ScalarType "int8"),-> ("n_tup_hot_upd", ScalarType "int8"),-> ("n_live_tup", ScalarType "int8"),-> ("n_dead_tup", ScalarType "int8"),-> ("last_vacuum", ScalarType "timestamptz"),-> ("last_autovacuum", ScalarType "timestamptz"),-> ("last_analyze", ScalarType "timestamptz"),-> ("last_autoanalyze", ScalarType "timestamptz")],-> CatCreateView "pg_stat_user_functions"-> [("funcid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("funcname", ScalarType "name"), ("calls", ScalarType "int8"),-> ("total_time", ScalarType "int8"),-> ("self_time", ScalarType "int8")],-> CatCreateView "pg_stat_user_indexes"-> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),-> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),-> ("indexrelname", ScalarType "name"),-> ("idx_scan", ScalarType "int8"),-> ("idx_tup_read", ScalarType "int8"),-> ("idx_tup_fetch", ScalarType "int8")],-> CatCreateView "pg_stat_user_tables"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"), ("seq_scan", ScalarType "int8"),-> ("seq_tup_read", ScalarType "int8"),-> ("idx_scan", ScalarType "int8"),-> ("idx_tup_fetch", ScalarType "int8"),-> ("n_tup_ins", ScalarType "int8"), ("n_tup_upd", ScalarType "int8"),-> ("n_tup_del", ScalarType "int8"),-> ("n_tup_hot_upd", ScalarType "int8"),-> ("n_live_tup", ScalarType "int8"),-> ("n_dead_tup", ScalarType "int8"),-> ("last_vacuum", ScalarType "timestamptz"),-> ("last_autovacuum", ScalarType "timestamptz"),-> ("last_analyze", ScalarType "timestamptz"),-> ("last_autoanalyze", ScalarType "timestamptz")],-> CatCreateView "pg_statio_all_indexes"-> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),-> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),-> ("indexrelname", ScalarType "name"),-> ("idx_blks_read", ScalarType "int8"),-> ("idx_blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_all_sequences"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"), ("blks_read", ScalarType "int8"),-> ("blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_all_tables"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"),-> ("heap_blks_read", ScalarType "int8"),-> ("heap_blks_hit", ScalarType "int8"),-> ("idx_blks_read", ScalarType "int8"),-> ("idx_blks_hit", ScalarType "int8"),-> ("toast_blks_read", ScalarType "int8"),-> ("toast_blks_hit", ScalarType "int8"),-> ("tidx_blks_read", ScalarType "int8"),-> ("tidx_blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_sys_indexes"-> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),-> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),-> ("indexrelname", ScalarType "name"),-> ("idx_blks_read", ScalarType "int8"),-> ("idx_blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_sys_sequences"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"), ("blks_read", ScalarType "int8"),-> ("blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_sys_tables"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"),-> ("heap_blks_read", ScalarType "int8"),-> ("heap_blks_hit", ScalarType "int8"),-> ("idx_blks_read", ScalarType "int8"),-> ("idx_blks_hit", ScalarType "int8"),-> ("toast_blks_read", ScalarType "int8"),-> ("toast_blks_hit", ScalarType "int8"),-> ("tidx_blks_read", ScalarType "int8"),-> ("tidx_blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_user_indexes"-> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),-> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),-> ("indexrelname", ScalarType "name"),-> ("idx_blks_read", ScalarType "int8"),-> ("idx_blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_user_sequences"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"), ("blks_read", ScalarType "int8"),-> ("blks_hit", ScalarType "int8")],-> CatCreateView "pg_statio_user_tables"-> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),-> ("relname", ScalarType "name"),-> ("heap_blks_read", ScalarType "int8"),-> ("heap_blks_hit", ScalarType "int8"),-> ("idx_blks_read", ScalarType "int8"),-> ("idx_blks_hit", ScalarType "int8"),-> ("toast_blks_read", ScalarType "int8"),-> ("toast_blks_hit", ScalarType "int8"),-> ("tidx_blks_read", ScalarType "int8"),-> ("tidx_blks_hit", ScalarType "int8")],-> CatCreateView "pg_stats"-> [("schemaname", ScalarType "name"),-> ("tablename", ScalarType "name"), ("attname", ScalarType "name"),-> ("null_frac", ScalarType "float4"),-> ("avg_width", ScalarType "int4"),-> ("n_distinct", ScalarType "float4"),-> ("most_common_vals", Pseudo AnyArray),-> ("most_common_freqs", ArrayType (ScalarType "float4")),-> ("histogram_bounds", Pseudo AnyArray),-> ("correlation", ScalarType "float4")],-> CatCreateView "pg_tables"-> [("schemaname", ScalarType "name"),-> ("tablename", ScalarType "name"),-> ("tableowner", ScalarType "name"),-> ("tablespace", ScalarType "name"),-> ("hasindexes", ScalarType "bool"), ("hasrules", ScalarType "bool"),-> ("hastriggers", ScalarType "bool")],-> CatCreateView "pg_timezone_abbrevs"-> [("abbrev", ScalarType "text"),-> ("utc_offset", ScalarType "interval"),-> ("is_dst", ScalarType "bool")],-> CatCreateView "pg_timezone_names"-> [("name", ScalarType "text"), ("abbrev", ScalarType "text"),-> ("utc_offset", ScalarType "interval"),-> ("is_dst", ScalarType "bool")],-> CatCreateView "pg_user"-> [("usename", ScalarType "name"), ("usesysid", ScalarType "oid"),-> ("usecreatedb", ScalarType "bool"),-> ("usesuper", ScalarType "bool"), ("usecatupd", ScalarType "bool"),-> ("passwd", ScalarType "text"), ("valuntil", ScalarType "abstime"),-> ("useconfig", ArrayType (ScalarType "text"))],-> CatCreateView "pg_user_mappings"-> [("umid", ScalarType "oid"), ("srvid", ScalarType "oid"),-> ("srvname", ScalarType "name"), ("umuser", ScalarType "oid"),-> ("usename", ScalarType "name"),-> ("umoptions", ArrayType (ScalarType "text"))],-> CatCreateView "pg_views"-> [("schemaname", ScalarType "name"),-> ("viewname", ScalarType "name"), ("viewowner", ScalarType "name"),-> ("definition", ScalarType "text")],-> CatCreateView "information_schema.referential_constraints"-> [("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("unique_constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("unique_constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("unique_constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("match_option", DomainType "information_schema.character_data"),-> ("update_rule", DomainType "information_schema.character_data"),-> ("delete_rule", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.role_column_grants"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.role_routine_grants"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("specific_name", DomainType "information_schema.sql_identifier"),-> ("routine_catalog",-> DomainType "information_schema.sql_identifier"),-> ("routine_schema", DomainType "information_schema.sql_identifier"),-> ("routine_name", DomainType "information_schema.sql_identifier"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.role_table_grants"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data"),-> ("with_hierarchy",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema.role_usage_grants"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("object_catalog", DomainType "information_schema.sql_identifier"),-> ("object_schema", DomainType "information_schema.sql_identifier"),-> ("object_name", DomainType "information_schema.sql_identifier"),-> ("object_type", DomainType "information_schema.character_data"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.routine_privileges"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("specific_name", DomainType "information_schema.sql_identifier"),-> ("routine_catalog",-> DomainType "information_schema.sql_identifier"),-> ("routine_schema", DomainType "information_schema.sql_identifier"),-> ("routine_name", DomainType "information_schema.sql_identifier"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.routines"-> [("specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("specific_name", DomainType "information_schema.sql_identifier"),-> ("routine_catalog",-> DomainType "information_schema.sql_identifier"),-> ("routine_schema", DomainType "information_schema.sql_identifier"),-> ("routine_name", DomainType "information_schema.sql_identifier"),-> ("routine_type", DomainType "information_schema.character_data"),-> ("module_catalog", DomainType "information_schema.sql_identifier"),-> ("module_schema", DomainType "information_schema.sql_identifier"),-> ("module_name", DomainType "information_schema.sql_identifier"),-> ("udt_catalog", DomainType "information_schema.sql_identifier"),-> ("udt_schema", DomainType "information_schema.sql_identifier"),-> ("udt_name", DomainType "information_schema.sql_identifier"),-> ("data_type", DomainType "information_schema.character_data"),-> ("character_maximum_length",-> DomainType "information_schema.cardinal_number"),-> ("character_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("collation_name", DomainType "information_schema.sql_identifier"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("interval_type", DomainType "information_schema.character_data"),-> ("interval_precision",-> DomainType "information_schema.character_data"),-> ("type_udt_catalog",-> DomainType "information_schema.sql_identifier"),-> ("type_udt_schema",-> DomainType "information_schema.sql_identifier"),-> ("type_udt_name", DomainType "information_schema.sql_identifier"),-> ("scope_catalog", DomainType "information_schema.sql_identifier"),-> ("scope_schema", DomainType "information_schema.sql_identifier"),-> ("scope_name", DomainType "information_schema.sql_identifier"),-> ("maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("dtd_identifier", DomainType "information_schema.sql_identifier"),-> ("routine_body", DomainType "information_schema.character_data"),-> ("routine_definition",-> DomainType "information_schema.character_data"),-> ("external_name", DomainType "information_schema.character_data"),-> ("external_language",-> DomainType "information_schema.character_data"),-> ("parameter_style",-> DomainType "information_schema.character_data"),-> ("is_deterministic",-> DomainType "information_schema.character_data"),-> ("sql_data_access",-> DomainType "information_schema.character_data"),-> ("is_null_call", DomainType "information_schema.character_data"),-> ("sql_path", DomainType "information_schema.character_data"),-> ("schema_level_routine",-> DomainType "information_schema.character_data"),-> ("max_dynamic_result_sets",-> DomainType "information_schema.cardinal_number"),-> ("is_user_defined_cast",-> DomainType "information_schema.character_data"),-> ("is_implicitly_invocable",-> DomainType "information_schema.character_data"),-> ("security_type", DomainType "information_schema.character_data"),-> ("to_sql_specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("to_sql_specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("to_sql_specific_name",-> DomainType "information_schema.sql_identifier"),-> ("as_locator", DomainType "information_schema.character_data"),-> ("created", DomainType "information_schema.time_stamp"),-> ("last_altered", DomainType "information_schema.time_stamp"),-> ("new_savepoint_level",-> DomainType "information_schema.character_data"),-> ("is_udt_dependent",-> DomainType "information_schema.character_data"),-> ("result_cast_from_data_type",-> DomainType "information_schema.character_data"),-> ("result_cast_as_locator",-> DomainType "information_schema.character_data"),-> ("result_cast_char_max_length",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_char_octet_length",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_char_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_char_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_collation_catalog",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_collation_schema",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_collation_name",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_numeric_scale",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_datetime_precision",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_interval_type",-> DomainType "information_schema.character_data"),-> ("result_cast_interval_precision",-> DomainType "information_schema.character_data"),-> ("result_cast_type_udt_catalog",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_type_udt_schema",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_type_udt_name",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_scope_catalog",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_scope_schema",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_scope_name",-> DomainType "information_schema.sql_identifier"),-> ("result_cast_maximum_cardinality",-> DomainType "information_schema.cardinal_number"),-> ("result_cast_dtd_identifier",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.schemata"-> [("catalog_name", DomainType "information_schema.sql_identifier"),-> ("schema_name", DomainType "information_schema.sql_identifier"),-> ("schema_owner", DomainType "information_schema.sql_identifier"),-> ("default_character_set_catalog",-> DomainType "information_schema.sql_identifier"),-> ("default_character_set_schema",-> DomainType "information_schema.sql_identifier"),-> ("default_character_set_name",-> DomainType "information_schema.sql_identifier"),-> ("sql_path", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.sequences"-> [("sequence_catalog",-> DomainType "information_schema.sql_identifier"),-> ("sequence_schema",-> DomainType "information_schema.sql_identifier"),-> ("sequence_name", DomainType "information_schema.sql_identifier"),-> ("data_type", DomainType "information_schema.character_data"),-> ("numeric_precision",-> DomainType "information_schema.cardinal_number"),-> ("numeric_precision_radix",-> DomainType "information_schema.cardinal_number"),-> ("numeric_scale", DomainType "information_schema.cardinal_number"),-> ("maximum_value", DomainType "information_schema.cardinal_number"),-> ("minimum_value", DomainType "information_schema.cardinal_number"),-> ("increment", DomainType "information_schema.cardinal_number"),-> ("cycle_option", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.table_constraints"-> [("constraint_catalog",-> DomainType "information_schema.sql_identifier"),-> ("constraint_schema",-> DomainType "information_schema.sql_identifier"),-> ("constraint_name",-> DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("constraint_type",-> DomainType "information_schema.character_data"),-> ("is_deferrable", DomainType "information_schema.character_data"),-> ("initially_deferred",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema.table_privileges"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data"),-> ("with_hierarchy",-> DomainType "information_schema.character_data")],-> CatCreateView "information_schema.tables"-> [("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("table_type", DomainType "information_schema.character_data"),-> ("self_referencing_column_name",-> DomainType "information_schema.sql_identifier"),-> ("reference_generation",-> DomainType "information_schema.character_data"),-> ("user_defined_type_catalog",-> DomainType "information_schema.sql_identifier"),-> ("user_defined_type_schema",-> DomainType "information_schema.sql_identifier"),-> ("user_defined_type_name",-> DomainType "information_schema.sql_identifier"),-> ("is_insertable_into",-> DomainType "information_schema.character_data"),-> ("is_typed", DomainType "information_schema.character_data"),-> ("commit_action", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.triggered_update_columns"-> [("trigger_catalog",-> DomainType "information_schema.sql_identifier"),-> ("trigger_schema", DomainType "information_schema.sql_identifier"),-> ("trigger_name", DomainType "information_schema.sql_identifier"),-> ("event_object_catalog",-> DomainType "information_schema.sql_identifier"),-> ("event_object_schema",-> DomainType "information_schema.sql_identifier"),-> ("event_object_table",-> DomainType "information_schema.sql_identifier"),-> ("event_object_column",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.triggers"-> [("trigger_catalog",-> DomainType "information_schema.sql_identifier"),-> ("trigger_schema", DomainType "information_schema.sql_identifier"),-> ("trigger_name", DomainType "information_schema.sql_identifier"),-> ("event_manipulation",-> DomainType "information_schema.character_data"),-> ("event_object_catalog",-> DomainType "information_schema.sql_identifier"),-> ("event_object_schema",-> DomainType "information_schema.sql_identifier"),-> ("event_object_table",-> DomainType "information_schema.sql_identifier"),-> ("action_order", DomainType "information_schema.cardinal_number"),-> ("action_condition",-> DomainType "information_schema.character_data"),-> ("action_statement",-> DomainType "information_schema.character_data"),-> ("action_orientation",-> DomainType "information_schema.character_data"),-> ("condition_timing",-> DomainType "information_schema.character_data"),-> ("condition_reference_old_table",-> DomainType "information_schema.sql_identifier"),-> ("condition_reference_new_table",-> DomainType "information_schema.sql_identifier"),-> ("condition_reference_old_row",-> DomainType "information_schema.sql_identifier"),-> ("condition_reference_new_row",-> DomainType "information_schema.sql_identifier"),-> ("created", DomainType "information_schema.time_stamp")],-> CatCreateView "information_schema.usage_privileges"-> [("grantor", DomainType "information_schema.sql_identifier"),-> ("grantee", DomainType "information_schema.sql_identifier"),-> ("object_catalog", DomainType "information_schema.sql_identifier"),-> ("object_schema", DomainType "information_schema.sql_identifier"),-> ("object_name", DomainType "information_schema.sql_identifier"),-> ("object_type", DomainType "information_schema.character_data"),-> ("privilege_type", DomainType "information_schema.character_data"),-> ("is_grantable", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.user_mapping_options"-> [("authorization_identifier",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_name",-> DomainType "information_schema.sql_identifier"),-> ("option_name", DomainType "information_schema.sql_identifier"),-> ("option_value", DomainType "information_schema.character_data")],-> CatCreateView "information_schema.user_mappings"-> [("authorization_identifier",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_catalog",-> DomainType "information_schema.sql_identifier"),-> ("foreign_server_name",-> DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.view_column_usage"-> [("view_catalog", DomainType "information_schema.sql_identifier"),-> ("view_schema", DomainType "information_schema.sql_identifier"),-> ("view_name", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("column_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.view_routine_usage"-> [("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("specific_catalog",-> DomainType "information_schema.sql_identifier"),-> ("specific_schema",-> DomainType "information_schema.sql_identifier"),-> ("specific_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.view_table_usage"-> [("view_catalog", DomainType "information_schema.sql_identifier"),-> ("view_schema", DomainType "information_schema.sql_identifier"),-> ("view_name", DomainType "information_schema.sql_identifier"),-> ("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier")],-> CatCreateView "information_schema.views"-> [("table_catalog", DomainType "information_schema.sql_identifier"),-> ("table_schema", DomainType "information_schema.sql_identifier"),-> ("table_name", DomainType "information_schema.sql_identifier"),-> ("view_definition",-> DomainType "information_schema.character_data"),-> ("check_option", DomainType "information_schema.character_data"),-> ("is_updatable", DomainType "information_schema.character_data"),-> ("is_insertable_into",-> DomainType "information_schema.character_data")]]-
− src/Database/HsSqlPpp/AstInternals/TypeChecking/ErrorUtils.lhs
@@ -1,30 +0,0 @@--This file contains a bunch of small low level utilities to help with-type checking.--> module Database.HsSqlPpp.AstInternals.TypeChecking.ErrorUtils-> where->-> import Database.HsSqlPpp.AstInternals.TypeType-> import Debug.Trace--> type E a = Either [TypeError] a-> type Et = E Type->-> lmt :: Maybe a -> E a-> lmt = maybe (Left []) Right->-> tes :: E a -> [TypeError]-> tes = either id (const [])->-> etmt :: E a -> Maybe a-> etmt = either (const Nothing) Just->--> liftList :: [(a,Maybe b)] -> Maybe [(a,b)]-> liftList is = sequence $ flip map is $ \(a,b) -> case b of-> Just b' -> Just (a,b')-> Nothing -> Nothing--> showIt :: Show a => String -> a -> a-> showIt m a = trace (m ++ " " ++ show a) a
− src/Database/HsSqlPpp/AstInternals/TypeChecking/LocalBindings.lhs
@@ -1,20 +0,0 @@--Forwarder for the interface to LocalBindingsInternal used by the rest-of the system.--> module Database.HsSqlPpp.AstInternals.TypeChecking.LocalBindings-> (-> LocalBindingsUpdate(..)-> ,LocalBindings-> ,emptyBindings-> ,lbUpdate-> ,lbLookupID-> ,lbLookupIDInType-> ,ppLocalBindings-> ,createLocalBindings-> ,getUnqualifiedBindings-> ,joinBindings-> ,lookupLocalBinding-> ) where->-> import Database.HsSqlPpp.AstInternals.TypeChecking.LocalBindingsInternal
− src/Database/HsSqlPpp/AstInternals/TypeChecking/LocalBindingsInternal.lhs
@@ -1,740 +0,0 @@--This module contains the code to manage local identifier bindings-during the type checking process. This is used for e.g. looking up the-types of parameter and variable references in plpgsql functions, and-for looking up the types of identifiers in select expressions.--This module exposes the internals of the localbindings datatype for-testing.--The lookups to support are a single identifier, or to give a star-expansion.---Some notes on lookups-all lookups are case insensitive-start by searching the head of the lookup update list and working down-the code here handles resolving the types of join columns when they-are not the same, and the update routine returns error if the join columns are not compatible-the code here handles expanding record types so that the components can be looked up--The local bindings is arranged as a stack. To append to this stack,-you use the LocalBindingsUpdate type. This is designed to be as easy as-possible for clients to use, so as much logic as possible is pushed-into the innards of this module, in particular most of the logic for-working with joins is in here.--The basic idea of the stack is at each level, there is a list of-qualified and unqualified names and types, to look up individual-ids. Some of the lookups map to ambiguous identifier errors. Also at-each level is a list of star expansions, one for each correlation name-in scope, and one for an unqualified star.--> {-# LANGUAGE ScopedTypeVariables,TupleSections #-}->-> module Database.HsSqlPpp.AstInternals.TypeChecking.LocalBindingsInternal-> (-> LocalBindingsUpdate(..)-> ,LocalBindings(..)-> ,Source-> ,FullId-> ,SimpleId-> ,IDLookup-> -- ,StarExpand-> ,LocalBindingsLookup(..)-> ,emptyBindings-> ,lbUpdate-> -- ,lbExpandStar-> ,lbLookupID-> ,lbLookupIDInType-> --,lbUpdateDot-> ,ppLocalBindings-> ,ppLbls-> ,createLocalBindings-> ,getUnqualifiedBindings-> ,joinBindings-> ,lookupLocalBinding-> ) where->-> --import Control.Monad as M-> --import Control.Applicative-> --import Debug.Trace-> import Data.List-> --import Data.Maybe-> import Data.Char-> --import Data.Either-> --import qualified Data.Map as M->-> import Database.HsSqlPpp.AstInternals.TypeType-> --import Database.HsSqlPpp.Utils.Utils-> import Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-> --import Database.HsSqlPpp.AstInternals.TypeChecking.TypeConversion-> import Database.HsSqlPpp.AstInternals.TypeChecking.ErrorUtils->----> data LocalBindings = LocalBindingsError-> | LocalBindings [((String,String),Maybe Type)]--> createLocalBindings :: Maybe [(String,[(String,Maybe Type)])] -> LocalBindings-> createLocalBindings i =-> maybe LocalBindingsError mb i-> where-> mb b = LocalBindings-> $ flip concatMap b $ \(qn,cs) -> flip map cs $ \(c,t) -> ((qn,c), t)--> getUnqualifiedBindings :: LocalBindings -> [(String,Maybe Type)]-> getUnqualifiedBindings (LocalBindings ls) =-> map unwrap ls-> where-> unwrap ((_,n),t) = (n,t)-> getUnqualifiedBindings LocalBindingsError = []--> joinBindings :: LocalBindings -> LocalBindings -> LocalBindings-> joinBindings (LocalBindings a) (LocalBindings b) = LocalBindings $ a ++ b-> joinBindings LocalBindingsError _ = LocalBindingsError-> joinBindings _ LocalBindingsError = LocalBindingsError--> lookupLocalBinding :: LocalBindings -> String -> String -> E (Maybe Type)-> lookupLocalBinding LocalBindingsError _ _ = Right Nothing-> lookupLocalBinding (LocalBindings lb) q i =-> case lookup (q,i) lb of-> Just t -> Right t-> Nothing -> if (q == "") || any (==q) (map (fst . fst) lb)-> then Left [UnrecognisedIdentifier i]-> else Left [UnrecognisedCorrelationName q]----------------------------------------------------------------------The data type to represent a set of local bindings in scope. The list-of updates used to create the local bindings is saved for debugging/-information.--> {-data LocalBindings = LocalBindings [LocalBindingsUpdate]-> [LocalBindingsLookup]-> deriving Show-}--Each layer of the local bindings stack is-a map from (correlation name, id name) to source,correlation name, id-name, type tuple, or a type error, used e.g. to represent ambigious-ids, etc.;-and a map from correlation name to a list of these tuples to handle-star expansions.--Missing correlation names are represented by an empty string for the-correlation name.--> type Source = String->-> type FullId = (Source,[String],Type) -- source,fully qualified name components,type-> type SimpleId = (String,Type)-> type IDLookup = ([String], E FullId)-> --type StarExpand = E [FullId] --the order of the [FullId] part is important->-> data LocalBindingsLookup = LocalBindingsLookup [IDLookup]-> deriving (Eq,Show)--This is the local bindings update that users of this module use.--> data LocalBindingsUpdate = LBIds {source :: Source-> ,correlationName :: Maybe String-> ,lbids :: [SimpleId]}-> | LBTref {source :: Source-> ,talias :: String-> ,lbids :: [SimpleId]-> ,lbsysids :: [SimpleId]}-> | LBJoinTref {source :: Source-> ,jtref1 :: LocalBindingsUpdate-> ,jtref2 :: LocalBindingsUpdate-> ,joinIds :: Either () [String] -- left () represents natural join-> -- right [] represents no join ids-> ,jalias :: Maybe String}-> deriving Show->-> emptyBindings :: LocalBindings-> emptyBindings = LocalBindings [] -- undefined --LocalBindings [] []--================================================================================--> ppLocalBindings :: LocalBindings -> String-> ppLocalBindings = error "ppLocalBindings" -- (LocalBindings lbus lbls) =-> -- "LocalBindings\n" ++ doList show lbus ++ doList ppLbls lbls-}->-> ppLbls :: LocalBindingsLookup -> String-> ppLbls = error "ppLbls" {- (LocalBindingsLookup is) =-> "LocalBindingsLookup\n" ++ doList show is -}->-> --doList :: (a -> String) -> [a] -> String-> --doList m l = "[\n" ++ intercalate "\n," (map m l) ++ "\n]\n"--================================================================================--> lbUpdate :: Catalog -> LocalBindingsUpdate -> LocalBindings -> E LocalBindings-> lbUpdate _ _ lb = return lb {- cat u1 (LocalBindings us s) = do-> ids <- updateStuff cat u1-> return $ LocalBindings (u1 : us) (LocalBindingsLookup ids : s)-}----> --updateStuff :: Catalog -> LocalBindingsUpdate -> E [IDLookup]--> --updateStuff _ _ = error "updateStuff"--LBIds doesn't support any star expansion, and doesn't support-accessing the whole set of ids as a composite via cn--> {-updateStuff _ (LBIds src cn ids) =-> return (unQuals ++ quals)-> where-> unQuals = map (\(n,t) -> ([n], Right (src,maybe [n] (: [n]) cn, t))) ids-> quals = maybe [] (\cn' -> map (\(n,t) -> ([cn',n], Right (src,[cn',n], t))) ids) cn--tref - used for a non join table reference, supports accessing public-fields under the alias name as a composite, and also supports system-id lookups. The star expansions are all the non system ids qualified and unqualified--> updateStuff _ (LBTref src al ids sids) =-> -- comp has to come after unquals because an unqualified reference which could refer-> -- to a column or the composite resolves as the column-> return (unQuals ++ quals ++ [comp])-> -- ,[("",Right pids),(al,Right pids)])-> where-> allIds = ids ++ sids-> unQuals = map (\(n,t) -> ([n], Right (src,[al,n], t))) allIds-> quals = map (\(n,t) -> ([al,n], Right (src,[al,n], t))) allIds-> comp = ([al], Right (src, [al], CompositeType ids))-> pids = map (\(n,t) -> (src,[al,n],t)) ids---LBJoinTref {source :: Source- ,jtref1 :: LocalBindingsUpdate- ,jtref2 :: LocalBindingsUpdate- ,joinIds :: Either () [String] -- left () represents natural join- -- right [] represents no join ids- ,jalias :: Maybe String}--> {-updateStuff cat (LBJoinTref _src u1 u2 jnames' _al) = do--How to get the lbs for a join:--First get the info for the two sub trefs:--> ids1 <- updateStuff cat u1-> ids2 <- updateStuff cat u2--split these apart so we have the unqualified lookups and star expands-separately--> let (uids1,qids1) = splitLkps ids1-> (uids2,qids2) = splitLkps ids2--We need some information: the names and types of the join ids, and the-names of any remaining ambiguous identifiers:--> let jnames :: [String]-> jnames = case jnames' of-> Right ns -> ns-> Left () -> intersect (map fst uids1)-> (map fst uids2)-> --todo: resolve these properly-> let jids = flip map jnames $ \i -> (i,fromJust $ lookup [i] ids1)---First: get the names of the join ids: this is the explicit list in the-case of a using join, or the commonly named fields in a natural-join. We get the commonly named fields from the unqualified star-expansions so we don't include system attributes in a natural join.--Then check: make sure explicit join id list is in both trefs, and-resolve the types of the join ids.--If there is no alias:--work out the lookups: the qualified lookups stay the same (doesn't-properly deal with the same correlation names coming from 2 trefs at-the moment).--get the list of duplicate ids: uses the same code as getting the-natural join id list, - there will be none if this is a natural-join. Otherwise, get the list of common ids and remove any using ids-from this list. TODO?: system attributes can't be referenced through a-join unqualified?--The unqualified lookups: start with the join ids and types, then add-all the ids from each subtref except the ones which match the-duplicate ids. Add these dups which now lookup to left ambiguous-reference.--work out the star expansion: the qualified star expansions stay the-same--for the unqualified star expansion: similar to lookups. Start with the-join ids, but then add all the non join ids from each table - so we-might have more than one column with the same name.--If there is an alias:--do the same as above for the unqualified ids/starexpand, add these-again under the given alias, and don't pass through qualified lookups-or star expands.---> {-let plainIds1 = pl ids1-> plainIds2 = pl ids2-> let jnames :: [String]-> jnames = case jids of-> Right ns -> ns-> Left () -> intersect (map fst plainIds1) (map fst plainIds2)-> -- make the lookups-> isJ :: IDLookup -> Bool-> isJ (ii,_) = case ii of-> [i] | i `elem` jnames -> True-> _ -> False-> nj :: [IDLookup] -> [IDLookup]-> nj = filter (not . isJ)-> joinLkps = filter isJ ids1-> nonJoinLkps1 = nj ids1-> nonJoinLkps2 = nj ids2-}-> {-let jids1 :: [(String,E FullId)]-> jids1 = flip map jnames $ \i -> (i,fromJust $ lookup i ids1)-> rj :: [(String,E FullId)] -> [(String,E FullId)]-> rj = filter $ \e -> fst e `notElem` jnames-> ids :: [(String,E FullId)]-> ids = jids1 ++ rj ids1 ++ rj ids2-}-> --make the star expansion-> --se1' <- se1-> --se2' <- se2-> {-let (us1',qs1) = splitSe se1'-> (us2',qs2) = splitSe se2'-> us1 <- us1'-> us2 <- us2'-}-> {- rj1 :: [FullId] -> [FullId]-> rj1 = filter $ \(_,n,_t) -> last n `notElem` jnames-> se = map snd jids1 ++ map return (rj1 se1) ++ map return (rj1 se2)-> return (ids, sequence se)-}-> --let x = joinLkps ++ nonJoinLkps1 ++ nonJoinLkps2-> --trace ("join stuff: " ++ doList show x) $ return ()-> return (ids1 ++ ids1, se1 ++ se2) --(joinLkps ++ nonJoinLkps1 ++ nonJoinLkps2, ("", Right (us1 ++ us2)) : qs1 ++ qs2)-> where-> {-splitSe :: [(String,StarExpand)] -> (StarExpand,[(String,StarExpand)])-> splitSe se = (uq, nuq)-> where-> uq = maybe [] snd $ find isUq se-> nuq = filter (not . isUq) se-> isUq (Right (a,_)) = a == ""-}-> splitLkps :: [([String], E FullId)]-> -> ([(String, E FullId)],[([String], E FullId)])-> splitLkps = partitionEithers . (map $ \x -> case x of-> ([n],t) -> Left (n,t)-> z -> Right z)-} -}--================================================================================--> {-lbExpandStar :: LocalBindings -> String -> E [FullId]-> lbExpandStar (LocalBindings _ (LocalBindingsLookup _ x : _)) c =-> maybe (case c of-> "" -> Left [BadStarExpand]-> y -> Left [UnrecognisedCorrelationName y])-> id $ lookup c x-> lbExpandStar _ _ = Left [BadStarExpand]-}--================================================================================--> lbLookupID :: LocalBindings -> [String] -> E FullId-> lbLookupID = error "lbLookupID" {-(LocalBindings _ lbl) i =-> let ls :: [[([String],E FullId)]]-> ls = map getLbIdl lbl-> in lkp1 ls $ map mtl i-> where-> lkp1 :: [[IDLookup]] -> [String] -> E FullId-> lkp1 (l:ls) i1 = fromMaybe (lkp1 ls i1) (lookup i1 l)-> lkp1 [] _ = if corMatch-> then Left [UnrecognisedIdentifier (intercalate "." i)]-> else Left [UnrecognisedCorrelationName (head i)]-> getLbIdl (LocalBindingsLookup x ) = x-> corMatch = case i of-> [q,_] -> q `elem` cors-> _ -> True-> cors :: [String]-> cors = let ls = map getLbIdl lbl-> in catMaybes $ concatMap (map getQ) ls-> getQ :: ([String], E FullId) -> Maybe String-> getQ ([q,_], _) = Just q-> getQ _ = Nothing -}---> lbLookupIDInType :: Catalog -> LocalBindings -> Type -> String -> E FullId-> lbLookupIDInType = error "lbLookupIDInType" {-cat _ ty i = do-> t <- lmt $ getNamedCompositeTypes ty-> maybe (Left [UnrecognisedIdentifier i]) (fmap Right ("",[i],)) $ lookup i t-> where-> getNamedCompositeTypes :: Type -> Maybe [(String,Type)]-> getNamedCompositeTypes (NamedCompositeType n) =-> Just $ either (const []) id $ catCompositePublicAttrs cat [] n-> getNamedCompositeTypes (CompositeType t) = Just t-> getNamedCompositeTypes (PgRecord (Just t)) = getNamedCompositeTypes t-> getNamedCompositeTypes _ = Nothing -}--================================================================================-- > lbUpdateDot :: Catalog -> String -> LocalBindings -> E LocalBindings- > lbUpdateDot cat i lb = do- > (_,_,c) <- lbLookupID lb i- > f <- lmt $ expandComposite cat True c- > lbUpdate cat (LBIds "dot qual" Nothing f) emptyBindings--> {-f <- lmt $ expandComposite cat True c-> let u1 = (LBIds "dot qual" Nothing f)-> (ids,_) <- updateStuff cat u1-> pf <- lmt $ expandComposite cat False c-> let se = Right $ map (\(n,t) -> ("dot qual", [i,n], t)) pf-> return $ LocalBindings [u1] [LocalBindingsLookup ids se]-}--(Source, [String], Type)'- against inferred type `(String, Type)'-- > expandComposite :: Catalog -> Bool -> Type -> Maybe [(String,Type)]- > expandComposite cat b (SetOfType t) = expandComposite cat b t- > expandComposite cat b (PgRecord (Just t)) = expandComposite cat b t- > expandComposite _ _ (CompositeType fs) = Just fs- > expandComposite cat b (NamedCompositeType n) = etmt $ (if b- > then catCompositeAttrs- > else catCompositePublicAttrs) cat [] n- > expandComposite _ _ _ = Nothing---================================================================================--> --mtl :: String -> String-> --mtl = map toLower----------------------------------------------------------------------------------------------------wrapper for the proper lookupid function, this is for backwards-compatibility with the old lookup code--> {-lbLookupID :: LocalBindings-> -> String -- identifier name-> -> E Type-> lbLookupID lb ci = let (cor,i) = splitIdentifier ci-> in fmap extractType $ lbLookupID1 lb cor i-> where-> extractType (_,_,_,t) = t-> splitIdentifier s = let (a,b) = span (/= '.') s-> in if b == ""-> then ("", a)-> else (a,tail b)->-> lbLookupID1 :: LocalBindings-> -> String -- correlation name-> -> String -- identifier name-> -> E FullId -- type error or source, corr, type-> lbLookupID1 (LocalBindings _ lkps) cor' i' =-> --trace ("lookup: " ++ showID cor' i'-> -- ++ "in " ++ concatMap ppLbls lkps) $-> -- hack for triggers-> case cor of-> "new" | isTrigRec -> Right ("", "new", i, UnknownType)-> "old" | isTrigRec -> Right ("", "old", i, UnknownType)-> _ -> lkId lkps-> where-> isTrigRec = case lbLookupID1 (LocalBindings undefined lkps) "" cor of-> Right (_,_,_,Pseudo TriggerRecord) -> True-> _ -> False-> cor = mtl cor'-> i = mtl i'-> lkId ((LocalBindingsLookup idmap _):ls) =-> case lookup (cor,i) idmap of-> Just s -> s-> Nothing -> if cor /= "" && any ((==cor) . fst . fst) idmap-> then Left [UnrecognisedIdentifier $ showID cor i']-> else lkId ls-> lkId [] = if cor' == "" --todo: need to throw unrecognised identifier, if the correlation name isn't "", a id isn't found, and there are other ids with that correlation name-> then Left [UnrecognisedIdentifier $ showID cor i']-> else Left [UnrecognisedCorrelationName cor']--================================================================================--wrapped for the proper expand star routine, for compatibility with the-old implementation of local bindings--> lbExpandStar :: LocalBindings -> String -> E [SimpleId]-> lbExpandStar lb cor =-> fmap stripAll $ lbExpandStar1 lb cor-> where-> strip (_,_,n,t) = (n,t)-> stripAll = map strip->-> lbExpandStar1 :: LocalBindings -> String -> E [FullId]-> lbExpandStar1 (LocalBindings _ lkps) cor' =-> exSt lkps-> where-> cor = mtl cor'-> exSt ((LocalBindingsLookup _ lst):ls) =-> case lookup cor lst of-> Just s -> s-> Nothing -> exSt ls-> exSt [] = Left [UnrecognisedCorrelationName cor]--================================================================================--This is where constructing the local bindings lookup stacks is done--> lbUpdate :: Catalog -> LocalBindingsUpdate -> LocalBindings -> E LocalBindings-> lbUpdate cat lbu' (LocalBindings lbus lkps) = do-> lbl <- makeStack cat lbu-> lbl1 <- expandComposites cat lbl-> --trace ("update: " ++ ppLbls lbl1) $ return ()-> return $ LocalBindings (lbu':lbus) (lbl1:lkps)-> where-> lbu = lowerise lbu'-> -- make correlation names and id names case insensitive-> -- by making them all lowercase-> lowerise (LBIds src ids) =-> LBIds src (mtll ids)-> lowerise (LBJoinIds t1 t2 ji a) =-> LBJoinIds (lowerise t1) (lowerise t2) (fmap mtll1 ji) (mtl a)-> lowerise (LBParallel lbu1 lbu2) =-> LBParallel (lowerise lbu1) (lowerise lbu2)-> mtll = map (\(n,t) -> (mtl n, t))-> mtll1 = map (\l -> mtl l)->-> makeStack :: Catalog -> LocalBindingsUpdate -> E LocalBindingsLookup-> makeStack _ (LBIds src ids) =-> Right $ LocalBindingsLookup doIds doStar-> where-> doIds :: [((String,String)-> ,E FullId)]-> doIds = -- add unqualified if cor isn't empty string-> map (makeLookup "")-> (case cor of-> "" -> []-> _ -> map addDetails ids ++ map addDetails iids)-> ++ map (makeLookup cor) (map addDetails ids ++ map addDetails iids)-> where-> makeLookup c1 (s,_,n,t)= ((c1,n), Right (s,cor,n,t))-> doStar :: [(String, E [FullId])]-> doStar = case cor of-> "" -> []-> _ -> [("",Right $ map addDetails ids)]-> ++ [(cor,Right $ map addDetails ids)]-> addDetails (n,t) = (src,cor,n,t)->-> makeStack cat (LBJoinIds t1 t2 jns a) = do-> --first get the stacks from t1 and t2-> --combine the elements of these filtering out the join ids-> ---> (LocalBindingsLookup i1 s1) <- makeStack cat t1-> (LocalBindingsLookup i2 s2) <- makeStack cat t2-> -- get the names and types of the join columns-> let jns' = case jns of-> Left () -> -- natural join, so we have to work out the names-> -- by looking at the common attributes-> -- we do this by getting the star expansion-> -- with no correlation name, and then finding-> -- the ids which appear in both lists-> -- (so this ignores internal ids)-> let ic1 :: [FullId]-> ic1 = fromRight [] $ maybe (Right []) id $ lookup "" s1-> ic2 = fromRight [] $ maybe (Right []) id $ lookup "" s2-> third (_,_,n,_) = n-> ii1 :: [String]-> ii1 = map third ic1-> ii2 = map third ic2-> in intersect ii1 ii2-> Right x -> x-> -- first prepare for the id lookups-> -- remove the join ids from the id lookups-> isJid ((_,n),_) = (n `elem` jns')-> removeJids = filter (not . isJid)-> i1' = removeJids i1-> i2' = removeJids i2-> jids <- M.sequence $ joinIDTypes i1 i2 jns'-> {-trace ("joinids: " ++ show jids-> ++ "\ni1 " ++ show i1-> ++ "\ni2 " ++ show i2-> ++ "\ni1' " ++ show i1'-> ++ "\ni2' " ++ show i2'-> ) $ return ()-}-> let jidsLk :: [IDLookup]-> jidsLk = if null i1 || null i2-> then [] --error?-> else let (_,Right (sc1,c1,_,_)) = head i1-> (_,Right (sc2,c2,_,_)) = head i2-> in flip concatMap jids $ \(n,t) -> [(("",n), Right (sc1,c1,n,t))-> ,((c1,n), Right (sc1,c1,n,t))-> ,((c2,n), Right (sc2,c2,n,t))-> ]-> --jidsF :: [FullId]-> --jidsF = rights $ map snd jidsLk-> newIdLookups = (jidsLk ++ (combineAddAmbiguousErrors i1' i2'))-> -- now do the star expansions-> -- for each correlation name, remove any ids which match a join id-> -- then prepend the join ids to that list-> se = combineStarExpansions s1 s2 -- don't know if this is quite right-> removeJids1 :: StarLookup -> StarLookup-> removeJids1 (k,ids) = (k, fmap (filter (\(_,_,n,_) -> n `notElem` jns')) ids)-> prependJids :: StarLookup -> StarLookup-> prependJids (c, lkps) = case lkps of-> Left _ -> (c,lkps)-> Right r | null r -> (c,lkps)-> Right r -> let (s,c1,_,_) = head r-> ids = map (\(n,t) -> (s,c1,n,t)) jids-> in (c, fmap (ids++) lkps)-> newStarExpansion = map (prependJids . removeJids1) se-> -- if we have an alias then we just want unqualified ids, then-> -- the same ids with a t3 alias for both ids and star expansion-> -- with all the correlation names replaced with the alias-> if a == ""-> then return $ LocalBindingsLookup newIdLookups newStarExpansion-> else return $ LocalBindingsLookup (aliasIds newIdLookups) (aliasExps newStarExpansion)-> where-> aliasIds :: [IDLookup] -> [IDLookup]-> aliasIds lkps = let trimmed = filter (\((c,_),_) -> c == "") lkps-> aliased = map (\(c,i) -> (c, fmap replaceCName i)) trimmed-> in aliased ++ map (\((_,n),i) -> ((a,n),i)) aliased-> aliasExps :: [StarLookup] -> [StarLookup]-> aliasExps lkps = let is = fromMaybe (error "localbindingsinternal.makestack : fromJust") $-> lookup "" lkps-> aliased = fmap (map replaceCName) is-> in [("",aliased), (a, aliased)]-> replaceCName (s,_,n,t) = (s,a,n,t)-> joinIDTypes :: [IDLookup] -> [IDLookup] -> [String] -> [E (String,Type)]-> joinIDTypes i1 i2 = map (joinIDType i1 i2)-> joinIDType :: [IDLookup] -> [IDLookup] -> String -> E (String,Type)-> joinIDType i1 i2 s = do-> (_,_,_,ty1) <- fromMaybe (Left [MissingJoinAttribute]) $-> lookup ("",s) i1-> (_,_,_,ty2) <- fromMaybe (Left [MissingJoinAttribute]) $-> lookup ("",s) i2-> ty <- resolveResultSetType cat [ty1,ty2]-> return (s,ty)->-> makeStack cat (LBParallel u1 u2) = do-> -- get the two stacks,-> -- for any keys that appear in both respective lookups, replace with ambigious error-> -- and concatenate the lot-> (LocalBindingsLookup i1 s1) <- makeStack cat u1-> (LocalBindingsLookup i2 s2) <- makeStack cat u2-> return $ LocalBindingsLookup (combineAddAmbiguousErrors i1 i2) $ combineStarExpansions s1 s2->-> combineStarExpansions :: [StarLookup] -> [StarLookup] -> [StarLookup]-> combineStarExpansions s1 s2 =-> let p :: [(String, [(String, E [FullId])])]-> p = npartition fst (s1 ++ s2)-> in flip map p $ \(a,b) -> (a,concat <$> M.sequence (map snd b))->-> combineAddAmbiguousErrors :: [IDLookup] -> [IDLookup] -> [IDLookup]-> combineAddAmbiguousErrors i1 i2 =-> let commonIds = intersect (map fst i1) (map fst i2)-> removeCommonIds = filter (\a -> fst a `notElem` commonIds)-> fi1 = removeCommonIds i1-> fi2 = removeCommonIds i2-> errors = map (\(c,n) -> ((c,n),Left [AmbiguousIdentifier $ showID c n])) commonIds-> in fi1 ++ fi2 ++ errors--===============================================================================--> mtl :: String -> String-> mtl = map toLower->-> showID :: String -> String -> String-> showID cor i = if cor == "" then i else cor ++ "." ++ i--================================================================================--expand composites--slightly dodgy - run through all the unqualified ids in the idlookups, and if any-have a composite type, add each element of that composite under the-correlation name of the idlookup itself, and add a star expansion for-that name also. This pretends that using a correlation name, composite-name and id name as a three part id isn't possible--> expandComposites :: Catalog -> LocalBindingsLookup -> E LocalBindingsLookup-> expandComposites cat (LocalBindingsLookup idlkp stlkp) = do-> let unqids = filter (\((a,_),_) -> a == "") idlkp-> strip = map snd unqids-> getComposites = filter (\(_,_,_,t) -> isCt t) $ rights strip-> comps <- mapM compExp getComposites-> let sts = map toStarLookup comps-> Right (LocalBindingsLookup (idlkp ++ (concat comps)) (stlkp ++ sts))-> where-> isCt (SetOfType t) = isCompositeType t-> isCt t = isCompositeType t-> getCompFields :: Type -> E [(String,Type)]-> getCompFields (SetOfType t) = getCompFields t-> getCompFields (PgRecord Nothing) = Right []-> getCompFields (PgRecord (Just t)) = getCompFields t-> getCompFields (CompositeType f) = return f-> getCompFields (NamedCompositeType s) = catCompositePublicAttrs cat [] s-> getCompFields (AnonymousRecordType _) = Right [] -- ??-> getCompFields _ = Right []-> compExp :: FullId -> E [IDLookup]-> compExp (s,_,n,t) = do-> f <- getCompFields t-> return $ flip map f $ \(n1,t1) -> ((n,n1),Right (s,n,n1,t1))-> toStarLookup :: [IDLookup] -> StarLookup-> toStarLookup ids =-> let fids::[FullId]-> fids = rights $ map snd ids-> (_,c,_,_) = if null fids then (undefined,"ERROR",undefined,undefined) else head fids-> in (c,Right fids)-}
− src/Database/HsSqlPpp/AstInternals/TypeChecking/TypeConversion.lhs
@@ -1,668 +0,0 @@---This file contains the functions for resolving types and-function/operator resolution. See the pg manual chapter 10:--http://www.postgresql.org/docs/8.4/interactive/typeconv.html--This code is really spaghettified.--findCallMatch - pass in a name and a list of arguments, and it returns-the matching function. (pg manual 10.2,10.3)--resolveResultSetType - pass in a set of types, and it tries to find-the common type they can all be cast to. (pg manual 10.5)--checkAssignmentValid - pass in source type and target type, returns- typelist[] if ok, otherwise error, pg manual 10.4- Value Storage--> {-# LANGUAGE PatternGuards #-}-> module Database.HsSqlPpp.AstInternals.TypeChecking.TypeConversion (-> findCallMatch-> ,resolveResultSetType-> ,checkAssignmentValid-> ,checkAssignmentsValid-> ) where->-> import Data.Maybe-> import Data.List-> import Data.Either-> --import Debug.Trace-> import Data.Char->-> import Database.HsSqlPpp.AstInternals.TypeType-> import Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-> import Database.HsSqlPpp.Utils.Utils-- > traceIt :: Show a => String -> a -> a- > traceIt s t = trace (s ++ ": " ++ show t) t--= findCallMatch--~~~~--findCallMatch - partially implements the type conversion rules for-finding an operator or function match given a name and list of-arguments with partial or fully specified types--TODO:, qualifiers-namespaces-function style casts not in catalog-variadic args-default args-domains -> base type-what about aggregates and window functions?--Algo:--cands = all fns with matching names- and same number of args--if exact match on types in this list, use it- (if binary operator being matched, and one arg is typed and one is- unknown, also match an operator by assuming the unknown is the same- as the typed arg)--best match part:--filter cands with args which don't exactly match input args, and input-args cannot be converted by an implicit cast. unknowns count as-matching anything-if one left: use it--filter for preferred types:--for each cand, count each arg at each position which needs conversion,-and the cand type is a preferred type at that position.-if there are cands with count>0, keep only cands with the max count,-if one return it-if there are no cands with count>0, keep them all--check unknowns:-if any input args are unknown, and any cand accepts string at that-position, fix that arg's category as string, otherwise if all cands-accept same category at that position, fix that input args as that-category.-if we still have unknowns, then fail--discard cands which don't match the new input arg/category list--for each categorised input arg, if any cand accepts preferred type at-that position, get rid of cands which don't accept preferred type at-that position--if one left: use-else fail--polymorphic matching:-want to create a set of matches to insert into the cast pairs list-so:--find all matches on name, num args and have polymorphic parameters--for each one, check the polymorphic categories - eliminate fns that-have params in wrong category - array, non array, enum.-work out the base types for the polymorphic args at each spot based on-the args passed - so each arg is unchanged except arrays which have-the array part stripped off--now we have a list of types to match against the polymorphic params,-use resolveResultSetType to see if we can produce a match, if so,-create a new prototype which is the same as the polymorphic function-but with this matching arg swapped in, work out the casts and add it-into cand cast pairs, after exact match has been run.---findCallMatch is a bit of a mess--todos:--rewrite this to try to make it a bit clearer--find some way to draw a data flow diagram of the code easily--add a logging facility so the function can explain what has happened-at each state, so you can provide a detailed explanation e.g. if the-code can't find an operator match to see what it has tried to match-against.--~~~~--> type ProtArgCast = (FunctionPrototype, [ArgCastFlavour])--> {--> between, greatest and least are treated as syntactic sugar so we-> delegate the function lookups to the <=/>= operators.-> the row comparison should be more general than this, since it supports-> any operator satisfying some properties-> -}-> findCallMatch :: Catalog -> String -> [Type] -> Either [TypeError] FunctionPrototype-> findCallMatch cat fnName' argsType =-> --trace ("typecheckfncall " ++ fnName' ++ show argsType) $-> --dependsOnRTpe argsType $-> case fnName of-> "count" -> -- not quite sure how this is suppose to work,-> -- the counts in the pg catalog accept either-> -- no args, or one arg of type any, but you can call-> -- count with multiple arguments?-> return ("count", argsType, typeBigInt, False)-> "!between" | as@[_,_,_] <- argsType -> do-> -- not sure if this is correct - use the result set resolution-> -- to make the argument types compatible-> -- then just check there is a >=, <= returning a pair-> -- of somethings which can be anded-> t <- resolveResultSetType cat as-> f1 <- lookupReturnType ">=" [t,t]-> f2 <- lookupReturnType "<=" [t,t]-> _ <- lookupFn "!and" [f1,f2]-> return ("!between", [t,t,t], typeBool, False)-> "greatest" -> do-> (_,a,t,x) <- lookupFn fnName argsType-> _ <- lookupFn ">=" [t,t]-> return ("greatest",a,t,x)-> "least" -> do-> (_,a,t,x) <- lookupFn fnName argsType-> _ <- lookupFn "<=" [t,t]-> return ("greatest",a,t,x)-> "!rowctor" -> return ("!rowCtor", argsType, AnonymousRecordType argsType, False)-> -- special case the row comparison ops-> -- this needs to be fixed: we want to match-> -- any implicit casts to functions on composite types-> -- first, then we can use the anonymous record type on-> -- any composite-> "." | [_,b] <- argsType -> Right (".", argsType, b, False)-> _ | fnName `elem` ["=", "<>", "<=", ">=", "<", ">"]-> && length argsType == 2-> && all isCompositeOrSetOfCompositeType argsType,-> Just a1 <- matchCompTypes argsType ->-> -- && compositesCompatible cat (head argsType) (head $ tail argsType) ->-> return (fnName, a1, typeBool, False)-> --checked for all special cases, so run general case now-> s -> lookupFn s argsType-> where-> lookupReturnType :: String -> [Type] -> Either [TypeError] Type-> lookupReturnType s1 args = fmap (\(_,_,r,_) -> r) $ lookupFn s1 args-> lookupFn :: String -> [Type] -> Either [TypeError] FunctionPrototype-> lookupFn s1 = findCallMatch1 cat-> (if s1 == "u-" then "-" else s1)-> fnName = map toLower fnName'-> -- help the type inference for rowCtors. pretty unfinished. If we compare-> -- two compatible row constructors, then replace any unknown types with the-> -- pair type-> matchCompTypes :: [Type] -> Maybe [Type]-> matchCompTypes [a@(AnonymousRecordType as),b@(AnonymousRecordType bs)] =-> if not (compositesCompatible cat a b)-> then Nothing-> else let (nt1,nt2) = unzip $ map (\(t,t1) -> case (t,t1) of-> (UnknownType, u) -> (u,u)-> (u, UnknownType) -> (u,u)-> _ -> (t,t1)) $ zip as bs-> in Just [AnonymousRecordType nt1,AnonymousRecordType nt2]-> matchCompTypes [a,b] =-> if not (compositesCompatible cat a b)-> then Nothing-> else Just [a,b]-> matchCompTypes _ = Nothing--->-> findCallMatch1 :: Catalog -> String -> [Type] -> Either [TypeError] FunctionPrototype-> findCallMatch1 cat f inArgs =-> returnIfOnne [-> exactMatch-> ,binOp1UnknownMatch-> ,polymorpicExactMatches-> ,reachable-> ,mostExactMatches-> ,filteredForPreferred-> ,unknownMatchesByCat]-> [NoMatchingOperator f inArgs]-> where-> -- basic lists which roughly mirror algo-> -- get the possibly matching candidates-> initialCandList :: [FunctionPrototype]-> initialCandList = filter (\(_,candArgs,_,_) ->-> length candArgs == length inArgs) $-> map expandVariadic $ catLookupFns cat f->-> expandVariadic fp@(fn,a,r,v) =-> if v-> then case last a of-> ArrayType t -> (fn, na,r,v)-> where na = init a ++ replicate (length inArgs - length a + 1) t-> _ -> fp --should be error-> else fp->-> -- record what casts are needed for each candidate-> castPairs :: [[ArgCastFlavour]]-> castPairs = map (listCastPairs . getFnArgs) initialCandList->-> candCastPairs :: [ProtArgCast]-> candCastPairs = {-traceIt "candCastPairs" $-} zip initialCandList castPairs->-> -- see if we have an exact match-> exactMatch :: [ProtArgCast]-> exactMatch = filterCandCastPairs (all (==ExactMatch)) candCastPairs->-> -- implement the one known, one unknown resolution for binary operators-> binOp1UnknownMatch :: [ProtArgCast]-> binOp1UnknownMatch = getBinOp1UnknownMatch candCastPairs->-> --collect possible polymorphic matches-> polymorphicMatches :: [ProtArgCast]-> polymorphicMatches = filterPolymorphics candCastPairs->-> polymorpicExactMatches :: [ProtArgCast]-> polymorpicExactMatches = filterCandCastPairs (all (==ExactMatch)) polymorphicMatches->-> -- eliminate candidates for which the inargs cannot be casted to-> reachable :: [ProtArgCast]-> reachable = mergePolys (filterCandCastPairs (none (==CannotCast)) candCastPairs)-> polymorphicMatches->-> mostExactMatches :: [ProtArgCast]-> mostExactMatches =-> let inArgsBase = map (replaceWithBase cat) inArgs-> exactCounts :: [Int]-> exactCounts =-> map ((length-> . filter (\(a1,a2) -> a1==replaceWithBase cat a2)-> . zip inArgsBase)-> . (\((_,a,_,_),_) -> a)) reachable-> pairs = zip reachable exactCounts-> maxm = maximum exactCounts-> in case () of-> _ | null reachable -> []-> | maxm > 0 -> map fst $ filter (\(_,b) -> b == maxm) pairs-> | otherwise -> []->-> -- keep the cands with the most casts to preferred types-> preferredTypesCounts = countPreferredTypeCasts reachable-> keepCounts = maximum preferredTypesCounts-> itemCountPairs :: [(ProtArgCast,Int)]-> itemCountPairs = zip reachable preferredTypesCounts-> filteredForPreferred :: [ProtArgCast]-> filteredForPreferred = map fst $ filter (\(_,i) -> i == keepCounts) itemCountPairs->-> -- collect the inArg type categories to do unknown inArg resolution-> argCats :: [Either () String]-> argCats = getCastCategoriesForUnknowns filteredForPreferred-> unknownMatchesByCat :: [ProtArgCast]-> unknownMatchesByCat = getCandCatMatches filteredForPreferred argCats->-> -------------->-> listCastPairs :: [Type] -> [ArgCastFlavour]-> listCastPairs l = listCastPairs' inArgs l-> where-> listCastPairs' :: [Type] -> [Type] -> [ArgCastFlavour]-> listCastPairs' (ia:ias) (ca:cas) =-> (case () of-> _ | ia == ca -> ExactMatch-> | castableFromTo cat ImplicitCastContext ia ca ->-> if forceRight (catPreferredType cat ca)-> then ImplicitToPreferred-> else ImplicitToNonPreferred-> | otherwise -> CannotCast-> ) : listCastPairs' ias cas-> listCastPairs' [] [] = []-> listCastPairs' _ _ = error "internal error: mismatched num args in implicit cast algorithm"->->-> getBinOp1UnknownMatch :: [ProtArgCast] -> [ProtArgCast]-> getBinOp1UnknownMatch cands =-> if not (isOperatorName f &&-> length inArgs == 2 &&-> count (==UnknownType) inArgs == 1)-> then []-> else let newInArgs =-> replicate 2 (if head inArgs == UnknownType-> then inArgs !! 1-> else head inArgs)-> in filter (\((_,a,_,_),_) -> a == newInArgs) cands->-> filterPolymorphics :: [ProtArgCast] -> [ProtArgCast]-> filterPolymorphics cl =-> let ms :: [ProtArgCast]-> ms = filter canMatch polys-> polyTypes :: [Maybe Type]-> polyTypes = map resolvePolyType ms-> polyTypePairs :: [(Maybe Type, ProtArgCast)]-> polyTypePairs = zip polyTypes ms-> keepPolyTypePairs :: [(Type, ProtArgCast)]-> keepPolyTypePairs =-> mapMaybe (\(t,p) -> case t of-> Nothing -> Nothing-> Just t' -> Just (t',p))-> polyTypePairs-> finalRows = map (\(t,p) -> instantiatePolyType p t)-> keepPolyTypePairs-> --create the new cast lists-> cps :: [[ArgCastFlavour]]-> cps = map (listCastPairs . getFnArgs . fst) finalRows-> in zip (map fst finalRows) cps-> where-> polys :: [ProtArgCast]-> polys = filter (\((_,a,_,_),_) -> any (`elem`-> -- bit hacky-> [Pseudo Any-> ,Pseudo AnyArray-> ,Pseudo AnyElement-> ,Pseudo AnyEnum-> ,Pseudo AnyNonArray]) a) cl-> canMatch :: ProtArgCast -> Bool-> canMatch pac =-> let ((_,fnArgs,_,_),_) = pac-> in canMatch' inArgs fnArgs-> where-> canMatch' [] [] = True-> canMatch' (ia:ias) (pa:pas) =-> case pa of-> Pseudo Any -> nextMatch-> Pseudo AnyArray -> isArrayType ia && nextMatch-> Pseudo AnyElement -> nextMatch-> Pseudo AnyEnum -> False-> Pseudo AnyNonArray -> if isArrayType ia-> then False-> else nextMatch-> _ -> True-> where-> nextMatch = canMatch' ias pas-> canMatch' _ _ = error "internal error: mismatched lists in canMatch'"-> resolvePolyType :: ProtArgCast -> Maybe Type-> resolvePolyType ((_,fnArgs,_,_),_) =-> {-trace ("\nresolving " ++ show fnArgs ++ " against " ++ show inArgs ++ "\n") $-}-> let argPairs = zip inArgs fnArgs-> typeList :: [Type]-> typeList = catMaybes $ flip map argPairs-> $ \(ia,fa) -> case fa of-> Pseudo Any -> if isArrayType ia-> then eitherToMaybe $ unwrapArray ia-> else Just ia-> Pseudo AnyArray -> eitherToMaybe $ unwrapArray ia-> Pseudo AnyElement -> if isArrayType ia-> then eitherToMaybe $ unwrapArray ia-> else Just ia-> Pseudo AnyEnum -> Nothing-> Pseudo AnyNonArray -> Just ia-> _ -> Nothing-> in {-trace ("\nresolve types: " ++ show typeList ++ "\n") $-}-> case resolveResultSetType cat typeList of-> Left _ -> Nothing-> Right t -> Just t-> instantiatePolyType :: ProtArgCast -> Type -> ProtArgCast-> instantiatePolyType pac t =-> let ((fn,a,r,v),_) = pac-> instArgs = swapPolys t a-> p1 = (fn, instArgs, swapPoly t r,v)-> in let x = (p1,listCastPairs instArgs)-> in {-trace ("\nfixed:" ++ show x ++ "\n")-} x-> where-> swapPolys :: Type -> [Type] -> [Type]-> swapPolys = map . swapPoly-> swapPoly :: Type -> Type -> Type-> swapPoly pit at =-> case at of-> Pseudo Any -> if isArrayType at-> then ArrayType pit-> else pit-> Pseudo AnyArray -> ArrayType pit-> Pseudo AnyElement -> if isArrayType at-> then ArrayType pit-> else pit-> Pseudo AnyEnum -> pit-> Pseudo AnyNonArray -> pit-> SetOfType (Pseudo AnyElement) -> if isArrayType at-> then SetOfType (ArrayType pit)-> else SetOfType pit-> _ -> at-> --merge in the instantiated poly functions, with a twist:-> -- if we already have the exact same set of args in the non poly list-> -- as a poly, then don't include that poly-> mergePolys :: [ProtArgCast] -> [ProtArgCast] -> [ProtArgCast]-> mergePolys orig polys =-> let origArgs = map (\((_,a,_,_),_) -> a) orig-> filteredPolys = filter (\((_,a,_,_),_) -> a `notElem` origArgs) polys-> in orig ++ filteredPolys->-> countPreferredTypeCasts :: [ProtArgCast] -> [Int]-> countPreferredTypeCasts =-> map (\(_,cp) -> count (==ImplicitToPreferred) cp)->-> -- Left () is used for inArgs which aren't unknown,-> -- and for unknowns which we don't have a-> -- unique category-> -- Right s -> s is the single letter category at-> -- that position-> getCastCategoriesForUnknowns :: [ProtArgCast] -> [Either () String]-> getCastCategoriesForUnknowns cands =-> filterArgN 0-> where-> candArgLists :: [[Type]]-> candArgLists = map (\((_,a,_,_), _) -> a) cands-> filterArgN :: Int -> [Either () String]-> filterArgN n =-> if n == length inArgs-> then []-> else let targType = inArgs !! n-> in ((if targType /= UnknownType-> then Left ()-> else getCandsCatAt n) : filterArgN (n+1))-> where-> getCandsCatAt :: Int -> Either () String-> getCandsCatAt n' =-> let typesAtN = map (!!n') candArgLists-> catsAtN = map (forceRight . catTypeCategory cat) typesAtN-> in case () of-> --if any are string choose string-> _ | any (== "S") catsAtN -> Right "S"-> -- if all are same cat choose that-> | all (== head catsAtN) catsAtN -> Right $ head catsAtN-> -- otherwise no match, this will be-> -- picked up as complete failure to match-> -- later on-> | otherwise -> Left ()->-> getCandCatMatches :: [ProtArgCast] -> [Either () String] -> [ProtArgCast]-> getCandCatMatches candsA cats = getMatches candsA 0-> where-> getMatches :: [ProtArgCast] -> Int -> [ProtArgCast]-> getMatches cands n =-> case () of-> _ | n == length inArgs -> cands-> | (inArgs !! n) /= UnknownType -> getMatches cands (n + 1)-> | otherwise ->-> let catMatches :: [ProtArgCast]-> catMatches = filter (\c -> Right (getCatForArgN n c) ==-> (cats !! n)) cands-> prefMatches :: [ProtArgCast]-> prefMatches = filter (forceRight . catPreferredType cat .-> getTypeForArgN n) catMatches-> keepMatches :: [ProtArgCast]-> keepMatches = if length prefMatches > 0-> then prefMatches-> else catMatches-> in getMatches keepMatches (n + 1)-> getTypeForArgN :: Int -> ProtArgCast -> Type-> getTypeForArgN n ((_,a,_,_),_) = a !! n-> getCatForArgN :: Int -> ProtArgCast -> String-> getCatForArgN n = forceRight . catTypeCategory cat . getTypeForArgN n->-> -- utils-> -- filter a candidate/cast flavours pair by a predicate on each-> -- individual cast flavour-> filterCandCastPairs :: ([ArgCastFlavour] -> Bool)-> -> [ProtArgCast]-> -> [ProtArgCast]-> filterCandCastPairs predi = filter (\(_,cp) -> predi cp)->-> getFnArgs :: FunctionPrototype -> [Type]-> getFnArgs (_,a,_,_) = a-> returnIfOnne [] e = Left e-> returnIfOnne (l:ls) e = if length l == 1-> then Right $ getHeadFn l-> else returnIfOnne ls e->-> getHeadFn :: [ProtArgCast] -> FunctionPrototype-> getHeadFn l = let ((hdFn, _):_) = l-> in hdFn-> none p = not . any p-> count p = length . filter p->-> data ArgCastFlavour = ExactMatch-> | CannotCast-> | ImplicitToPreferred-> | ImplicitToNonPreferred-> deriving (Eq,Show)->--~~~~-resolveResultSetType --partially implement the typing of results sets where the types aren't-all the same and not unknown-used in union,except,intersect columns, case, array ctor, values, greatest and least--algo:-if all inputs are same and not unknown -> that type-replace domains with base types-if all inputs are unknown then text-if the non unknown types aren't all in same category then fail-choose first input type that is a preferred type if there is one-choose last non unknown type that has implicit casts from all preceding inputs-check all can convert to selected type else fail--code is not as much of a mess as findCallMatch-~~~~--> resolveResultSetType :: Catalog -> [Type] -> Either [TypeError] Type-> resolveResultSetType cat inArgs = do-> errorWhen (null inArgs) [TypelessEmptyArray]-> returnWhen allSameType (head inArgs) $ do-> returnWhen allSameBaseType (head inArgsBase) $ do-> --returnWhen allUnknown (UnknownType) $ do-> errorWhen (not allSameCat) [IncompatibleTypeSet inArgs]-> returnWhen (isJust targetType &&-> allConvertibleToFrom (fromMaybe (error "TypeConversion.resolveresultsettype 1: fromJust") targetType) inArgs)-> (fromMaybe (error "TypeConversion.resolveresultsettype 2: fromJust") targetType) $ do-> Left [IncompatibleTypeSet inArgs]-> where-> allSameType = all (== head inArgs) inArgs -- &&-> --head inArgs /= UnknownType-> allSameBaseType = all (== head inArgsBase) inArgsBase &&-> head inArgsBase /= UnknownType-> inArgsBase = map (replaceWithBase cat) inArgs-> --allUnknown = all (==UnknownType) inArgsBase-> allSameCat = let firstCat = catTypeCategory cat (head knownTypes)-> in all (\t -> catTypeCategory cat t == firstCat)-> knownTypes-> targetType = case catMaybes [firstPreferred, lastAllConvertibleTo] of-> [] -> Nothing-> (x:_) -> Just x-> firstPreferred = find (forceRight . catPreferredType cat) knownTypes-> lastAllConvertibleTo = firstAllConvertibleTo (reverse knownTypes)-> firstAllConvertibleTo (x:xs) = if allConvertibleToFrom x xs-> then Just x-> else firstAllConvertibleTo xs-> firstAllConvertibleTo [] = Nothing-> knownTypes = filter (/=UnknownType) inArgsBase-> allConvertibleToFrom = all . flip (castableFromTo cat ImplicitCastContext)--todo:-cast empty array, where else can an empty array work?--================================================================================--= checkAssignmentValue--> checkAssignmentValid :: Catalog -> Type -> Type -> Either [TypeError] ()-> checkAssignmentValid cat from to =-> if castableFromTo cat AssignmentCastContext from to-> then Right ()-> else Left [IncompatibleTypes to from]->-> compositesCompatible :: Catalog -> Type -> Type -> Bool-> compositesCompatible cat =-> castableFromTo cat ImplicitCastContext--> checkAssignmentsValid :: Catalog -> [Type] -> [Type] -> Either [TypeError] ()-> checkAssignmentsValid cat from to = do-> -- special case for assigning to composite-> let f = case to of-> [t] | isCompositeType t -> [AnonymousRecordType from]-> _ -> from-> errorWhen (length f /= length to)-> [WrongNumberOfColumns]-> let ls = concat $ lefts $ zipWith (checkAssignmentValid cat) f to-> errorWhen (not (null ls)) ls---================================================================================--= castable function--wrapper around the catalog to add a bunch of extra valid casts--> castableFromTo :: Catalog -> CastContext -> Type -> Type -> Bool-> castableFromTo cat cc from to =-> --trace ("check cast " ++ show from ++ "->" ++ show to) $-> -- put this here to avoid having to write it everywhere else-> from == to-> -- unknown can be implicitly cast to anything (is this completely true?)-> || from == UnknownType-> --hack?-> || to == UnknownType-> -- check base types of domains-> || ((isDomainType from || isDomainType to)-> && castableFromTo cat cc (replaceWithBase cat from)-> (replaceWithBase cat to))-> -- check the casts listed in the catalog-> || forceRight (catCast cat cc from to)-> -- implicitcast => assignment cast-> || (cc == AssignmentCastContext-> && forceRight (catCast cat ImplicitCastContext from to))-> -- can assign composite to record-> || (cc == AssignmentCastContext-> && isCompOrSetoOfComp from-> && case to of-> PgRecord _ -> True-> _ -> False)-> -- check unboxing: wrapped single attribute-> || recurseTransFrom (unboxedSingleType from)-> || recurseTransTo (unboxedSingleType to)-> -- check unboxing: wrapped composite-> || recurseTransFrom (unboxedSetOfType from)-> || recurseTransTo (unboxedSetOfType to)-> -- check composites compatible by comparing attribute types-> || case (getCompositeTypes from-> ,getCompositeTypes to) of-> -- zip almost does the right thing here, needs a bit of tweaking-> (Just ft, Just tt) | length ft == length tt -> all (uncurry $ castableFromTo cat cc) $ zip ft tt-> _ -> False-> where->-> getCompositeTypes (NamedCompositeType n) =-> Just $ map snd $ fromRight [] $ catCompositePublicAttrs cat [] n-> getCompositeTypes (CompositeType t) = Just $ map snd t-> getCompositeTypes (AnonymousRecordType t) = Just t-> getCompositeTypes (PgRecord Nothing) = Nothing-> getCompositeTypes (PgRecord (Just t)) = getCompositeTypes t-> getCompositeTypes _ = Nothing->-> isCompOrSetoOfComp (SetOfType c) = isCompositeType c-> isCompOrSetoOfComp c = isCompositeType c->-> unboxedSingleType (SetOfType (CompositeType [(_,t)])) = Just t-> unboxedSingleType (PgRecord (Just t)) = unboxedSingleType t-> unboxedSingleType _ = Nothing->-> unboxedSetOfType (SetOfType a) = Just a-> unboxedSetOfType (PgRecord (Just t)) = unboxedSetOfType t-> unboxedSetOfType _ = Nothing->-> recurseTransFrom = maybe False (flip (castableFromTo cat cc) to)-> recurseTransTo = maybe False (castableFromTo cat cc from)->-> replaceWithBase :: Catalog -> Type -> Type-> replaceWithBase cat t@(DomainType _) = forceRight $ catDomainBaseType cat t-> replaceWithBase _ t = t
− src/Database/HsSqlPpp/AstInternals/TypeChecking/Utils.lhs
@@ -1,127 +0,0 @@--For extra utility functions to help with asts--> module Database.HsSqlPpp.AstInternals.TypeChecking.Utils-> (addExplicitCasts-> ,canonicalizeTypeNames) where--> import Data.Data-> import Database.HsSqlPpp.AstInternals.AstInternal-> import Data.Generics.PlateData-> import Database.HsSqlPpp.AstInternals.AstAnnotation-> import Database.HsSqlPpp.AstInternals.TypeType-> import Control.Monad----> -- | Run through a typechecked tree and add in explicit casts where-> -- implicit casts are used to typecheck. Does function and operator-> -- calls, case result expressions, and string, integer and float-> -- literals at the moment, todo: union, array, greatest, least-> addExplicitCasts :: Data a => a -> a-> addExplicitCasts =-> refix . tr . canonicalizeTypeNames-> where-> tr = transformBi $ \x -> case x of-> FunCall a f as | Just p <- getProtoATys a-> , Just ats <- getTys as-> , p /= ats-> -> FunCall a f $ zipWith3 addCastIfNeeded p ats as-> Case a cs els | (Just f) <- doCase a cs els -> f-> CaseSimple a v cs els | (Just f) <- doCaseSimple a v cs els -> f-> i@(NumberLit a _) | Just t <- infType a -> castToT t i-> i@(StringLit a _) | Just t <- infType a -> castToT t i-> x1 -> x1-> -- need to put the type annotation in the created cast to allow-> -- adding explicit casts to continue up the tree-> castToT t e = Cast ea {atype = Just t,infType = Just t} e $ typeName 1 t-> getProtoATys :: Annotation -> Maybe [Type]-> getProtoATys a = let p = fnProt a-> in flip fmap p $ \(_,t,_,_) -> t-> getTys :: [ScalarExpr] -> Maybe [Type]-> getTys = mapM $ atype . getAnnotation-> addCastIfNeeded :: Type -> Type -> ScalarExpr -> ScalarExpr-> addCastIfNeeded nt ot e =-> if ot == nt-> then e-> else Cast ea e $ typeName 2 nt-> -- not sure how to avoid inserting a cast for a literal which is-> -- already being cast when using transformBi, so run through and-> -- remove the suplerfluous casts in a second sweep-> -- spot them when there is a cast of a cast of a literal-> -- and the type of the inner cast is the same as the type of the literal-> -- not sure if this pass can cause other problems-> refix = transformBi $ \x -> case x of-> Cast ca (Cast _ l t) t1 | isLiteral l-> , Just lt <- infType $ getAnnotation l-> , t == typeName 3 lt-> -> Cast ca l t1-> x1 -> x1-> isLiteral (NumberLit _ _) = True-> isLiteral (StringLit _ _) = True-> isLiteral _ = False---> typeName :: Int -> Type -> TypeName-> typeName _ (ScalarType t) = SimpleTypeName ea t-> typeName i e = error $ "don't know how to convert " ++ show e ++ " to typename " ++ show i--> ea :: Annotation-> ea = emptyAnnotation--> doCase :: Annotation -> [([ScalarExpr],ScalarExpr)] -> Maybe ScalarExpr -> Maybe ScalarExpr-> doCase a whths els = do-> (whths',els') <- doCaseStuff a whths els-> return $ Case a whths' els'--> doCaseSimple :: Annotation -> ScalarExpr -> [([ScalarExpr],ScalarExpr)] -> Maybe ScalarExpr -> Maybe ScalarExpr-> doCaseSimple a v whths els = do-> (whths',els') <- doCaseStuff a whths els-> return $ CaseSimple a v whths' els'--> doCaseStuff :: Annotation -> [([ScalarExpr],ScalarExpr)] -> Maybe ScalarExpr -> Maybe ([([ScalarExpr],ScalarExpr)],Maybe ScalarExpr)-> doCaseStuff a whths els = do-> --trace (show $ atype a) $ return ()-> expectedType <- atype a-> --trace (show $ map (atype . getAnnotation . snd) whths) $ return ()-> thenTypes <- mapM (atype . getAnnotation . snd) whths-> --trace (show els) $ return ()-> thenAndElseTypes <- case els of-> Nothing -> return thenTypes-> Just els' -> fmap (:thenTypes) $ atype $ getAnnotation els'-> --trace ("checking cast: " ++ show expectedType ++ " " ++ show thenAndElseTypes)-> when (all (==expectedType) thenAndElseTypes) Nothing-> return (map (fixWhTh expectedType) whths-> ,castElse expectedType)-> where-> castElse et = case els of-> Nothing -> Nothing-> Just els' | Just t' <- atype $ getAnnotation els-> , t' /= et-> -> Just (Cast ea els' $ typeName 4 et)-> | otherwise -> els-> fixWhTh :: Type -> ([ScalarExpr],ScalarExpr) -> ([ScalarExpr],ScalarExpr)-> fixWhTh et (whs,th) | Just t' <- atype $ getAnnotation th-> , t' /= et = (whs, Cast ea th $ typeName 5 et)-> | otherwise = (whs,th)--> -- bit crap, this function is called canonicalizeTypeNames-> -- and it uses a function called canonicalizeTypeName--> -- | Convert all the typenames in the ast to canonical form-> -- e.g. int -> int4-> canonicalizeTypeNames :: Data a => a -> a-> canonicalizeTypeNames = fixTypes . fixTypeNames-> where-> fixTypes =-> transformBi $ \x -> case x of-> ScalarType t -> ScalarType $ ct t-> x1 -> x1-> fixTypeNames =-> transformBi $ \x -> case x of-> SimpleTypeName a t -> SimpleTypeName a $ ct t-> PrecTypeName a t i -> PrecTypeName a (ct t) i-> Prec2TypeName a t i0 i1 -> Prec2TypeName a (ct t) i0 i1-> x1 -> x1-> ct = canonicalizeTypeName-
− src/Database/HsSqlPpp/AstInternals/TypeType.lhs
@@ -1,421 +0,0 @@--This file contains the data type Type. It is kept separate so we can-compile the types and function information from the database-separately to AstInternal.ag.--Types overview:--Regular types: scalarType, arrayType, composite type, domaintype-we can use these anywhere.--~~~~-semi first class types: row, unknownstringlit (called unknown in pg) --these can be used in some places, but not others, in particular an-expression can have this type or select can have a row with these-type, but a view can't have a column with this type (so a select can-be valid on it's own but not as a view. Not sure if Row types can be-variables, unknownstringlit definitely can't. (Update, seems a view-can have a column with type unknown.)--pseudo types - mirror pg pseudo types-Internal, LanguageHandler, Opaque probably won't ever be properly supported-Not sure exactly what Any is, can't use it in functions like the other any types?- - update: seems that Any is like AnyElement, but multiple Anys don't- have to have the same type.-AnyElement, AnyArray, AnyEnum, AnyNonArray - used to implement polymorphic functions,- can only be used in these functions as params, return type (and local vars?).-Cstring - treated as variant of text?-record -dynamically typed, depends where it is used, i think is used-for type inference in function return types (so you don't have to-write the correct type, the compiler fills it in), and as a dynamically-typed variable in functions, where it can take any composite typed-value.-void is used for functions which return nothing-trigger is a tag to say a function is used in triggers, used as a-return type only-typecheckfailed is used to represent the type of anything which the code-is currently unable to type check, this usage should disappear at some-point, and then it will only represent code which doesn't type check-because of a mistake.--The Type type identifies the type of a node, but doesn't necessarily-describe the type.--Typing relational valued expressions:-use SetOfType combined with composite type for now, see if it works-out. If not, will have to add another type.-~~~~--> {-# LANGUAGE FlexibleInstances,DeriveDataTypeable #-}->-> module Database.HsSqlPpp.AstInternals.TypeType where->-> import Control.Monad.Trans.Error-> --import Control.Monad.Error->-> import Data.Data-> import Data.Generics.PlateData-> import Data.Char--> data Type = ScalarType String-> | ArrayType Type-> | SetOfType Type-> --three variations, choose better name for rowctor-> --refer to composite type in catalog-> | NamedCompositeType String-> --refer to composite type either in catalog or one generated on fly-> | CompositeType [(String,Type)]-> --refer to anonymous composite type: the fields have no names-> --these three types are equality and assign compatible if the fields-> --are ignoring the names, so the fields have to be in the same order.-> | AnonymousRecordType [Type] -- was rowctor-> | PgRecord (Maybe Type) -- can only hold namedcomposite, composite or anonymousrecord-> | DomainType String-> | EnumType String-> | Pseudo PseudoType-> | UnknownType -- represents a string literal-> -- token whose type isn't yet-> -- determined-> deriving (Eq,Show,Ord,Typeable,Data)->-> data PseudoType = Any-> | AnyArray-> | AnyElement-> | AnyEnum-> | AnyNonArray-> | Cstring-> | Record-> | TriggerRecord-> | Trigger-> | Void-> | Internal-> | LanguageHandler-> | Opaque-> deriving (Eq,Show,Ord,Typeable,Data)--this list will need reviewing, probably refactor to a completely-different set of infos, also will want to add more information to-these, and to provide a way of converting into a user friendly-string. It is intended for this code to produce highly useful errors-later on down the line.--> -- mostly expected,got-> data TypeError = WrongTypes Type [Type]-> | UnknownTypeError Type-> | UnknownTypeName String-> | NoMatchingOperator String [Type]-> | TypelessEmptyArray-> | IncompatibleTypeSet [Type]-> | IncompatibleTypes Type Type-> | ValuesListsMustBeSameLength-> | NoRowsGivenForValues-> | UnrecognisedIdentifier String-> | UnrecognisedRelation String-> | UnrecognisedCorrelationName String-> | BadStarExpand-> | AmbiguousIdentifier String-> | ContextError String-> | MissingJoinAttribute-> | ExpressionMustBeBool-> | WrongNumberOfColumns-> | ExpectedDomainType Type-> | DomainDefNotFound Type-> | BadCatalogUpdate String-> | TypeAlreadyExists Type-> | AnyAllError String-> | InternalError String-> | FromToTypesNotSame Type Type-> | WrongNumberOfAliasCols Int Int-> --shoved in to humour the Either Monad-> | MiscError String-> deriving (Eq,Show,Ord,Typeable,Data)->-- > instance Error ([TypeError]) where- > noMsg = [MiscError "Unknown error"]- > strMsg str = [MiscError str]--> instance ErrorList TypeError where-> listMsg s = [MiscError s]---=== canonical type name support--Introduce some aliases to protect client code if/when the ast-canonical names are changed:--> typeSmallInt,typeBigInt,typeInt,typeNumeric,typeFloat4,-> typeFloat8,typeVarChar,typeChar,typeBool,typeDate,-> typeInterval :: Type-> typeSmallInt = ScalarType "int2"-> typeBigInt = ScalarType "int8"-> typeInt = ScalarType "int4"-> typeNumeric = ScalarType "numeric"-> typeFloat4 = ScalarType "float4"-> typeFloat8 = ScalarType "float8"-> typeVarChar = ScalarType "varchar"-> typeChar = ScalarType "char"-> typeBool = ScalarType "bool"-> typeDate = ScalarType "date"-> typeInterval = ScalarType "interval"--this converts the name of a type to its canonical name:-try to follow the names that pg uses in a dump-this converts the name of a type to its canonical name:-try to follow the names that pg uses in a dump--> canonicalizeTypeName :: String -> String-> canonicalizeTypeName s' =-> case () of-> _ | s `elem` smallIntNames -> "int2"-> | s `elem` intNames -> "int4"-> | s `elem` bigIntNames -> "int8"-> | s `elem` numericNames -> "numeric"-> | s `elem` float4Names -> "float4"-> | s `elem` float8Names -> "float8"-> | s `elem` varcharNames -> "varchar"-> | s `elem` charNames -> "char"-> | s `elem` boolNames -> "bool"-> | otherwise -> s-> where-> smallIntNames = ["int2", "smallint"]-> intNames = ["int4", "integer", "int", "serial"]-> bigIntNames = ["int8", "bigint"]-> numericNames = ["numeric", "decimal"]-> float4Names = ["real", "float4"]-> float8Names = ["double precision", "float"]-> varcharNames = ["character varying", "varchar"]-> charNames = ["character", "char"]-> boolNames = ["boolean", "bool"]-> s = map toLower s'->-> canonicalizeTypes :: Data a => a -> a-> canonicalizeTypes =-> transformBi $ \x ->-> case x of-> ScalarType s -> ScalarType $ canonicalizeTypeName s-> x1 -> x1--random notes on pg types:--~~~~--== domains:-the point of domains is you can't put constraints on types, but you-can wrap a type up in a domain and put a constraint on it there.--== literals/selectors--source strings are parsed as unknown type: they can be implicitly cast-to almost any type in the right context.--rows ctors can also be implicitly cast to any composite type matching-the elements (now sure how exactly are they matched? - number of-elements, type compatibility of elements, just by context?).--string literals are not checked for valid syntax currently, but this-will probably change so we can type check string literals statically.-Postgres defers all checking to runtime, because it has to cope with-custom data types. This code will allow adding a grammar checker for-each type so you can optionally check the string lits statically.--== notes on type checking types--=== basic type checking-Currently can lookup type names against a default template1 list of-types, or against the current list in a database (which is read before-processing and sql code).--todo: collect type names from current source file to check against-A lot of the infrastructure to do this is already in place. We also-need to do this for all other definitions, etc.--=== Type aliases--Some types in postgresql have multiple names. I think this is-hardcoded in the pg parser.--For the canonical name in this code, we use the name given in the-postgresql pg_type catalog relvar.--TODO: Change the ast canonical names: where there is a choice, prefer-the sql standard name, where there are multiple sql standard names,-choose the most concise or common one, so the ast will use different-canonical names to postgresql.--planned ast canonical names:-numbers:-int2, int4/integer, int8 -> smallint, int, bigint-numeric, decimal -> numeric-float(1) to float(24), real -> float(24)-float, float(25) to float(53), double precision -> float-serial, serial4 -> int-bigserial, serial8 -> bigint-character varying(n), varchar(n)-> varchar(n)-character(n), char(n) -> char(n)--TODO:--what about PrecTypeName? - need to fix the ast and parser (found out-these are called type modifiers in pg)--also, what can setof be applied to - don't know if it can apply to an-array or setof type--array types have to match an exact array type in the catalog, so we-can't create an arbitrary array of any type. Not sure if this is-handled quite correctly in this code.--~~~~------------------------------------------------------------------------------------utilities for working with Types--These may indicate that the haskell type system isn't being used very well.--> isArrayType :: Type -> Bool-> isArrayType (ArrayType _) = True-> isArrayType _ = False->-> isDomainType :: Type -> Bool-> isDomainType (DomainType _) = True-> isDomainType _ = False->-> isCompositeType :: Type -> Bool-> isCompositeType (CompositeType _) = True-> isCompositeType (NamedCompositeType _) = True-> isCompositeType (AnonymousRecordType _) = True-> isCompositeType (PgRecord _) = True-> isCompositeType _ = False->-> isCompositeOrSetOfCompositeType :: Type -> Bool-> isCompositeOrSetOfCompositeType (SetOfType a) = isCompositeType a-> isCompositeOrSetOfCompositeType a = isCompositeType a->-> unwrapArray :: Type -> Either [TypeError] Type-> unwrapArray (ArrayType t) = Right t-> unwrapArray x = Left [InternalError $ "can't get types from non array " ++ show x]->-> unwrapSetOfWhenComposite :: Type -> Either [TypeError] Type-> unwrapSetOfWhenComposite (SetOfType a@(CompositeType _)) = Right a-> unwrapSetOfWhenComposite x = Left [InternalError $ "tried to unwrapSetOfWhenComposite on " ++ show x]->-> unwrapSetOfComposite :: Type -> Either [TypeError] [(String,Type)]-> unwrapSetOfComposite (SetOfType (CompositeType a)) = Right a-> unwrapSetOfComposite x = Left [InternalError $ "tried to unwrapSetOfComposite on " ++ show x]->-> unwrapSetOf :: Type -> Either [TypeError] Type-> unwrapSetOf (SetOfType a) = Right a-> unwrapSetOf x = Left [InternalError $ "tried to unwrapSetOf on " ++ show x]->-> unwrapComposite :: Type -> Either [TypeError] [(String,Type)]-> unwrapComposite (CompositeType a) = Right a-> unwrapComposite x = Left [InternalError $ "cannot unwrapComposite on " ++ show x]->-> consComposite :: (String,Type) -> Type -> Either [TypeError] Type-> consComposite l (CompositeType a) = Right $ CompositeType (l:a)-> consComposite a b = Left [InternalError $ "called consComposite on " ++ show (a,b)]->-> unwrapRowCtor :: Type -> Either [TypeError] [Type]-> unwrapRowCtor (AnonymousRecordType a) = Right a-> unwrapRowCtor x = Left [InternalError $ "cannot unwrapRowCtor on " ++ show x]------------------------------------------------------------------------------------~~~~-new plan for types:--The type annotations attached to nodes will be either typecheckfailed 'type'-this will allow chaining type check failed more robustly. Type errors don't change.--the sql type type will be changed so we can track the different-contexts where different sql types can be used, split to use different-sets of types so we can use the haskell type system to enforce these-contexts.--rename type to sqltype, too confusing otherwise-new set of sqltypes: (these aren't in one haskell type anymore)-scalar type - corresponds to sqltypes in pg which aren't one of the- other types (no easy way to define this)-array type-setof type : can be applied to scalar, domain, ... but not all types-composite types are changed:-namedcomposite string-composite [(string,type)] -> what types can appear in the attribute list?-anonymousrecord [type] -> what types can appear here? -> this-represents a row expression type, which can be returned in select-expressions (but not as a column in a view), and is used in other places-domaintype : what types are allowable as the base type?-pseudo types: these are used for arguments and return values for function prototypes only-any*, record - just means pg infers the return type which will be a composite type (namedcomposite, composite or anonymousrecord), trigger: just a tag, void: just a tag, any*: polymorphic functions, ignore cstring, internal, language handler and opaque.-issue: a variable declaration can be a polymorphic type in a polymorphic function, but we can't use the other pseudo types so need to split these-a variable declared as type record IS NOT the same thing as the pseudo record type, I've finally worked out.-so our plpgsqlrecordtype is plpgsqlrecordtype (Nothing|one of the three composite types)--typechecking polymorphic functions: will have to relax the type-checking to some degree. want to check against each usage of the-polymorphic function in the source, so substitute in the actual types-and check the function.--contexts:-function prototypes: args and return type-function calls: args and return-variable declaration in plpgsql-attribute in a select expression-attribute in a view (less permissive than a select expression), also create table as?-attribute in a table, type (is this the same list as for composite and anonymous records? - can nest anonymous records)-base type for domain-cast expression-insert: targetatts are same set of types as attributes in a table-update: targets can be attr types or anonymous records of attr types for rowset style assign (x,y) = selectexp-assignment statement: type on left same set as type in a for, types in select into, etc?-return statement-return query statement-expressions in a raise statement-expressions in execute, anything else?-types used inside select expression checking:- selectlist, trefs, groupby, orderby, limit, offset, where, having-expressions:-what can an identifiers type be?-what can the type of an Expression node be?- scalar: integerlit,floatlit- stringlit: what can an unknown resolve to (not quite everything)- booleanlit: scalar- nulllit: same as stringlit?- positionalarg: any type that a function arg can have- cast: any type you can cast to- identifier: ?- case, casesimple: any type in the rhs expressions, what are these?- exists: scalar- funcall: any type a function return type can have- inpredicate: scalar- windowfn: ?- liftoperator: booleans only?--problem: can't get types using gettypeannotation function and support-different valid combinations of types---new notes-type contexts - these all have different possible types-function return type-function parameter type-OLD & NEW-declared variable-attribute in create table-attribute create type-column in select expression-column in view-column in insert-item in set in update: includes row type with contained types restricted-placeholder-id lookups in local bindings-typenames??--create list of each type for each context-create wrapper types which convert from other types to either- typeerror type for bad type for context--~~~~-
src/Database/HsSqlPpp/Catalog.lhs view
@@ -55,5 +55,5 @@ > ,isOperatorName > ) where >-> import Database.HsSqlPpp.AstInternals.Catalog.CatalogInternal-> import Database.HsSqlPpp.AstInternals.Catalog.DefaultTemplate1Catalog+> import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+> import Database.HsSqlPpp.Internals.Catalog.DefaultTemplate1Catalog
+ src/Database/HsSqlPpp/Internals/AnnotationUtils.lhs view
@@ -0,0 +1,28 @@++This module contains some utilities and generic code for working with+asts and annotations which depend on the ast types.++> {-# LANGUAGE ScopedTypeVariables #-}+>+> module Database.HsSqlPpp.Internals.AnnotationUtils+> (+> getStatementAnnotations+> ,resetAnnotations+> ) where+>+> import Data.Data+> import Data.Generics.Uniplate.Data+>+> import Database.HsSqlPpp.Internals.AstInternal+> import Database.HsSqlPpp.Internals.AstAnnotation+>+> -- | Run through the ast and return all the annotations attached to+> -- a Statement node.+> getStatementAnnotations :: Data a => a -> [Annotation]+> getStatementAnnotations st =+> [getAnnotation s | (s::Statement) <- universeBi st]++> -- | Set all the annotations in a tree to be 'emptyAnnotation'.+> resetAnnotations :: Data a => a -> a+> resetAnnotations =+> updateAnnotations (const emptyAnnotation)
+ src/Database/HsSqlPpp/Internals/AstAnnotation.lhs view
@@ -0,0 +1,193 @@++The annotation data types and utilities for working with them.++Annotations are used to store source positions, types, errors,+warnings, catalog deltas, information, and other stuff a client might+want to use when looking at an ast. Internal annotations which are+used in the type-checking/ annotation process use the attribute+grammar code and aren't exposed.++> {-# LANGUAGE DeriveDataTypeable,ScopedTypeVariables #-}+>+> module Database.HsSqlPpp.Internals.AstAnnotation+> (+> Annotation(..)+> ,SourcePosition+> ,StatementType+> ,getAnnotation+> ,updateAnnotations+> ,getAnnotations+> ,emptyAnnotation+> ,getTypeAnnotation+> ,updateAnnotation+> ) where+>+> import Data.Generics+> ---import Control.Arrow+> import Data.Generics.Uniplate.Data+> --import Debug.Trace+>+> import Database.HsSqlPpp.Internals.TypeType+> import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+> --import Database.HsSqlPpp.Utils.Utils+>+> -- | Represents a source file position, usually set by the parser.+> type SourcePosition = (String,Int,Int)+> -- | Statement type is used for getting type information for a parameterized statement.+> type StatementType = ([Type],[(String,Type)])++> -- | Annotation type - one of these is attached to most of the+> -- data types used in the ast.+> data Annotation = Annotation { -- | source position for this node+> asrc :: Maybe SourcePosition+> -- | type of the node, 'Nothing' if the tree hasn't been typechecked or if a type error prevents determining the type+> ,atype :: Maybe Type+> -- | any type errors+> ,errs :: [TypeError]+> -- | 'statement type' - used for getting the in and out types of a parameterized statement+> ,stType :: Maybe StatementType+> -- | any catalog updates that a ddl statement produces+> ,catUpd :: [CatalogUpdate]+> -- | the matched function prototype for a funcall+> ,fnProt :: Maybe FunctionPrototype+> -- | 'inferred' type - fake type inference used for getting the type of ? placeholders in parameterized statements+> ,infType :: Maybe Type}+> deriving (Eq, Show,Typeable,Data)+>+> -- | An annotation value with no information.+> emptyAnnotation :: Annotation+> emptyAnnotation = Annotation Nothing Nothing [] Nothing [] Nothing Nothing++> -- | get the annotation for the root element of the tree passed+> getAnnotation :: Data a => a -> Annotation+> getAnnotation = head . childrenBi++> -- | get all the annotations from a tree+> getAnnotations :: Data a => a -> [Annotation]+> getAnnotations = universeBi -- st --[x | x <- universeBi st]++> -- | update all the annotations in a tree+> updateAnnotations :: Data a => (Annotation -> Annotation) -> a -> a+> updateAnnotations = transformBi++> getTypeAnnotation :: Data a => a -> Maybe Type+> getTypeAnnotation = atype . getAnnotation++++++Use syb/uniplate to pull annotation values from an ast.++I like to cut and paste code from the internet which I don't+understand, then keep changing it till it compiles and passes the tests.++> {- -- | run through the ast, and pull the type annotation from each+> -- of the top level items.+> getTypeAnnotation :: (Show a, Data a) => a -> Type+> getTypeAnnotation st =+> typeAnnot $ getTopLevelAnnotation st+> where+> typeAnnot :: Annotation -> Type+> typeAnnot (x:xs) = case x of+> TypeAnnotation t -> t+> _ -> typeAnnot xs+> typeAnnot [] = TypeCheckFailed -- error "couldn't find type annotation"+>+> -- | Run through the ast given and return a list of statementtypes+> -- from the top level items.+> getTopLevelInfos :: Data a => [a] -> [Maybe StatementType]+> getTopLevelInfos = map (getSIAnnotation . getTopLevelAnnotation)+>+> getTopLevelCatUpdates :: Data a => [a] -> [[CatalogUpdate]]+> getTopLevelCatUpdates = map (getEuAnnotation . getTopLevelAnnotation)+>++> -- | runs through the ast given and returns a list of all the type errors+> -- in the ast. Recurses into all ast nodes to find type errors.+> -- This is the function to use to see if an ast has passed the type checking process.+> -- Returns a Maybe SourcePos and the list of type errors for each node which has one or+> -- more type errors.+> getTypeErrors :: (Data a) => a -> [(Maybe AnnotationElement,[TypeError])]+> getTypeErrors sts =+> filter (\(_,te) -> not $ null te) $ map (gtsp &&& gte) $ getAnnotations sts+> where+> gte (a:as) = case a of+> TypeErrorA e -> e:gte as+> _ -> gte as+> gte _ = []+> gtsp (a:as) = case a of+> s@(SourcePos _ _ _) -> Just s+> _ -> gtsp as+> gtsp _ = Nothing++~~~~+question:+if a node has no source position e.g. the all in select all or select+ distinct may correspond to a token or may be synthesized as the+ default if neither all or distinct is present. Should this have the+ source position of where the token would have appeared, should it+ inherit it from its parent, should there be a separate ctor to+ represent a fake node with no source position?++~~~~++hack job, often not interested in the source positions when testing+the asts produced, so this function will reset all the source+positions to empty ("", 0, 0) so we can compare them for equality, etc.+without having to get the positions correct.++> -}++ > -- | strip all the annotations from a tree. E.g. can be used to compare+ > -- two asts are the same, ignoring any source position annotation differences.+ > stripAnnotations :: Data a => a -> a+ > stripAnnotations = filterAnnotations (const False)+ >++ > filterAnnotations :: Data a => (Annotation -> Bool) -> a -> a+ > filterAnnotations f = transformBi (filter f)++>+> -- | Update the first annotation in a tree using the function supplied+> updateAnnotation :: Data a => (Annotation -> Annotation) -> a -> a+> updateAnnotation f = gmapT (mkT f)+>+++ > case gmapQ (mkQ [] f) a of+ > an:_ -> an+ > [] -> []+ > where+ > f :: Annotation -> Annotation+ > f = id+ >++ >+ > getAnnotations :: Data a => a -> [Annotation]+ > getAnnotations = listifyWholeLists (\(_::Annotation) -> True)+ >++> {-getSIAnnotation :: Annotation -> Maybe StatementType+> getSIAnnotation (x:xs) = case x of+> StatementTypeA t -> Just t+> _ -> getSIAnnotation xs+> getSIAnnotation [] = Nothing+>+> getEuAnnotation :: Annotation -> [CatalogUpdate]+> getEuAnnotation (x:xs) = case x of+> CatUpdates t -> t+> _ -> getEuAnnotation xs+> getEuAnnotation [] = []-}++-------------------------------------------------------------------------------++utils++ > listifyWholeLists :: Typeable b => ([b] -> Bool) -> GenericQ [[b]]+ > listifyWholeLists blp = flip (synthesize id (.) (mkQ id (\bl _ -> if blp bl then (bl:) else id))) []++this might need to be maybe and change head?++ > getTopLevelAnnotation :: Data a => a -> Annotation+ > getTopLevelAnnotation st = head $ childrenBi st
+ src/Database/HsSqlPpp/Internals/AstAnti.hs view
@@ -0,0 +1,967 @@+{-+This file is autogenerated, to generate: load this file (MakeAntiNodes.lhs)+into ghci and run:+nwriteAntiNodes+n\nThe path might need tweaking.+n-}+{-# LANGUAGE DeriveDataTypeable #-}+module Database.HsSqlPpp.Internals.AstAnti+ (convertStatements, convertScalarExpr, attributeDef, queryExpr,+ Statement(..), QueryExpr(..), WithQuery(..), FnBody(..),+ TableRef(..), TableAlias(..), JoinExpr(..), JoinType(..),+ SelectList(..), SelectItem(..), CopySource(..), AttributeDef(..),+ RowConstraint(..), AlterTableAction(..), Constraint(..),+ TypeAttributeDef(..), ParamDef(..), VarDef(..), RaiseType(..),+ CombineType(..), Volatility(..), Language(..), TypeName(..),+ DropType(..), Cascade(..), Direction(..), Distinct(..),+ Natural(..), IfExists(..), Replace(..), RestartIdentity(..),+ ScalarExpr(..), SQIdentifier(..), IntervalField(..),+ ExtractField(..), FrameClause(..), InList(..), LiftFlavour(..),+ TriggerWhen(..), TriggerEvent(..), TriggerFire(..), SetValue(..),+ WithQueryList, StatementList, ScalarExprListStatementListPairList,+ ScalarExprListStatementListPair, ScalarExprList, ParamDefList,+ AttributeDefList, ConstraintList, TypeAttributeDefList,+ TypeNameList, StringTypeNameListPair, StringTypeNameListPairList,+ ScalarExprStatementListPairList,+ CaseScalarExprListScalarExprPairList, MaybeScalarExpr,+ TableRefList, ScalarExprListList, SelectItemList, OnExpr,+ RowConstraintList, VarDefList, ScalarExprStatementListPair,+ CaseScalarExprListScalarExprPair, ScalarExprDirectionPair,+ ScalarExprDirectionPairList, MaybeBoolExpr, MaybeSelectList,+ AlterTableActionList)+ where+import Data.Data+import Database.HsSqlPpp.Internals.AstAnnotation+import qualified Database.HsSqlPpp.Internals.AstInternal as A+ +convertStatements :: [Statement] -> [A.Statement]+convertStatements = statementList+ +convertScalarExpr :: ScalarExpr -> A.ScalarExpr+convertScalarExpr = scalarExpr+ +data JoinType = Inner+ | LeftOuter+ | RightOuter+ | FullOuter+ | Cross+ deriving (Show, Eq, Typeable, Data)+ +data CopySource = CopyFilename String+ | Stdin+ deriving (Show, Eq, Typeable, Data)+ +data SetValue = SetStr Annotation String+ | SetId Annotation String+ | SetNum Annotation Double+ deriving (Show, Eq, Typeable, Data)+ +data TriggerWhen = TriggerBefore+ | TriggerAfter+ deriving (Show, Eq, Typeable, Data)+ +data TriggerEvent = TInsert+ | TUpdate+ | TDelete+ | AntiTriggerEvent String+ deriving (Show, Eq, Typeable, Data)+ +data TriggerFire = EachRow+ | EachStatement+ deriving (Show, Eq, Typeable, Data)+ +data RaiseType = RNotice+ | RException+ | RError+ deriving (Show, Eq, Typeable, Data)+ +data CombineType = Except+ | Union+ | Intersect+ | UnionAll+ deriving (Show, Eq, Typeable, Data)+ +data Volatility = Volatile+ | Stable+ | Immutable+ deriving (Show, Eq, Typeable, Data)+ +data Language = Sql+ | Plpgsql+ deriving (Show, Eq, Typeable, Data)+ +data DropType = Table+ | Domain+ | View+ | Type+ deriving (Show, Eq, Typeable, Data)+ +data Cascade = Cascade+ | Restrict+ deriving (Show, Eq, Typeable, Data)+ +data Direction = Asc+ | Desc+ deriving (Show, Eq, Typeable, Data)+ +data Distinct = Distinct+ | Dupes+ deriving (Show, Eq, Typeable, Data)+ +data Natural = Natural+ | Unnatural+ deriving (Show, Eq, Typeable, Data)+ +data IfExists = Require+ | IfExists+ deriving (Show, Eq, Typeable, Data)+ +data Replace = Replace+ | NoReplace+ deriving (Show, Eq, Typeable, Data)+ +data RestartIdentity = RestartIdentity+ | ContinueIdentity+ deriving (Show, Eq, Typeable, Data)+ +data LiftFlavour = LiftAny+ | LiftAll+ deriving (Show, Eq, Typeable, Data)+ +data IntervalField = IntervalYear+ | IntervalMonth+ | IntervalDay+ | IntervalHour+ | IntervalMinute+ | IntervalSecond+ | IntervalYearToMonth+ | IntervalDayToHour+ | IntervalDayToMinute+ | IntervalDayToSecond+ | IntervalHourToMinute+ | IntervalHourToSecond+ | IntervalMinuteToSecond+ deriving (Show, Eq, Typeable, Data)+ +data ExtractField = ExtractCentury+ | ExtractDay+ | ExtractDecade+ | ExtractDow+ | ExtractDoy+ | ExtractEpoch+ | ExtractHour+ | ExtractIsodow+ | ExtractIsoyear+ | ExtractMicroseconds+ | ExtractMillennium+ | ExtractMilliseconds+ | ExtractMinute+ | ExtractMonth+ | ExtractQuarter+ | ExtractSecond+ | ExtractTimezone+ | ExtractTimezoneHour+ | ExtractTimezoneMinute+ | ExtractWeek+ | ExtractYear+ deriving (Show, Eq, Typeable, Data)+ +data FrameClause = FrameUnboundedPreceding+ | FrameUnboundedFull+ | FrameRowsUnboundedPreceding+ deriving (Show, Eq, Typeable, Data)+ +data AlterTableAction = AddConstraint Annotation Constraint+ | AlterColumnDefault Annotation String ScalarExpr+ deriving (Data, Eq, Show, Typeable)+ +data AttributeDef = AttributeDef Annotation String TypeName+ MaybeScalarExpr RowConstraintList+ deriving (Data, Eq, Show, Typeable)+ +data Constraint = CheckConstraint Annotation String ScalarExpr+ | PrimaryKeyConstraint Annotation String [String]+ | ReferenceConstraint Annotation String [String] String [String]+ Cascade Cascade+ | UniqueConstraint Annotation String [String]+ deriving (Data, Eq, Show, Typeable)+ +data FnBody = PlpgsqlFnBody Annotation Statement+ | SqlFnBody Annotation StatementList+ deriving (Data, Eq, Show, Typeable)+ +data InList = InList Annotation ScalarExprList+ | InQueryExpr Annotation QueryExpr+ deriving (Data, Eq, Show, Typeable)+ +data JoinExpr = JoinOn Annotation ScalarExpr+ | JoinUsing Annotation [String]+ deriving (Data, Eq, Show, Typeable)+ +data ParamDef = ParamDef Annotation String TypeName+ | ParamDefTp Annotation TypeName+ deriving (Data, Eq, Show, Typeable)+ +data QueryExpr = CombineQueryExpr Annotation CombineType QueryExpr+ QueryExpr+ | Select Annotation Distinct SelectList TableRefList MaybeBoolExpr+ ScalarExprList MaybeBoolExpr ScalarExprDirectionPairList+ MaybeScalarExpr MaybeScalarExpr+ | Values Annotation ScalarExprListList+ | WithQueryExpr Annotation WithQueryList QueryExpr+ deriving (Data, Eq, Show, Typeable)+ +data RowConstraint = NotNullConstraint Annotation String+ | NullConstraint Annotation String+ | RowCheckConstraint Annotation String ScalarExpr+ | RowPrimaryKeyConstraint Annotation String+ | RowReferenceConstraint Annotation String String (Maybe String)+ Cascade Cascade+ | RowUniqueConstraint Annotation String+ deriving (Data, Eq, Show, Typeable)+ +data SQIdentifier = SQIdentifier Annotation [String]+ deriving (Data, Eq, Show, Typeable)+ +data ScalarExpr = BooleanLit Annotation Bool+ | Case Annotation CaseScalarExprListScalarExprPairList+ MaybeScalarExpr+ | CaseSimple Annotation ScalarExpr+ CaseScalarExprListScalarExprPairList MaybeScalarExpr+ | Cast Annotation ScalarExpr TypeName+ | Exists Annotation QueryExpr+ | Extract Annotation ExtractField ScalarExpr+ | FunCall Annotation String ScalarExprList+ | Identifier Annotation String+ | InPredicate Annotation ScalarExpr Bool InList+ | Interval Annotation String IntervalField (Maybe Int)+ | LiftOperator Annotation String LiftFlavour ScalarExprList+ | NullLit Annotation+ | NumberLit Annotation String+ | Placeholder Annotation+ | PositionalArg Annotation Integer+ | QIdentifier Annotation ScalarExpr String+ | ScalarSubQuery Annotation QueryExpr+ | StringLit Annotation String+ | TypedStringLit Annotation TypeName String+ | WindowFn Annotation ScalarExpr ScalarExprList ScalarExprList+ Direction FrameClause+ | AntiScalarExpr String+ deriving (Data, Eq, Show, Typeable)+ +data SelectItem = SelExp Annotation ScalarExpr+ | SelectItem Annotation ScalarExpr String+ deriving (Data, Eq, Show, Typeable)+ +data SelectList = SelectList Annotation SelectItemList+ deriving (Data, Eq, Show, Typeable)+ +data Statement = AlterSequence Annotation String SQIdentifier+ | AlterTable Annotation String AlterTableActionList+ | Assignment Annotation ScalarExpr ScalarExpr+ | Block Annotation (Maybe String) VarDefList StatementList+ | CaseStatement Annotation ScalarExprListStatementListPairList+ StatementList+ | CaseStatementSimple Annotation ScalarExpr+ ScalarExprListStatementListPairList StatementList+ | ContinueStatement Annotation (Maybe String)+ | Copy Annotation String [String] CopySource+ | CopyData Annotation String+ | CreateDomain Annotation String TypeName String MaybeBoolExpr+ | CreateFunction Annotation String ParamDefList TypeName Replace+ Language FnBody Volatility+ | CreateLanguage Annotation String+ | CreateSequence Annotation String Integer Integer Integer Integer+ Integer+ | CreateTable Annotation String AttributeDefList ConstraintList+ | CreateTableAs Annotation String QueryExpr+ | CreateTrigger Annotation String TriggerWhen [TriggerEvent] String+ TriggerFire String ScalarExprList+ | CreateType Annotation String TypeAttributeDefList+ | CreateView Annotation String (Maybe [String]) QueryExpr+ | Delete Annotation SQIdentifier TableRefList MaybeBoolExpr+ MaybeSelectList+ | DropFunction Annotation IfExists StringTypeNameListPairList+ Cascade+ | DropSomething Annotation DropType IfExists [String] Cascade+ | Execute Annotation ScalarExpr+ | ExitStatement Annotation (Maybe String)+ | ForIntegerStatement Annotation (Maybe String) ScalarExpr+ ScalarExpr ScalarExpr StatementList+ | ForQueryStatement Annotation (Maybe String) ScalarExpr QueryExpr+ StatementList+ | If Annotation ScalarExprStatementListPairList StatementList+ | Insert Annotation SQIdentifier [String] QueryExpr MaybeSelectList+ | Into Annotation Bool ScalarExprList Statement+ | LoopStatement Annotation (Maybe String) StatementList+ | Notify Annotation String+ | NullStatement Annotation+ | Perform Annotation ScalarExpr+ | QueryStatement Annotation QueryExpr+ | Raise Annotation RaiseType String ScalarExprList+ | Return Annotation MaybeScalarExpr+ | ReturnNext Annotation ScalarExpr+ | ReturnQuery Annotation QueryExpr+ | Set Annotation String [SetValue]+ | Truncate Annotation [String] RestartIdentity Cascade+ | Update Annotation SQIdentifier ScalarExprList TableRefList+ MaybeBoolExpr MaybeSelectList+ | WhileStatement Annotation (Maybe String) ScalarExpr StatementList+ | AntiStatement String+ deriving (Data, Eq, Show, Typeable)+ +data TableAlias = FullAlias Annotation String [String]+ | NoAlias Annotation+ | TableAlias Annotation String+ deriving (Data, Eq, Show, Typeable)+ +data TableRef = FunTref Annotation ScalarExpr TableAlias+ | JoinTref Annotation TableRef Natural JoinType TableRef OnExpr+ TableAlias+ | SubTref Annotation QueryExpr TableAlias+ | Tref Annotation SQIdentifier TableAlias+ deriving (Data, Eq, Show, Typeable)+ +data TypeAttributeDef = TypeAttDef Annotation String TypeName+ deriving (Data, Eq, Show, Typeable)+ +data TypeName = ArrayTypeName Annotation TypeName+ | Prec2TypeName Annotation String Integer Integer+ | PrecTypeName Annotation String Integer+ | SetOfTypeName Annotation TypeName+ | SimpleTypeName Annotation String+ deriving (Data, Eq, Show, Typeable)+ +data VarDef = ParamAlias Annotation String Integer+ | VarAlias Annotation String String+ | VarDef Annotation String TypeName (Maybe ScalarExpr)+ deriving (Data, Eq, Show, Typeable)+ +data WithQuery = WithQuery Annotation String (Maybe [String])+ QueryExpr+ deriving (Data, Eq, Show, Typeable)+ +type AlterTableActionList = [AlterTableAction]+ +type AttributeDefList = [AttributeDef]+ +type CaseScalarExprListScalarExprPair =+ (ScalarExprList, ScalarExpr)+ +type CaseScalarExprListScalarExprPairList =+ [CaseScalarExprListScalarExprPair]+ +type ConstraintList = [Constraint]+ +type MaybeBoolExpr = Maybe ScalarExpr+ +type MaybeScalarExpr = Maybe ScalarExpr+ +type MaybeSelectList = Maybe SelectList+ +type OnExpr = Maybe JoinExpr+ +type ParamDefList = [ParamDef]+ +type RowConstraintList = [RowConstraint]+ +type ScalarExprDirectionPair = (ScalarExpr, Direction)+ +type ScalarExprDirectionPairList = [ScalarExprDirectionPair]+ +type ScalarExprList = [ScalarExpr]+ +type ScalarExprListList = [ScalarExprList]+ +type ScalarExprListStatementListPair =+ (ScalarExprList, StatementList)+ +type ScalarExprListStatementListPairList =+ [ScalarExprListStatementListPair]+ +type ScalarExprStatementListPair = (ScalarExpr, StatementList)+ +type ScalarExprStatementListPairList =+ [ScalarExprStatementListPair]+ +type SelectItemList = [SelectItem]+ +type StatementList = [Statement]+ +type StringTypeNameListPair = (String, TypeNameList)+ +type StringTypeNameListPairList = [StringTypeNameListPair]+ +type TableRefList = [TableRef]+ +type TypeAttributeDefList = [TypeAttributeDef]+ +type TypeNameList = [TypeName]+ +type VarDefList = [VarDef]+ +type WithQueryList = [WithQuery]+ +joinType :: JoinType -> A.JoinType+joinType x+ = case x of+ Inner -> A.Inner+ LeftOuter -> A.LeftOuter+ RightOuter -> A.RightOuter+ FullOuter -> A.FullOuter+ Cross -> A.Cross+ +copySource :: CopySource -> A.CopySource+copySource x+ = case x of+ CopyFilename a1 -> A.CopyFilename a1+ Stdin -> A.Stdin+ +setValue :: SetValue -> A.SetValue+setValue x+ = case x of+ SetStr a1 a2 -> A.SetStr a1 a2+ SetId a1 a2 -> A.SetId a1 a2+ SetNum a1 a2 -> A.SetNum a1 a2+ +triggerWhen :: TriggerWhen -> A.TriggerWhen+triggerWhen x+ = case x of+ TriggerBefore -> A.TriggerBefore+ TriggerAfter -> A.TriggerAfter+ +triggerEvent :: TriggerEvent -> A.TriggerEvent+triggerEvent x+ = case x of+ TInsert -> A.TInsert+ TUpdate -> A.TUpdate+ TDelete -> A.TDelete+ AntiTriggerEvent _ -> error "can't convert anti triggerEvent"+ +triggerFire :: TriggerFire -> A.TriggerFire+triggerFire x+ = case x of+ EachRow -> A.EachRow+ EachStatement -> A.EachStatement+ +raiseType :: RaiseType -> A.RaiseType+raiseType x+ = case x of+ RNotice -> A.RNotice+ RException -> A.RException+ RError -> A.RError+ +combineType :: CombineType -> A.CombineType+combineType x+ = case x of+ Except -> A.Except+ Union -> A.Union+ Intersect -> A.Intersect+ UnionAll -> A.UnionAll+ +volatility :: Volatility -> A.Volatility+volatility x+ = case x of+ Volatile -> A.Volatile+ Stable -> A.Stable+ Immutable -> A.Immutable+ +language :: Language -> A.Language+language x+ = case x of+ Sql -> A.Sql+ Plpgsql -> A.Plpgsql+ +dropType :: DropType -> A.DropType+dropType x+ = case x of+ Table -> A.Table+ Domain -> A.Domain+ View -> A.View+ Type -> A.Type+ +cascade :: Cascade -> A.Cascade+cascade x+ = case x of+ Cascade -> A.Cascade+ Restrict -> A.Restrict+ +direction :: Direction -> A.Direction+direction x+ = case x of+ Asc -> A.Asc+ Desc -> A.Desc+ +distinct :: Distinct -> A.Distinct+distinct x+ = case x of+ Distinct -> A.Distinct+ Dupes -> A.Dupes+ +natural :: Natural -> A.Natural+natural x+ = case x of+ Natural -> A.Natural+ Unnatural -> A.Unnatural+ +ifExists :: IfExists -> A.IfExists+ifExists x+ = case x of+ Require -> A.Require+ IfExists -> A.IfExists+ +replace :: Replace -> A.Replace+replace x+ = case x of+ Replace -> A.Replace+ NoReplace -> A.NoReplace+ +restartIdentity :: RestartIdentity -> A.RestartIdentity+restartIdentity x+ = case x of+ RestartIdentity -> A.RestartIdentity+ ContinueIdentity -> A.ContinueIdentity+ +liftFlavour :: LiftFlavour -> A.LiftFlavour+liftFlavour x+ = case x of+ LiftAny -> A.LiftAny+ LiftAll -> A.LiftAll+ +intervalField :: IntervalField -> A.IntervalField+intervalField x+ = case x of+ IntervalYear -> A.IntervalYear+ IntervalMonth -> A.IntervalMonth+ IntervalDay -> A.IntervalDay+ IntervalHour -> A.IntervalHour+ IntervalMinute -> A.IntervalMinute+ IntervalSecond -> A.IntervalSecond+ IntervalYearToMonth -> A.IntervalYearToMonth+ IntervalDayToHour -> A.IntervalDayToHour+ IntervalDayToMinute -> A.IntervalDayToMinute+ IntervalDayToSecond -> A.IntervalDayToSecond+ IntervalHourToMinute -> A.IntervalHourToMinute+ IntervalHourToSecond -> A.IntervalHourToSecond+ IntervalMinuteToSecond -> A.IntervalMinuteToSecond+ +extractField :: ExtractField -> A.ExtractField+extractField x+ = case x of+ ExtractCentury -> A.ExtractCentury+ ExtractDay -> A.ExtractDay+ ExtractDecade -> A.ExtractDecade+ ExtractDow -> A.ExtractDow+ ExtractDoy -> A.ExtractDoy+ ExtractEpoch -> A.ExtractEpoch+ ExtractHour -> A.ExtractHour+ ExtractIsodow -> A.ExtractIsodow+ ExtractIsoyear -> A.ExtractIsoyear+ ExtractMicroseconds -> A.ExtractMicroseconds+ ExtractMillennium -> A.ExtractMillennium+ ExtractMilliseconds -> A.ExtractMilliseconds+ ExtractMinute -> A.ExtractMinute+ ExtractMonth -> A.ExtractMonth+ ExtractQuarter -> A.ExtractQuarter+ ExtractSecond -> A.ExtractSecond+ ExtractTimezone -> A.ExtractTimezone+ ExtractTimezoneHour -> A.ExtractTimezoneHour+ ExtractTimezoneMinute -> A.ExtractTimezoneMinute+ ExtractWeek -> A.ExtractWeek+ ExtractYear -> A.ExtractYear+ +frameClause :: FrameClause -> A.FrameClause+frameClause x+ = case x of+ FrameUnboundedPreceding -> A.FrameUnboundedPreceding+ FrameUnboundedFull -> A.FrameUnboundedFull+ FrameRowsUnboundedPreceding -> A.FrameRowsUnboundedPreceding+ +alterTableAction :: AlterTableAction -> A.AlterTableAction+alterTableAction x+ = case x of+ AddConstraint a1 a2 -> A.AddConstraint a1 (constraint a2)+ AlterColumnDefault a1 a2 a3 -> A.AlterColumnDefault a1 a2+ (scalarExpr a3)+ +attributeDef :: AttributeDef -> A.AttributeDef+attributeDef x+ = case x of+ AttributeDef a1 a2 a3 a4 a5 -> A.AttributeDef a1 a2 (typeName a3)+ (maybeScalarExpr a4)+ (rowConstraintList a5)+ +constraint :: Constraint -> A.Constraint+constraint x+ = case x of+ CheckConstraint a1 a2 a3 -> A.CheckConstraint a1 a2 (scalarExpr a3)+ PrimaryKeyConstraint a1 a2 a3 -> A.PrimaryKeyConstraint a1 a2 a3+ ReferenceConstraint a1 a2 a3 a4 a5 a6 a7 -> A.ReferenceConstraint+ a1+ a2+ a3+ a4+ a5+ (cascade a6)+ (cascade a7)+ UniqueConstraint a1 a2 a3 -> A.UniqueConstraint a1 a2 a3+ +fnBody :: FnBody -> A.FnBody+fnBody x+ = case x of+ PlpgsqlFnBody a1 a2 -> A.PlpgsqlFnBody a1 (statement a2)+ SqlFnBody a1 a2 -> A.SqlFnBody a1 (statementList a2)+ +inList :: InList -> A.InList+inList x+ = case x of+ InList a1 a2 -> A.InList a1 (scalarExprList a2)+ InQueryExpr a1 a2 -> A.InQueryExpr a1 (queryExpr a2)+ +joinExpr :: JoinExpr -> A.JoinExpr+joinExpr x+ = case x of+ JoinOn a1 a2 -> A.JoinOn a1 (scalarExpr a2)+ JoinUsing a1 a2 -> A.JoinUsing a1 a2+ +paramDef :: ParamDef -> A.ParamDef+paramDef x+ = case x of+ ParamDef a1 a2 a3 -> A.ParamDef a1 a2 (typeName a3)+ ParamDefTp a1 a2 -> A.ParamDefTp a1 (typeName a2)+ +queryExpr :: QueryExpr -> A.QueryExpr+queryExpr x+ = case x of+ CombineQueryExpr a1 a2 a3 a4 -> A.CombineQueryExpr a1+ (combineType a2)+ (queryExpr a3)+ (queryExpr a4)+ Select a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 -> A.Select a1 (distinct a2)+ (selectList a3)+ (tableRefList a4)+ (maybeBoolExpr a5)+ (scalarExprList a6)+ (maybeBoolExpr a7)+ (scalarExprDirectionPairList a8)+ (maybeScalarExpr a9)+ (maybeScalarExpr a10)+ Values a1 a2 -> A.Values a1 (scalarExprListList a2)+ WithQueryExpr a1 a2 a3 -> A.WithQueryExpr a1 (withQueryList a2)+ (queryExpr a3)+ +rowConstraint :: RowConstraint -> A.RowConstraint+rowConstraint x+ = case x of+ NotNullConstraint a1 a2 -> A.NotNullConstraint a1 a2+ NullConstraint a1 a2 -> A.NullConstraint a1 a2+ RowCheckConstraint a1 a2 a3 -> A.RowCheckConstraint a1 a2+ (scalarExpr a3)+ RowPrimaryKeyConstraint a1 a2 -> A.RowPrimaryKeyConstraint a1 a2+ RowReferenceConstraint a1 a2 a3 a4 a5+ a6 -> A.RowReferenceConstraint a1 a2 a3 a4 (cascade a5)+ (cascade a6)+ RowUniqueConstraint a1 a2 -> A.RowUniqueConstraint a1 a2+ +sQIdentifier :: SQIdentifier -> A.SQIdentifier+sQIdentifier x+ = case x of+ SQIdentifier a1 a2 -> A.SQIdentifier a1 a2+ +scalarExpr :: ScalarExpr -> A.ScalarExpr+scalarExpr x+ = case x of+ BooleanLit a1 a2 -> A.BooleanLit a1 a2+ Case a1 a2 a3 -> A.Case a1+ (caseScalarExprListScalarExprPairList a2)+ (maybeScalarExpr a3)+ CaseSimple a1 a2 a3 a4 -> A.CaseSimple a1 (scalarExpr a2)+ (caseScalarExprListScalarExprPairList a3)+ (maybeScalarExpr a4)+ Cast a1 a2 a3 -> A.Cast a1 (scalarExpr a2) (typeName a3)+ Exists a1 a2 -> A.Exists a1 (queryExpr a2)+ Extract a1 a2 a3 -> A.Extract a1 (extractField a2) (scalarExpr a3)+ FunCall a1 a2 a3 -> A.FunCall a1 a2 (scalarExprList a3)+ Identifier a1 a2 -> A.Identifier a1 a2+ InPredicate a1 a2 a3 a4 -> A.InPredicate a1 (scalarExpr a2) a3+ (inList a4)+ Interval a1 a2 a3 a4 -> A.Interval a1 a2 (intervalField a3) a4+ LiftOperator a1 a2 a3 a4 -> A.LiftOperator a1 a2 (liftFlavour a3)+ (scalarExprList a4)+ NullLit a1 -> A.NullLit a1+ NumberLit a1 a2 -> A.NumberLit a1 a2+ Placeholder a1 -> A.Placeholder a1+ PositionalArg a1 a2 -> A.PositionalArg a1 a2+ QIdentifier a1 a2 a3 -> A.QIdentifier a1 (scalarExpr a2) a3+ ScalarSubQuery a1 a2 -> A.ScalarSubQuery a1 (queryExpr a2)+ StringLit a1 a2 -> A.StringLit a1 a2+ TypedStringLit a1 a2 a3 -> A.TypedStringLit a1 (typeName a2) a3+ WindowFn a1 a2 a3 a4 a5 a6 -> A.WindowFn a1 (scalarExpr a2)+ (scalarExprList a3)+ (scalarExprList a4)+ (direction a5)+ (frameClause a6)+ AntiScalarExpr _ -> error "can't convert anti scalarExpr"+ +selectItem :: SelectItem -> A.SelectItem+selectItem x+ = case x of+ SelExp a1 a2 -> A.SelExp a1 (scalarExpr a2)+ SelectItem a1 a2 a3 -> A.SelectItem a1 (scalarExpr a2) a3+ +selectList :: SelectList -> A.SelectList+selectList x+ = case x of+ SelectList a1 a2 -> A.SelectList a1 (selectItemList a2)+ +statement :: Statement -> A.Statement+statement x+ = case x of+ AlterSequence a1 a2 a3 -> A.AlterSequence a1 a2 (sQIdentifier a3)+ AlterTable a1 a2 a3 -> A.AlterTable a1 a2 (alterTableActionList a3)+ Assignment a1 a2 a3 -> A.Assignment a1 (scalarExpr a2)+ (scalarExpr a3)+ Block a1 a2 a3 a4 -> A.Block a1 a2 (varDefList a3)+ (statementList a4)+ CaseStatement a1 a2 a3 -> A.CaseStatement a1+ (scalarExprListStatementListPairList a2)+ (statementList a3)+ CaseStatementSimple a1 a2 a3 a4 -> A.CaseStatementSimple a1+ (scalarExpr a2)+ (scalarExprListStatementListPairList a3)+ (statementList a4)+ ContinueStatement a1 a2 -> A.ContinueStatement a1 a2+ Copy a1 a2 a3 a4 -> A.Copy a1 a2 a3 (copySource a4)+ CopyData a1 a2 -> A.CopyData a1 a2+ CreateDomain a1 a2 a3 a4 a5 -> A.CreateDomain a1 a2 (typeName a3)+ a4+ (maybeBoolExpr a5)+ CreateFunction a1 a2 a3 a4 a5 a6 a7 a8 -> A.CreateFunction a1 a2+ (paramDefList a3)+ (typeName a4)+ (replace a5)+ (language a6)+ (fnBody a7)+ (volatility a8)+ CreateLanguage a1 a2 -> A.CreateLanguage a1 a2+ CreateSequence a1 a2 a3 a4 a5 a6 a7 -> A.CreateSequence a1 a2 a3 a4+ a5+ a6+ a7+ CreateTable a1 a2 a3 a4 -> A.CreateTable a1 a2+ (attributeDefList a3)+ (constraintList a4)+ CreateTableAs a1 a2 a3 -> A.CreateTableAs a1 a2 (queryExpr a3)+ CreateTrigger a1 a2 a3 a4 a5 a6 a7 a8 -> A.CreateTrigger a1 a2+ (triggerWhen a3)+ (fmap triggerEvent a4)+ a5+ (triggerFire a6)+ a7+ (scalarExprList a8)+ CreateType a1 a2 a3 -> A.CreateType a1 a2 (typeAttributeDefList a3)+ CreateView a1 a2 a3 a4 -> A.CreateView a1 a2 a3 (queryExpr a4)+ Delete a1 a2 a3 a4 a5 -> A.Delete a1 (sQIdentifier a2)+ (tableRefList a3)+ (maybeBoolExpr a4)+ (maybeSelectList a5)+ DropFunction a1 a2 a3 a4 -> A.DropFunction a1 (ifExists a2)+ (stringTypeNameListPairList a3)+ (cascade a4)+ DropSomething a1 a2 a3 a4 a5 -> A.DropSomething a1 (dropType a2)+ (ifExists a3)+ a4+ (cascade a5)+ Execute a1 a2 -> A.Execute a1 (scalarExpr a2)+ ExitStatement a1 a2 -> A.ExitStatement a1 a2+ ForIntegerStatement a1 a2 a3 a4 a5 a6 -> A.ForIntegerStatement a1+ a2+ (scalarExpr a3)+ (scalarExpr a4)+ (scalarExpr a5)+ (statementList a6)+ ForQueryStatement a1 a2 a3 a4 a5 -> A.ForQueryStatement a1 a2+ (scalarExpr a3)+ (queryExpr a4)+ (statementList a5)+ If a1 a2 a3 -> A.If a1 (scalarExprStatementListPairList a2)+ (statementList a3)+ Insert a1 a2 a3 a4 a5 -> A.Insert a1 (sQIdentifier a2) a3+ (queryExpr a4)+ (maybeSelectList a5)+ Into a1 a2 a3 a4 -> A.Into a1 a2 (scalarExprList a3) (statement a4)+ LoopStatement a1 a2 a3 -> A.LoopStatement a1 a2 (statementList a3)+ Notify a1 a2 -> A.Notify a1 a2+ NullStatement a1 -> A.NullStatement a1+ Perform a1 a2 -> A.Perform a1 (scalarExpr a2)+ QueryStatement a1 a2 -> A.QueryStatement a1 (queryExpr a2)+ Raise a1 a2 a3 a4 -> A.Raise a1 (raiseType a2) a3+ (scalarExprList a4)+ Return a1 a2 -> A.Return a1 (maybeScalarExpr a2)+ ReturnNext a1 a2 -> A.ReturnNext a1 (scalarExpr a2)+ ReturnQuery a1 a2 -> A.ReturnQuery a1 (queryExpr a2)+ Set a1 a2 a3 -> A.Set a1 a2 (fmap setValue a3)+ Truncate a1 a2 a3 a4 -> A.Truncate a1 a2 (restartIdentity a3)+ (cascade a4)+ Update a1 a2 a3 a4 a5 a6 -> A.Update a1 (sQIdentifier a2)+ (scalarExprList a3)+ (tableRefList a4)+ (maybeBoolExpr a5)+ (maybeSelectList a6)+ WhileStatement a1 a2 a3 a4 -> A.WhileStatement a1 a2+ (scalarExpr a3)+ (statementList a4)+ AntiStatement _ -> error "can't convert anti statement"+ +tableAlias :: TableAlias -> A.TableAlias+tableAlias x+ = case x of+ FullAlias a1 a2 a3 -> A.FullAlias a1 a2 a3+ NoAlias a1 -> A.NoAlias a1+ TableAlias a1 a2 -> A.TableAlias a1 a2+ +tableRef :: TableRef -> A.TableRef+tableRef x+ = case x of+ FunTref a1 a2 a3 -> A.FunTref a1 (scalarExpr a2) (tableAlias a3)+ JoinTref a1 a2 a3 a4 a5 a6 a7 -> A.JoinTref a1 (tableRef a2)+ (natural a3)+ (joinType a4)+ (tableRef a5)+ (onExpr a6)+ (tableAlias a7)+ SubTref a1 a2 a3 -> A.SubTref a1 (queryExpr a2) (tableAlias a3)+ Tref a1 a2 a3 -> A.Tref a1 (sQIdentifier a2) (tableAlias a3)+ +typeAttributeDef :: TypeAttributeDef -> A.TypeAttributeDef+typeAttributeDef x+ = case x of+ TypeAttDef a1 a2 a3 -> A.TypeAttDef a1 a2 (typeName a3)+ +typeName :: TypeName -> A.TypeName+typeName x+ = case x of+ ArrayTypeName a1 a2 -> A.ArrayTypeName a1 (typeName a2)+ Prec2TypeName a1 a2 a3 a4 -> A.Prec2TypeName a1 a2 a3 a4+ PrecTypeName a1 a2 a3 -> A.PrecTypeName a1 a2 a3+ SetOfTypeName a1 a2 -> A.SetOfTypeName a1 (typeName a2)+ SimpleTypeName a1 a2 -> A.SimpleTypeName a1 a2+ +varDef :: VarDef -> A.VarDef+varDef x+ = case x of+ ParamAlias a1 a2 a3 -> A.ParamAlias a1 a2 a3+ VarAlias a1 a2 a3 -> A.VarAlias a1 a2 a3+ VarDef a1 a2 a3 a4 -> A.VarDef a1 a2 (typeName a3)+ (maybeScalarExpr a4)+ +withQuery :: WithQuery -> A.WithQuery+withQuery x+ = case x of+ WithQuery a1 a2 a3 a4 -> A.WithQuery a1 a2 a3 (queryExpr a4)+ +alterTableActionList ::+ AlterTableActionList -> A.AlterTableActionList+alterTableActionList = fmap alterTableAction+ +attributeDefList :: AttributeDefList -> A.AttributeDefList+attributeDefList = fmap attributeDef+ +caseScalarExprListScalarExprPair ::+ CaseScalarExprListScalarExprPair ->+ A.CaseScalarExprListScalarExprPair+caseScalarExprListScalarExprPair (a, b)+ = (scalarExprList a, scalarExpr b)+ +caseScalarExprListScalarExprPairList ::+ CaseScalarExprListScalarExprPairList ->+ A.CaseScalarExprListScalarExprPairList+caseScalarExprListScalarExprPairList+ = fmap caseScalarExprListScalarExprPair+ +constraintList :: ConstraintList -> A.ConstraintList+constraintList = fmap constraint+ +maybeBoolExpr :: MaybeBoolExpr -> A.MaybeBoolExpr+maybeBoolExpr = fmap scalarExpr+ +maybeScalarExpr :: MaybeScalarExpr -> A.MaybeScalarExpr+maybeScalarExpr = fmap scalarExpr+ +maybeSelectList :: MaybeSelectList -> A.MaybeSelectList+maybeSelectList = fmap selectList+ +onExpr :: OnExpr -> A.OnExpr+onExpr = fmap joinExpr+ +paramDefList :: ParamDefList -> A.ParamDefList+paramDefList = fmap paramDef+ +rowConstraintList :: RowConstraintList -> A.RowConstraintList+rowConstraintList = fmap rowConstraint+ +scalarExprDirectionPair ::+ ScalarExprDirectionPair -> A.ScalarExprDirectionPair+scalarExprDirectionPair (a, b) = (scalarExpr a, direction b)+ +scalarExprDirectionPairList ::+ ScalarExprDirectionPairList -> A.ScalarExprDirectionPairList+scalarExprDirectionPairList = fmap scalarExprDirectionPair+ +scalarExprList :: ScalarExprList -> A.ScalarExprList+scalarExprList = fmap scalarExpr+ +scalarExprListList :: ScalarExprListList -> A.ScalarExprListList+scalarExprListList = fmap scalarExprList+ +scalarExprListStatementListPair ::+ ScalarExprListStatementListPair ->+ A.ScalarExprListStatementListPair+scalarExprListStatementListPair (a, b)+ = (scalarExprList a, statementList b)+ +scalarExprListStatementListPairList ::+ ScalarExprListStatementListPairList ->+ A.ScalarExprListStatementListPairList+scalarExprListStatementListPairList+ = fmap scalarExprListStatementListPair+ +scalarExprStatementListPair ::+ ScalarExprStatementListPair -> A.ScalarExprStatementListPair+scalarExprStatementListPair (a, b)+ = (scalarExpr a, statementList b)+ +scalarExprStatementListPairList ::+ ScalarExprStatementListPairList ->+ A.ScalarExprStatementListPairList+scalarExprStatementListPairList = fmap scalarExprStatementListPair+ +selectItemList :: SelectItemList -> A.SelectItemList+selectItemList = fmap selectItem+ +statementList :: StatementList -> A.StatementList+statementList = fmap statement+ +stringTypeNameListPair ::+ StringTypeNameListPair -> A.StringTypeNameListPair+stringTypeNameListPair (a, b) = (a, typeNameList b)+ +stringTypeNameListPairList ::+ StringTypeNameListPairList -> A.StringTypeNameListPairList+stringTypeNameListPairList = fmap stringTypeNameListPair+ +tableRefList :: TableRefList -> A.TableRefList+tableRefList = fmap tableRef+ +typeAttributeDefList ::+ TypeAttributeDefList -> A.TypeAttributeDefList+typeAttributeDefList = fmap typeAttributeDef+ +typeNameList :: TypeNameList -> A.TypeNameList+typeNameList = fmap typeName+ +varDefList :: VarDefList -> A.VarDefList+varDefList = fmap varDef+ +withQueryList :: WithQueryList -> A.WithQueryList+withQueryList = fmap withQuery
+ src/Database/HsSqlPpp/Internals/AstInternal.hs view
@@ -0,0 +1,14400 @@+++-- UUAGC 0.9.39.0 (src/Database/HsSqlPpp/Internals/AstInternal.ag)+module Database.HsSqlPpp.Internals.AstInternal(+ -- {-# LANGUAGE DeriveDataTypeable,ScopedTypeVariables #-}+ --from the ag files:+ --ast nodes+ Statement (..)+ ,QueryExpr (..)+ ,WithQueryList+ ,WithQuery(..)+ ,FnBody (..)+ --,SetClause (..)+ ,TableRef (..)+ ,TableAlias(..)+ ,JoinExpr (..)+ ,JoinType (..)+ ,SelectList (..)+ ,SelectItem (..)+ ,CopySource (..)+ ,AttributeDef (..)+ ,RowConstraint (..)+ ,AlterTableAction(..)+ ,Constraint (..)+ ,TypeAttributeDef (..)+ ,ParamDef (..)+ ,VarDef (..)+ ,RaiseType (..)+ ,CombineType (..)+ ,Volatility (..)+ ,Language (..)+ ,TypeName (..)+ ,DropType (..)+ ,Cascade (..)+ ,Direction (..)+ ,Distinct (..)+ ,Natural (..)+ ,IfExists (..)+ ,Replace(..)+ ,RestartIdentity (..)+ ,ScalarExpr (..)+ ,SQIdentifier(..)+ ,IntervalField(..)+ ,ExtractField(..)+ ,FrameClause(..)+ ,InList (..)+ ,LiftFlavour(..)+ ,TriggerWhen(..)+ ,TriggerEvent(..)+ ,TriggerFire(..)+ ,StatementList+ ,ScalarExprListStatementListPairList+ ,ScalarExprListStatementListPair+ ,ScalarExprList+ ,ParamDefList+ ,AttributeDefList+ ,ConstraintList+ ,TypeAttributeDefList+ ,TypeNameList+ ,StringTypeNameListPair+ ,StringTypeNameListPairList+ ,ScalarExprStatementListPairList+ --,SetClauseList+ ,CaseScalarExprListScalarExprPairList+ ,MaybeScalarExpr+ ,TableRefList+ ,ScalarExprListList+ ,SelectItemList+ ,OnExpr+ ,RowConstraintList+ ,VarDefList+ ,ScalarExprStatementListPair+ ,CaseScalarExprListScalarExprPair+ ,ScalarExprDirectionPair+ ,ScalarExprDirectionPairList+ ,MaybeBoolExpr+ ,MaybeSelectList+ ,SetValue(..)+ ,AlterTableActionList+ -- typechecking+ ,typeCheckStatements+ ,typeCheckParameterizedStatement+ ,typeCheckScalarExpr+ ,typeCheckQueryExpr+ ,fixUpIdentifiers+ ,fixUpIdentifiersQE+ ,fixUpIdentifiersSE+) where++import Data.Maybe+import Data.List+import Control.Applicative+import Data.Data+import Data.Char+import Control.Monad.State+import Control.Arrow++import Data.Generics.Uniplate.Data+--import Debug.Trace+++import Database.HsSqlPpp.Internals.TypeType+import Database.HsSqlPpp.Internals.TypeChecking.TypeConversion+import Database.HsSqlPpp.Internals.AstAnnotation+import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+import Database.HsSqlPpp.Internals.TypeChecking.LocalBindings+import Database.HsSqlPpp.Internals.TypeChecking.ErrorUtils+import Database.HsSqlPpp.Utils.Utils++++++-- used for schema qualified identifiers+-- should be used in more places in the ast+++data JoinType = Inner | LeftOuter| RightOuter | FullOuter | Cross+ deriving (Show,Eq,Typeable,Data)+++data CopySource = CopyFilename String+ | Stdin+ deriving (Show,Eq,Typeable,Data)+++data SetValue+ = SetStr Annotation String+ | SetId Annotation String+ | SetNum Annotation Double+ deriving (Show,Eq,Typeable,Data)+++data TriggerWhen = TriggerBefore | TriggerAfter+ deriving (Show,Eq,Typeable,Data)+data TriggerEvent = TInsert| TUpdate | TDelete+ deriving (Show,Eq,Typeable,Data)+data TriggerFire = EachRow | EachStatement+ deriving (Show,Eq,Typeable,Data)+++data RaiseType = RNotice | RException | RError+ deriving (Show,Eq,Typeable,Data)++data CombineType = Except | Union | Intersect | UnionAll+ deriving (Show,Eq,Typeable,Data)++data Volatility = Volatile | Stable | Immutable+ deriving (Show,Eq,Typeable,Data)++data Language = Sql | Plpgsql+ deriving (Show,Eq,Typeable,Data)+++data DropType = Table+ | Domain+ | View+ | Type+ deriving (Show,Eq,Typeable,Data)++data Cascade = Cascade | Restrict+ deriving (Show,Eq,Typeable,Data)++data Direction = Asc | Desc+ deriving (Show,Eq,Typeable,Data)++data Distinct = Distinct | Dupes+ deriving (Show,Eq,Typeable,Data)++data Natural = Natural | Unnatural+ deriving (Show,Eq,Typeable,Data)++data IfExists = Require | IfExists+ deriving (Show,Eq,Typeable,Data)++data Replace = Replace | NoReplace+ deriving (Show,Eq,Typeable,Data)++data RestartIdentity = RestartIdentity | ContinueIdentity+ deriving (Show,Eq,Typeable,Data)++++data LiftFlavour = LiftAny | LiftAll+ deriving (Show,Eq,Typeable,Data)++data IntervalField = IntervalYear+ | IntervalMonth+ | IntervalDay+ | IntervalHour+ | IntervalMinute+ | IntervalSecond+ | IntervalYearToMonth+ | IntervalDayToHour+ | IntervalDayToMinute+ | IntervalDayToSecond+ | IntervalHourToMinute+ | IntervalHourToSecond+ | IntervalMinuteToSecond+ deriving (Show,Eq,Typeable,Data)++data ExtractField = ExtractCentury+ | ExtractDay+ | ExtractDecade+ | ExtractDow+ | ExtractDoy+ | ExtractEpoch+ | ExtractHour+ | ExtractIsodow+ | ExtractIsoyear+ | ExtractMicroseconds+ | ExtractMillennium+ | ExtractMilliseconds+ | ExtractMinute+ | ExtractMonth+ | ExtractQuarter+ | ExtractSecond+ | ExtractTimezone+ | ExtractTimezoneHour+ | ExtractTimezoneMinute+ | ExtractWeek+ | ExtractYear+ deriving (Show,Eq,Typeable,Data)++++data FrameClause = FrameUnboundedPreceding+ | FrameUnboundedFull+ | FrameRowsUnboundedPreceding+ deriving (Show,Eq,Typeable,Data)+++-- | Takes an ast, checks against catalog passed, and adds+-- annotations, including types, type errors, and statement info.+-- Returns the updated catalog as well as the annotated ast.+typeCheckStatements :: Catalog -> [Statement] -> (Catalog,[Statement])+typeCheckStatements cat sts =+ let t = sem_Root (Root $ fixUpIdentifiers cat sts)+ ta = wrap_Root t Inh_Root {cat_Inh_Root = cat+ ,lib_Inh_Root = emptyBindings+ ,idenv_Inh_Root = emptyIDEnv}+ tl = annotatedTree_Syn_Root ta+ cat1 = producedCat_Syn_Root ta+ in case tl of+ Root r -> (cat1,r)++typeCheckQueryExpr :: Catalog -> QueryExpr -> QueryExpr+typeCheckQueryExpr cat qe =+ let (_,[QueryStatement _ qe']) = typeCheckStatements cat [QueryStatement emptyAnnotation qe]+ in qe'++-- | Unfinished version of type check which can type check an+-- individual statement with ? or positional arg placeholders in+-- it. Will error if the statement isn't select, update, insert or+-- delete. For use in type checking embedded parameterized+-- statements. Does all typechecking and annotation that the regular+-- typecheck does.+typeCheckParameterizedStatement :: Catalog -> Statement -> Either String Statement+typeCheckParameterizedStatement cat st =+ case st of+ QueryStatement _ _ -> tc+ Insert _ _ _ _ _ -> tc+ Update _ _ _ _ _ _ -> tc+ Delete _ _ _ _ _ -> tc+ _ -> Left "requires select, update, insert or delete statement"+ where+ tc = let t = sem_Root (Root $ fixUpIdentifiers cat [st])+ ta = wrap_Root t Inh_Root {cat_Inh_Root = cat+ ,lib_Inh_Root = emptyBindings+ ,idenv_Inh_Root = emptyIDEnv}+ tl = annotatedTree_Syn_Root ta+ --cat1 = producedCat_Syn_Root ta+ in case tl of+ Root [st1] -> Right st1+ _ -> error "impossible happened in typeCheckPS!"+++-- | Testing utility, mainly used to check an expression for type errors+-- or to get its type.+typeCheckScalarExpr :: Catalog -> ScalarExpr -> ScalarExpr+typeCheckScalarExpr cat ex =+ let t = sem_ScalarExprRoot (ScalarExprRoot $ fixUpIdentifiersSE cat ex)+ rt = (annotatedTree_Syn_ScalarExprRoot+ (wrap_ScalarExprRoot t Inh_ScalarExprRoot {cat_Inh_ScalarExprRoot = cat+ ,lib_Inh_ScalarExprRoot = emptyBindings+ ,idenv_Inh_ScalarExprRoot = emptyIDEnv}))+ in case rt of+ ScalarExprRoot e -> e+++++data IDEnv = IDEnv [(String, [String])]+ deriving Show+emptyIDEnv :: IDEnv+emptyIDEnv = IDEnv []++qualifyID :: IDEnv -> String -> Maybe (String,String)+qualifyID (IDEnv env) i =+ q env i+ where+ q [] _ = Nothing+ q ((t,cs):es) i' =+ if i' `elem` cs+ then Just (t,i')+ else q es i'++makeIDEnv :: String -- range qualifier+ -> [String] -- attribute names+ -> IDEnv+makeIDEnv t c = IDEnv [(t,c)]++makeIDEnvP :: [(String,[String])] -> IDEnv+makeIDEnvP x = IDEnv x++unimplementedIDEnv :: IDEnv+unimplementedIDEnv = IDEnv []++joinIDEnvs :: IDEnv -> IDEnv -> IDEnv+joinIDEnvs (IDEnv a) (IDEnv b) = IDEnv $ a ++ b++expandStar :: IDEnv -> Maybe String --qualifier+ -> [(String,String)]+expandStar (IDEnv es) Nothing =+ flip concatMap es $ \(t,cs) -> map (t,) cs+expandStar (IDEnv es) (Just t) =+ maybe [(t,"*")] (map (t,)) $ lookup t es++++++makeSelExps :: Annotation -> Annotation -> Annotation -> [(String,String)] -> [SelectItem]+makeSelExps sea a0 a1 is =+ flip map is $ \(q,c) -> addSIAlias $ SelExp sea $ QIdentifier a0 (Identifier a1 q) c++addSIAlias :: SelectItem -> SelectItem+addSIAlias s@(SelectItem _ _ _) = s+addSIAlias (SelExp ann ex) = SelectItem ann ex $ getColName ex+ where+ getColName (Identifier _ i) = i+ getColName (QIdentifier _ _ i) = i+ getColName (FunCall _ f _) | not (isOperatorName f) = f+ getColName (Cast _ _ (SimpleTypeName _ tn)) = tn+ getColName (WindowFn _ (FunCall _ f _) _ _ _ _) = f+ getColName _ = "?column?"+++++++++-- | transform the tree by converting * to explicit lists of columns and adding qualifiers to all column references+fixUpIdentifiers :: Catalog -> [Statement] -> [Statement]+fixUpIdentifiers cat sts =+ let t = sem_Root (Root sts)+ ta = wrap_Root t Inh_Root {cat_Inh_Root = cat+ ,lib_Inh_Root = emptyBindings+ ,idenv_Inh_Root = emptyIDEnv}+ tl = fixedUpIdentifiersTree_Syn_Root ta+ in case tl of+ Root r -> countHack r++fixUpIdentifiersSE :: Catalog -> ScalarExpr -> ScalarExpr+fixUpIdentifiersSE cat sts =+ let t = sem_ScalarExprRoot (ScalarExprRoot sts)+ ta = wrap_ScalarExprRoot t Inh_ScalarExprRoot {cat_Inh_ScalarExprRoot = cat+ ,lib_Inh_ScalarExprRoot = emptyBindings+ ,idenv_Inh_ScalarExprRoot = emptyIDEnv}+ tl = fixedUpIdentifiersTree_Syn_ScalarExprRoot ta+ in case tl of+ ScalarExprRoot r -> countHack r++fixUpIdentifiersQE :: Catalog -> QueryExpr -> QueryExpr+fixUpIdentifiersQE cat qe =+ let [QueryStatement _ qe'] = fixUpIdentifiers cat [QueryStatement emptyAnnotation qe]+ in countHack qe'++-- small hack to convert count(*) into count(True). Should be fixed when+-- a more general approach to aggregates is written++countHack :: Data a => a -> a+countHack = transformBi $ \x -> case x of+ FunCall a "count" [Identifier ia "*"] ->+ FunCall a "count" [BooleanLit ia True]+ x1 -> x1++++doAlias :: TableAlias -> [(String,[String])] -> ([(String,[String])],TableAlias)+doAlias (NoAlias a) [] = ([],NoAlias a)+doAlias (NoAlias a) cs@((t,_):ts) = if all (==t) $ map fst ts+ then (cs,FullAlias a t $ concatMap snd cs)+ else (cs,NoAlias a)+doAlias (TableAlias a t) cs = let cs' = concatMap snd cs+ in ([(t, cs')], FullAlias a t cs')+doAlias f@(FullAlias _ t cs) _ = ([(t,cs)], f)++++addTypeErrors :: Data a => [TypeError] -> a -> a+addTypeErrors es el = updateAnnotation u el+ where+ u a = a {errs = errs a ++ es}++setTypeAddErrors :: Data a => Et -> a -> a+setTypeAddErrors et el = updateAnnotation (setTypeAddErrorsA et) el++setTypeAddErrorsA :: Et -> Annotation -> Annotation+setTypeAddErrorsA et a =+ let a1 = a {errs = errs a ++ tes et}+ in case atype a1 of+ Just _ -> a1 {errs = errs a+ ++ [InternalError $ "tried to set type a second time - " ++ show (etmt et)]}+ Nothing -> a1 {atype = etmt et}++allJust :: [Maybe a] -> Maybe [a]+allJust ts = sequence ts++-- bit dogdy, needs some thought+-- this is just to convert the new approach of using "." as an operator+-- to construct names, with the old approach which stuck the whole lot+-- in a string+getName :: ScalarExpr -> String+getName (Identifier _ i) = i+getName (FunCall _ "." [Identifier _ _,Identifier _ i]) = i+getName (FunCall _ "." [_,a]) = getName a+getName x = error $ "internal error getName called on: " ++ show x++getTName :: SQIdentifier -> String+getTName (SQIdentifier _ x@(_:_)) = last x+getTName x = error $ "internal error getName called on: " ++ show x+++unwrapLookup :: (String,[String],Type) -> Type+unwrapLookup (_,_,t) = t++allAtts :: ([(String,Type)],[(String,Type)]) -> [(String,Type)]+allAtts (a,b) = a ++ b++++typeCheckValuesExpr :: Catalog -> [[Maybe Type]] -> Either [TypeError] Type+typeCheckValuesExpr cat rowsTs = do+ rts <- lmt $ allJust $ map allJust rowsTs+ let colNames = zipWith (++)+ (repeat "column")+ (map show [1..length $ head rowsTs])+ unionRelTypes cat rts colNames+++typeCheckCombineSelect :: Catalog -> Type -> Type -> Either [TypeError] Type+typeCheckCombineSelect cat v1 v2 = do+ u1 <- unwrapSetOfComposite v1+ let colNames = map fst u1+ u2 <- unwrapSetOfComposite v2+ let colTypes1 = map snd u1+ let colTypes2 = map snd u2+ unionRelTypes cat [colTypes1,colTypes2] colNames++unionRelTypes :: Catalog -> [[Type]] -> [String] -> Either [TypeError] Type+unionRelTypes cat rowsTs colNames =+ let lengths = map length rowsTs+ in case () of+ _ | null rowsTs ->+ Left [NoRowsGivenForValues]+ | not (all (==head lengths) lengths) ->+ Left [ValuesListsMustBeSameLength]+ | otherwise ->+ --i don't think this propagates all the errors, just the first set+ mapM (resolveResultSetType cat) (transpose rowsTs) >>=+ (return . SetOfType . CompositeType . zip colNames)+++++++{-+convert a function call into a [String,[(string,type)]] list for use+in a tableref context+first consideration is the alias: if there is an alias in the select,+e.g. select * from generate_series(1,2) x; (alias is x)+we use that, otherwise we use the name of the function+second consideration is the attributes coming out, roughly speaking+we have to convert an arbitrary type to a relation type+if we have a relation valued function, we don't need to do anything+if we have a setof non composite, we lift the single type to an+attribute, using the function name for the attribute name+if we have a non setof, we lift the single type to an attribute and+then relation, using the function name for the attribute name+need to check to see what should happen with arrayof++-}+funIdens :: Catalog -> String -> ScalarExpr -> Maybe Type -> Either [TypeError] (String,[(String,Type)])+funIdens cat alias fnVal ft = do+ errorWhen (case fnVal of+ FunCall _ _ _ -> False+ _ -> True)+ [ContextError "FunCall"]+ let (FunCall _ fnName _) = fnVal+ cn = if alias /= ""+ then alias+ else fnName+ attrs <- do+ fnt <- lmt ft+ case fnt of+ SetOfType (NamedCompositeType t) -> catCompositePublicAttrs cat [] t+ SetOfType x -> return [(cn,x)]+ y -> return [(cn,y)]+ return (cn, attrs)++getAlias :: String -> TableAlias -> String+getAlias def alias =+ case alias of+ NoAlias _ -> def+ TableAlias _ t -> t+ FullAlias _ t _ -> t++++{-data SiType = SiType (String,Maybe Type)+ | SiStarType [(String,Maybe Type)]-}+++--unwrapSetofs :: [(String,Type)] -> [(String,Type)]+--unwrapSetofs = map (\(n,t) -> (n, unwrapSetof t))++unwrapSetof :: Type -> Type+unwrapSetof (SetOfType u) = u+unwrapSetof v = v++++defaultSystemColumns :: [(String,Type)]+defaultSystemColumns = [("tableoid", ScalarType "oid")+ ,("cmax", ScalarType "cid")+ ,("xmax", ScalarType "xid")+ ,("cmin", ScalarType "cid")+ ,("xmin", ScalarType "xid")+ ,("ctid", ScalarType "tid")]+++data ParamName = NamedParam Int String+ | UnnamedParam Int+++getPlaceholderTypes :: Data a => a -> [Maybe Type]+getPlaceholderTypes ex =+ [infType (getAnnotation x) | x <- universeBi ex+ , isPlaceholder x]+ where+ isPlaceholder e = case e of+ PositionalArg _ _ -> True+ Placeholder _ -> True+ _ -> False++-- AlterTableAction --------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative AddConstraint:+ child ann : {Annotation}+ child con : Constraint + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative AlterColumnDefault:+ child ann : {Annotation}+ child nm : {String}+ child def : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data AlterTableAction = AddConstraint (Annotation) (Constraint ) + | AlterColumnDefault (Annotation) (String) (ScalarExpr ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_AlterTableAction :: AlterTableAction ->+ T_AlterTableAction +sem_AlterTableAction (AddConstraint _ann _con ) =+ (sem_AlterTableAction_AddConstraint _ann (sem_Constraint _con ) )+sem_AlterTableAction (AlterColumnDefault _ann _nm _def ) =+ (sem_AlterTableAction_AlterColumnDefault _ann _nm (sem_ScalarExpr _def ) )+-- semantic domain+type T_AlterTableAction = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( AlterTableAction ,AlterTableAction ,AlterTableAction )+data Inh_AlterTableAction = Inh_AlterTableAction {cat_Inh_AlterTableAction :: Catalog,idenv_Inh_AlterTableAction :: IDEnv,lib_Inh_AlterTableAction :: LocalBindings}+data Syn_AlterTableAction = Syn_AlterTableAction {annotatedTree_Syn_AlterTableAction :: AlterTableAction ,fixedUpIdentifiersTree_Syn_AlterTableAction :: AlterTableAction ,originalTree_Syn_AlterTableAction :: AlterTableAction }+wrap_AlterTableAction :: T_AlterTableAction ->+ Inh_AlterTableAction ->+ Syn_AlterTableAction +wrap_AlterTableAction sem (Inh_AlterTableAction _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_AlterTableAction _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_AlterTableAction_AddConstraint :: Annotation ->+ T_Constraint ->+ T_AlterTableAction +sem_AlterTableAction_AddConstraint ann_ con_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: AlterTableAction + _lhsOfixedUpIdentifiersTree :: AlterTableAction + _lhsOoriginalTree :: AlterTableAction + _conOcat :: Catalog+ _conOidenv :: IDEnv+ _conOlib :: LocalBindings+ _conIannotatedTree :: Constraint + _conIfixedUpIdentifiersTree :: Constraint + _conIoriginalTree :: Constraint + -- self rule+ _annotatedTree =+ AddConstraint ann_ _conIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ AddConstraint ann_ _conIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ AddConstraint ann_ _conIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _conOcat =+ _lhsIcat+ -- copy rule (down)+ _conOidenv =+ _lhsIidenv+ -- copy rule (down)+ _conOlib =+ _lhsIlib+ ( _conIannotatedTree,_conIfixedUpIdentifiersTree,_conIoriginalTree) =+ con_ _conOcat _conOidenv _conOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_AlterTableAction_AlterColumnDefault :: Annotation ->+ String ->+ T_ScalarExpr ->+ T_AlterTableAction +sem_AlterTableAction_AlterColumnDefault ann_ nm_ def_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _defOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: AlterTableAction + _lhsOfixedUpIdentifiersTree :: AlterTableAction + _lhsOoriginalTree :: AlterTableAction + _defOcat :: Catalog+ _defOidenv :: IDEnv+ _defOlib :: LocalBindings+ _defIannotatedTree :: ScalarExpr + _defIfixedUpIdentifiersTree :: ScalarExpr + _defIoriginalTree :: ScalarExpr + _defIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 72, column 26)+ _defOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ AlterColumnDefault ann_ nm_ _defIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ AlterColumnDefault ann_ nm_ _defIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ AlterColumnDefault ann_ nm_ _defIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _defOcat =+ _lhsIcat+ -- copy rule (down)+ _defOidenv =+ _lhsIidenv+ -- copy rule (down)+ _defOlib =+ _lhsIlib+ ( _defIannotatedTree,_defIfixedUpIdentifiersTree,_defIoriginalTree,_defIuType) =+ def_ _defOcat _defOexpectedType _defOidenv _defOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- AlterTableActionList ----------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : AlterTableAction + child tl : AlterTableActionList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type AlterTableActionList = [AlterTableAction ]+-- cata+sem_AlterTableActionList :: AlterTableActionList ->+ T_AlterTableActionList +sem_AlterTableActionList list =+ (Prelude.foldr sem_AlterTableActionList_Cons sem_AlterTableActionList_Nil (Prelude.map sem_AlterTableAction list) )+-- semantic domain+type T_AlterTableActionList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( AlterTableActionList ,AlterTableActionList ,AlterTableActionList )+data Inh_AlterTableActionList = Inh_AlterTableActionList {cat_Inh_AlterTableActionList :: Catalog,idenv_Inh_AlterTableActionList :: IDEnv,lib_Inh_AlterTableActionList :: LocalBindings}+data Syn_AlterTableActionList = Syn_AlterTableActionList {annotatedTree_Syn_AlterTableActionList :: AlterTableActionList ,fixedUpIdentifiersTree_Syn_AlterTableActionList :: AlterTableActionList ,originalTree_Syn_AlterTableActionList :: AlterTableActionList }+wrap_AlterTableActionList :: T_AlterTableActionList ->+ Inh_AlterTableActionList ->+ Syn_AlterTableActionList +wrap_AlterTableActionList sem (Inh_AlterTableActionList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_AlterTableActionList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_AlterTableActionList_Cons :: T_AlterTableAction ->+ T_AlterTableActionList ->+ T_AlterTableActionList +sem_AlterTableActionList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: AlterTableActionList + _lhsOfixedUpIdentifiersTree :: AlterTableActionList + _lhsOoriginalTree :: AlterTableActionList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: AlterTableAction + _hdIfixedUpIdentifiersTree :: AlterTableAction + _hdIoriginalTree :: AlterTableAction + _tlIannotatedTree :: AlterTableActionList + _tlIfixedUpIdentifiersTree :: AlterTableActionList + _tlIoriginalTree :: AlterTableActionList + -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_AlterTableActionList_Nil :: T_AlterTableActionList +sem_AlterTableActionList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: AlterTableActionList + _lhsOfixedUpIdentifiersTree :: AlterTableActionList + _lhsOoriginalTree :: AlterTableActionList + -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- AttributeDef ------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + attrName : String+ fixedUpIdentifiersTree : SELF + namedType : Maybe Type+ originalTree : SELF + alternatives:+ alternative AttributeDef:+ child ann : {Annotation}+ child name : {String}+ child typ : TypeName + child def : MaybeScalarExpr + child cons : RowConstraintList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data AttributeDef = AttributeDef (Annotation) (String) (TypeName ) (MaybeScalarExpr ) (RowConstraintList ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_AttributeDef :: AttributeDef ->+ T_AttributeDef +sem_AttributeDef (AttributeDef _ann _name _typ _def _cons ) =+ (sem_AttributeDef_AttributeDef _ann _name (sem_TypeName _typ ) (sem_MaybeScalarExpr _def ) (sem_RowConstraintList _cons ) )+-- semantic domain+type T_AttributeDef = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( AttributeDef ,String,AttributeDef ,(Maybe Type),AttributeDef )+data Inh_AttributeDef = Inh_AttributeDef {cat_Inh_AttributeDef :: Catalog,idenv_Inh_AttributeDef :: IDEnv,lib_Inh_AttributeDef :: LocalBindings}+data Syn_AttributeDef = Syn_AttributeDef {annotatedTree_Syn_AttributeDef :: AttributeDef ,attrName_Syn_AttributeDef :: String,fixedUpIdentifiersTree_Syn_AttributeDef :: AttributeDef ,namedType_Syn_AttributeDef :: (Maybe Type),originalTree_Syn_AttributeDef :: AttributeDef }+wrap_AttributeDef :: T_AttributeDef ->+ Inh_AttributeDef ->+ Syn_AttributeDef +wrap_AttributeDef sem (Inh_AttributeDef _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_AttributeDef _lhsOannotatedTree _lhsOattrName _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree ))+sem_AttributeDef_AttributeDef :: Annotation ->+ String ->+ T_TypeName ->+ T_MaybeScalarExpr ->+ T_RowConstraintList ->+ T_AttributeDef +sem_AttributeDef_AttributeDef ann_ name_ typ_ def_ cons_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOattrName :: String+ _lhsOnamedType :: (Maybe Type)+ _consOlib :: LocalBindings+ _lhsOannotatedTree :: AttributeDef + _lhsOfixedUpIdentifiersTree :: AttributeDef + _lhsOoriginalTree :: AttributeDef + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _defOcat :: Catalog+ _defOidenv :: IDEnv+ _defOlib :: LocalBindings+ _consOcat :: Catalog+ _consOidenv :: IDEnv+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + _defIannotatedTree :: MaybeScalarExpr + _defIfixedUpIdentifiersTree :: MaybeScalarExpr + _defIoriginalTree :: MaybeScalarExpr + _defIuType :: (Maybe Type)+ _consIannotatedTree :: RowConstraintList + _consIfixedUpIdentifiersTree :: RowConstraintList + _consIoriginalTree :: RowConstraintList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 83, column 9)+ _lhsOattrName =+ map toLower name_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 84, column 9)+ _lhsOnamedType =+ _typInamedType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 98, column 9)+ _consOlib =+ either (const _lhsIlib) id $ do+ t <- lmt _typInamedType+ lbUpdate _lhsIcat+ (LBIds "attribute def" Nothing+ [(name_, t)]) _lhsIlib+ -- self rule+ _annotatedTree =+ AttributeDef ann_ name_ _typIannotatedTree _defIannotatedTree _consIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ AttributeDef ann_ name_ _typIfixedUpIdentifiersTree _defIfixedUpIdentifiersTree _consIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ AttributeDef ann_ name_ _typIoriginalTree _defIoriginalTree _consIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ -- copy rule (down)+ _defOcat =+ _lhsIcat+ -- copy rule (down)+ _defOidenv =+ _lhsIidenv+ -- copy rule (down)+ _defOlib =+ _lhsIlib+ -- copy rule (down)+ _consOcat =+ _lhsIcat+ -- copy rule (down)+ _consOidenv =+ _lhsIidenv+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + ( _defIannotatedTree,_defIfixedUpIdentifiersTree,_defIoriginalTree,_defIuType) =+ def_ _defOcat _defOidenv _defOlib + ( _consIannotatedTree,_consIfixedUpIdentifiersTree,_consIoriginalTree) =+ cons_ _consOcat _consOidenv _consOlib + in ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+-- AttributeDefList --------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + attrs : [(String, Maybe Type)]+ fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : AttributeDef + child tl : AttributeDefList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type AttributeDefList = [AttributeDef ]+-- cata+sem_AttributeDefList :: AttributeDefList ->+ T_AttributeDefList +sem_AttributeDefList list =+ (Prelude.foldr sem_AttributeDefList_Cons sem_AttributeDefList_Nil (Prelude.map sem_AttributeDef list) )+-- semantic domain+type T_AttributeDefList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( AttributeDefList ,([(String, Maybe Type)]),AttributeDefList ,AttributeDefList )+data Inh_AttributeDefList = Inh_AttributeDefList {cat_Inh_AttributeDefList :: Catalog,idenv_Inh_AttributeDefList :: IDEnv,lib_Inh_AttributeDefList :: LocalBindings}+data Syn_AttributeDefList = Syn_AttributeDefList {annotatedTree_Syn_AttributeDefList :: AttributeDefList ,attrs_Syn_AttributeDefList :: ([(String, Maybe Type)]),fixedUpIdentifiersTree_Syn_AttributeDefList :: AttributeDefList ,originalTree_Syn_AttributeDefList :: AttributeDefList }+wrap_AttributeDefList :: T_AttributeDefList ->+ Inh_AttributeDefList ->+ Syn_AttributeDefList +wrap_AttributeDefList sem (Inh_AttributeDefList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_AttributeDefList _lhsOannotatedTree _lhsOattrs _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_AttributeDefList_Cons :: T_AttributeDef ->+ T_AttributeDefList ->+ T_AttributeDefList +sem_AttributeDefList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOattrs :: ([(String, Maybe Type)])+ _lhsOannotatedTree :: AttributeDefList + _lhsOfixedUpIdentifiersTree :: AttributeDefList + _lhsOoriginalTree :: AttributeDefList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: AttributeDef + _hdIattrName :: String+ _hdIfixedUpIdentifiersTree :: AttributeDef + _hdInamedType :: (Maybe Type)+ _hdIoriginalTree :: AttributeDef + _tlIannotatedTree :: AttributeDefList + _tlIattrs :: ([(String, Maybe Type)])+ _tlIfixedUpIdentifiersTree :: AttributeDefList + _tlIoriginalTree :: AttributeDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 88, column 12)+ _lhsOattrs =+ (_hdIattrName, _hdInamedType) : _tlIattrs+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIattrName,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIattrs,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_AttributeDefList_Nil :: T_AttributeDefList +sem_AttributeDefList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOattrs :: ([(String, Maybe Type)])+ _lhsOannotatedTree :: AttributeDefList + _lhsOfixedUpIdentifiersTree :: AttributeDefList + _lhsOoriginalTree :: AttributeDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 89, column 11)+ _lhsOattrs =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- CaseScalarExprListScalarExprPair ----------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + thenType : Maybe Type+ whenTypes : [Maybe Type]+ alternatives:+ alternative Tuple:+ child x1 : ScalarExprList + child x2 : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type CaseScalarExprListScalarExprPair = ( ScalarExprList ,ScalarExpr )+-- cata+sem_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ->+ T_CaseScalarExprListScalarExprPair +sem_CaseScalarExprListScalarExprPair ( x1,x2) =+ (sem_CaseScalarExprListScalarExprPair_Tuple (sem_ScalarExprList x1 ) (sem_ScalarExpr x2 ) )+-- semantic domain+type T_CaseScalarExprListScalarExprPair = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( CaseScalarExprListScalarExprPair ,CaseScalarExprListScalarExprPair ,CaseScalarExprListScalarExprPair ,(Maybe Type),([Maybe Type]))+data Inh_CaseScalarExprListScalarExprPair = Inh_CaseScalarExprListScalarExprPair {cat_Inh_CaseScalarExprListScalarExprPair :: Catalog,idenv_Inh_CaseScalarExprListScalarExprPair :: IDEnv,lib_Inh_CaseScalarExprListScalarExprPair :: LocalBindings}+data Syn_CaseScalarExprListScalarExprPair = Syn_CaseScalarExprListScalarExprPair {annotatedTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ,fixedUpIdentifiersTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ,originalTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ,thenType_Syn_CaseScalarExprListScalarExprPair :: (Maybe Type),whenTypes_Syn_CaseScalarExprListScalarExprPair :: ([Maybe Type])}+wrap_CaseScalarExprListScalarExprPair :: T_CaseScalarExprListScalarExprPair ->+ Inh_CaseScalarExprListScalarExprPair ->+ Syn_CaseScalarExprListScalarExprPair +wrap_CaseScalarExprListScalarExprPair sem (Inh_CaseScalarExprListScalarExprPair _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenType,_lhsOwhenTypes) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_CaseScalarExprListScalarExprPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOthenType _lhsOwhenTypes ))+sem_CaseScalarExprListScalarExprPair_Tuple :: T_ScalarExprList ->+ T_ScalarExpr ->+ T_CaseScalarExprListScalarExprPair +sem_CaseScalarExprListScalarExprPair_Tuple x1_ x2_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOwhenTypes :: ([Maybe Type])+ _lhsOthenType :: (Maybe Type)+ _x1OexpectedTypes :: ([Maybe Type])+ _x2OexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: CaseScalarExprListScalarExprPair + _lhsOfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPair + _lhsOoriginalTree :: CaseScalarExprListScalarExprPair + _x1Ocat :: Catalog+ _x1Oidenv :: IDEnv+ _x1Olib :: LocalBindings+ _x2Ocat :: Catalog+ _x2Oidenv :: IDEnv+ _x2Olib :: LocalBindings+ _x1IannotatedTree :: ScalarExprList + _x1IfixedUpIdentifiersTree :: ScalarExprList + _x1IoriginalTree :: ScalarExprList + _x1IuType :: ([Maybe Type])+ _x2IannotatedTree :: ScalarExpr + _x2IfixedUpIdentifiersTree :: ScalarExpr + _x2IoriginalTree :: ScalarExpr + _x2IuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 270, column 13)+ _lhsOwhenTypes =+ _x1IuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 271, column 13)+ _lhsOthenType =+ _x2IuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 76, column 13)+ _x1OexpectedTypes =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 77, column 13)+ _x2OexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ (_x1IannotatedTree,_x2IannotatedTree)+ -- self rule+ _fixedUpIdentifiersTree =+ (_x1IfixedUpIdentifiersTree,_x2IfixedUpIdentifiersTree)+ -- self rule+ _originalTree =+ (_x1IoriginalTree,_x2IoriginalTree)+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _x1Ocat =+ _lhsIcat+ -- copy rule (down)+ _x1Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x1Olib =+ _lhsIlib+ -- copy rule (down)+ _x2Ocat =+ _lhsIcat+ -- copy rule (down)+ _x2Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x2Olib =+ _lhsIlib+ ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =+ x1_ _x1Ocat _x1OexpectedTypes _x1Oidenv _x1Olib + ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2IoriginalTree,_x2IuType) =+ x2_ _x2Ocat _x2OexpectedType _x2Oidenv _x2Olib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenType,_lhsOwhenTypes)))+-- CaseScalarExprListScalarExprPairList ------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + thenTypes : [Maybe Type]+ whenTypes : [[Maybe Type]]+ alternatives:+ alternative Cons:+ child hd : CaseScalarExprListScalarExprPair + child tl : CaseScalarExprListScalarExprPairList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type CaseScalarExprListScalarExprPairList = [CaseScalarExprListScalarExprPair ]+-- cata+sem_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ->+ T_CaseScalarExprListScalarExprPairList +sem_CaseScalarExprListScalarExprPairList list =+ (Prelude.foldr sem_CaseScalarExprListScalarExprPairList_Cons sem_CaseScalarExprListScalarExprPairList_Nil (Prelude.map sem_CaseScalarExprListScalarExprPair list) )+-- semantic domain+type T_CaseScalarExprListScalarExprPairList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( CaseScalarExprListScalarExprPairList ,CaseScalarExprListScalarExprPairList ,CaseScalarExprListScalarExprPairList ,([Maybe Type]),([[Maybe Type]]))+data Inh_CaseScalarExprListScalarExprPairList = Inh_CaseScalarExprListScalarExprPairList {cat_Inh_CaseScalarExprListScalarExprPairList :: Catalog,idenv_Inh_CaseScalarExprListScalarExprPairList :: IDEnv,lib_Inh_CaseScalarExprListScalarExprPairList :: LocalBindings}+data Syn_CaseScalarExprListScalarExprPairList = Syn_CaseScalarExprListScalarExprPairList {annotatedTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ,fixedUpIdentifiersTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ,originalTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ,thenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([Maybe Type]),whenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([[Maybe Type]])}+wrap_CaseScalarExprListScalarExprPairList :: T_CaseScalarExprListScalarExprPairList ->+ Inh_CaseScalarExprListScalarExprPairList ->+ Syn_CaseScalarExprListScalarExprPairList +wrap_CaseScalarExprListScalarExprPairList sem (Inh_CaseScalarExprListScalarExprPairList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOwhenTypes) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_CaseScalarExprListScalarExprPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOthenTypes _lhsOwhenTypes ))+sem_CaseScalarExprListScalarExprPairList_Cons :: T_CaseScalarExprListScalarExprPair ->+ T_CaseScalarExprListScalarExprPairList ->+ T_CaseScalarExprListScalarExprPairList +sem_CaseScalarExprListScalarExprPairList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOwhenTypes :: ([[Maybe Type]])+ _lhsOthenTypes :: ([Maybe Type])+ _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList + _lhsOfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList + _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: CaseScalarExprListScalarExprPair + _hdIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPair + _hdIoriginalTree :: CaseScalarExprListScalarExprPair + _hdIthenType :: (Maybe Type)+ _hdIwhenTypes :: ([Maybe Type])+ _tlIannotatedTree :: CaseScalarExprListScalarExprPairList + _tlIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList + _tlIoriginalTree :: CaseScalarExprListScalarExprPairList + _tlIthenTypes :: ([Maybe Type])+ _tlIwhenTypes :: ([[Maybe Type]])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 261, column 10)+ _lhsOwhenTypes =+ _hdIwhenTypes : _tlIwhenTypes+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 262, column 10)+ _lhsOthenTypes =+ _hdIthenType : _tlIthenTypes+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree,_hdIthenType,_hdIwhenTypes) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIthenTypes,_tlIwhenTypes) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOwhenTypes)))+sem_CaseScalarExprListScalarExprPairList_Nil :: T_CaseScalarExprListScalarExprPairList +sem_CaseScalarExprListScalarExprPairList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOwhenTypes :: ([[Maybe Type]])+ _lhsOthenTypes :: ([Maybe Type])+ _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList + _lhsOfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList + _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 263, column 9)+ _lhsOwhenTypes =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 264, column 9)+ _lhsOthenTypes =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOwhenTypes)))+-- Constraint --------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative CheckConstraint:+ child ann : {Annotation}+ child name : {String}+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative PrimaryKeyConstraint:+ child ann : {Annotation}+ child name : {String}+ child x : {[String]}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ReferenceConstraint:+ child ann : {Annotation}+ child name : {String}+ child atts : {[String]}+ child table : {String}+ child tableAtts : {[String]}+ child onUpdate : {Cascade}+ child onDelete : {Cascade}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative UniqueConstraint:+ child ann : {Annotation}+ child name : {String}+ child x : {[String]}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data Constraint = CheckConstraint (Annotation) (String) (ScalarExpr ) + | PrimaryKeyConstraint (Annotation) (String) (([String])) + | ReferenceConstraint (Annotation) (String) (([String])) (String) (([String])) (Cascade) (Cascade) + | UniqueConstraint (Annotation) (String) (([String])) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_Constraint :: Constraint ->+ T_Constraint +sem_Constraint (CheckConstraint _ann _name _expr ) =+ (sem_Constraint_CheckConstraint _ann _name (sem_ScalarExpr _expr ) )+sem_Constraint (PrimaryKeyConstraint _ann _name _x ) =+ (sem_Constraint_PrimaryKeyConstraint _ann _name _x )+sem_Constraint (ReferenceConstraint _ann _name _atts _table _tableAtts _onUpdate _onDelete ) =+ (sem_Constraint_ReferenceConstraint _ann _name _atts _table _tableAtts _onUpdate _onDelete )+sem_Constraint (UniqueConstraint _ann _name _x ) =+ (sem_Constraint_UniqueConstraint _ann _name _x )+-- semantic domain+type T_Constraint = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( Constraint ,Constraint ,Constraint )+data Inh_Constraint = Inh_Constraint {cat_Inh_Constraint :: Catalog,idenv_Inh_Constraint :: IDEnv,lib_Inh_Constraint :: LocalBindings}+data Syn_Constraint = Syn_Constraint {annotatedTree_Syn_Constraint :: Constraint ,fixedUpIdentifiersTree_Syn_Constraint :: Constraint ,originalTree_Syn_Constraint :: Constraint }+wrap_Constraint :: T_Constraint ->+ Inh_Constraint ->+ Syn_Constraint +wrap_Constraint sem (Inh_Constraint _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_Constraint _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_Constraint_CheckConstraint :: Annotation ->+ String ->+ T_ScalarExpr ->+ T_Constraint +sem_Constraint_CheckConstraint ann_ name_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: Constraint + _lhsOfixedUpIdentifiersTree :: Constraint + _lhsOoriginalTree :: Constraint + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 80, column 23)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ CheckConstraint ann_ name_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CheckConstraint ann_ name_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CheckConstraint ann_ name_ _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_Constraint_PrimaryKeyConstraint :: Annotation ->+ String ->+ ([String]) ->+ T_Constraint +sem_Constraint_PrimaryKeyConstraint ann_ name_ x_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: Constraint + _lhsOfixedUpIdentifiersTree :: Constraint + _lhsOoriginalTree :: Constraint + -- self rule+ _annotatedTree =+ PrimaryKeyConstraint ann_ name_ x_+ -- self rule+ _fixedUpIdentifiersTree =+ PrimaryKeyConstraint ann_ name_ x_+ -- self rule+ _originalTree =+ PrimaryKeyConstraint ann_ name_ x_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_Constraint_ReferenceConstraint :: Annotation ->+ String ->+ ([String]) ->+ String ->+ ([String]) ->+ Cascade ->+ Cascade ->+ T_Constraint +sem_Constraint_ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: Constraint + _lhsOfixedUpIdentifiersTree :: Constraint + _lhsOoriginalTree :: Constraint + -- self rule+ _annotatedTree =+ ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_+ -- self rule+ _fixedUpIdentifiersTree =+ ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_+ -- self rule+ _originalTree =+ ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_Constraint_UniqueConstraint :: Annotation ->+ String ->+ ([String]) ->+ T_Constraint +sem_Constraint_UniqueConstraint ann_ name_ x_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: Constraint + _lhsOfixedUpIdentifiersTree :: Constraint + _lhsOoriginalTree :: Constraint + -- self rule+ _annotatedTree =+ UniqueConstraint ann_ name_ x_+ -- self rule+ _fixedUpIdentifiersTree =+ UniqueConstraint ann_ name_ x_+ -- self rule+ _originalTree =+ UniqueConstraint ann_ name_ x_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ConstraintList ----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : Constraint + child tl : ConstraintList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ConstraintList = [Constraint ]+-- cata+sem_ConstraintList :: ConstraintList ->+ T_ConstraintList +sem_ConstraintList list =+ (Prelude.foldr sem_ConstraintList_Cons sem_ConstraintList_Nil (Prelude.map sem_Constraint list) )+-- semantic domain+type T_ConstraintList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ConstraintList ,ConstraintList ,ConstraintList )+data Inh_ConstraintList = Inh_ConstraintList {cat_Inh_ConstraintList :: Catalog,idenv_Inh_ConstraintList :: IDEnv,lib_Inh_ConstraintList :: LocalBindings}+data Syn_ConstraintList = Syn_ConstraintList {annotatedTree_Syn_ConstraintList :: ConstraintList ,fixedUpIdentifiersTree_Syn_ConstraintList :: ConstraintList ,originalTree_Syn_ConstraintList :: ConstraintList }+wrap_ConstraintList :: T_ConstraintList ->+ Inh_ConstraintList ->+ Syn_ConstraintList +wrap_ConstraintList sem (Inh_ConstraintList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ConstraintList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ConstraintList_Cons :: T_Constraint ->+ T_ConstraintList ->+ T_ConstraintList +sem_ConstraintList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ConstraintList + _lhsOfixedUpIdentifiersTree :: ConstraintList + _lhsOoriginalTree :: ConstraintList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: Constraint + _hdIfixedUpIdentifiersTree :: Constraint + _hdIoriginalTree :: Constraint + _tlIannotatedTree :: ConstraintList + _tlIfixedUpIdentifiersTree :: ConstraintList + _tlIoriginalTree :: ConstraintList + -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_ConstraintList_Nil :: T_ConstraintList +sem_ConstraintList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ConstraintList + _lhsOfixedUpIdentifiersTree :: ConstraintList + _lhsOoriginalTree :: ConstraintList + -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- FnBody ------------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative PlpgsqlFnBody:+ child ann : {Annotation}+ child blk : Statement + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative SqlFnBody:+ child ann : {Annotation}+ child sts : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data FnBody = PlpgsqlFnBody (Annotation) (Statement ) + | SqlFnBody (Annotation) (StatementList ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_FnBody :: FnBody ->+ T_FnBody +sem_FnBody (PlpgsqlFnBody _ann _blk ) =+ (sem_FnBody_PlpgsqlFnBody _ann (sem_Statement _blk ) )+sem_FnBody (SqlFnBody _ann _sts ) =+ (sem_FnBody_SqlFnBody _ann (sem_StatementList _sts ) )+-- semantic domain+type T_FnBody = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( FnBody ,FnBody ,FnBody )+data Inh_FnBody = Inh_FnBody {cat_Inh_FnBody :: Catalog,idenv_Inh_FnBody :: IDEnv,lib_Inh_FnBody :: LocalBindings}+data Syn_FnBody = Syn_FnBody {annotatedTree_Syn_FnBody :: FnBody ,fixedUpIdentifiersTree_Syn_FnBody :: FnBody ,originalTree_Syn_FnBody :: FnBody }+wrap_FnBody :: T_FnBody ->+ Inh_FnBody ->+ Syn_FnBody +wrap_FnBody sem (Inh_FnBody _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_FnBody _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_FnBody_PlpgsqlFnBody :: Annotation ->+ T_Statement ->+ T_FnBody +sem_FnBody_PlpgsqlFnBody ann_ blk_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _blkOinProducedCat :: Catalog+ _lhsOannotatedTree :: FnBody + _lhsOfixedUpIdentifiersTree :: FnBody + _lhsOoriginalTree :: FnBody + _blkOcat :: Catalog+ _blkOidenv :: IDEnv+ _blkOlib :: LocalBindings+ _blkIannotatedTree :: Statement + _blkIcatUpdates :: ([CatalogUpdate])+ _blkIfixedUpIdentifiersTree :: Statement + _blkIlibUpdates :: ([LocalBindingsUpdate])+ _blkIoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 104, column 9)+ _blkOinProducedCat =+ emptyCatalog+ -- self rule+ _annotatedTree =+ PlpgsqlFnBody ann_ _blkIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ PlpgsqlFnBody ann_ _blkIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ PlpgsqlFnBody ann_ _blkIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _blkOcat =+ _lhsIcat+ -- copy rule (down)+ _blkOidenv =+ _lhsIidenv+ -- copy rule (down)+ _blkOlib =+ _lhsIlib+ ( _blkIannotatedTree,_blkIcatUpdates,_blkIfixedUpIdentifiersTree,_blkIlibUpdates,_blkIoriginalTree) =+ blk_ _blkOcat _blkOidenv _blkOinProducedCat _blkOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_FnBody_SqlFnBody :: Annotation ->+ T_StatementList ->+ T_FnBody +sem_FnBody_SqlFnBody ann_ sts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _stsOcatUpdates :: ([CatalogUpdate])+ _stsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: FnBody + _lhsOfixedUpIdentifiersTree :: FnBody + _lhsOoriginalTree :: FnBody + _stsOcat :: Catalog+ _stsOidenv :: IDEnv+ _stsOlib :: LocalBindings+ _stsIannotatedTree :: StatementList + _stsIfixedUpIdentifiersTree :: StatementList + _stsIoriginalTree :: StatementList + _stsIproducedCat :: Catalog+ _stsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 129, column 9)+ _stsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 130, column 9)+ _stsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ SqlFnBody ann_ _stsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ SqlFnBody ann_ _stsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ SqlFnBody ann_ _stsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _stsOcat =+ _lhsIcat+ -- copy rule (down)+ _stsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _stsOlib =+ _lhsIlib+ ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =+ sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- InList ------------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ expectedType : Maybe Type+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + listType : Either [TypeError] Type+ originalTree : SELF + alternatives:+ alternative InList:+ child ann : {Annotation}+ child exprs : ScalarExprList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative InQueryExpr:+ child ann : {Annotation}+ child sel : QueryExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data InList = InList (Annotation) (ScalarExprList ) + | InQueryExpr (Annotation) (QueryExpr ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_InList :: InList ->+ T_InList +sem_InList (InList _ann _exprs ) =+ (sem_InList_InList _ann (sem_ScalarExprList _exprs ) )+sem_InList (InQueryExpr _ann _sel ) =+ (sem_InList_InQueryExpr _ann (sem_QueryExpr _sel ) )+-- semantic domain+type T_InList = Catalog ->+ (Maybe Type) ->+ IDEnv ->+ LocalBindings ->+ ( InList ,InList ,(Either [TypeError] Type),InList )+data Inh_InList = Inh_InList {cat_Inh_InList :: Catalog,expectedType_Inh_InList :: (Maybe Type),idenv_Inh_InList :: IDEnv,lib_Inh_InList :: LocalBindings}+data Syn_InList = Syn_InList {annotatedTree_Syn_InList :: InList ,fixedUpIdentifiersTree_Syn_InList :: InList ,listType_Syn_InList :: (Either [TypeError] Type),originalTree_Syn_InList :: InList }+wrap_InList :: T_InList ->+ Inh_InList ->+ Syn_InList +wrap_InList sem (Inh_InList _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib + in (Syn_InList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlistType _lhsOoriginalTree ))+sem_InList_InList :: Annotation ->+ T_ScalarExprList ->+ T_InList +sem_InList_InList ann_ exprs_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOlistType :: (Either [TypeError] Type)+ _exprsOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: InList + _lhsOfixedUpIdentifiersTree :: InList + _lhsOoriginalTree :: InList + _exprsOcat :: Catalog+ _exprsOidenv :: IDEnv+ _exprsOlib :: LocalBindings+ _exprsIannotatedTree :: ScalarExprList + _exprsIfixedUpIdentifiersTree :: ScalarExprList + _exprsIoriginalTree :: ScalarExprList + _exprsIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 409, column 9)+ _lhsOlistType =+ mapM lmt _exprsIuType >>= resolveResultSetType _lhsIcat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 410, column 9)+ _exprsOexpectedTypes =+ repeat _lhsIexpectedType+ -- self rule+ _annotatedTree =+ InList ann_ _exprsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ InList ann_ _exprsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ InList ann_ _exprsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprsOcat =+ _lhsIcat+ -- copy rule (down)+ _exprsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprsOlib =+ _lhsIlib+ ( _exprsIannotatedTree,_exprsIfixedUpIdentifiersTree,_exprsIoriginalTree,_exprsIuType) =+ exprs_ _exprsOcat _exprsOexpectedTypes _exprsOidenv _exprsOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))+sem_InList_InQueryExpr :: Annotation ->+ T_QueryExpr ->+ T_InList +sem_InList_InQueryExpr ann_ sel_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOlistType :: (Either [TypeError] Type)+ _selOcsql :: LocalBindings+ _selOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: InList + _lhsOfixedUpIdentifiersTree :: InList + _lhsOoriginalTree :: InList + _selOcat :: Catalog+ _selOidenv :: IDEnv+ _selOlib :: LocalBindings+ _selIannotatedTree :: QueryExpr + _selIcidenv :: IDEnv+ _selIfixedUpIdentifiersTree :: QueryExpr + _selIlibUpdates :: ([LocalBindingsUpdate])+ _selIoriginalTree :: QueryExpr + _selIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 413, column 9)+ _lhsOlistType =+ do+ st <- lmt (map snd <$> _selIuType)+ case length st of+ 0 -> Left [InternalError+ "got subquery with no columns? in inselect"]+ 1 -> Right $ head st+ _ -> Right $ AnonymousRecordType st+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 120, column 19)+ _selOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 173, column 19)+ _selOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ InQueryExpr ann_ _selIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ InQueryExpr ann_ _selIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ InQueryExpr ann_ _selIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _selOcat =+ _lhsIcat+ -- copy rule (down)+ _selOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOlib =+ _lhsIlib+ ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =+ sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))+-- JoinExpr ----------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative JoinOn:+ child ann : {Annotation}+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative JoinUsing:+ child ann : {Annotation}+ child x : {[String]}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data JoinExpr = JoinOn (Annotation) (ScalarExpr ) + | JoinUsing (Annotation) (([String])) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_JoinExpr :: JoinExpr ->+ T_JoinExpr +sem_JoinExpr (JoinOn _ann _expr ) =+ (sem_JoinExpr_JoinOn _ann (sem_ScalarExpr _expr ) )+sem_JoinExpr (JoinUsing _ann _x ) =+ (sem_JoinExpr_JoinUsing _ann _x )+-- semantic domain+type T_JoinExpr = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( JoinExpr ,JoinExpr ,JoinExpr )+data Inh_JoinExpr = Inh_JoinExpr {cat_Inh_JoinExpr :: Catalog,idenv_Inh_JoinExpr :: IDEnv,lib_Inh_JoinExpr :: LocalBindings}+data Syn_JoinExpr = Syn_JoinExpr {annotatedTree_Syn_JoinExpr :: JoinExpr ,fixedUpIdentifiersTree_Syn_JoinExpr :: JoinExpr ,originalTree_Syn_JoinExpr :: JoinExpr }+wrap_JoinExpr :: T_JoinExpr ->+ Inh_JoinExpr ->+ Syn_JoinExpr +wrap_JoinExpr sem (Inh_JoinExpr _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_JoinExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_JoinExpr_JoinOn :: Annotation ->+ T_ScalarExpr ->+ T_JoinExpr +sem_JoinExpr_JoinOn ann_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: JoinExpr + _lhsOfixedUpIdentifiersTree :: JoinExpr + _lhsOoriginalTree :: JoinExpr + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 94, column 14)+ _exprOexpectedType =+ Just typeBool+ -- self rule+ _annotatedTree =+ JoinOn ann_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ JoinOn ann_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ JoinOn ann_ _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_JoinExpr_JoinUsing :: Annotation ->+ ([String]) ->+ T_JoinExpr +sem_JoinExpr_JoinUsing ann_ x_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: JoinExpr + _lhsOfixedUpIdentifiersTree :: JoinExpr + _lhsOoriginalTree :: JoinExpr + -- self rule+ _annotatedTree =+ JoinUsing ann_ x_+ -- self rule+ _fixedUpIdentifiersTree =+ JoinUsing ann_ x_+ -- self rule+ _originalTree =+ JoinUsing ann_ x_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- MaybeBoolExpr -----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Just:+ child just : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nothing:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type MaybeBoolExpr = Maybe ScalarExpr +-- cata+sem_MaybeBoolExpr :: MaybeBoolExpr ->+ T_MaybeBoolExpr +sem_MaybeBoolExpr (Prelude.Just x ) =+ (sem_MaybeBoolExpr_Just (sem_ScalarExpr x ) )+sem_MaybeBoolExpr Prelude.Nothing =+ sem_MaybeBoolExpr_Nothing+-- semantic domain+type T_MaybeBoolExpr = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( MaybeBoolExpr ,MaybeBoolExpr ,MaybeBoolExpr )+data Inh_MaybeBoolExpr = Inh_MaybeBoolExpr {cat_Inh_MaybeBoolExpr :: Catalog,idenv_Inh_MaybeBoolExpr :: IDEnv,lib_Inh_MaybeBoolExpr :: LocalBindings}+data Syn_MaybeBoolExpr = Syn_MaybeBoolExpr {annotatedTree_Syn_MaybeBoolExpr :: MaybeBoolExpr ,fixedUpIdentifiersTree_Syn_MaybeBoolExpr :: MaybeBoolExpr ,originalTree_Syn_MaybeBoolExpr :: MaybeBoolExpr }+wrap_MaybeBoolExpr :: T_MaybeBoolExpr ->+ Inh_MaybeBoolExpr ->+ Syn_MaybeBoolExpr +wrap_MaybeBoolExpr sem (Inh_MaybeBoolExpr _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_MaybeBoolExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_MaybeBoolExpr_Just :: T_ScalarExpr ->+ T_MaybeBoolExpr +sem_MaybeBoolExpr_Just just_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: MaybeBoolExpr + _justOexpectedType :: (Maybe Type)+ _lhsOfixedUpIdentifiersTree :: MaybeBoolExpr + _lhsOoriginalTree :: MaybeBoolExpr + _justOcat :: Catalog+ _justOidenv :: IDEnv+ _justOlib :: LocalBindings+ _justIannotatedTree :: ScalarExpr + _justIfixedUpIdentifiersTree :: ScalarExpr + _justIoriginalTree :: ScalarExpr + _justIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 132, column 9)+ _lhsOannotatedTree =+ let t = _justIuType+ in if t `elem` [Nothing,Just typeBool]+ then Just _justIannotatedTree+ else Just $ addTypeErrors [ExpressionMustBeBool] _justIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 97, column 12)+ _justOexpectedType =+ Just typeBool+ -- self rule+ _annotatedTree =+ Just _justIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Just _justIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Just _justIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _justOcat =+ _lhsIcat+ -- copy rule (down)+ _justOidenv =+ _lhsIidenv+ -- copy rule (down)+ _justOlib =+ _lhsIlib+ ( _justIannotatedTree,_justIfixedUpIdentifiersTree,_justIoriginalTree,_justIuType) =+ just_ _justOcat _justOexpectedType _justOidenv _justOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_MaybeBoolExpr_Nothing :: T_MaybeBoolExpr +sem_MaybeBoolExpr_Nothing =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: MaybeBoolExpr + _lhsOfixedUpIdentifiersTree :: MaybeBoolExpr + _lhsOoriginalTree :: MaybeBoolExpr + -- self rule+ _annotatedTree =+ Nothing+ -- self rule+ _fixedUpIdentifiersTree =+ Nothing+ -- self rule+ _originalTree =+ Nothing+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- MaybeScalarExpr ---------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + uType : Maybe Type+ alternatives:+ alternative Just:+ child just : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nothing:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type MaybeScalarExpr = Maybe ScalarExpr +-- cata+sem_MaybeScalarExpr :: MaybeScalarExpr ->+ T_MaybeScalarExpr +sem_MaybeScalarExpr (Prelude.Just x ) =+ (sem_MaybeScalarExpr_Just (sem_ScalarExpr x ) )+sem_MaybeScalarExpr Prelude.Nothing =+ sem_MaybeScalarExpr_Nothing+-- semantic domain+type T_MaybeScalarExpr = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( MaybeScalarExpr ,MaybeScalarExpr ,MaybeScalarExpr ,(Maybe Type))+data Inh_MaybeScalarExpr = Inh_MaybeScalarExpr {cat_Inh_MaybeScalarExpr :: Catalog,idenv_Inh_MaybeScalarExpr :: IDEnv,lib_Inh_MaybeScalarExpr :: LocalBindings}+data Syn_MaybeScalarExpr = Syn_MaybeScalarExpr {annotatedTree_Syn_MaybeScalarExpr :: MaybeScalarExpr ,fixedUpIdentifiersTree_Syn_MaybeScalarExpr :: MaybeScalarExpr ,originalTree_Syn_MaybeScalarExpr :: MaybeScalarExpr ,uType_Syn_MaybeScalarExpr :: (Maybe Type)}+wrap_MaybeScalarExpr :: T_MaybeScalarExpr ->+ Inh_MaybeScalarExpr ->+ Syn_MaybeScalarExpr +wrap_MaybeScalarExpr sem (Inh_MaybeScalarExpr _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_MaybeScalarExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))+sem_MaybeScalarExpr_Just :: T_ScalarExpr ->+ T_MaybeScalarExpr +sem_MaybeScalarExpr_Just just_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOuType :: (Maybe Type)+ _justOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: MaybeScalarExpr + _lhsOfixedUpIdentifiersTree :: MaybeScalarExpr + _lhsOoriginalTree :: MaybeScalarExpr + _justOcat :: Catalog+ _justOidenv :: IDEnv+ _justOlib :: LocalBindings+ _justIannotatedTree :: ScalarExpr + _justIfixedUpIdentifiersTree :: ScalarExpr + _justIoriginalTree :: ScalarExpr + _justIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 124, column 12)+ _lhsOuType =+ _justIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 100, column 12)+ _justOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ Just _justIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Just _justIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Just _justIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _justOcat =+ _lhsIcat+ -- copy rule (down)+ _justOidenv =+ _lhsIidenv+ -- copy rule (down)+ _justOlib =+ _lhsIlib+ ( _justIannotatedTree,_justIfixedUpIdentifiersTree,_justIoriginalTree,_justIuType) =+ just_ _justOcat _justOexpectedType _justOidenv _justOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_MaybeScalarExpr_Nothing :: T_MaybeScalarExpr +sem_MaybeScalarExpr_Nothing =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOuType :: (Maybe Type)+ _lhsOannotatedTree :: MaybeScalarExpr + _lhsOfixedUpIdentifiersTree :: MaybeScalarExpr + _lhsOoriginalTree :: MaybeScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 125, column 15)+ _lhsOuType =+ Nothing+ -- self rule+ _annotatedTree =+ Nothing+ -- self rule+ _fixedUpIdentifiersTree =+ Nothing+ -- self rule+ _originalTree =+ Nothing+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+-- MaybeSelectList ---------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + listType : [(String,Maybe Type)]+ originalTree : SELF + alternatives:+ alternative Just:+ child just : SelectList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nothing:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type MaybeSelectList = Maybe SelectList +-- cata+sem_MaybeSelectList :: MaybeSelectList ->+ T_MaybeSelectList +sem_MaybeSelectList (Prelude.Just x ) =+ (sem_MaybeSelectList_Just (sem_SelectList x ) )+sem_MaybeSelectList Prelude.Nothing =+ sem_MaybeSelectList_Nothing+-- semantic domain+type T_MaybeSelectList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( MaybeSelectList ,MaybeSelectList ,([(String,Maybe Type)]),MaybeSelectList )+data Inh_MaybeSelectList = Inh_MaybeSelectList {cat_Inh_MaybeSelectList :: Catalog,idenv_Inh_MaybeSelectList :: IDEnv,lib_Inh_MaybeSelectList :: LocalBindings}+data Syn_MaybeSelectList = Syn_MaybeSelectList {annotatedTree_Syn_MaybeSelectList :: MaybeSelectList ,fixedUpIdentifiersTree_Syn_MaybeSelectList :: MaybeSelectList ,listType_Syn_MaybeSelectList :: ([(String,Maybe Type)]),originalTree_Syn_MaybeSelectList :: MaybeSelectList }+wrap_MaybeSelectList :: T_MaybeSelectList ->+ Inh_MaybeSelectList ->+ Syn_MaybeSelectList +wrap_MaybeSelectList sem (Inh_MaybeSelectList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_MaybeSelectList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlistType _lhsOoriginalTree ))+sem_MaybeSelectList_Just :: T_SelectList ->+ T_MaybeSelectList +sem_MaybeSelectList_Just just_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOlistType :: ([(String,Maybe Type)])+ _lhsOannotatedTree :: MaybeSelectList + _lhsOfixedUpIdentifiersTree :: MaybeSelectList + _lhsOoriginalTree :: MaybeSelectList + _justOcat :: Catalog+ _justOidenv :: IDEnv+ _justOlib :: LocalBindings+ _justIannotatedTree :: SelectList + _justIcidenv :: IDEnv+ _justIfixedUpIdentifiersTree :: SelectList + _justIlibUpdates :: ([LocalBindingsUpdate])+ _justIlistType :: ([(String,Maybe Type)])+ _justIoriginalTree :: SelectList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 38, column 12)+ _lhsOlistType =+ _justIlistType+ -- self rule+ _annotatedTree =+ Just _justIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Just _justIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Just _justIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _justOcat =+ _lhsIcat+ -- copy rule (down)+ _justOidenv =+ _lhsIidenv+ -- copy rule (down)+ _justOlib =+ _lhsIlib+ ( _justIannotatedTree,_justIcidenv,_justIfixedUpIdentifiersTree,_justIlibUpdates,_justIlistType,_justIoriginalTree) =+ just_ _justOcat _justOidenv _justOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))+sem_MaybeSelectList_Nothing :: T_MaybeSelectList +sem_MaybeSelectList_Nothing =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOlistType :: ([(String,Maybe Type)])+ _lhsOannotatedTree :: MaybeSelectList + _lhsOfixedUpIdentifiersTree :: MaybeSelectList + _lhsOoriginalTree :: MaybeSelectList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 39, column 15)+ _lhsOlistType =+ []+ -- self rule+ _annotatedTree =+ Nothing+ -- self rule+ _fixedUpIdentifiersTree =+ Nothing+ -- self rule+ _originalTree =+ Nothing+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))+-- OnExpr ------------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Just:+ child just : JoinExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nothing:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type OnExpr = Maybe JoinExpr +-- cata+sem_OnExpr :: OnExpr ->+ T_OnExpr +sem_OnExpr (Prelude.Just x ) =+ (sem_OnExpr_Just (sem_JoinExpr x ) )+sem_OnExpr Prelude.Nothing =+ sem_OnExpr_Nothing+-- semantic domain+type T_OnExpr = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( OnExpr ,OnExpr ,OnExpr )+data Inh_OnExpr = Inh_OnExpr {cat_Inh_OnExpr :: Catalog,idenv_Inh_OnExpr :: IDEnv,lib_Inh_OnExpr :: LocalBindings}+data Syn_OnExpr = Syn_OnExpr {annotatedTree_Syn_OnExpr :: OnExpr ,fixedUpIdentifiersTree_Syn_OnExpr :: OnExpr ,originalTree_Syn_OnExpr :: OnExpr }+wrap_OnExpr :: T_OnExpr ->+ Inh_OnExpr ->+ Syn_OnExpr +wrap_OnExpr sem (Inh_OnExpr _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_OnExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_OnExpr_Just :: T_JoinExpr ->+ T_OnExpr +sem_OnExpr_Just just_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: OnExpr + _lhsOfixedUpIdentifiersTree :: OnExpr + _lhsOoriginalTree :: OnExpr + _justOcat :: Catalog+ _justOidenv :: IDEnv+ _justOlib :: LocalBindings+ _justIannotatedTree :: JoinExpr + _justIfixedUpIdentifiersTree :: JoinExpr + _justIoriginalTree :: JoinExpr + -- self rule+ _annotatedTree =+ Just _justIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Just _justIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Just _justIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _justOcat =+ _lhsIcat+ -- copy rule (down)+ _justOidenv =+ _lhsIidenv+ -- copy rule (down)+ _justOlib =+ _lhsIlib+ ( _justIannotatedTree,_justIfixedUpIdentifiersTree,_justIoriginalTree) =+ just_ _justOcat _justOidenv _justOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_OnExpr_Nothing :: T_OnExpr +sem_OnExpr_Nothing =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: OnExpr + _lhsOfixedUpIdentifiersTree :: OnExpr + _lhsOoriginalTree :: OnExpr + -- self rule+ _annotatedTree =+ Nothing+ -- self rule+ _fixedUpIdentifiersTree =+ Nothing+ -- self rule+ _originalTree =+ Nothing+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ParamDef ----------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ pos : Int+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + namedType : Maybe Type+ originalTree : SELF + paramName : ParamName+ alternatives:+ alternative ParamDef:+ child ann : {Annotation}+ child name : {String}+ child typ : TypeName + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ParamDefTp:+ child ann : {Annotation}+ child typ : TypeName + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data ParamDef = ParamDef (Annotation) (String) (TypeName ) + | ParamDefTp (Annotation) (TypeName ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_ParamDef :: ParamDef ->+ T_ParamDef +sem_ParamDef (ParamDef _ann _name _typ ) =+ (sem_ParamDef_ParamDef _ann _name (sem_TypeName _typ ) )+sem_ParamDef (ParamDefTp _ann _typ ) =+ (sem_ParamDef_ParamDefTp _ann (sem_TypeName _typ ) )+-- semantic domain+type T_ParamDef = Catalog ->+ IDEnv ->+ LocalBindings ->+ Int ->+ ( ParamDef ,ParamDef ,(Maybe Type),ParamDef ,ParamName)+data Inh_ParamDef = Inh_ParamDef {cat_Inh_ParamDef :: Catalog,idenv_Inh_ParamDef :: IDEnv,lib_Inh_ParamDef :: LocalBindings,pos_Inh_ParamDef :: Int}+data Syn_ParamDef = Syn_ParamDef {annotatedTree_Syn_ParamDef :: ParamDef ,fixedUpIdentifiersTree_Syn_ParamDef :: ParamDef ,namedType_Syn_ParamDef :: (Maybe Type),originalTree_Syn_ParamDef :: ParamDef ,paramName_Syn_ParamDef :: ParamName}+wrap_ParamDef :: T_ParamDef ->+ Inh_ParamDef ->+ Syn_ParamDef +wrap_ParamDef sem (Inh_ParamDef _lhsIcat _lhsIidenv _lhsIlib _lhsIpos ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree,_lhsOparamName) = sem _lhsIcat _lhsIidenv _lhsIlib _lhsIpos + in (Syn_ParamDef _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree _lhsOparamName ))+sem_ParamDef_ParamDef :: Annotation ->+ String ->+ T_TypeName ->+ T_ParamDef +sem_ParamDef_ParamDef ann_ name_ typ_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib+ _lhsIpos ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOparamName :: ParamName+ _lhsOannotatedTree :: ParamDef + _lhsOfixedUpIdentifiersTree :: ParamDef + _lhsOoriginalTree :: ParamDef + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 45, column 9)+ _lhsOnamedType =+ _typInamedType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 47, column 9)+ _lhsOparamName =+ NamedParam _lhsIpos name_+ -- self rule+ _annotatedTree =+ ParamDef ann_ name_ _typIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ParamDef ann_ name_ _typIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ParamDef ann_ name_ _typIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree,_lhsOparamName)))+sem_ParamDef_ParamDefTp :: Annotation ->+ T_TypeName ->+ T_ParamDef +sem_ParamDef_ParamDefTp ann_ typ_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib+ _lhsIpos ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOparamName :: ParamName+ _lhsOannotatedTree :: ParamDef + _lhsOfixedUpIdentifiersTree :: ParamDef + _lhsOoriginalTree :: ParamDef + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 45, column 9)+ _lhsOnamedType =+ _typInamedType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 49, column 9)+ _lhsOparamName =+ UnnamedParam _lhsIpos+ -- self rule+ _annotatedTree =+ ParamDefTp ann_ _typIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ParamDefTp ann_ _typIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ParamDefTp ann_ _typIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree,_lhsOparamName)))+-- ParamDefList ------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ pos : Int+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + params : [(ParamName, Maybe Type)]+ alternatives:+ alternative Cons:+ child hd : ParamDef + child tl : ParamDefList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ParamDefList = [ParamDef ]+-- cata+sem_ParamDefList :: ParamDefList ->+ T_ParamDefList +sem_ParamDefList list =+ (Prelude.foldr sem_ParamDefList_Cons sem_ParamDefList_Nil (Prelude.map sem_ParamDef list) )+-- semantic domain+type T_ParamDefList = Catalog ->+ IDEnv ->+ LocalBindings ->+ Int ->+ ( ParamDefList ,ParamDefList ,ParamDefList ,([(ParamName, Maybe Type)]))+data Inh_ParamDefList = Inh_ParamDefList {cat_Inh_ParamDefList :: Catalog,idenv_Inh_ParamDefList :: IDEnv,lib_Inh_ParamDefList :: LocalBindings,pos_Inh_ParamDefList :: Int}+data Syn_ParamDefList = Syn_ParamDefList {annotatedTree_Syn_ParamDefList :: ParamDefList ,fixedUpIdentifiersTree_Syn_ParamDefList :: ParamDefList ,originalTree_Syn_ParamDefList :: ParamDefList ,params_Syn_ParamDefList :: ([(ParamName, Maybe Type)])}+wrap_ParamDefList :: T_ParamDefList ->+ Inh_ParamDefList ->+ Syn_ParamDefList +wrap_ParamDefList sem (Inh_ParamDefList _lhsIcat _lhsIidenv _lhsIlib _lhsIpos ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOparams) = sem _lhsIcat _lhsIidenv _lhsIlib _lhsIpos + in (Syn_ParamDefList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOparams ))+sem_ParamDefList_Cons :: T_ParamDef ->+ T_ParamDefList ->+ T_ParamDefList +sem_ParamDefList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib+ _lhsIpos ->+ (let _lhsOparams :: ([(ParamName, Maybe Type)])+ _hdOpos :: Int+ _tlOpos :: Int+ _lhsOannotatedTree :: ParamDefList + _lhsOfixedUpIdentifiersTree :: ParamDefList + _lhsOoriginalTree :: ParamDefList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: ParamDef + _hdIfixedUpIdentifiersTree :: ParamDef + _hdInamedType :: (Maybe Type)+ _hdIoriginalTree :: ParamDef + _hdIparamName :: ParamName+ _tlIannotatedTree :: ParamDefList + _tlIfixedUpIdentifiersTree :: ParamDefList + _tlIoriginalTree :: ParamDefList + _tlIparams :: ([(ParamName, Maybe Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 53, column 13)+ _lhsOparams =+ ((_hdIparamName, _hdInamedType) : _tlIparams)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 54, column 13)+ _hdOpos =+ _lhsIpos+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 55, column 13)+ _tlOpos =+ _lhsIpos + 1+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree,_hdIparamName) =+ hd_ _hdOcat _hdOidenv _hdOlib _hdOpos + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIparams) =+ tl_ _tlOcat _tlOidenv _tlOlib _tlOpos + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOparams)))+sem_ParamDefList_Nil :: T_ParamDefList +sem_ParamDefList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib+ _lhsIpos ->+ (let _lhsOparams :: ([(ParamName, Maybe Type)])+ _lhsOannotatedTree :: ParamDefList + _lhsOfixedUpIdentifiersTree :: ParamDefList + _lhsOoriginalTree :: ParamDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 52, column 12)+ _lhsOparams =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOparams)))+-- QueryExpr ---------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ csql : LocalBindings+ expectedTypes : [Maybe Type]+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + cidenv : IDEnv+ fixedUpIdentifiersTree : SELF + libUpdates : [LocalBindingsUpdate]+ originalTree : SELF + uType : Maybe [(String,Type)]+ alternatives:+ alternative CombineQueryExpr:+ child ann : {Annotation}+ child ctype : {CombineType}+ child sel1 : QueryExpr + child sel2 : QueryExpr + visit 0:+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Select:+ child ann : {Annotation}+ child selDistinct : {Distinct}+ child selSelectList : SelectList + child selTref : TableRefList + child selWhere : MaybeBoolExpr + child selGroupBy : ScalarExprList + child selHaving : MaybeBoolExpr + child selOrderBy : ScalarExprDirectionPairList + child selLimit : MaybeScalarExpr + child selOffset : MaybeScalarExpr + visit 0:+ local trefEnv : _+ local includeCorrelations : _+ local newLib : _+ local slTypes : {LocalBindings}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Values:+ child ann : {Annotation}+ child vll : ScalarExprListList + visit 0:+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative WithQueryExpr:+ child ann : {Annotation}+ child withs : WithQueryList + child ex : QueryExpr + visit 0:+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data QueryExpr = CombineQueryExpr (Annotation) (CombineType) (QueryExpr ) (QueryExpr ) + | Select (Annotation) (Distinct) (SelectList ) (TableRefList ) (MaybeBoolExpr ) (ScalarExprList ) (MaybeBoolExpr ) (ScalarExprDirectionPairList ) (MaybeScalarExpr ) (MaybeScalarExpr ) + | Values (Annotation) (ScalarExprListList ) + | WithQueryExpr (Annotation) (WithQueryList ) (QueryExpr ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_QueryExpr :: QueryExpr ->+ T_QueryExpr +sem_QueryExpr (CombineQueryExpr _ann _ctype _sel1 _sel2 ) =+ (sem_QueryExpr_CombineQueryExpr _ann _ctype (sem_QueryExpr _sel1 ) (sem_QueryExpr _sel2 ) )+sem_QueryExpr (Select _ann _selDistinct _selSelectList _selTref _selWhere _selGroupBy _selHaving _selOrderBy _selLimit _selOffset ) =+ (sem_QueryExpr_Select _ann _selDistinct (sem_SelectList _selSelectList ) (sem_TableRefList _selTref ) (sem_MaybeBoolExpr _selWhere ) (sem_ScalarExprList _selGroupBy ) (sem_MaybeBoolExpr _selHaving ) (sem_ScalarExprDirectionPairList _selOrderBy ) (sem_MaybeScalarExpr _selLimit ) (sem_MaybeScalarExpr _selOffset ) )+sem_QueryExpr (Values _ann _vll ) =+ (sem_QueryExpr_Values _ann (sem_ScalarExprListList _vll ) )+sem_QueryExpr (WithQueryExpr _ann _withs _ex ) =+ (sem_QueryExpr_WithQueryExpr _ann (sem_WithQueryList _withs ) (sem_QueryExpr _ex ) )+-- semantic domain+type T_QueryExpr = Catalog ->+ LocalBindings ->+ ([Maybe Type]) ->+ IDEnv ->+ LocalBindings ->+ ( QueryExpr ,IDEnv,QueryExpr ,([LocalBindingsUpdate]),QueryExpr ,(Maybe [(String,Type)]))+data Inh_QueryExpr = Inh_QueryExpr {cat_Inh_QueryExpr :: Catalog,csql_Inh_QueryExpr :: LocalBindings,expectedTypes_Inh_QueryExpr :: ([Maybe Type]),idenv_Inh_QueryExpr :: IDEnv,lib_Inh_QueryExpr :: LocalBindings}+data Syn_QueryExpr = Syn_QueryExpr {annotatedTree_Syn_QueryExpr :: QueryExpr ,cidenv_Syn_QueryExpr :: IDEnv,fixedUpIdentifiersTree_Syn_QueryExpr :: QueryExpr ,libUpdates_Syn_QueryExpr :: ([LocalBindingsUpdate]),originalTree_Syn_QueryExpr :: QueryExpr ,uType_Syn_QueryExpr :: (Maybe [(String,Type)])}+wrap_QueryExpr :: T_QueryExpr ->+ Inh_QueryExpr ->+ Syn_QueryExpr +wrap_QueryExpr sem (Inh_QueryExpr _lhsIcat _lhsIcsql _lhsIexpectedTypes _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIcsql _lhsIexpectedTypes _lhsIidenv _lhsIlib + in (Syn_QueryExpr _lhsOannotatedTree _lhsOcidenv _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOoriginalTree _lhsOuType ))+sem_QueryExpr_CombineQueryExpr :: Annotation ->+ CombineType ->+ T_QueryExpr ->+ T_QueryExpr ->+ T_QueryExpr +sem_QueryExpr_CombineQueryExpr ann_ ctype_ sel1_ sel2_ =+ (\ _lhsIcat+ _lhsIcsql+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOcidenv :: IDEnv+ _lhsOannotatedTree :: QueryExpr + _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: Et+ _lhsOuType :: (Maybe [(String,Type)])+ _lhsOfixedUpIdentifiersTree :: QueryExpr + _lhsOoriginalTree :: QueryExpr + _sel1Ocat :: Catalog+ _sel1Ocsql :: LocalBindings+ _sel1OexpectedTypes :: ([Maybe Type])+ _sel1Oidenv :: IDEnv+ _sel1Olib :: LocalBindings+ _sel2Ocat :: Catalog+ _sel2Ocsql :: LocalBindings+ _sel2OexpectedTypes :: ([Maybe Type])+ _sel2Oidenv :: IDEnv+ _sel2Olib :: LocalBindings+ _sel1IannotatedTree :: QueryExpr + _sel1Icidenv :: IDEnv+ _sel1IfixedUpIdentifiersTree :: QueryExpr + _sel1IlibUpdates :: ([LocalBindingsUpdate])+ _sel1IoriginalTree :: QueryExpr + _sel1IuType :: (Maybe [(String,Type)])+ _sel2IannotatedTree :: QueryExpr + _sel2Icidenv :: IDEnv+ _sel2IfixedUpIdentifiersTree :: QueryExpr + _sel2IlibUpdates :: ([LocalBindingsUpdate])+ _sel2IoriginalTree :: QueryExpr + _sel2IuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 230, column 24)+ _lhsOcidenv =+ _sel1Icidenv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)+ _lhsOannotatedTree =+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 141, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 168, column 9)+ _tpe =+ do+ sel1t <- lmt ((SetOfType . CompositeType) <$> _sel1IuType)+ sel2t <- lmt ((SetOfType . CompositeType) <$> _sel2IuType)+ typeCheckCombineSelect _lhsIcat sel1t sel2t+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 174, column 9)+ _backTree =+ CombineQueryExpr ann_ ctype_+ _sel1IannotatedTree+ _sel2IannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)+ _lhsOuType =+ etmt (_tpe >>= unwrapSetOfComposite)+ -- self rule+ _annotatedTree =+ CombineQueryExpr ann_ ctype_ _sel1IannotatedTree _sel2IannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CombineQueryExpr ann_ ctype_ _sel1IfixedUpIdentifiersTree _sel2IfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CombineQueryExpr ann_ ctype_ _sel1IoriginalTree _sel2IoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _sel1Ocat =+ _lhsIcat+ -- copy rule (down)+ _sel1Ocsql =+ _lhsIcsql+ -- copy rule (down)+ _sel1OexpectedTypes =+ _lhsIexpectedTypes+ -- copy rule (down)+ _sel1Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _sel1Olib =+ _lhsIlib+ -- copy rule (down)+ _sel2Ocat =+ _lhsIcat+ -- copy rule (down)+ _sel2Ocsql =+ _lhsIcsql+ -- copy rule (down)+ _sel2OexpectedTypes =+ _lhsIexpectedTypes+ -- copy rule (down)+ _sel2Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _sel2Olib =+ _lhsIlib+ ( _sel1IannotatedTree,_sel1Icidenv,_sel1IfixedUpIdentifiersTree,_sel1IlibUpdates,_sel1IoriginalTree,_sel1IuType) =+ sel1_ _sel1Ocat _sel1Ocsql _sel1OexpectedTypes _sel1Oidenv _sel1Olib + ( _sel2IannotatedTree,_sel2Icidenv,_sel2IfixedUpIdentifiersTree,_sel2IlibUpdates,_sel2IoriginalTree,_sel2IuType) =+ sel2_ _sel2Ocat _sel2Ocsql _sel2OexpectedTypes _sel2Oidenv _sel2Olib + in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))+sem_QueryExpr_Select :: Annotation ->+ Distinct ->+ T_SelectList ->+ T_TableRefList ->+ T_MaybeBoolExpr ->+ T_ScalarExprList ->+ T_MaybeBoolExpr ->+ T_ScalarExprDirectionPairList ->+ T_MaybeScalarExpr ->+ T_MaybeScalarExpr ->+ T_QueryExpr +sem_QueryExpr_Select ann_ selDistinct_ selSelectList_ selTref_ selWhere_ selGroupBy_ selHaving_ selOrderBy_ selLimit_ selOffset_ =+ (\ _lhsIcat+ _lhsIcsql+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfixedUpIdentifiersTree :: QueryExpr + _lhsOcidenv :: IDEnv+ _selSelectListOidenv :: IDEnv+ _selWhereOidenv :: IDEnv+ _selGroupByOidenv :: IDEnv+ _selHavingOidenv :: IDEnv+ _selOrderByOidenv :: IDEnv+ _lhsOannotatedTree :: QueryExpr + _selSelectListOlib :: LocalBindings+ _selWhereOlib :: LocalBindings+ _selHavingOlib :: LocalBindings+ _selGroupByOlib :: LocalBindings+ _slTypes :: LocalBindings+ _selOrderByOlib :: LocalBindings+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: Et+ _lhsOuType :: (Maybe [(String,Type)])+ _selGroupByOexpectedTypes :: ([Maybe Type])+ _lhsOoriginalTree :: QueryExpr + _selSelectListOcat :: Catalog+ _selTrefOcat :: Catalog+ _selTrefOidenv :: IDEnv+ _selTrefOlib :: LocalBindings+ _selWhereOcat :: Catalog+ _selGroupByOcat :: Catalog+ _selHavingOcat :: Catalog+ _selOrderByOcat :: Catalog+ _selLimitOcat :: Catalog+ _selLimitOidenv :: IDEnv+ _selLimitOlib :: LocalBindings+ _selOffsetOcat :: Catalog+ _selOffsetOidenv :: IDEnv+ _selOffsetOlib :: LocalBindings+ _selSelectListIannotatedTree :: SelectList + _selSelectListIcidenv :: IDEnv+ _selSelectListIfixedUpIdentifiersTree :: SelectList + _selSelectListIlibUpdates :: ([LocalBindingsUpdate])+ _selSelectListIlistType :: ([(String,Maybe Type)])+ _selSelectListIoriginalTree :: SelectList + _selTrefIannotatedTree :: TableRefList + _selTrefIfixedUpIdentifiersTree :: TableRefList + _selTrefIlibUpdates :: ([LocalBindingsUpdate])+ _selTrefInewLib2 :: LocalBindings+ _selTrefIoriginalTree :: TableRefList + _selTrefItrefIDs :: ([(String,[String])])+ _selWhereIannotatedTree :: MaybeBoolExpr + _selWhereIfixedUpIdentifiersTree :: MaybeBoolExpr + _selWhereIoriginalTree :: MaybeBoolExpr + _selGroupByIannotatedTree :: ScalarExprList + _selGroupByIfixedUpIdentifiersTree :: ScalarExprList + _selGroupByIoriginalTree :: ScalarExprList + _selGroupByIuType :: ([Maybe Type])+ _selHavingIannotatedTree :: MaybeBoolExpr + _selHavingIfixedUpIdentifiersTree :: MaybeBoolExpr + _selHavingIoriginalTree :: MaybeBoolExpr + _selOrderByIannotatedTree :: ScalarExprDirectionPairList + _selOrderByIfixedUpIdentifiersTree :: ScalarExprDirectionPairList + _selOrderByIoriginalTree :: ScalarExprDirectionPairList + _selLimitIannotatedTree :: MaybeScalarExpr + _selLimitIfixedUpIdentifiersTree :: MaybeScalarExpr + _selLimitIoriginalTree :: MaybeScalarExpr + _selLimitIuType :: (Maybe Type)+ _selOffsetIannotatedTree :: MaybeScalarExpr + _selOffsetIfixedUpIdentifiersTree :: MaybeScalarExpr + _selOffsetIoriginalTree :: MaybeScalarExpr + _selOffsetIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 187, column 9)+ _lhsOfixedUpIdentifiersTree =+ Select ann_+ selDistinct_+ _selSelectListIfixedUpIdentifiersTree+ _selTrefIfixedUpIdentifiersTree+ _selWhereIfixedUpIdentifiersTree+ _selGroupByIfixedUpIdentifiersTree+ _selHavingIfixedUpIdentifiersTree+ _selOrderByIfixedUpIdentifiersTree+ _selLimitIfixedUpIdentifiersTree+ _selOffsetIfixedUpIdentifiersTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 229, column 14)+ _lhsOcidenv =+ _selSelectListIcidenv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 270, column 14)+ _trefEnv =+ makeIDEnvP _selTrefItrefIDs+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 271, column 14)+ _includeCorrelations =+ joinIDEnvs _lhsIidenv _trefEnv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 272, column 14)+ _selSelectListOidenv =+ _trefEnv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 273, column 14)+ _selWhereOidenv =+ _includeCorrelations+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 274, column 14)+ _selGroupByOidenv =+ _trefEnv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 275, column 14)+ _selHavingOidenv =+ _includeCorrelations+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 276, column 14)+ _selOrderByOidenv =+ _trefEnv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)+ _lhsOannotatedTree =+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 101, column 10)+ _newLib =+ _selTrefInewLib2+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 102, column 10)+ _selSelectListOlib =+ _newLib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 104, column 10)+ _selWhereOlib =+ joinBindings _newLib _lhsIcsql+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 105, column 10)+ _selHavingOlib =+ joinBindings _newLib _lhsIcsql+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 106, column 10)+ _selGroupByOlib =+ _newLib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 111, column 10)+ _slTypes =+ createLocalBindings $ Just [("",_selSelectListIlistType)]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 112, column 10)+ _selOrderByOlib =+ joinBindings _slTypes _newLib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 143, column 9)+ _lhsOlibUpdates =+ _selSelectListIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 155, column 9)+ _tpe =+ Right $ SetOfType $ CompositeType $ fromMaybe [] $ liftList _selSelectListIlistType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 157, column 9)+ _backTree =+ Select ann_+ selDistinct_+ _selSelectListIannotatedTree+ _selTrefIannotatedTree+ _selWhereIannotatedTree+ _selGroupByIannotatedTree+ _selHavingIannotatedTree+ _selOrderByIannotatedTree+ _selLimitIannotatedTree+ _selOffsetIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)+ _lhsOuType =+ etmt (_tpe >>= unwrapSetOfComposite)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 150, column 14)+ _selGroupByOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ Select ann_ selDistinct_ _selSelectListIannotatedTree _selTrefIannotatedTree _selWhereIannotatedTree _selGroupByIannotatedTree _selHavingIannotatedTree _selOrderByIannotatedTree _selLimitIannotatedTree _selOffsetIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Select ann_ selDistinct_ _selSelectListIfixedUpIdentifiersTree _selTrefIfixedUpIdentifiersTree _selWhereIfixedUpIdentifiersTree _selGroupByIfixedUpIdentifiersTree _selHavingIfixedUpIdentifiersTree _selOrderByIfixedUpIdentifiersTree _selLimitIfixedUpIdentifiersTree _selOffsetIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Select ann_ selDistinct_ _selSelectListIoriginalTree _selTrefIoriginalTree _selWhereIoriginalTree _selGroupByIoriginalTree _selHavingIoriginalTree _selOrderByIoriginalTree _selLimitIoriginalTree _selOffsetIoriginalTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _selSelectListOcat =+ _lhsIcat+ -- copy rule (down)+ _selTrefOcat =+ _lhsIcat+ -- copy rule (down)+ _selTrefOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selTrefOlib =+ _lhsIlib+ -- copy rule (down)+ _selWhereOcat =+ _lhsIcat+ -- copy rule (down)+ _selGroupByOcat =+ _lhsIcat+ -- copy rule (down)+ _selHavingOcat =+ _lhsIcat+ -- copy rule (down)+ _selOrderByOcat =+ _lhsIcat+ -- copy rule (down)+ _selLimitOcat =+ _lhsIcat+ -- copy rule (down)+ _selLimitOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selLimitOlib =+ _lhsIlib+ -- copy rule (down)+ _selOffsetOcat =+ _lhsIcat+ -- copy rule (down)+ _selOffsetOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOffsetOlib =+ _lhsIlib+ ( _selSelectListIannotatedTree,_selSelectListIcidenv,_selSelectListIfixedUpIdentifiersTree,_selSelectListIlibUpdates,_selSelectListIlistType,_selSelectListIoriginalTree) =+ selSelectList_ _selSelectListOcat _selSelectListOidenv _selSelectListOlib + ( _selTrefIannotatedTree,_selTrefIfixedUpIdentifiersTree,_selTrefIlibUpdates,_selTrefInewLib2,_selTrefIoriginalTree,_selTrefItrefIDs) =+ selTref_ _selTrefOcat _selTrefOidenv _selTrefOlib + ( _selWhereIannotatedTree,_selWhereIfixedUpIdentifiersTree,_selWhereIoriginalTree) =+ selWhere_ _selWhereOcat _selWhereOidenv _selWhereOlib + ( _selGroupByIannotatedTree,_selGroupByIfixedUpIdentifiersTree,_selGroupByIoriginalTree,_selGroupByIuType) =+ selGroupBy_ _selGroupByOcat _selGroupByOexpectedTypes _selGroupByOidenv _selGroupByOlib + ( _selHavingIannotatedTree,_selHavingIfixedUpIdentifiersTree,_selHavingIoriginalTree) =+ selHaving_ _selHavingOcat _selHavingOidenv _selHavingOlib + ( _selOrderByIannotatedTree,_selOrderByIfixedUpIdentifiersTree,_selOrderByIoriginalTree) =+ selOrderBy_ _selOrderByOcat _selOrderByOidenv _selOrderByOlib + ( _selLimitIannotatedTree,_selLimitIfixedUpIdentifiersTree,_selLimitIoriginalTree,_selLimitIuType) =+ selLimit_ _selLimitOcat _selLimitOidenv _selLimitOlib + ( _selOffsetIannotatedTree,_selOffsetIfixedUpIdentifiersTree,_selOffsetIoriginalTree,_selOffsetIuType) =+ selOffset_ _selOffsetOcat _selOffsetOidenv _selOffsetOlib + in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))+sem_QueryExpr_Values :: Annotation ->+ T_ScalarExprListList ->+ T_QueryExpr +sem_QueryExpr_Values ann_ vll_ =+ (\ _lhsIcat+ _lhsIcsql+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOcidenv :: IDEnv+ _lhsOannotatedTree :: QueryExpr + _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: Et+ _lhsOuType :: (Maybe [(String,Type)])+ _vllOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: QueryExpr + _lhsOoriginalTree :: QueryExpr + _vllOcat :: Catalog+ _vllOidenv :: IDEnv+ _vllOlib :: LocalBindings+ _vllIannotatedTree :: ScalarExprListList + _vllIfixedUpIdentifiersTree :: ScalarExprListList + _vllIoriginalTree :: ScalarExprListList + _vllIuType :: ([[Maybe Type]])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 231, column 14)+ _lhsOcidenv =+ unimplementedIDEnv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)+ _lhsOannotatedTree =+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 141, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 150, column 9)+ _tpe =+ typeCheckValuesExpr+ _lhsIcat+ _vllIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 153, column 9)+ _backTree =+ Values ann_ _vllIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)+ _lhsOuType =+ etmt (_tpe >>= unwrapSetOfComposite)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 164, column 14)+ _vllOexpectedTypes =+ _lhsIexpectedTypes+ -- self rule+ _annotatedTree =+ Values ann_ _vllIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Values ann_ _vllIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Values ann_ _vllIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _vllOcat =+ _lhsIcat+ -- copy rule (down)+ _vllOidenv =+ _lhsIidenv+ -- copy rule (down)+ _vllOlib =+ _lhsIlib+ ( _vllIannotatedTree,_vllIfixedUpIdentifiersTree,_vllIoriginalTree,_vllIuType) =+ vll_ _vllOcat _vllOexpectedTypes _vllOidenv _vllOlib + in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))+sem_QueryExpr_WithQueryExpr :: Annotation ->+ T_WithQueryList ->+ T_QueryExpr ->+ T_QueryExpr +sem_QueryExpr_WithQueryExpr ann_ withs_ ex_ =+ (\ _lhsIcat+ _lhsIcsql+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOcidenv :: IDEnv+ _lhsOannotatedTree :: QueryExpr + _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: Et+ _exOcat :: Catalog+ _withsOcatUpdates :: ([CatalogUpdate])+ _lhsOuType :: (Maybe [(String,Type)])+ _lhsOfixedUpIdentifiersTree :: QueryExpr + _lhsOoriginalTree :: QueryExpr + _withsOcat :: Catalog+ _withsOidenv :: IDEnv+ _withsOlib :: LocalBindings+ _exOcsql :: LocalBindings+ _exOexpectedTypes :: ([Maybe Type])+ _exOidenv :: IDEnv+ _exOlib :: LocalBindings+ _withsIannotatedTree :: WithQueryList + _withsIfixedUpIdentifiersTree :: WithQueryList + _withsIoriginalTree :: WithQueryList + _withsIproducedCat :: Catalog+ _exIannotatedTree :: QueryExpr + _exIcidenv :: IDEnv+ _exIfixedUpIdentifiersTree :: QueryExpr + _exIlibUpdates :: ([LocalBindingsUpdate])+ _exIoriginalTree :: QueryExpr + _exIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 232, column 21)+ _lhsOcidenv =+ _exIcidenv+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 29, column 9)+ _lhsOannotatedTree =+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 145, column 9)+ _lhsOlibUpdates =+ _exIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 178, column 9)+ _tpe =+ lmt ((SetOfType . CompositeType) <$> _exIuType)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 179, column 9)+ _backTree =+ WithQueryExpr ann_ _withsIannotatedTree _exIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 180, column 9)+ _exOcat =+ _withsIproducedCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 181, column 9)+ _withsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 185, column 9)+ _lhsOuType =+ etmt (_tpe >>= unwrapSetOfComposite)+ -- self rule+ _annotatedTree =+ WithQueryExpr ann_ _withsIannotatedTree _exIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ WithQueryExpr ann_ _withsIfixedUpIdentifiersTree _exIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ WithQueryExpr ann_ _withsIoriginalTree _exIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _withsOcat =+ _lhsIcat+ -- copy rule (down)+ _withsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _withsOlib =+ _lhsIlib+ -- copy rule (down)+ _exOcsql =+ _lhsIcsql+ -- copy rule (down)+ _exOexpectedTypes =+ _lhsIexpectedTypes+ -- copy rule (down)+ _exOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exOlib =+ _lhsIlib+ ( _withsIannotatedTree,_withsIfixedUpIdentifiersTree,_withsIoriginalTree,_withsIproducedCat) =+ withs_ _withsOcat _withsOcatUpdates _withsOidenv _withsOlib + ( _exIannotatedTree,_exIcidenv,_exIfixedUpIdentifiersTree,_exIlibUpdates,_exIoriginalTree,_exIuType) =+ ex_ _exOcat _exOcsql _exOexpectedTypes _exOidenv _exOlib + in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree,_lhsOuType)))+-- Root --------------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + producedCat : Catalog+ producedLib : LocalBindings+ alternatives:+ alternative Root:+ child statements : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data Root = Root (StatementList ) + deriving ( Show)+-- cata+sem_Root :: Root ->+ T_Root +sem_Root (Root _statements ) =+ (sem_Root_Root (sem_StatementList _statements ) )+-- semantic domain+type T_Root = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( Root ,Root ,Root ,Catalog,LocalBindings)+data Inh_Root = Inh_Root {cat_Inh_Root :: Catalog,idenv_Inh_Root :: IDEnv,lib_Inh_Root :: LocalBindings}+data Syn_Root = Syn_Root {annotatedTree_Syn_Root :: Root ,fixedUpIdentifiersTree_Syn_Root :: Root ,originalTree_Syn_Root :: Root ,producedCat_Syn_Root :: Catalog,producedLib_Syn_Root :: LocalBindings}+wrap_Root :: T_Root ->+ Inh_Root ->+ Syn_Root +wrap_Root sem (Inh_Root _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_Root _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOproducedCat _lhsOproducedLib ))+sem_Root_Root :: T_StatementList ->+ T_Root +sem_Root_Root statements_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _statementsOcatUpdates :: ([CatalogUpdate])+ _statementsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Root + _lhsOfixedUpIdentifiersTree :: Root + _lhsOoriginalTree :: Root + _lhsOproducedCat :: Catalog+ _lhsOproducedLib :: LocalBindings+ _statementsOcat :: Catalog+ _statementsOidenv :: IDEnv+ _statementsOlib :: LocalBindings+ _statementsIannotatedTree :: StatementList + _statementsIfixedUpIdentifiersTree :: StatementList + _statementsIoriginalTree :: StatementList + _statementsIproducedCat :: Catalog+ _statementsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 107, column 12)+ _statementsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 108, column 12)+ _statementsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ Root _statementsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Root _statementsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Root _statementsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (up)+ _lhsOproducedCat =+ _statementsIproducedCat+ -- copy rule (up)+ _lhsOproducedLib =+ _statementsIproducedLib+ -- copy rule (down)+ _statementsOcat =+ _lhsIcat+ -- copy rule (down)+ _statementsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _statementsOlib =+ _lhsIlib+ ( _statementsIannotatedTree,_statementsIfixedUpIdentifiersTree,_statementsIoriginalTree,_statementsIproducedCat,_statementsIproducedLib) =+ statements_ _statementsOcat _statementsOcatUpdates _statementsOidenv _statementsOlib _statementsOlibUpdates + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib)))+-- RowConstraint -----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative NotNullConstraint:+ child ann : {Annotation}+ child name : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative NullConstraint:+ child ann : {Annotation}+ child name : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative RowCheckConstraint:+ child ann : {Annotation}+ child name : {String}+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative RowPrimaryKeyConstraint:+ child ann : {Annotation}+ child name : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative RowReferenceConstraint:+ child ann : {Annotation}+ child name : {String}+ child table : {String}+ child att : {Maybe String}+ child onUpdate : {Cascade}+ child onDelete : {Cascade}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative RowUniqueConstraint:+ child ann : {Annotation}+ child name : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data RowConstraint = NotNullConstraint (Annotation) (String) + | NullConstraint (Annotation) (String) + | RowCheckConstraint (Annotation) (String) (ScalarExpr ) + | RowPrimaryKeyConstraint (Annotation) (String) + | RowReferenceConstraint (Annotation) (String) (String) ((Maybe String)) (Cascade) (Cascade) + | RowUniqueConstraint (Annotation) (String) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_RowConstraint :: RowConstraint ->+ T_RowConstraint +sem_RowConstraint (NotNullConstraint _ann _name ) =+ (sem_RowConstraint_NotNullConstraint _ann _name )+sem_RowConstraint (NullConstraint _ann _name ) =+ (sem_RowConstraint_NullConstraint _ann _name )+sem_RowConstraint (RowCheckConstraint _ann _name _expr ) =+ (sem_RowConstraint_RowCheckConstraint _ann _name (sem_ScalarExpr _expr ) )+sem_RowConstraint (RowPrimaryKeyConstraint _ann _name ) =+ (sem_RowConstraint_RowPrimaryKeyConstraint _ann _name )+sem_RowConstraint (RowReferenceConstraint _ann _name _table _att _onUpdate _onDelete ) =+ (sem_RowConstraint_RowReferenceConstraint _ann _name _table _att _onUpdate _onDelete )+sem_RowConstraint (RowUniqueConstraint _ann _name ) =+ (sem_RowConstraint_RowUniqueConstraint _ann _name )+-- semantic domain+type T_RowConstraint = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( RowConstraint ,RowConstraint ,RowConstraint )+data Inh_RowConstraint = Inh_RowConstraint {cat_Inh_RowConstraint :: Catalog,idenv_Inh_RowConstraint :: IDEnv,lib_Inh_RowConstraint :: LocalBindings}+data Syn_RowConstraint = Syn_RowConstraint {annotatedTree_Syn_RowConstraint :: RowConstraint ,fixedUpIdentifiersTree_Syn_RowConstraint :: RowConstraint ,originalTree_Syn_RowConstraint :: RowConstraint }+wrap_RowConstraint :: T_RowConstraint ->+ Inh_RowConstraint ->+ Syn_RowConstraint +wrap_RowConstraint sem (Inh_RowConstraint _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_RowConstraint _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_RowConstraint_NotNullConstraint :: Annotation ->+ String ->+ T_RowConstraint +sem_RowConstraint_NotNullConstraint ann_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraint + _lhsOfixedUpIdentifiersTree :: RowConstraint + _lhsOoriginalTree :: RowConstraint + -- self rule+ _annotatedTree =+ NotNullConstraint ann_ name_+ -- self rule+ _fixedUpIdentifiersTree =+ NotNullConstraint ann_ name_+ -- self rule+ _originalTree =+ NotNullConstraint ann_ name_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_RowConstraint_NullConstraint :: Annotation ->+ String ->+ T_RowConstraint +sem_RowConstraint_NullConstraint ann_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraint + _lhsOfixedUpIdentifiersTree :: RowConstraint + _lhsOoriginalTree :: RowConstraint + -- self rule+ _annotatedTree =+ NullConstraint ann_ name_+ -- self rule+ _fixedUpIdentifiersTree =+ NullConstraint ann_ name_+ -- self rule+ _originalTree =+ NullConstraint ann_ name_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_RowConstraint_RowCheckConstraint :: Annotation ->+ String ->+ T_ScalarExpr ->+ T_RowConstraint +sem_RowConstraint_RowCheckConstraint ann_ name_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: RowConstraint + _lhsOfixedUpIdentifiersTree :: RowConstraint + _lhsOoriginalTree :: RowConstraint + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 103, column 26)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ RowCheckConstraint ann_ name_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ RowCheckConstraint ann_ name_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ RowCheckConstraint ann_ name_ _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_RowConstraint_RowPrimaryKeyConstraint :: Annotation ->+ String ->+ T_RowConstraint +sem_RowConstraint_RowPrimaryKeyConstraint ann_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraint + _lhsOfixedUpIdentifiersTree :: RowConstraint + _lhsOoriginalTree :: RowConstraint + -- self rule+ _annotatedTree =+ RowPrimaryKeyConstraint ann_ name_+ -- self rule+ _fixedUpIdentifiersTree =+ RowPrimaryKeyConstraint ann_ name_+ -- self rule+ _originalTree =+ RowPrimaryKeyConstraint ann_ name_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_RowConstraint_RowReferenceConstraint :: Annotation ->+ String ->+ String ->+ (Maybe String) ->+ Cascade ->+ Cascade ->+ T_RowConstraint +sem_RowConstraint_RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraint + _lhsOfixedUpIdentifiersTree :: RowConstraint + _lhsOoriginalTree :: RowConstraint + -- self rule+ _annotatedTree =+ RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_+ -- self rule+ _fixedUpIdentifiersTree =+ RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_+ -- self rule+ _originalTree =+ RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_RowConstraint_RowUniqueConstraint :: Annotation ->+ String ->+ T_RowConstraint +sem_RowConstraint_RowUniqueConstraint ann_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraint + _lhsOfixedUpIdentifiersTree :: RowConstraint + _lhsOoriginalTree :: RowConstraint + -- self rule+ _annotatedTree =+ RowUniqueConstraint ann_ name_+ -- self rule+ _fixedUpIdentifiersTree =+ RowUniqueConstraint ann_ name_+ -- self rule+ _originalTree =+ RowUniqueConstraint ann_ name_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- RowConstraintList -------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : RowConstraint + child tl : RowConstraintList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type RowConstraintList = [RowConstraint ]+-- cata+sem_RowConstraintList :: RowConstraintList ->+ T_RowConstraintList +sem_RowConstraintList list =+ (Prelude.foldr sem_RowConstraintList_Cons sem_RowConstraintList_Nil (Prelude.map sem_RowConstraint list) )+-- semantic domain+type T_RowConstraintList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( RowConstraintList ,RowConstraintList ,RowConstraintList )+data Inh_RowConstraintList = Inh_RowConstraintList {cat_Inh_RowConstraintList :: Catalog,idenv_Inh_RowConstraintList :: IDEnv,lib_Inh_RowConstraintList :: LocalBindings}+data Syn_RowConstraintList = Syn_RowConstraintList {annotatedTree_Syn_RowConstraintList :: RowConstraintList ,fixedUpIdentifiersTree_Syn_RowConstraintList :: RowConstraintList ,originalTree_Syn_RowConstraintList :: RowConstraintList }+wrap_RowConstraintList :: T_RowConstraintList ->+ Inh_RowConstraintList ->+ Syn_RowConstraintList +wrap_RowConstraintList sem (Inh_RowConstraintList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_RowConstraintList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_RowConstraintList_Cons :: T_RowConstraint ->+ T_RowConstraintList ->+ T_RowConstraintList +sem_RowConstraintList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraintList + _lhsOfixedUpIdentifiersTree :: RowConstraintList + _lhsOoriginalTree :: RowConstraintList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: RowConstraint + _hdIfixedUpIdentifiersTree :: RowConstraint + _hdIoriginalTree :: RowConstraint + _tlIannotatedTree :: RowConstraintList + _tlIfixedUpIdentifiersTree :: RowConstraintList + _tlIoriginalTree :: RowConstraintList + -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_RowConstraintList_Nil :: T_RowConstraintList +sem_RowConstraintList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: RowConstraintList + _lhsOfixedUpIdentifiersTree :: RowConstraintList + _lhsOoriginalTree :: RowConstraintList + -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- SQIdentifier ------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + tbAnnotatedTree : SQIdentifier + tbUType : Maybe ([(String,Type)],[(String,Type)])+ alternatives:+ alternative SQIdentifier:+ child ann : {Annotation}+ child is : {[String]}+ visit 0:+ local tpe : {E ([(String,Type)],[(String,Type)])}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data SQIdentifier = SQIdentifier (Annotation) (([String])) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_SQIdentifier :: SQIdentifier ->+ T_SQIdentifier +sem_SQIdentifier (SQIdentifier _ann _is ) =+ (sem_SQIdentifier_SQIdentifier _ann _is )+-- semantic domain+type T_SQIdentifier = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( SQIdentifier ,SQIdentifier ,SQIdentifier ,SQIdentifier ,(Maybe ([(String,Type)],[(String,Type)])))+data Inh_SQIdentifier = Inh_SQIdentifier {cat_Inh_SQIdentifier :: Catalog,idenv_Inh_SQIdentifier :: IDEnv,lib_Inh_SQIdentifier :: LocalBindings}+data Syn_SQIdentifier = Syn_SQIdentifier {annotatedTree_Syn_SQIdentifier :: SQIdentifier ,fixedUpIdentifiersTree_Syn_SQIdentifier :: SQIdentifier ,originalTree_Syn_SQIdentifier :: SQIdentifier ,tbAnnotatedTree_Syn_SQIdentifier :: SQIdentifier ,tbUType_Syn_SQIdentifier :: (Maybe ([(String,Type)],[(String,Type)]))}+wrap_SQIdentifier :: T_SQIdentifier ->+ Inh_SQIdentifier ->+ Syn_SQIdentifier +wrap_SQIdentifier sem (Inh_SQIdentifier _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOtbAnnotatedTree,_lhsOtbUType) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_SQIdentifier _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOtbAnnotatedTree _lhsOtbUType ))+sem_SQIdentifier_SQIdentifier :: Annotation ->+ ([String]) ->+ T_SQIdentifier +sem_SQIdentifier_SQIdentifier ann_ is_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _tpe :: (E ([(String,Type)],[(String,Type)]))+ _lhsOtbUType :: (Maybe ([(String,Type)],[(String,Type)]))+ _lhsOtbAnnotatedTree :: SQIdentifier + _lhsOannotatedTree :: SQIdentifier + _lhsOfixedUpIdentifiersTree :: SQIdentifier + _lhsOoriginalTree :: SQIdentifier + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 67, column 9)+ _tpe =+ catCompositeAttrsPair _lhsIcat relationComposites (last is_)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 68, column 9)+ _lhsOtbUType =+ either (const Nothing) Just _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 69, column 9)+ _lhsOtbAnnotatedTree =+ updateAnnotation+ (\a -> a {errs = errs a ++ tes _tpe }) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 72, column 9)+ _backTree =+ SQIdentifier ann_ is_+ -- self rule+ _annotatedTree =+ SQIdentifier ann_ is_+ -- self rule+ _fixedUpIdentifiersTree =+ SQIdentifier ann_ is_+ -- self rule+ _originalTree =+ SQIdentifier ann_ is_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOtbAnnotatedTree,_lhsOtbUType)))+-- ScalarExpr --------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ expectedType : Maybe Type+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + uType : Maybe Type+ alternatives:+ alternative BooleanLit:+ child ann : {Annotation}+ child b : {Bool}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Case:+ child ann : {Annotation}+ child cases : CaseScalarExprListScalarExprPairList + child els : MaybeScalarExpr + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local whenTypes : _+ local thenTypes : _+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CaseSimple:+ child ann : {Annotation}+ child value : ScalarExpr + child cases : CaseScalarExprListScalarExprPairList + child els : MaybeScalarExpr + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local whenTypes : _+ local thenTypes : _+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Cast:+ child ann : {Annotation}+ child expr : ScalarExpr + child tn : TypeName + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Exists:+ child ann : {Annotation}+ child sel : QueryExpr + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Extract:+ child ann : {Annotation}+ child field : {ExtractField}+ child e : ScalarExpr + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative FunCall:+ child ann : {Annotation}+ child funName : {String}+ child args : ScalarExprList + visit 0:+ local _tup1 : _+ local tpe : {Et}+ local prototype : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Identifier:+ child ann : {Annotation}+ child i : {String}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative InPredicate:+ child ann : {Annotation}+ child expr : ScalarExpr + child i : {Bool}+ child list : InList + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local rt : {Either [TypeError] Type}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Interval:+ child ann : {Annotation}+ child value : {String}+ child field : {IntervalField}+ child prec : {Maybe Int}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative LiftOperator:+ child ann : {Annotation}+ child oper : {String}+ child flav : {LiftFlavour}+ child args : ScalarExprList + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative NullLit:+ child ann : {Annotation}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative NumberLit:+ child ann : {Annotation}+ child d : {String}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Placeholder:+ child ann : {Annotation}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative PositionalArg:+ child ann : {Annotation}+ child p : {Integer}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative QIdentifier:+ child ann : {Annotation}+ child qual : ScalarExpr + child i : {String}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local qid : {Maybe String}+ local backTree : _+ local qAnnTreeNoUnrec : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ScalarSubQuery:+ child ann : {Annotation}+ child sel : QueryExpr + visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative StringLit:+ child ann : {Annotation}+ child value : {String}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative TypedStringLit:+ child ann : {Annotation}+ child tn : TypeName + child value : {String}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative WindowFn:+ child ann : {Annotation}+ child fn : ScalarExpr + child partitionBy : ScalarExprList + child orderBy : ScalarExprList + child dir : {Direction}+ child frm : {FrameClause}+ visit 0:+ local prototype : {Maybe FunctionPrototype}+ local tpe : {Et}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data ScalarExpr = BooleanLit (Annotation) (Bool) + | Case (Annotation) (CaseScalarExprListScalarExprPairList ) (MaybeScalarExpr ) + | CaseSimple (Annotation) (ScalarExpr ) (CaseScalarExprListScalarExprPairList ) (MaybeScalarExpr ) + | Cast (Annotation) (ScalarExpr ) (TypeName ) + | Exists (Annotation) (QueryExpr ) + | Extract (Annotation) (ExtractField) (ScalarExpr ) + | FunCall (Annotation) (String) (ScalarExprList ) + | Identifier (Annotation) (String) + | InPredicate (Annotation) (ScalarExpr ) (Bool) (InList ) + | Interval (Annotation) (String) (IntervalField) ((Maybe Int)) + | LiftOperator (Annotation) (String) (LiftFlavour) (ScalarExprList ) + | NullLit (Annotation) + | NumberLit (Annotation) (String) + | Placeholder (Annotation) + | PositionalArg (Annotation) (Integer) + | QIdentifier (Annotation) (ScalarExpr ) (String) + | ScalarSubQuery (Annotation) (QueryExpr ) + | StringLit (Annotation) (String) + | TypedStringLit (Annotation) (TypeName ) (String) + | WindowFn (Annotation) (ScalarExpr ) (ScalarExprList ) (ScalarExprList ) (Direction) (FrameClause) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_ScalarExpr :: ScalarExpr ->+ T_ScalarExpr +sem_ScalarExpr (BooleanLit _ann _b ) =+ (sem_ScalarExpr_BooleanLit _ann _b )+sem_ScalarExpr (Case _ann _cases _els ) =+ (sem_ScalarExpr_Case _ann (sem_CaseScalarExprListScalarExprPairList _cases ) (sem_MaybeScalarExpr _els ) )+sem_ScalarExpr (CaseSimple _ann _value _cases _els ) =+ (sem_ScalarExpr_CaseSimple _ann (sem_ScalarExpr _value ) (sem_CaseScalarExprListScalarExprPairList _cases ) (sem_MaybeScalarExpr _els ) )+sem_ScalarExpr (Cast _ann _expr _tn ) =+ (sem_ScalarExpr_Cast _ann (sem_ScalarExpr _expr ) (sem_TypeName _tn ) )+sem_ScalarExpr (Exists _ann _sel ) =+ (sem_ScalarExpr_Exists _ann (sem_QueryExpr _sel ) )+sem_ScalarExpr (Extract _ann _field _e ) =+ (sem_ScalarExpr_Extract _ann _field (sem_ScalarExpr _e ) )+sem_ScalarExpr (FunCall _ann _funName _args ) =+ (sem_ScalarExpr_FunCall _ann _funName (sem_ScalarExprList _args ) )+sem_ScalarExpr (Identifier _ann _i ) =+ (sem_ScalarExpr_Identifier _ann _i )+sem_ScalarExpr (InPredicate _ann _expr _i _list ) =+ (sem_ScalarExpr_InPredicate _ann (sem_ScalarExpr _expr ) _i (sem_InList _list ) )+sem_ScalarExpr (Interval _ann _value _field _prec ) =+ (sem_ScalarExpr_Interval _ann _value _field _prec )+sem_ScalarExpr (LiftOperator _ann _oper _flav _args ) =+ (sem_ScalarExpr_LiftOperator _ann _oper _flav (sem_ScalarExprList _args ) )+sem_ScalarExpr (NullLit _ann ) =+ (sem_ScalarExpr_NullLit _ann )+sem_ScalarExpr (NumberLit _ann _d ) =+ (sem_ScalarExpr_NumberLit _ann _d )+sem_ScalarExpr (Placeholder _ann ) =+ (sem_ScalarExpr_Placeholder _ann )+sem_ScalarExpr (PositionalArg _ann _p ) =+ (sem_ScalarExpr_PositionalArg _ann _p )+sem_ScalarExpr (QIdentifier _ann _qual _i ) =+ (sem_ScalarExpr_QIdentifier _ann (sem_ScalarExpr _qual ) _i )+sem_ScalarExpr (ScalarSubQuery _ann _sel ) =+ (sem_ScalarExpr_ScalarSubQuery _ann (sem_QueryExpr _sel ) )+sem_ScalarExpr (StringLit _ann _value ) =+ (sem_ScalarExpr_StringLit _ann _value )+sem_ScalarExpr (TypedStringLit _ann _tn _value ) =+ (sem_ScalarExpr_TypedStringLit _ann (sem_TypeName _tn ) _value )+sem_ScalarExpr (WindowFn _ann _fn _partitionBy _orderBy _dir _frm ) =+ (sem_ScalarExpr_WindowFn _ann (sem_ScalarExpr _fn ) (sem_ScalarExprList _partitionBy ) (sem_ScalarExprList _orderBy ) _dir _frm )+-- semantic domain+type T_ScalarExpr = Catalog ->+ (Maybe Type) ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExpr ,ScalarExpr ,ScalarExpr ,(Maybe Type))+data Inh_ScalarExpr = Inh_ScalarExpr {cat_Inh_ScalarExpr :: Catalog,expectedType_Inh_ScalarExpr :: (Maybe Type),idenv_Inh_ScalarExpr :: IDEnv,lib_Inh_ScalarExpr :: LocalBindings}+data Syn_ScalarExpr = Syn_ScalarExpr {annotatedTree_Syn_ScalarExpr :: ScalarExpr ,fixedUpIdentifiersTree_Syn_ScalarExpr :: ScalarExpr ,originalTree_Syn_ScalarExpr :: ScalarExpr ,uType_Syn_ScalarExpr :: (Maybe Type)}+wrap_ScalarExpr :: T_ScalarExpr ->+ Inh_ScalarExpr ->+ Syn_ScalarExpr +wrap_ScalarExpr sem (Inh_ScalarExpr _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIexpectedType _lhsIidenv _lhsIlib + in (Syn_ScalarExpr _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))+sem_ScalarExpr_BooleanLit :: Annotation ->+ Bool ->+ T_ScalarExpr +sem_ScalarExpr_BooleanLit ann_ b_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 155, column 19)+ _tpe =+ Right typeBool+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 165, column 9)+ _backTree =+ BooleanLit ann_ b_+ -- self rule+ _annotatedTree =+ BooleanLit ann_ b_+ -- self rule+ _fixedUpIdentifiersTree =+ BooleanLit ann_ b_+ -- self rule+ _originalTree =+ BooleanLit ann_ b_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Case :: Annotation ->+ T_CaseScalarExprListScalarExprPairList ->+ T_MaybeScalarExpr ->+ T_ScalarExpr +sem_ScalarExpr_Case ann_ cases_ els_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _casesOcat :: Catalog+ _casesOidenv :: IDEnv+ _casesOlib :: LocalBindings+ _elsOcat :: Catalog+ _elsOidenv :: IDEnv+ _elsOlib :: LocalBindings+ _casesIannotatedTree :: CaseScalarExprListScalarExprPairList + _casesIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList + _casesIoriginalTree :: CaseScalarExprListScalarExprPairList + _casesIthenTypes :: ([Maybe Type])+ _casesIwhenTypes :: ([[Maybe Type]])+ _elsIannotatedTree :: MaybeScalarExpr + _elsIfixedUpIdentifiersTree :: MaybeScalarExpr + _elsIoriginalTree :: MaybeScalarExpr + _elsIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 276, column 9)+ _whenTypes =+ _casesIwhenTypes+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 277, column 9)+ _thenTypes =+ _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 281, column 9)+ _tpe =+ do+ wt <- mapM lmt $ concat _whenTypes+ errorWhen (any (/= typeBool) wt)+ [WrongTypes typeBool wt]+ tt <- mapM lmt _thenTypes+ resolveResultSetType _lhsIcat tt+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 289, column 9)+ _backTree =+ Case ann_ _casesIannotatedTree _elsIannotatedTree+ -- self rule+ _annotatedTree =+ Case ann_ _casesIannotatedTree _elsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Case ann_ _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Case ann_ _casesIoriginalTree _elsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _casesOcat =+ _lhsIcat+ -- copy rule (down)+ _casesOidenv =+ _lhsIidenv+ -- copy rule (down)+ _casesOlib =+ _lhsIlib+ -- copy rule (down)+ _elsOcat =+ _lhsIcat+ -- copy rule (down)+ _elsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _elsOlib =+ _lhsIlib+ ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree,_casesIthenTypes,_casesIwhenTypes) =+ cases_ _casesOcat _casesOidenv _casesOlib + ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIuType) =+ els_ _elsOcat _elsOidenv _elsOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_CaseSimple :: Annotation ->+ T_ScalarExpr ->+ T_CaseScalarExprListScalarExprPairList ->+ T_MaybeScalarExpr ->+ T_ScalarExpr +sem_ScalarExpr_CaseSimple ann_ value_ cases_ els_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _valueOcat :: Catalog+ _valueOexpectedType :: (Maybe Type)+ _valueOidenv :: IDEnv+ _valueOlib :: LocalBindings+ _casesOcat :: Catalog+ _casesOidenv :: IDEnv+ _casesOlib :: LocalBindings+ _elsOcat :: Catalog+ _elsOidenv :: IDEnv+ _elsOlib :: LocalBindings+ _valueIannotatedTree :: ScalarExpr + _valueIfixedUpIdentifiersTree :: ScalarExpr + _valueIoriginalTree :: ScalarExpr + _valueIuType :: (Maybe Type)+ _casesIannotatedTree :: CaseScalarExprListScalarExprPairList + _casesIfixedUpIdentifiersTree :: CaseScalarExprListScalarExprPairList + _casesIoriginalTree :: CaseScalarExprListScalarExprPairList + _casesIthenTypes :: ([Maybe Type])+ _casesIwhenTypes :: ([[Maybe Type]])+ _elsIannotatedTree :: MaybeScalarExpr + _elsIfixedUpIdentifiersTree :: MaybeScalarExpr + _elsIoriginalTree :: MaybeScalarExpr + _elsIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 276, column 9)+ _whenTypes =+ _casesIwhenTypes+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 277, column 9)+ _thenTypes =+ _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 294, column 9)+ _tpe =+ do+ wt <- mapM lmt $ concat _whenTypes+ vt <- lmt _valueIuType+ _ <- resolveResultSetType _lhsIcat (vt : wt)+ tt <- mapM lmt _thenTypes+ resolveResultSetType _lhsIcat tt+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 301, column 9)+ _backTree =+ CaseSimple ann_+ _valueIannotatedTree+ _casesIannotatedTree+ _elsIannotatedTree+ -- self rule+ _annotatedTree =+ CaseSimple ann_ _valueIannotatedTree _casesIannotatedTree _elsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CaseSimple ann_ _valueIfixedUpIdentifiersTree _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CaseSimple ann_ _valueIoriginalTree _casesIoriginalTree _elsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _valueOcat =+ _lhsIcat+ -- copy rule (down)+ _valueOexpectedType =+ _lhsIexpectedType+ -- copy rule (down)+ _valueOidenv =+ _lhsIidenv+ -- copy rule (down)+ _valueOlib =+ _lhsIlib+ -- copy rule (down)+ _casesOcat =+ _lhsIcat+ -- copy rule (down)+ _casesOidenv =+ _lhsIidenv+ -- copy rule (down)+ _casesOlib =+ _lhsIlib+ -- copy rule (down)+ _elsOcat =+ _lhsIcat+ -- copy rule (down)+ _elsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _elsOlib =+ _lhsIlib+ ( _valueIannotatedTree,_valueIfixedUpIdentifiersTree,_valueIoriginalTree,_valueIuType) =+ value_ _valueOcat _valueOexpectedType _valueOidenv _valueOlib + ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree,_casesIthenTypes,_casesIwhenTypes) =+ cases_ _casesOcat _casesOidenv _casesOlib + ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIuType) =+ els_ _elsOcat _elsOidenv _elsOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Cast :: Annotation ->+ T_ScalarExpr ->+ T_TypeName ->+ T_ScalarExpr +sem_ScalarExpr_Cast ann_ expr_ tn_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _exprOcat :: Catalog+ _exprOexpectedType :: (Maybe Type)+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _tnOcat :: Catalog+ _tnOidenv :: IDEnv+ _tnOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ _tnIannotatedTree :: TypeName + _tnIfixedUpIdentifiersTree :: TypeName + _tnInamedType :: (Maybe Type)+ _tnIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 182, column 12)+ _tpe =+ lmt _tnInamedType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 183, column 12)+ _backTree =+ Cast ann_ _exprIannotatedTree _tnIannotatedTree+ -- self rule+ _annotatedTree =+ Cast ann_ _exprIannotatedTree _tnIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Cast ann_ _exprIfixedUpIdentifiersTree _tnIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Cast ann_ _exprIoriginalTree _tnIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOexpectedType =+ _lhsIexpectedType+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ -- copy rule (down)+ _tnOcat =+ _lhsIcat+ -- copy rule (down)+ _tnOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tnOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + ( _tnIannotatedTree,_tnIfixedUpIdentifiersTree,_tnInamedType,_tnIoriginalTree) =+ tn_ _tnOcat _tnOidenv _tnOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Exists :: Annotation ->+ T_QueryExpr ->+ T_ScalarExpr +sem_ScalarExpr_Exists ann_ sel_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _selOcsql :: LocalBindings+ _selOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _selOcat :: Catalog+ _selOidenv :: IDEnv+ _selOlib :: LocalBindings+ _selIannotatedTree :: QueryExpr + _selIcidenv :: IDEnv+ _selIfixedUpIdentifiersTree :: QueryExpr + _selIlibUpdates :: ([LocalBindingsUpdate])+ _selIoriginalTree :: QueryExpr + _selIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 355, column 9)+ _tpe =+ Right typeBool+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 356, column 9)+ _backTree =+ Exists ann_ _selIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 379, column 9)+ _selOcsql =+ _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 171, column 29)+ _selOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ Exists ann_ _selIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Exists ann_ _selIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Exists ann_ _selIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _selOcat =+ _lhsIcat+ -- copy rule (down)+ _selOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOlib =+ _lhsIlib+ ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =+ sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Extract :: Annotation ->+ ExtractField ->+ T_ScalarExpr ->+ T_ScalarExpr +sem_ScalarExpr_Extract ann_ field_ e_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _eOcat :: Catalog+ _eOexpectedType :: (Maybe Type)+ _eOidenv :: IDEnv+ _eOlib :: LocalBindings+ _eIannotatedTree :: ScalarExpr + _eIfixedUpIdentifiersTree :: ScalarExpr + _eIoriginalTree :: ScalarExpr + _eIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 424, column 9)+ _tpe =+ do+ x <- lmt _eIuType+ if x == typeDate+ then Right typeFloat8+ else Left [NoMatchingOperator "extract" [x]]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 429, column 9)+ _backTree =+ Extract ann_ field_ _eIannotatedTree+ -- self rule+ _annotatedTree =+ Extract ann_ field_ _eIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Extract ann_ field_ _eIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Extract ann_ field_ _eIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _eOcat =+ _lhsIcat+ -- copy rule (down)+ _eOexpectedType =+ _lhsIexpectedType+ -- copy rule (down)+ _eOidenv =+ _lhsIidenv+ -- copy rule (down)+ _eOlib =+ _lhsIlib+ ( _eIannotatedTree,_eIfixedUpIdentifiersTree,_eIoriginalTree,_eIuType) =+ e_ _eOcat _eOexpectedType _eOidenv _eOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_FunCall :: Annotation ->+ String ->+ T_ScalarExprList ->+ T_ScalarExpr +sem_ScalarExpr_FunCall ann_ funName_ args_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _argsOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _argsOcat :: Catalog+ _argsOidenv :: IDEnv+ _argsOlib :: LocalBindings+ _argsIannotatedTree :: ScalarExprList + _argsIfixedUpIdentifiersTree :: ScalarExprList + _argsIoriginalTree :: ScalarExprList + _argsIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 196, column 9)+ __tup1 =+ either (\e -> (Left e, Nothing)) id $ do+ args <- mapM lmt _argsIuType+ efp <- findCallMatch _lhsIcat+ funName_+ args+ let (_,_,r,_) = efp+ return (Right r, Just efp)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 196, column 9)+ (_tpe,_) =+ __tup1+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 196, column 9)+ (_,_prototype) =+ __tup1+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 206, column 9)+ _backTree =+ FunCall ann_ funName_ _argsIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 130, column 9)+ _argsOexpectedTypes =+ maybe [] id $+ case (funName_,_lhsIexpectedType) of+ ("!rowctor", Just (AnonymousRecordType ts)) -> return $ map Just ts+ _ -> do+ (_,t,_,_) <- _prototype+ return $ map Just t+ -- self rule+ _annotatedTree =+ FunCall ann_ funName_ _argsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ FunCall ann_ funName_ _argsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ FunCall ann_ funName_ _argsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _argsOcat =+ _lhsIcat+ -- copy rule (down)+ _argsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _argsOlib =+ _lhsIlib+ ( _argsIannotatedTree,_argsIfixedUpIdentifiersTree,_argsIoriginalTree,_argsIuType) =+ args_ _argsOcat _argsOexpectedTypes _argsOidenv _argsOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Identifier :: Annotation ->+ String ->+ T_ScalarExpr +sem_ScalarExpr_Identifier ann_ i_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 131, column 9)+ _lhsOfixedUpIdentifiersTree =+ case qualifyID _lhsIidenv i_ of+ Nothing -> Identifier ann_ i_+ Just (t,i) -> QIdentifier ann_ (Identifier ann_ t) i+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 314, column 9)+ _tpe =+ case lookupLocalBinding _lhsIlib "" i_ of+ Right Nothing -> Left []+ Right (Just t) -> Right t+ Left e -> Left e+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 319, column 9)+ _backTree =+ Identifier ann_ i_+ -- self rule+ _annotatedTree =+ Identifier ann_ i_+ -- self rule+ _fixedUpIdentifiersTree =+ Identifier ann_ i_+ -- self rule+ _originalTree =+ Identifier ann_ i_+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_InPredicate :: Annotation ->+ T_ScalarExpr ->+ Bool ->+ T_InList ->+ T_ScalarExpr +sem_ScalarExpr_InPredicate ann_ expr_ i_ list_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _rt :: (Either [TypeError] Type)+ _tpe :: Et+ _listOexpectedType :: (Maybe Type)+ _exprOexpectedType :: (Maybe Type)+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _listOcat :: Catalog+ _listOidenv :: IDEnv+ _listOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ _listIannotatedTree :: InList + _listIfixedUpIdentifiersTree :: InList + _listIlistType :: (Either [TypeError] Type)+ _listIoriginalTree :: InList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 388, column 9)+ _rt =+ do+ lt <- _listIlistType+ expt <- lmt _exprIuType+ resolveResultSetType _lhsIcat [expt, lt]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 392, column 9)+ _tpe =+ do+ _ <- _rt+ return typeBool+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 395, column 9)+ _listOexpectedType =+ etmt _rt+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 396, column 9)+ _exprOexpectedType =+ etmt _rt+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 397, column 9)+ _backTree =+ InPredicate ann_+ _exprIannotatedTree+ i_+ _listIannotatedTree+ -- self rule+ _annotatedTree =+ InPredicate ann_ _exprIannotatedTree i_ _listIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ InPredicate ann_ _exprIfixedUpIdentifiersTree i_ _listIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ InPredicate ann_ _exprIoriginalTree i_ _listIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ -- copy rule (down)+ _listOcat =+ _lhsIcat+ -- copy rule (down)+ _listOidenv =+ _lhsIidenv+ -- copy rule (down)+ _listOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + ( _listIannotatedTree,_listIfixedUpIdentifiersTree,_listIlistType,_listIoriginalTree) =+ list_ _listOcat _listOexpectedType _listOidenv _listOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Interval :: Annotation ->+ String ->+ IntervalField ->+ (Maybe Int) ->+ T_ScalarExpr +sem_ScalarExpr_Interval ann_ value_ field_ prec_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 170, column 16)+ _tpe =+ Right $ ScalarType "interval"+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 171, column 16)+ _backTree =+ Interval ann_ value_ field_ prec_+ -- self rule+ _annotatedTree =+ Interval ann_ value_ field_ prec_+ -- self rule+ _fixedUpIdentifiersTree =+ Interval ann_ value_ field_ prec_+ -- self rule+ _originalTree =+ Interval ann_ value_ field_ prec_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_LiftOperator :: Annotation ->+ String ->+ LiftFlavour ->+ T_ScalarExprList ->+ T_ScalarExpr +sem_ScalarExpr_LiftOperator ann_ oper_ flav_ args_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _argsOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _argsOcat :: Catalog+ _argsOidenv :: IDEnv+ _argsOlib :: LocalBindings+ _argsIannotatedTree :: ScalarExprList + _argsIfixedUpIdentifiersTree :: ScalarExprList + _argsIoriginalTree :: ScalarExprList + _argsIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 229, column 9)+ _tpe =+ do+ at <- mapM lmt _argsIuType+ errorWhen (length at /= 2)+ [AnyAllError $ "must have two args, got " ++ show at]+ let [aType,bType] = at+ errorWhen (not $ isArrayType bType)+ [AnyAllError $ "second arg must be array, got " ++ show at]+ elemType <- unwrapArray $ bType+ resType <- fmap (\(_,_,r,_) -> r) $ findCallMatch _lhsIcat+ oper_+ [aType,elemType]+ errorWhen (resType /= typeBool)+ [AnyAllError $ "operator must have bool return, got " ++ show resType]+ return resType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 243, column 9)+ _backTree =+ LiftOperator ann_ oper_ flav_ _argsIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 138, column 9)+ _argsOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ LiftOperator ann_ oper_ flav_ _argsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ LiftOperator ann_ oper_ flav_ _argsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ LiftOperator ann_ oper_ flav_ _argsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _argsOcat =+ _lhsIcat+ -- copy rule (down)+ _argsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _argsOlib =+ _lhsIlib+ ( _argsIannotatedTree,_argsIfixedUpIdentifiersTree,_argsIoriginalTree,_argsIuType) =+ args_ _argsOcat _argsOexpectedTypes _argsOidenv _argsOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_NullLit :: Annotation ->+ T_ScalarExpr +sem_ScalarExpr_NullLit ann_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 157, column 16)+ _tpe =+ Right UnknownType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 167, column 9)+ _backTree =+ NullLit ann_+ -- self rule+ _annotatedTree =+ NullLit ann_+ -- self rule+ _fixedUpIdentifiersTree =+ NullLit ann_+ -- self rule+ _originalTree =+ NullLit ann_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_NumberLit :: Annotation ->+ String ->+ T_ScalarExpr +sem_ScalarExpr_NumberLit ann_ d_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 149, column 18)+ _tpe =+ if all (`elem` digChars) d_+ then Right typeInt+ else Right typeNumeric+ where+ digChars = concatMap show [(0::Int)..9]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 161, column 9)+ _backTree =+ NumberLit ann_ d_+ -- self rule+ _annotatedTree =+ NumberLit ann_ d_+ -- self rule+ _fixedUpIdentifiersTree =+ NumberLit ann_ d_+ -- self rule+ _originalTree =+ NumberLit ann_ d_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_Placeholder :: Annotation ->+ T_ScalarExpr +sem_ScalarExpr_Placeholder ann_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 349, column 9)+ _tpe =+ Right UnknownType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 350, column 9)+ _backTree =+ Placeholder ann_+ -- self rule+ _annotatedTree =+ Placeholder ann_+ -- self rule+ _fixedUpIdentifiersTree =+ Placeholder ann_+ -- self rule+ _originalTree =+ Placeholder ann_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_PositionalArg :: Annotation ->+ Integer ->+ T_ScalarExpr +sem_ScalarExpr_PositionalArg ann_ p_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 343, column 9)+ _tpe =+ unwrapLookup <$> lbLookupID _lhsIlib ['$':show p_]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 344, column 9)+ _backTree =+ PositionalArg ann_ p_+ -- self rule+ _annotatedTree =+ PositionalArg ann_ p_+ -- self rule+ _fixedUpIdentifiersTree =+ PositionalArg ann_ p_+ -- self rule+ _originalTree =+ PositionalArg ann_ p_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_QIdentifier :: Annotation ->+ T_ScalarExpr ->+ String ->+ T_ScalarExpr +sem_ScalarExpr_QIdentifier ann_ qual_ i_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _qid :: (Maybe String)+ _lhsOoriginalTree :: ScalarExpr + _qualOcat :: Catalog+ _qualOexpectedType :: (Maybe Type)+ _qualOidenv :: IDEnv+ _qualOlib :: LocalBindings+ _qualIannotatedTree :: ScalarExpr + _qualIfixedUpIdentifiersTree :: ScalarExpr + _qualIoriginalTree :: ScalarExpr + _qualIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 137, column 9)+ _lhsOfixedUpIdentifiersTree =+ QIdentifier ann_ _qualIoriginalTree i_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 321, column 9)+ _tpe =+ case _qid of+ Nothing -> Left [InternalError "dot selection not implemented"]+ Just q -> case lookupLocalBinding _lhsIlib q i_ of+ Right Nothing -> Left []+ Right (Just t) -> Right t+ Left e -> Left e+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 334, column 9)+ _qid =+ case _backTree of+ QIdentifier _ (Identifier _ q) _ -> Just q+ _ -> Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 337, column 9)+ _backTree =+ QIdentifier ann_ _qAnnTreeNoUnrec i_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 339, column 9)+ _qAnnTreeNoUnrec =+ updateAnnotation (\a -> a {errs = []}) _qualIannotatedTree+ -- self rule+ _annotatedTree =+ QIdentifier ann_ _qualIannotatedTree i_+ -- self rule+ _fixedUpIdentifiersTree =+ QIdentifier ann_ _qualIfixedUpIdentifiersTree i_+ -- self rule+ _originalTree =+ QIdentifier ann_ _qualIoriginalTree i_+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _qualOcat =+ _lhsIcat+ -- copy rule (down)+ _qualOexpectedType =+ _lhsIexpectedType+ -- copy rule (down)+ _qualOidenv =+ _lhsIidenv+ -- copy rule (down)+ _qualOlib =+ _lhsIlib+ ( _qualIannotatedTree,_qualIfixedUpIdentifiersTree,_qualIoriginalTree,_qualIuType) =+ qual_ _qualOcat _qualOexpectedType _qualOidenv _qualOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_ScalarSubQuery :: Annotation ->+ T_QueryExpr ->+ T_ScalarExpr +sem_ScalarExpr_ScalarSubQuery ann_ sel_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _selOcsql :: LocalBindings+ _selOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _selOcat :: Catalog+ _selOidenv :: IDEnv+ _selOlib :: LocalBindings+ _selIannotatedTree :: QueryExpr + _selIcidenv :: IDEnv+ _selIfixedUpIdentifiersTree :: QueryExpr + _selIlibUpdates :: ([LocalBindingsUpdate])+ _selIoriginalTree :: QueryExpr + _selIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 367, column 9)+ _tpe =+ do+ selType <- lmt (map snd <$> _selIuType)+ case length selType of+ 0 -> Left [InternalError "no columns in scalar subquery?"]+ 1 -> Right $ head selType+ _ -> Right $ AnonymousRecordType selType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 375, column 9)+ _backTree =+ ScalarSubQuery ann_ _selIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 377, column 9)+ _selOcsql =+ _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 171, column 29)+ _selOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ ScalarSubQuery ann_ _selIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ScalarSubQuery ann_ _selIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ScalarSubQuery ann_ _selIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _selOcat =+ _lhsIcat+ -- copy rule (down)+ _selOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOlib =+ _lhsIlib+ ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =+ sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_StringLit :: Annotation ->+ String ->+ T_ScalarExpr +sem_ScalarExpr_StringLit ann_ value_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 154, column 18)+ _tpe =+ Right UnknownType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 163, column 9)+ _backTree =+ StringLit ann_ value_+ -- self rule+ _annotatedTree =+ StringLit ann_ value_+ -- self rule+ _fixedUpIdentifiersTree =+ StringLit ann_ value_+ -- self rule+ _originalTree =+ StringLit ann_ value_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_TypedStringLit :: Annotation ->+ T_TypeName ->+ String ->+ T_ScalarExpr +sem_ScalarExpr_TypedStringLit ann_ tn_ value_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _tnOcat :: Catalog+ _tnOidenv :: IDEnv+ _tnOlib :: LocalBindings+ _tnIannotatedTree :: TypeName + _tnIfixedUpIdentifiersTree :: TypeName + _tnInamedType :: (Maybe Type)+ _tnIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 187, column 10)+ _tpe =+ lmt _tnInamedType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 188, column 10)+ _backTree =+ TypedStringLit ann_ _tnIannotatedTree value_+ -- self rule+ _annotatedTree =+ TypedStringLit ann_ _tnIannotatedTree value_+ -- self rule+ _fixedUpIdentifiersTree =+ TypedStringLit ann_ _tnIfixedUpIdentifiersTree value_+ -- self rule+ _originalTree =+ TypedStringLit ann_ _tnIoriginalTree value_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _tnOcat =+ _lhsIcat+ -- copy rule (down)+ _tnOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tnOlib =+ _lhsIlib+ ( _tnIannotatedTree,_tnIfixedUpIdentifiersTree,_tnInamedType,_tnIoriginalTree) =+ tn_ _tnOcat _tnOidenv _tnOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExpr_WindowFn :: Annotation ->+ T_ScalarExpr ->+ T_ScalarExprList ->+ T_ScalarExprList ->+ Direction ->+ FrameClause ->+ T_ScalarExpr +sem_ScalarExpr_WindowFn ann_ fn_ partitionBy_ orderBy_ dir_ frm_ =+ (\ _lhsIcat+ _lhsIexpectedType+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExpr + _prototype :: (Maybe FunctionPrototype)+ _lhsOuType :: (Maybe Type)+ _tpe :: Et+ _partitionByOexpectedTypes :: ([Maybe Type])+ _orderByOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: ScalarExpr + _lhsOoriginalTree :: ScalarExpr + _fnOcat :: Catalog+ _fnOexpectedType :: (Maybe Type)+ _fnOidenv :: IDEnv+ _fnOlib :: LocalBindings+ _partitionByOcat :: Catalog+ _partitionByOidenv :: IDEnv+ _partitionByOlib :: LocalBindings+ _orderByOcat :: Catalog+ _orderByOidenv :: IDEnv+ _orderByOlib :: LocalBindings+ _fnIannotatedTree :: ScalarExpr + _fnIfixedUpIdentifiersTree :: ScalarExpr + _fnIoriginalTree :: ScalarExpr + _fnIuType :: (Maybe Type)+ _partitionByIannotatedTree :: ScalarExprList + _partitionByIfixedUpIdentifiersTree :: ScalarExprList + _partitionByIoriginalTree :: ScalarExprList + _partitionByIuType :: ([Maybe Type])+ _orderByIannotatedTree :: ScalarExprList + _orderByIfixedUpIdentifiersTree :: ScalarExprList + _orderByIoriginalTree :: ScalarExprList + _orderByIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 24, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (setTypeAddErrorsA _tpe+ . \a -> a {fnProt = _prototype+ ,infType = msum [_lhsIexpectedType+ ,etmt _tpe+ ,Nothing]}) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 46, column 9)+ _prototype =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 104, column 9)+ _lhsOuType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 210, column 9)+ _tpe =+ lmt _fnIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 211, column 9)+ _backTree =+ WindowFn ann_+ _fnIannotatedTree+ _partitionByIannotatedTree+ _orderByIannotatedTree+ dir_+ frm_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 140, column 9)+ _partitionByOexpectedTypes =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 141, column 9)+ _orderByOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ WindowFn ann_ _fnIannotatedTree _partitionByIannotatedTree _orderByIannotatedTree dir_ frm_+ -- self rule+ _fixedUpIdentifiersTree =+ WindowFn ann_ _fnIfixedUpIdentifiersTree _partitionByIfixedUpIdentifiersTree _orderByIfixedUpIdentifiersTree dir_ frm_+ -- self rule+ _originalTree =+ WindowFn ann_ _fnIoriginalTree _partitionByIoriginalTree _orderByIoriginalTree dir_ frm_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _fnOcat =+ _lhsIcat+ -- copy rule (down)+ _fnOexpectedType =+ _lhsIexpectedType+ -- copy rule (down)+ _fnOidenv =+ _lhsIidenv+ -- copy rule (down)+ _fnOlib =+ _lhsIlib+ -- copy rule (down)+ _partitionByOcat =+ _lhsIcat+ -- copy rule (down)+ _partitionByOidenv =+ _lhsIidenv+ -- copy rule (down)+ _partitionByOlib =+ _lhsIlib+ -- copy rule (down)+ _orderByOcat =+ _lhsIcat+ -- copy rule (down)+ _orderByOidenv =+ _lhsIidenv+ -- copy rule (down)+ _orderByOlib =+ _lhsIlib+ ( _fnIannotatedTree,_fnIfixedUpIdentifiersTree,_fnIoriginalTree,_fnIuType) =+ fn_ _fnOcat _fnOexpectedType _fnOidenv _fnOlib + ( _partitionByIannotatedTree,_partitionByIfixedUpIdentifiersTree,_partitionByIoriginalTree,_partitionByIuType) =+ partitionBy_ _partitionByOcat _partitionByOexpectedTypes _partitionByOidenv _partitionByOlib + ( _orderByIannotatedTree,_orderByIfixedUpIdentifiersTree,_orderByIoriginalTree,_orderByIuType) =+ orderBy_ _orderByOcat _orderByOexpectedTypes _orderByOidenv _orderByOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+-- ScalarExprDirectionPair -------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Tuple:+ child x1 : ScalarExpr + child x2 : {Direction}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprDirectionPair = ( ScalarExpr ,(Direction))+-- cata+sem_ScalarExprDirectionPair :: ScalarExprDirectionPair ->+ T_ScalarExprDirectionPair +sem_ScalarExprDirectionPair ( x1,x2) =+ (sem_ScalarExprDirectionPair_Tuple (sem_ScalarExpr x1 ) x2 )+-- semantic domain+type T_ScalarExprDirectionPair = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprDirectionPair ,ScalarExprDirectionPair ,ScalarExprDirectionPair )+data Inh_ScalarExprDirectionPair = Inh_ScalarExprDirectionPair {cat_Inh_ScalarExprDirectionPair :: Catalog,idenv_Inh_ScalarExprDirectionPair :: IDEnv,lib_Inh_ScalarExprDirectionPair :: LocalBindings}+data Syn_ScalarExprDirectionPair = Syn_ScalarExprDirectionPair {annotatedTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair ,fixedUpIdentifiersTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair ,originalTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair }+wrap_ScalarExprDirectionPair :: T_ScalarExprDirectionPair ->+ Inh_ScalarExprDirectionPair ->+ Syn_ScalarExprDirectionPair +wrap_ScalarExprDirectionPair sem (Inh_ScalarExprDirectionPair _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprDirectionPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprDirectionPair_Tuple :: T_ScalarExpr ->+ Direction ->+ T_ScalarExprDirectionPair +sem_ScalarExprDirectionPair_Tuple x1_ x2_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _x1OexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: ScalarExprDirectionPair + _lhsOfixedUpIdentifiersTree :: ScalarExprDirectionPair + _lhsOoriginalTree :: ScalarExprDirectionPair + _x1Ocat :: Catalog+ _x1Oidenv :: IDEnv+ _x1Olib :: LocalBindings+ _x1IannotatedTree :: ScalarExpr + _x1IfixedUpIdentifiersTree :: ScalarExpr + _x1IoriginalTree :: ScalarExpr + _x1IuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 83, column 13)+ _x1OexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ (_x1IannotatedTree,x2_)+ -- self rule+ _fixedUpIdentifiersTree =+ (_x1IfixedUpIdentifiersTree,x2_)+ -- self rule+ _originalTree =+ (_x1IoriginalTree,x2_)+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _x1Ocat =+ _lhsIcat+ -- copy rule (down)+ _x1Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x1Olib =+ _lhsIlib+ ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =+ x1_ _x1Ocat _x1OexpectedType _x1Oidenv _x1Olib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ScalarExprDirectionPairList ---------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : ScalarExprDirectionPair + child tl : ScalarExprDirectionPairList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprDirectionPairList = [ScalarExprDirectionPair ]+-- cata+sem_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ->+ T_ScalarExprDirectionPairList +sem_ScalarExprDirectionPairList list =+ (Prelude.foldr sem_ScalarExprDirectionPairList_Cons sem_ScalarExprDirectionPairList_Nil (Prelude.map sem_ScalarExprDirectionPair list) )+-- semantic domain+type T_ScalarExprDirectionPairList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprDirectionPairList ,ScalarExprDirectionPairList ,ScalarExprDirectionPairList )+data Inh_ScalarExprDirectionPairList = Inh_ScalarExprDirectionPairList {cat_Inh_ScalarExprDirectionPairList :: Catalog,idenv_Inh_ScalarExprDirectionPairList :: IDEnv,lib_Inh_ScalarExprDirectionPairList :: LocalBindings}+data Syn_ScalarExprDirectionPairList = Syn_ScalarExprDirectionPairList {annotatedTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ,fixedUpIdentifiersTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ,originalTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList }+wrap_ScalarExprDirectionPairList :: T_ScalarExprDirectionPairList ->+ Inh_ScalarExprDirectionPairList ->+ Syn_ScalarExprDirectionPairList +wrap_ScalarExprDirectionPairList sem (Inh_ScalarExprDirectionPairList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprDirectionPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprDirectionPairList_Cons :: T_ScalarExprDirectionPair ->+ T_ScalarExprDirectionPairList ->+ T_ScalarExprDirectionPairList +sem_ScalarExprDirectionPairList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExprDirectionPairList + _lhsOfixedUpIdentifiersTree :: ScalarExprDirectionPairList + _lhsOoriginalTree :: ScalarExprDirectionPairList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: ScalarExprDirectionPair + _hdIfixedUpIdentifiersTree :: ScalarExprDirectionPair + _hdIoriginalTree :: ScalarExprDirectionPair + _tlIannotatedTree :: ScalarExprDirectionPairList + _tlIfixedUpIdentifiersTree :: ScalarExprDirectionPairList + _tlIoriginalTree :: ScalarExprDirectionPairList + -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_ScalarExprDirectionPairList_Nil :: T_ScalarExprDirectionPairList +sem_ScalarExprDirectionPairList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExprDirectionPairList + _lhsOfixedUpIdentifiersTree :: ScalarExprDirectionPairList + _lhsOoriginalTree :: ScalarExprDirectionPairList + -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ScalarExprList ----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ expectedTypes : [Maybe Type]+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + uType : [Maybe Type]+ alternatives:+ alternative Cons:+ child hd : ScalarExpr + child tl : ScalarExprList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprList = [ScalarExpr ]+-- cata+sem_ScalarExprList :: ScalarExprList ->+ T_ScalarExprList +sem_ScalarExprList list =+ (Prelude.foldr sem_ScalarExprList_Cons sem_ScalarExprList_Nil (Prelude.map sem_ScalarExpr list) )+-- semantic domain+type T_ScalarExprList = Catalog ->+ ([Maybe Type]) ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprList ,ScalarExprList ,ScalarExprList ,([Maybe Type]))+data Inh_ScalarExprList = Inh_ScalarExprList {cat_Inh_ScalarExprList :: Catalog,expectedTypes_Inh_ScalarExprList :: ([Maybe Type]),idenv_Inh_ScalarExprList :: IDEnv,lib_Inh_ScalarExprList :: LocalBindings}+data Syn_ScalarExprList = Syn_ScalarExprList {annotatedTree_Syn_ScalarExprList :: ScalarExprList ,fixedUpIdentifiersTree_Syn_ScalarExprList :: ScalarExprList ,originalTree_Syn_ScalarExprList :: ScalarExprList ,uType_Syn_ScalarExprList :: ([Maybe Type])}+wrap_ScalarExprList :: T_ScalarExprList ->+ Inh_ScalarExprList ->+ Syn_ScalarExprList +wrap_ScalarExprList sem (Inh_ScalarExprList _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib + in (Syn_ScalarExprList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))+sem_ScalarExprList_Cons :: T_ScalarExpr ->+ T_ScalarExprList ->+ T_ScalarExprList +sem_ScalarExprList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOuType :: ([Maybe Type])+ _hdOexpectedType :: (Maybe Type)+ _tlOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: ScalarExprList + _lhsOfixedUpIdentifiersTree :: ScalarExprList + _lhsOoriginalTree :: ScalarExprList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: ScalarExpr + _hdIfixedUpIdentifiersTree :: ScalarExpr + _hdIoriginalTree :: ScalarExpr + _hdIuType :: (Maybe Type)+ _tlIannotatedTree :: ScalarExprList + _tlIfixedUpIdentifiersTree :: ScalarExprList + _tlIoriginalTree :: ScalarExprList + _tlIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 107, column 12)+ _lhsOuType =+ _hdIuType : _tlIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 86, column 12)+ _hdOexpectedType =+ case _lhsIexpectedTypes of+ (t:_) -> t+ _ -> Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 89, column 12)+ _tlOexpectedTypes =+ case _lhsIexpectedTypes of+ (_:ts) -> ts+ _ -> []+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree,_hdIuType) =+ hd_ _hdOcat _hdOexpectedType _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIuType) =+ tl_ _tlOcat _tlOexpectedTypes _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExprList_Nil :: T_ScalarExprList +sem_ScalarExprList_Nil =+ (\ _lhsIcat+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOuType :: ([Maybe Type])+ _lhsOannotatedTree :: ScalarExprList + _lhsOfixedUpIdentifiersTree :: ScalarExprList + _lhsOoriginalTree :: ScalarExprList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 108, column 11)+ _lhsOuType =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+-- ScalarExprListList ------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ expectedTypes : [Maybe Type]+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + uType : [[Maybe Type]]+ alternatives:+ alternative Cons:+ child hd : ScalarExprList + child tl : ScalarExprListList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprListList = [ScalarExprList ]+-- cata+sem_ScalarExprListList :: ScalarExprListList ->+ T_ScalarExprListList +sem_ScalarExprListList list =+ (Prelude.foldr sem_ScalarExprListList_Cons sem_ScalarExprListList_Nil (Prelude.map sem_ScalarExprList list) )+-- semantic domain+type T_ScalarExprListList = Catalog ->+ ([Maybe Type]) ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprListList ,ScalarExprListList ,ScalarExprListList ,([[Maybe Type]]))+data Inh_ScalarExprListList = Inh_ScalarExprListList {cat_Inh_ScalarExprListList :: Catalog,expectedTypes_Inh_ScalarExprListList :: ([Maybe Type]),idenv_Inh_ScalarExprListList :: IDEnv,lib_Inh_ScalarExprListList :: LocalBindings}+data Syn_ScalarExprListList = Syn_ScalarExprListList {annotatedTree_Syn_ScalarExprListList :: ScalarExprListList ,fixedUpIdentifiersTree_Syn_ScalarExprListList :: ScalarExprListList ,originalTree_Syn_ScalarExprListList :: ScalarExprListList ,uType_Syn_ScalarExprListList :: ([[Maybe Type]])}+wrap_ScalarExprListList :: T_ScalarExprListList ->+ Inh_ScalarExprListList ->+ Syn_ScalarExprListList +wrap_ScalarExprListList sem (Inh_ScalarExprListList _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType) = sem _lhsIcat _lhsIexpectedTypes _lhsIidenv _lhsIlib + in (Syn_ScalarExprListList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOuType ))+sem_ScalarExprListList_Cons :: T_ScalarExprList ->+ T_ScalarExprListList ->+ T_ScalarExprListList +sem_ScalarExprListList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOuType :: ([[Maybe Type]])+ _hdOexpectedTypes :: ([Maybe Type])+ _tlOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: ScalarExprListList + _lhsOfixedUpIdentifiersTree :: ScalarExprListList + _lhsOoriginalTree :: ScalarExprListList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: ScalarExprList + _hdIfixedUpIdentifiersTree :: ScalarExprList + _hdIoriginalTree :: ScalarExprList + _hdIuType :: ([Maybe Type])+ _tlIannotatedTree :: ScalarExprListList + _tlIfixedUpIdentifiersTree :: ScalarExprListList + _tlIoriginalTree :: ScalarExprListList + _tlIuType :: ([[Maybe Type]])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 117, column 12)+ _lhsOuType =+ _hdIuType : _tlIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 167, column 12)+ _hdOexpectedTypes =+ _lhsIexpectedTypes+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 168, column 12)+ _tlOexpectedTypes =+ _lhsIexpectedTypes+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree,_hdIuType) =+ hd_ _hdOcat _hdOexpectedTypes _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIuType) =+ tl_ _tlOcat _tlOexpectedTypes _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+sem_ScalarExprListList_Nil :: T_ScalarExprListList +sem_ScalarExprListList_Nil =+ (\ _lhsIcat+ _lhsIexpectedTypes+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOuType :: ([[Maybe Type]])+ _lhsOannotatedTree :: ScalarExprListList + _lhsOfixedUpIdentifiersTree :: ScalarExprListList + _lhsOoriginalTree :: ScalarExprListList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs/ScalarExprs.ag"(line 118, column 11)+ _lhsOuType =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOuType)))+-- ScalarExprListStatementListPair -----------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Tuple:+ child x1 : ScalarExprList + child x2 : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprListStatementListPair = ( ScalarExprList ,StatementList )+-- cata+sem_ScalarExprListStatementListPair :: ScalarExprListStatementListPair ->+ T_ScalarExprListStatementListPair +sem_ScalarExprListStatementListPair ( x1,x2) =+ (sem_ScalarExprListStatementListPair_Tuple (sem_ScalarExprList x1 ) (sem_StatementList x2 ) )+-- semantic domain+type T_ScalarExprListStatementListPair = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprListStatementListPair ,ScalarExprListStatementListPair ,ScalarExprListStatementListPair )+data Inh_ScalarExprListStatementListPair = Inh_ScalarExprListStatementListPair {cat_Inh_ScalarExprListStatementListPair :: Catalog,idenv_Inh_ScalarExprListStatementListPair :: IDEnv,lib_Inh_ScalarExprListStatementListPair :: LocalBindings}+data Syn_ScalarExprListStatementListPair = Syn_ScalarExprListStatementListPair {annotatedTree_Syn_ScalarExprListStatementListPair :: ScalarExprListStatementListPair ,fixedUpIdentifiersTree_Syn_ScalarExprListStatementListPair :: ScalarExprListStatementListPair ,originalTree_Syn_ScalarExprListStatementListPair :: ScalarExprListStatementListPair }+wrap_ScalarExprListStatementListPair :: T_ScalarExprListStatementListPair ->+ Inh_ScalarExprListStatementListPair ->+ Syn_ScalarExprListStatementListPair +wrap_ScalarExprListStatementListPair sem (Inh_ScalarExprListStatementListPair _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprListStatementListPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprListStatementListPair_Tuple :: T_ScalarExprList ->+ T_StatementList ->+ T_ScalarExprListStatementListPair +sem_ScalarExprListStatementListPair_Tuple x1_ x2_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _x2OcatUpdates :: ([CatalogUpdate])+ _x2OlibUpdates :: ([LocalBindingsUpdate])+ _x1OexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: ScalarExprListStatementListPair + _lhsOfixedUpIdentifiersTree :: ScalarExprListStatementListPair + _lhsOoriginalTree :: ScalarExprListStatementListPair + _x1Ocat :: Catalog+ _x1Oidenv :: IDEnv+ _x1Olib :: LocalBindings+ _x2Ocat :: Catalog+ _x2Oidenv :: IDEnv+ _x2Olib :: LocalBindings+ _x1IannotatedTree :: ScalarExprList + _x1IfixedUpIdentifiersTree :: ScalarExprList + _x1IoriginalTree :: ScalarExprList + _x1IuType :: ([Maybe Type])+ _x2IannotatedTree :: StatementList + _x2IfixedUpIdentifiersTree :: StatementList + _x2IoriginalTree :: StatementList + _x2IproducedCat :: Catalog+ _x2IproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 121, column 9)+ _x2OcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 122, column 9)+ _x2OlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 144, column 13)+ _x1OexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ (_x1IannotatedTree,_x2IannotatedTree)+ -- self rule+ _fixedUpIdentifiersTree =+ (_x1IfixedUpIdentifiersTree,_x2IfixedUpIdentifiersTree)+ -- self rule+ _originalTree =+ (_x1IoriginalTree,_x2IoriginalTree)+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _x1Ocat =+ _lhsIcat+ -- copy rule (down)+ _x1Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x1Olib =+ _lhsIlib+ -- copy rule (down)+ _x2Ocat =+ _lhsIcat+ -- copy rule (down)+ _x2Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x2Olib =+ _lhsIlib+ ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =+ x1_ _x1Ocat _x1OexpectedTypes _x1Oidenv _x1Olib + ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2IoriginalTree,_x2IproducedCat,_x2IproducedLib) =+ x2_ _x2Ocat _x2OcatUpdates _x2Oidenv _x2Olib _x2OlibUpdates + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ScalarExprListStatementListPairList -------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : ScalarExprListStatementListPair + child tl : ScalarExprListStatementListPairList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprListStatementListPairList = [ScalarExprListStatementListPair ]+-- cata+sem_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList ->+ T_ScalarExprListStatementListPairList +sem_ScalarExprListStatementListPairList list =+ (Prelude.foldr sem_ScalarExprListStatementListPairList_Cons sem_ScalarExprListStatementListPairList_Nil (Prelude.map sem_ScalarExprListStatementListPair list) )+-- semantic domain+type T_ScalarExprListStatementListPairList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprListStatementListPairList ,ScalarExprListStatementListPairList ,ScalarExprListStatementListPairList )+data Inh_ScalarExprListStatementListPairList = Inh_ScalarExprListStatementListPairList {cat_Inh_ScalarExprListStatementListPairList :: Catalog,idenv_Inh_ScalarExprListStatementListPairList :: IDEnv,lib_Inh_ScalarExprListStatementListPairList :: LocalBindings}+data Syn_ScalarExprListStatementListPairList = Syn_ScalarExprListStatementListPairList {annotatedTree_Syn_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList ,fixedUpIdentifiersTree_Syn_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList ,originalTree_Syn_ScalarExprListStatementListPairList :: ScalarExprListStatementListPairList }+wrap_ScalarExprListStatementListPairList :: T_ScalarExprListStatementListPairList ->+ Inh_ScalarExprListStatementListPairList ->+ Syn_ScalarExprListStatementListPairList +wrap_ScalarExprListStatementListPairList sem (Inh_ScalarExprListStatementListPairList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprListStatementListPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprListStatementListPairList_Cons :: T_ScalarExprListStatementListPair ->+ T_ScalarExprListStatementListPairList ->+ T_ScalarExprListStatementListPairList +sem_ScalarExprListStatementListPairList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExprListStatementListPairList + _lhsOfixedUpIdentifiersTree :: ScalarExprListStatementListPairList + _lhsOoriginalTree :: ScalarExprListStatementListPairList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: ScalarExprListStatementListPair + _hdIfixedUpIdentifiersTree :: ScalarExprListStatementListPair + _hdIoriginalTree :: ScalarExprListStatementListPair + _tlIannotatedTree :: ScalarExprListStatementListPairList + _tlIfixedUpIdentifiersTree :: ScalarExprListStatementListPairList + _tlIoriginalTree :: ScalarExprListStatementListPairList + -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_ScalarExprListStatementListPairList_Nil :: T_ScalarExprListStatementListPairList +sem_ScalarExprListStatementListPairList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExprListStatementListPairList + _lhsOfixedUpIdentifiersTree :: ScalarExprListStatementListPairList + _lhsOoriginalTree :: ScalarExprListStatementListPairList + -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ScalarExprRoot ----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative ScalarExprRoot:+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data ScalarExprRoot = ScalarExprRoot (ScalarExpr ) + deriving ( Show)+-- cata+sem_ScalarExprRoot :: ScalarExprRoot ->+ T_ScalarExprRoot +sem_ScalarExprRoot (ScalarExprRoot _expr ) =+ (sem_ScalarExprRoot_ScalarExprRoot (sem_ScalarExpr _expr ) )+-- semantic domain+type T_ScalarExprRoot = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprRoot ,ScalarExprRoot ,ScalarExprRoot )+data Inh_ScalarExprRoot = Inh_ScalarExprRoot {cat_Inh_ScalarExprRoot :: Catalog,idenv_Inh_ScalarExprRoot :: IDEnv,lib_Inh_ScalarExprRoot :: LocalBindings}+data Syn_ScalarExprRoot = Syn_ScalarExprRoot {annotatedTree_Syn_ScalarExprRoot :: ScalarExprRoot ,fixedUpIdentifiersTree_Syn_ScalarExprRoot :: ScalarExprRoot ,originalTree_Syn_ScalarExprRoot :: ScalarExprRoot }+wrap_ScalarExprRoot :: T_ScalarExprRoot ->+ Inh_ScalarExprRoot ->+ Syn_ScalarExprRoot +wrap_ScalarExprRoot sem (Inh_ScalarExprRoot _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprRoot _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprRoot_ScalarExprRoot :: T_ScalarExpr ->+ T_ScalarExprRoot +sem_ScalarExprRoot_ScalarExprRoot expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: ScalarExprRoot + _lhsOfixedUpIdentifiersTree :: ScalarExprRoot + _lhsOoriginalTree :: ScalarExprRoot + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 123, column 22)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ ScalarExprRoot _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ScalarExprRoot _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ScalarExprRoot _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ScalarExprStatementListPair ---------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Tuple:+ child x1 : ScalarExpr + child x2 : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprStatementListPair = ( ScalarExpr ,StatementList )+-- cata+sem_ScalarExprStatementListPair :: ScalarExprStatementListPair ->+ T_ScalarExprStatementListPair +sem_ScalarExprStatementListPair ( x1,x2) =+ (sem_ScalarExprStatementListPair_Tuple (sem_ScalarExpr x1 ) (sem_StatementList x2 ) )+-- semantic domain+type T_ScalarExprStatementListPair = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprStatementListPair ,ScalarExprStatementListPair ,ScalarExprStatementListPair )+data Inh_ScalarExprStatementListPair = Inh_ScalarExprStatementListPair {cat_Inh_ScalarExprStatementListPair :: Catalog,idenv_Inh_ScalarExprStatementListPair :: IDEnv,lib_Inh_ScalarExprStatementListPair :: LocalBindings}+data Syn_ScalarExprStatementListPair = Syn_ScalarExprStatementListPair {annotatedTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair ,fixedUpIdentifiersTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair ,originalTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair }+wrap_ScalarExprStatementListPair :: T_ScalarExprStatementListPair ->+ Inh_ScalarExprStatementListPair ->+ Syn_ScalarExprStatementListPair +wrap_ScalarExprStatementListPair sem (Inh_ScalarExprStatementListPair _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprStatementListPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprStatementListPair_Tuple :: T_ScalarExpr ->+ T_StatementList ->+ T_ScalarExprStatementListPair +sem_ScalarExprStatementListPair_Tuple x1_ x2_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _x2OcatUpdates :: ([CatalogUpdate])+ _x2OlibUpdates :: ([LocalBindingsUpdate])+ _x1OexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: ScalarExprStatementListPair + _lhsOfixedUpIdentifiersTree :: ScalarExprStatementListPair + _lhsOoriginalTree :: ScalarExprStatementListPair + _x1Ocat :: Catalog+ _x1Oidenv :: IDEnv+ _x1Olib :: LocalBindings+ _x2Ocat :: Catalog+ _x2Oidenv :: IDEnv+ _x2Olib :: LocalBindings+ _x1IannotatedTree :: ScalarExpr + _x1IfixedUpIdentifiersTree :: ScalarExpr + _x1IoriginalTree :: ScalarExpr + _x1IuType :: (Maybe Type)+ _x2IannotatedTree :: StatementList + _x2IfixedUpIdentifiersTree :: StatementList + _x2IoriginalTree :: StatementList + _x2IproducedCat :: Catalog+ _x2IproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 125, column 9)+ _x2OcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 126, column 9)+ _x2OlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 126, column 13)+ _x1OexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ (_x1IannotatedTree,_x2IannotatedTree)+ -- self rule+ _fixedUpIdentifiersTree =+ (_x1IfixedUpIdentifiersTree,_x2IfixedUpIdentifiersTree)+ -- self rule+ _originalTree =+ (_x1IoriginalTree,_x2IoriginalTree)+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _x1Ocat =+ _lhsIcat+ -- copy rule (down)+ _x1Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x1Olib =+ _lhsIlib+ -- copy rule (down)+ _x2Ocat =+ _lhsIcat+ -- copy rule (down)+ _x2Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x2Olib =+ _lhsIlib+ ( _x1IannotatedTree,_x1IfixedUpIdentifiersTree,_x1IoriginalTree,_x1IuType) =+ x1_ _x1Ocat _x1OexpectedType _x1Oidenv _x1Olib + ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2IoriginalTree,_x2IproducedCat,_x2IproducedLib) =+ x2_ _x2Ocat _x2OcatUpdates _x2Oidenv _x2Olib _x2OlibUpdates + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- ScalarExprStatementListPairList -----------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : ScalarExprStatementListPair + child tl : ScalarExprStatementListPairList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type ScalarExprStatementListPairList = [ScalarExprStatementListPair ]+-- cata+sem_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ->+ T_ScalarExprStatementListPairList +sem_ScalarExprStatementListPairList list =+ (Prelude.foldr sem_ScalarExprStatementListPairList_Cons sem_ScalarExprStatementListPairList_Nil (Prelude.map sem_ScalarExprStatementListPair list) )+-- semantic domain+type T_ScalarExprStatementListPairList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( ScalarExprStatementListPairList ,ScalarExprStatementListPairList ,ScalarExprStatementListPairList )+data Inh_ScalarExprStatementListPairList = Inh_ScalarExprStatementListPairList {cat_Inh_ScalarExprStatementListPairList :: Catalog,idenv_Inh_ScalarExprStatementListPairList :: IDEnv,lib_Inh_ScalarExprStatementListPairList :: LocalBindings}+data Syn_ScalarExprStatementListPairList = Syn_ScalarExprStatementListPairList {annotatedTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ,fixedUpIdentifiersTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ,originalTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList }+wrap_ScalarExprStatementListPairList :: T_ScalarExprStatementListPairList ->+ Inh_ScalarExprStatementListPairList ->+ Syn_ScalarExprStatementListPairList +wrap_ScalarExprStatementListPairList sem (Inh_ScalarExprStatementListPairList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_ScalarExprStatementListPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_ScalarExprStatementListPairList_Cons :: T_ScalarExprStatementListPair ->+ T_ScalarExprStatementListPairList ->+ T_ScalarExprStatementListPairList +sem_ScalarExprStatementListPairList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExprStatementListPairList + _lhsOfixedUpIdentifiersTree :: ScalarExprStatementListPairList + _lhsOoriginalTree :: ScalarExprStatementListPairList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: ScalarExprStatementListPair + _hdIfixedUpIdentifiersTree :: ScalarExprStatementListPair + _hdIoriginalTree :: ScalarExprStatementListPair + _tlIannotatedTree :: ScalarExprStatementListPairList + _tlIfixedUpIdentifiersTree :: ScalarExprStatementListPairList + _tlIoriginalTree :: ScalarExprStatementListPairList + -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_ScalarExprStatementListPairList_Nil :: T_ScalarExprStatementListPairList +sem_ScalarExprStatementListPairList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: ScalarExprStatementListPairList + _lhsOfixedUpIdentifiersTree :: ScalarExprStatementListPairList + _lhsOoriginalTree :: ScalarExprStatementListPairList + -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- SelectItem --------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + itemType : (String,Maybe Type)+ originalTree : SELF + seIdTree : [SelectItem]+ alternatives:+ alternative SelExp:+ child ann : {Annotation}+ child ex : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative SelectItem:+ child ann : {Annotation}+ child ex : ScalarExpr + child name : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data SelectItem = SelExp (Annotation) (ScalarExpr ) + | SelectItem (Annotation) (ScalarExpr ) (String) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_SelectItem :: SelectItem ->+ T_SelectItem +sem_SelectItem (SelExp _ann _ex ) =+ (sem_SelectItem_SelExp _ann (sem_ScalarExpr _ex ) )+sem_SelectItem (SelectItem _ann _ex _name ) =+ (sem_SelectItem_SelectItem _ann (sem_ScalarExpr _ex ) _name )+-- semantic domain+type T_SelectItem = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( SelectItem ,SelectItem ,((String,Maybe Type)),SelectItem ,([SelectItem]))+data Inh_SelectItem = Inh_SelectItem {cat_Inh_SelectItem :: Catalog,idenv_Inh_SelectItem :: IDEnv,lib_Inh_SelectItem :: LocalBindings}+data Syn_SelectItem = Syn_SelectItem {annotatedTree_Syn_SelectItem :: SelectItem ,fixedUpIdentifiersTree_Syn_SelectItem :: SelectItem ,itemType_Syn_SelectItem :: ((String,Maybe Type)),originalTree_Syn_SelectItem :: SelectItem ,seIdTree_Syn_SelectItem :: ([SelectItem])}+wrap_SelectItem :: T_SelectItem ->+ Inh_SelectItem ->+ Syn_SelectItem +wrap_SelectItem sem (Inh_SelectItem _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOitemType,_lhsOoriginalTree,_lhsOseIdTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_SelectItem _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOitemType _lhsOoriginalTree _lhsOseIdTree ))+sem_SelectItem_SelExp :: Annotation ->+ T_ScalarExpr ->+ T_SelectItem +sem_SelectItem_SelExp ann_ ex_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOseIdTree :: ([SelectItem])+ _lhsOitemType :: ((String,Maybe Type))+ _exOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: SelectItem + _lhsOfixedUpIdentifiersTree :: SelectItem + _lhsOoriginalTree :: SelectItem + _exOcat :: Catalog+ _exOidenv :: IDEnv+ _exOlib :: LocalBindings+ _exIannotatedTree :: ScalarExpr + _exIfixedUpIdentifiersTree :: ScalarExpr + _exIoriginalTree :: ScalarExpr + _exIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 150, column 14)+ _lhsOseIdTree =+ case _exIfixedUpIdentifiersTree of+ Identifier a "*" -> let s = expandStar _lhsIidenv Nothing+ in if null s+ then [addSIAlias $ SelExp ann_ _exIfixedUpIdentifiersTree]+ else makeSelExps ann_ a a s+ QIdentifier a0 (Identifier a1 q) "*" ->+ let s = expandStar _lhsIidenv $ Just q+ in if null s+ then [addSIAlias $ SelExp ann_ _exIfixedUpIdentifiersTree]+ else makeSelExps ann_ a0 a1 s+ _ -> [addSIAlias $ SelExp ann_ _exIfixedUpIdentifiersTree]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 32, column 9)+ _annotatedTree =+ SelExp ann_ _exIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 60, column 9)+ _lhsOitemType =+ ("", Nothing)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 106, column 25)+ _exOexpectedType =+ Nothing+ -- self rule+ _fixedUpIdentifiersTree =+ SelExp ann_ _exIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ SelExp ann_ _exIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exOcat =+ _lhsIcat+ -- copy rule (down)+ _exOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exOlib =+ _lhsIlib+ ( _exIannotatedTree,_exIfixedUpIdentifiersTree,_exIoriginalTree,_exIuType) =+ ex_ _exOcat _exOexpectedType _exOidenv _exOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOitemType,_lhsOoriginalTree,_lhsOseIdTree)))+sem_SelectItem_SelectItem :: Annotation ->+ T_ScalarExpr ->+ String ->+ T_SelectItem +sem_SelectItem_SelectItem ann_ ex_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOseIdTree :: ([SelectItem])+ _lhsOitemType :: ((String,Maybe Type))+ _exOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: SelectItem + _lhsOfixedUpIdentifiersTree :: SelectItem + _lhsOoriginalTree :: SelectItem + _exOcat :: Catalog+ _exOidenv :: IDEnv+ _exOlib :: LocalBindings+ _exIannotatedTree :: ScalarExpr + _exIfixedUpIdentifiersTree :: ScalarExpr + _exIoriginalTree :: ScalarExpr + _exIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 163, column 18)+ _lhsOseIdTree =+ [SelectItem ann_ _exIfixedUpIdentifiersTree name_]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 34, column 9)+ _annotatedTree =+ SelectItem ann_ _exIannotatedTree name_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 62, column 9)+ _lhsOitemType =+ (name_, unwrapSetof `fmap` _exIuType)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 106, column 25)+ _exOexpectedType =+ Nothing+ -- self rule+ _fixedUpIdentifiersTree =+ SelectItem ann_ _exIfixedUpIdentifiersTree name_+ -- self rule+ _originalTree =+ SelectItem ann_ _exIoriginalTree name_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exOcat =+ _lhsIcat+ -- copy rule (down)+ _exOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exOlib =+ _lhsIlib+ ( _exIannotatedTree,_exIfixedUpIdentifiersTree,_exIoriginalTree,_exIuType) =+ ex_ _exOcat _exOexpectedType _exOidenv _exOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOitemType,_lhsOoriginalTree,_lhsOseIdTree)))+-- SelectItemList ----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + listType : [(String,Maybe Type)]+ originalTree : SELF + alternatives:+ alternative Cons:+ child hd : SelectItem + child tl : SelectItemList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type SelectItemList = [SelectItem ]+-- cata+sem_SelectItemList :: SelectItemList ->+ T_SelectItemList +sem_SelectItemList list =+ (Prelude.foldr sem_SelectItemList_Cons sem_SelectItemList_Nil (Prelude.map sem_SelectItem list) )+-- semantic domain+type T_SelectItemList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( SelectItemList ,SelectItemList ,([(String,Maybe Type)]),SelectItemList )+data Inh_SelectItemList = Inh_SelectItemList {cat_Inh_SelectItemList :: Catalog,idenv_Inh_SelectItemList :: IDEnv,lib_Inh_SelectItemList :: LocalBindings}+data Syn_SelectItemList = Syn_SelectItemList {annotatedTree_Syn_SelectItemList :: SelectItemList ,fixedUpIdentifiersTree_Syn_SelectItemList :: SelectItemList ,listType_Syn_SelectItemList :: ([(String,Maybe Type)]),originalTree_Syn_SelectItemList :: SelectItemList }+wrap_SelectItemList :: T_SelectItemList ->+ Inh_SelectItemList ->+ Syn_SelectItemList +wrap_SelectItemList sem (Inh_SelectItemList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_SelectItemList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlistType _lhsOoriginalTree ))+sem_SelectItemList_Cons :: T_SelectItem ->+ T_SelectItemList ->+ T_SelectItemList +sem_SelectItemList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfixedUpIdentifiersTree :: SelectItemList + _lhsOlistType :: ([(String,Maybe Type)])+ _lhsOannotatedTree :: SelectItemList + _lhsOoriginalTree :: SelectItemList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: SelectItem + _hdIfixedUpIdentifiersTree :: SelectItem + _hdIitemType :: ((String,Maybe Type))+ _hdIoriginalTree :: SelectItem + _hdIseIdTree :: ([SelectItem])+ _tlIannotatedTree :: SelectItemList + _tlIfixedUpIdentifiersTree :: SelectItemList + _tlIlistType :: ([(String,Maybe Type)])+ _tlIoriginalTree :: SelectItemList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 141, column 12)+ _lhsOfixedUpIdentifiersTree =+ _hdIseIdTree ++ _tlIfixedUpIdentifiersTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 12)+ _lhsOlistType =+ _hdIitemType : _tlIlistType+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIitemType,_hdIoriginalTree,_hdIseIdTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIlistType,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))+sem_SelectItemList_Nil :: T_SelectItemList +sem_SelectItemList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfixedUpIdentifiersTree :: SelectItemList + _lhsOlistType :: ([(String,Maybe Type)])+ _lhsOannotatedTree :: SelectItemList + _lhsOoriginalTree :: SelectItemList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 142, column 11)+ _lhsOfixedUpIdentifiersTree =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 43, column 11)+ _lhsOlistType =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlistType,_lhsOoriginalTree)))+-- SelectList --------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + cidenv : IDEnv+ fixedUpIdentifiersTree : SELF + libUpdates : [LocalBindingsUpdate]+ listType : [(String,Maybe Type)]+ originalTree : SELF + alternatives:+ alternative SelectList:+ child ann : {Annotation}+ child items : SelectItemList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data SelectList = SelectList (Annotation) (SelectItemList ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_SelectList :: SelectList ->+ T_SelectList +sem_SelectList (SelectList _ann _items ) =+ (sem_SelectList_SelectList _ann (sem_SelectItemList _items ) )+-- semantic domain+type T_SelectList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( SelectList ,IDEnv,SelectList ,([LocalBindingsUpdate]),([(String,Maybe Type)]),SelectList )+data Inh_SelectList = Inh_SelectList {cat_Inh_SelectList :: Catalog,idenv_Inh_SelectList :: IDEnv,lib_Inh_SelectList :: LocalBindings}+data Syn_SelectList = Syn_SelectList {annotatedTree_Syn_SelectList :: SelectList ,cidenv_Syn_SelectList :: IDEnv,fixedUpIdentifiersTree_Syn_SelectList :: SelectList ,libUpdates_Syn_SelectList :: ([LocalBindingsUpdate]),listType_Syn_SelectList :: ([(String,Maybe Type)]),originalTree_Syn_SelectList :: SelectList }+wrap_SelectList :: T_SelectList ->+ Inh_SelectList ->+ Syn_SelectList +wrap_SelectList sem (Inh_SelectList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_SelectList _lhsOannotatedTree _lhsOcidenv _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOlistType _lhsOoriginalTree ))+sem_SelectList_SelectList :: Annotation ->+ T_SelectItemList ->+ T_SelectList +sem_SelectList_SelectList ann_ items_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOcidenv :: IDEnv+ _lhsOlistType :: ([(String,Maybe Type)])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: SelectList + _lhsOfixedUpIdentifiersTree :: SelectList + _lhsOoriginalTree :: SelectList + _itemsOcat :: Catalog+ _itemsOidenv :: IDEnv+ _itemsOlib :: LocalBindings+ _itemsIannotatedTree :: SelectItemList + _itemsIfixedUpIdentifiersTree :: SelectItemList + _itemsIlistType :: ([(String,Maybe Type)])+ _itemsIoriginalTree :: SelectItemList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 124, column 18)+ _lhsOcidenv =+ makeIDEnv "" $ flip map _itemsIfixedUpIdentifiersTree+ $ \(SelectItem _ _ n) -> n+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 77, column 9)+ _lhsOlistType =+ _itemsIlistType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 97, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 131, column 9)+ _lhsOannotatedTree =+ SelectList ann_+ _itemsIannotatedTree+ -- self rule+ _annotatedTree =+ SelectList ann_ _itemsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ SelectList ann_ _itemsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ SelectList ann_ _itemsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _itemsOcat =+ _lhsIcat+ -- copy rule (down)+ _itemsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _itemsOlib =+ _lhsIlib+ ( _itemsIannotatedTree,_itemsIfixedUpIdentifiersTree,_itemsIlistType,_itemsIoriginalTree) =+ items_ _itemsOcat _itemsOidenv _itemsOlib + in ( _lhsOannotatedTree,_lhsOcidenv,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOlistType,_lhsOoriginalTree)))+-- Statement ---------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ inProducedCat : Catalog+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + catUpdates : [CatalogUpdate]+ fixedUpIdentifiersTree : SELF + libUpdates : [LocalBindingsUpdate]+ originalTree : SELF + alternatives:+ alternative AlterSequence:+ child ann : {Annotation}+ child name : {String}+ child ownedBy : SQIdentifier + visit 0:+ local libUpdates : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative AlterTable:+ child ann : {Annotation}+ child name : {String}+ child actions : AlterTableActionList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Assignment:+ child ann : {Annotation}+ child target : ScalarExpr + child value : ScalarExpr + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Block:+ child ann : {Annotation}+ child lb : {Maybe String}+ child vars : VarDefList + child sts : StatementList + visit 0:+ local libUpdates : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CaseStatement:+ child ann : {Annotation}+ child cases : ScalarExprListStatementListPairList + child els : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CaseStatementSimple:+ child ann : {Annotation}+ child val : ScalarExpr + child cases : ScalarExprListStatementListPairList + child els : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ContinueStatement:+ child ann : {Annotation}+ child lb : {Maybe String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Copy:+ child ann : {Annotation}+ child table : {String}+ child targetCols : {[String]}+ child source : {CopySource}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CopyData:+ child ann : {Annotation}+ child insData : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateDomain:+ child ann : {Annotation}+ child name : {String}+ child typ : TypeName + child checkName : {String}+ child check : MaybeBoolExpr + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local statementType : {Maybe StatementType}+ local catUpdates : {[CatalogUpdate]}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateFunction:+ child ann : {Annotation}+ child name : {String}+ child params : ParamDefList + child rettype : TypeName + child rep : {Replace}+ child lang : {Language}+ child body : FnBody + child vol : {Volatility}+ visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local catUpdates : {[CatalogUpdate]}+ local backTree : _+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateLanguage:+ child ann : {Annotation}+ child name : {String}+ visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local statementType : {Maybe StatementType}+ local catUpdates : {[CatalogUpdate]}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateSequence:+ child ann : {Annotation}+ child name : {String}+ child incr : {Integer}+ child min : {Integer}+ child max : {Integer}+ child start : {Integer}+ child cache : {Integer}+ visit 0:+ local libUpdates : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateTable:+ child ann : {Annotation}+ child name : {String}+ child atts : AttributeDefList + child cons : ConstraintList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local catUpdates : {[CatalogUpdate]}+ local attrs : {[(String,Type)]}+ local statementType : {Maybe StatementType}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateTableAs:+ child ann : {Annotation}+ child name : {String}+ child expr : QueryExpr + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local catUpdates : {[CatalogUpdate]}+ local attrs : {Either [TypeError] [(String,Type)]}+ local backTree : _+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateTrigger:+ child ann : {Annotation}+ child name : {String}+ child wh : {TriggerWhen}+ child events : {[TriggerEvent]}+ child tbl : {String}+ child firing : {TriggerFire}+ child fnName : {String}+ child fnArgs : ScalarExprList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateType:+ child ann : {Annotation}+ child name : {String}+ child atts : TypeAttributeDefList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local attrs : _+ local backTree : _+ local statementType : {Maybe StatementType}+ local catUpdates : {[CatalogUpdate]}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative CreateView:+ child ann : {Annotation}+ child name : {String}+ child colNames : {Maybe [String]}+ child expr : QueryExpr + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Delete:+ child ann : {Annotation}+ child table : SQIdentifier + child using : TableRefList + child whr : MaybeBoolExpr + child returning : MaybeSelectList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local statementType : {Maybe StatementType}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local lib : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative DropFunction:+ child ann : {Annotation}+ child ifE : {IfExists}+ child sigs : StringTypeNameListPairList + child cascade : {Cascade}+ visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative DropSomething:+ child ann : {Annotation}+ child dropType : {DropType}+ child ifE : {IfExists}+ child names : {[String]}+ child cascade : {Cascade}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Execute:+ child ann : {Annotation}+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ExitStatement:+ child ann : {Annotation}+ child lb : {Maybe String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ForIntegerStatement:+ child ann : {Annotation}+ child lb : {Maybe String}+ child var : ScalarExpr + child from : ScalarExpr + child to : ScalarExpr + child sts : StatementList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local implicitVar : _+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ForQueryStatement:+ child ann : {Annotation}+ child lb : {Maybe String}+ child var : ScalarExpr + child sel : QueryExpr + child sts : StatementList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative If:+ child ann : {Annotation}+ child cases : ScalarExprStatementListPairList + child els : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Insert:+ child ann : {Annotation}+ child table : SQIdentifier + child targetCols : {[String]}+ child insData : QueryExpr + child returning : MaybeSelectList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local statementType : {Maybe StatementType}+ local columnTypes : {Either [TypeError] [(String,Type)]}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Into:+ child ann : {Annotation}+ child strict : {Bool}+ child into : ScalarExprList + child stmt : Statement + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative LoopStatement:+ child ann : {Annotation}+ child lb : {Maybe String}+ child sts : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Notify:+ child ann : {Annotation}+ child name : {String}+ visit 0:+ local libUpdates : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative NullStatement:+ child ann : {Annotation}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Perform:+ child ann : {Annotation}+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative QueryStatement:+ child ann : {Annotation}+ child ex : QueryExpr + visit 0:+ local tpe : {Either [TypeError] Type}+ local statementType : {Maybe StatementType}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local libUpdates : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Raise:+ child ann : {Annotation}+ child level : {RaiseType}+ child message : {String}+ child args : ScalarExprList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Return:+ child ann : {Annotation}+ child value : MaybeScalarExpr + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local statementType : {Maybe StatementType}+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ReturnNext:+ child ann : {Annotation}+ child expr : ScalarExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative ReturnQuery:+ child ann : {Annotation}+ child sel : QueryExpr + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Set:+ child ann : {Annotation}+ child name : {String}+ child values : {[SetValue]}+ visit 0:+ local libUpdates : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Truncate:+ child ann : {Annotation}+ child tables : {[String]}+ child restartIdentity : {RestartIdentity}+ child cascade : {Cascade}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Update:+ child ann : {Annotation}+ child table : SQIdentifier + child assigns : ScalarExprList + child fromList : TableRefList + child whr : MaybeBoolExpr + child returning : MaybeSelectList + visit 0:+ local libUpdates : _+ local tpe : {Either [TypeError] Type}+ local statementType : {Maybe StatementType}+ local backTree : _+ local catUpdates : {[CatalogUpdate]}+ local lib : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative WhileStatement:+ child ann : {Annotation}+ child lb : {Maybe String}+ child expr : ScalarExpr + child sts : StatementList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data Statement = AlterSequence (Annotation) (String) (SQIdentifier ) + | AlterTable (Annotation) (String) (AlterTableActionList ) + | Assignment (Annotation) (ScalarExpr ) (ScalarExpr ) + | Block (Annotation) ((Maybe String)) (VarDefList ) (StatementList ) + | CaseStatement (Annotation) (ScalarExprListStatementListPairList ) (StatementList ) + | CaseStatementSimple (Annotation) (ScalarExpr ) (ScalarExprListStatementListPairList ) (StatementList ) + | ContinueStatement (Annotation) ((Maybe String)) + | Copy (Annotation) (String) (([String])) (CopySource) + | CopyData (Annotation) (String) + | CreateDomain (Annotation) (String) (TypeName ) (String) (MaybeBoolExpr ) + | CreateFunction (Annotation) (String) (ParamDefList ) (TypeName ) (Replace) (Language) (FnBody ) (Volatility) + | CreateLanguage (Annotation) (String) + | CreateSequence (Annotation) (String) (Integer) (Integer) (Integer) (Integer) (Integer) + | CreateTable (Annotation) (String) (AttributeDefList ) (ConstraintList ) + | CreateTableAs (Annotation) (String) (QueryExpr ) + | CreateTrigger (Annotation) (String) (TriggerWhen) (([TriggerEvent])) (String) (TriggerFire) (String) (ScalarExprList ) + | CreateType (Annotation) (String) (TypeAttributeDefList ) + | CreateView (Annotation) (String) ((Maybe [String])) (QueryExpr ) + | Delete (Annotation) (SQIdentifier ) (TableRefList ) (MaybeBoolExpr ) (MaybeSelectList ) + | DropFunction (Annotation) (IfExists) (StringTypeNameListPairList ) (Cascade) + | DropSomething (Annotation) (DropType) (IfExists) (([String])) (Cascade) + | Execute (Annotation) (ScalarExpr ) + | ExitStatement (Annotation) ((Maybe String)) + | ForIntegerStatement (Annotation) ((Maybe String)) (ScalarExpr ) (ScalarExpr ) (ScalarExpr ) (StatementList ) + | ForQueryStatement (Annotation) ((Maybe String)) (ScalarExpr ) (QueryExpr ) (StatementList ) + | If (Annotation) (ScalarExprStatementListPairList ) (StatementList ) + | Insert (Annotation) (SQIdentifier ) (([String])) (QueryExpr ) (MaybeSelectList ) + | Into (Annotation) (Bool) (ScalarExprList ) (Statement ) + | LoopStatement (Annotation) ((Maybe String)) (StatementList ) + | Notify (Annotation) (String) + | NullStatement (Annotation) + | Perform (Annotation) (ScalarExpr ) + | QueryStatement (Annotation) (QueryExpr ) + | Raise (Annotation) (RaiseType) (String) (ScalarExprList ) + | Return (Annotation) (MaybeScalarExpr ) + | ReturnNext (Annotation) (ScalarExpr ) + | ReturnQuery (Annotation) (QueryExpr ) + | Set (Annotation) (String) (([SetValue])) + | Truncate (Annotation) (([String])) (RestartIdentity) (Cascade) + | Update (Annotation) (SQIdentifier ) (ScalarExprList ) (TableRefList ) (MaybeBoolExpr ) (MaybeSelectList ) + | WhileStatement (Annotation) ((Maybe String)) (ScalarExpr ) (StatementList ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_Statement :: Statement ->+ T_Statement +sem_Statement (AlterSequence _ann _name _ownedBy ) =+ (sem_Statement_AlterSequence _ann _name (sem_SQIdentifier _ownedBy ) )+sem_Statement (AlterTable _ann _name _actions ) =+ (sem_Statement_AlterTable _ann _name (sem_AlterTableActionList _actions ) )+sem_Statement (Assignment _ann _target _value ) =+ (sem_Statement_Assignment _ann (sem_ScalarExpr _target ) (sem_ScalarExpr _value ) )+sem_Statement (Block _ann _lb _vars _sts ) =+ (sem_Statement_Block _ann _lb (sem_VarDefList _vars ) (sem_StatementList _sts ) )+sem_Statement (CaseStatement _ann _cases _els ) =+ (sem_Statement_CaseStatement _ann (sem_ScalarExprListStatementListPairList _cases ) (sem_StatementList _els ) )+sem_Statement (CaseStatementSimple _ann _val _cases _els ) =+ (sem_Statement_CaseStatementSimple _ann (sem_ScalarExpr _val ) (sem_ScalarExprListStatementListPairList _cases ) (sem_StatementList _els ) )+sem_Statement (ContinueStatement _ann _lb ) =+ (sem_Statement_ContinueStatement _ann _lb )+sem_Statement (Copy _ann _table _targetCols _source ) =+ (sem_Statement_Copy _ann _table _targetCols _source )+sem_Statement (CopyData _ann _insData ) =+ (sem_Statement_CopyData _ann _insData )+sem_Statement (CreateDomain _ann _name _typ _checkName _check ) =+ (sem_Statement_CreateDomain _ann _name (sem_TypeName _typ ) _checkName (sem_MaybeBoolExpr _check ) )+sem_Statement (CreateFunction _ann _name _params _rettype _rep _lang _body _vol ) =+ (sem_Statement_CreateFunction _ann _name (sem_ParamDefList _params ) (sem_TypeName _rettype ) _rep _lang (sem_FnBody _body ) _vol )+sem_Statement (CreateLanguage _ann _name ) =+ (sem_Statement_CreateLanguage _ann _name )+sem_Statement (CreateSequence _ann _name _incr _min _max _start _cache ) =+ (sem_Statement_CreateSequence _ann _name _incr _min _max _start _cache )+sem_Statement (CreateTable _ann _name _atts _cons ) =+ (sem_Statement_CreateTable _ann _name (sem_AttributeDefList _atts ) (sem_ConstraintList _cons ) )+sem_Statement (CreateTableAs _ann _name _expr ) =+ (sem_Statement_CreateTableAs _ann _name (sem_QueryExpr _expr ) )+sem_Statement (CreateTrigger _ann _name _wh _events _tbl _firing _fnName _fnArgs ) =+ (sem_Statement_CreateTrigger _ann _name _wh _events _tbl _firing _fnName (sem_ScalarExprList _fnArgs ) )+sem_Statement (CreateType _ann _name _atts ) =+ (sem_Statement_CreateType _ann _name (sem_TypeAttributeDefList _atts ) )+sem_Statement (CreateView _ann _name _colNames _expr ) =+ (sem_Statement_CreateView _ann _name _colNames (sem_QueryExpr _expr ) )+sem_Statement (Delete _ann _table _using _whr _returning ) =+ (sem_Statement_Delete _ann (sem_SQIdentifier _table ) (sem_TableRefList _using ) (sem_MaybeBoolExpr _whr ) (sem_MaybeSelectList _returning ) )+sem_Statement (DropFunction _ann _ifE _sigs _cascade ) =+ (sem_Statement_DropFunction _ann _ifE (sem_StringTypeNameListPairList _sigs ) _cascade )+sem_Statement (DropSomething _ann _dropType _ifE _names _cascade ) =+ (sem_Statement_DropSomething _ann _dropType _ifE _names _cascade )+sem_Statement (Execute _ann _expr ) =+ (sem_Statement_Execute _ann (sem_ScalarExpr _expr ) )+sem_Statement (ExitStatement _ann _lb ) =+ (sem_Statement_ExitStatement _ann _lb )+sem_Statement (ForIntegerStatement _ann _lb _var _from _to _sts ) =+ (sem_Statement_ForIntegerStatement _ann _lb (sem_ScalarExpr _var ) (sem_ScalarExpr _from ) (sem_ScalarExpr _to ) (sem_StatementList _sts ) )+sem_Statement (ForQueryStatement _ann _lb _var _sel _sts ) =+ (sem_Statement_ForQueryStatement _ann _lb (sem_ScalarExpr _var ) (sem_QueryExpr _sel ) (sem_StatementList _sts ) )+sem_Statement (If _ann _cases _els ) =+ (sem_Statement_If _ann (sem_ScalarExprStatementListPairList _cases ) (sem_StatementList _els ) )+sem_Statement (Insert _ann _table _targetCols _insData _returning ) =+ (sem_Statement_Insert _ann (sem_SQIdentifier _table ) _targetCols (sem_QueryExpr _insData ) (sem_MaybeSelectList _returning ) )+sem_Statement (Into _ann _strict _into _stmt ) =+ (sem_Statement_Into _ann _strict (sem_ScalarExprList _into ) (sem_Statement _stmt ) )+sem_Statement (LoopStatement _ann _lb _sts ) =+ (sem_Statement_LoopStatement _ann _lb (sem_StatementList _sts ) )+sem_Statement (Notify _ann _name ) =+ (sem_Statement_Notify _ann _name )+sem_Statement (NullStatement _ann ) =+ (sem_Statement_NullStatement _ann )+sem_Statement (Perform _ann _expr ) =+ (sem_Statement_Perform _ann (sem_ScalarExpr _expr ) )+sem_Statement (QueryStatement _ann _ex ) =+ (sem_Statement_QueryStatement _ann (sem_QueryExpr _ex ) )+sem_Statement (Raise _ann _level _message _args ) =+ (sem_Statement_Raise _ann _level _message (sem_ScalarExprList _args ) )+sem_Statement (Return _ann _value ) =+ (sem_Statement_Return _ann (sem_MaybeScalarExpr _value ) )+sem_Statement (ReturnNext _ann _expr ) =+ (sem_Statement_ReturnNext _ann (sem_ScalarExpr _expr ) )+sem_Statement (ReturnQuery _ann _sel ) =+ (sem_Statement_ReturnQuery _ann (sem_QueryExpr _sel ) )+sem_Statement (Set _ann _name _values ) =+ (sem_Statement_Set _ann _name _values )+sem_Statement (Truncate _ann _tables _restartIdentity _cascade ) =+ (sem_Statement_Truncate _ann _tables _restartIdentity _cascade )+sem_Statement (Update _ann _table _assigns _fromList _whr _returning ) =+ (sem_Statement_Update _ann (sem_SQIdentifier _table ) (sem_ScalarExprList _assigns ) (sem_TableRefList _fromList ) (sem_MaybeBoolExpr _whr ) (sem_MaybeSelectList _returning ) )+sem_Statement (WhileStatement _ann _lb _expr _sts ) =+ (sem_Statement_WhileStatement _ann _lb (sem_ScalarExpr _expr ) (sem_StatementList _sts ) )+-- semantic domain+type T_Statement = Catalog ->+ IDEnv ->+ Catalog ->+ LocalBindings ->+ ( Statement ,([CatalogUpdate]),Statement ,([LocalBindingsUpdate]),Statement )+data Inh_Statement = Inh_Statement {cat_Inh_Statement :: Catalog,idenv_Inh_Statement :: IDEnv,inProducedCat_Inh_Statement :: Catalog,lib_Inh_Statement :: LocalBindings}+data Syn_Statement = Syn_Statement {annotatedTree_Syn_Statement :: Statement ,catUpdates_Syn_Statement :: ([CatalogUpdate]),fixedUpIdentifiersTree_Syn_Statement :: Statement ,libUpdates_Syn_Statement :: ([LocalBindingsUpdate]),originalTree_Syn_Statement :: Statement }+wrap_Statement :: T_Statement ->+ Inh_Statement ->+ Syn_Statement +wrap_Statement sem (Inh_Statement _lhsIcat _lhsIidenv _lhsIinProducedCat _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIinProducedCat _lhsIlib + in (Syn_Statement _lhsOannotatedTree _lhsOcatUpdates _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOoriginalTree ))+sem_Statement_AlterSequence :: Annotation ->+ String ->+ T_SQIdentifier ->+ T_Statement +sem_Statement_AlterSequence ann_ name_ ownedBy_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _ownedByOcat :: Catalog+ _ownedByOidenv :: IDEnv+ _ownedByOlib :: LocalBindings+ _ownedByIannotatedTree :: SQIdentifier + _ownedByIfixedUpIdentifiersTree :: SQIdentifier + _ownedByIoriginalTree :: SQIdentifier + _ownedByItbAnnotatedTree :: SQIdentifier + _ownedByItbUType :: (Maybe ([(String,Type)],[(String,Type)]))+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ AlterSequence ann_ name_ _ownedByIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ AlterSequence ann_ name_ _ownedByIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ AlterSequence ann_ name_ _ownedByIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _ownedByOcat =+ _lhsIcat+ -- copy rule (down)+ _ownedByOidenv =+ _lhsIidenv+ -- copy rule (down)+ _ownedByOlib =+ _lhsIlib+ ( _ownedByIannotatedTree,_ownedByIfixedUpIdentifiersTree,_ownedByIoriginalTree,_ownedByItbAnnotatedTree,_ownedByItbUType) =+ ownedBy_ _ownedByOcat _ownedByOidenv _ownedByOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_AlterTable :: Annotation ->+ String ->+ T_AlterTableActionList ->+ T_Statement +sem_Statement_AlterTable ann_ name_ actions_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _actionsOcat :: Catalog+ _actionsOidenv :: IDEnv+ _actionsOlib :: LocalBindings+ _actionsIannotatedTree :: AlterTableActionList + _actionsIfixedUpIdentifiersTree :: AlterTableActionList + _actionsIoriginalTree :: AlterTableActionList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ AlterTable ann_ name_ _actionsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ AlterTable ann_ name_ _actionsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ AlterTable ann_ name_ _actionsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _actionsOcat =+ _lhsIcat+ -- copy rule (down)+ _actionsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _actionsOlib =+ _lhsIlib+ ( _actionsIannotatedTree,_actionsIfixedUpIdentifiersTree,_actionsIoriginalTree) =+ actions_ _actionsOcat _actionsOidenv _actionsOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Assignment :: Annotation ->+ T_ScalarExpr ->+ T_ScalarExpr ->+ T_Statement +sem_Statement_Assignment ann_ target_ value_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _valueOexpectedType :: (Maybe Type)+ _targetOexpectedType :: (Maybe Type)+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _targetOcat :: Catalog+ _targetOidenv :: IDEnv+ _targetOlib :: LocalBindings+ _valueOcat :: Catalog+ _valueOidenv :: IDEnv+ _valueOlib :: LocalBindings+ _targetIannotatedTree :: ScalarExpr + _targetIfixedUpIdentifiersTree :: ScalarExpr + _targetIoriginalTree :: ScalarExpr + _targetIuType :: (Maybe Type)+ _valueIannotatedTree :: ScalarExpr + _valueIfixedUpIdentifiersTree :: ScalarExpr + _valueIoriginalTree :: ScalarExpr + _valueIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 20, column 9)+ _tpe =+ do+ fromType <- lmt _valueIuType+ toType <- lmt _targetIuType+ checkAssignmentValid _lhsIcat fromType toType+ return $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 26, column 9)+ _backTree =+ Assignment ann_ _targetIannotatedTree _valueIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 27, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 28, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 109, column 18)+ _valueOexpectedType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 115, column 18)+ _targetOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ Assignment ann_ _targetIannotatedTree _valueIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Assignment ann_ _targetIfixedUpIdentifiersTree _valueIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Assignment ann_ _targetIoriginalTree _valueIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _targetOcat =+ _lhsIcat+ -- copy rule (down)+ _targetOidenv =+ _lhsIidenv+ -- copy rule (down)+ _targetOlib =+ _lhsIlib+ -- copy rule (down)+ _valueOcat =+ _lhsIcat+ -- copy rule (down)+ _valueOidenv =+ _lhsIidenv+ -- copy rule (down)+ _valueOlib =+ _lhsIlib+ ( _targetIannotatedTree,_targetIfixedUpIdentifiersTree,_targetIoriginalTree,_targetIuType) =+ target_ _targetOcat _targetOexpectedType _targetOidenv _targetOlib + ( _valueIannotatedTree,_valueIfixedUpIdentifiersTree,_valueIoriginalTree,_valueIuType) =+ value_ _valueOcat _valueOexpectedType _valueOidenv _valueOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Block :: Annotation ->+ (Maybe String) ->+ T_VarDefList ->+ T_StatementList ->+ T_Statement +sem_Statement_Block ann_ lb_ vars_ sts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _stsOcatUpdates :: ([CatalogUpdate])+ _stsOlib :: LocalBindings+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _varsOcat :: Catalog+ _varsOidenv :: IDEnv+ _varsOlib :: LocalBindings+ _stsOcat :: Catalog+ _stsOidenv :: IDEnv+ _stsOlibUpdates :: ([LocalBindingsUpdate])+ _varsIannotatedTree :: VarDefList + _varsIdefs :: ([(String,Maybe Type)])+ _varsIfixedUpIdentifiersTree :: VarDefList + _varsIoriginalTree :: VarDefList + _stsIannotatedTree :: StatementList + _stsIfixedUpIdentifiersTree :: StatementList + _stsIoriginalTree :: StatementList + _stsIproducedCat :: Catalog+ _stsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 100, column 13)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 101, column 13)+ _stsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Block.ag"(line 22, column 9)+ _stsOlib =+ fromRight _lhsIlib $+ lbUpdate _lhsIcat+ (LBIds "declarations" lb_ $ mapMaybe lv _varsIdefs)+ _lhsIlib+ where+ lv (_,Nothing) = Nothing+ lv (s,Just t) = Just (s,t)+ -- self rule+ _annotatedTree =+ Block ann_ lb_ _varsIannotatedTree _stsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Block ann_ lb_ _varsIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Block ann_ lb_ _varsIoriginalTree _stsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (from local)+ _lhsOlibUpdates =+ _libUpdates+ -- copy rule (down)+ _varsOcat =+ _lhsIcat+ -- copy rule (down)+ _varsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _varsOlib =+ _lhsIlib+ -- copy rule (down)+ _stsOcat =+ _lhsIcat+ -- copy rule (down)+ _stsOidenv =+ _lhsIidenv+ -- copy rule (from local)+ _stsOlibUpdates =+ _libUpdates+ ( _varsIannotatedTree,_varsIdefs,_varsIfixedUpIdentifiersTree,_varsIoriginalTree) =+ vars_ _varsOcat _varsOidenv _varsOlib + ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =+ sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CaseStatement :: Annotation ->+ T_ScalarExprListStatementListPairList ->+ T_StatementList ->+ T_Statement +sem_Statement_CaseStatement ann_ cases_ els_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _elsOcatUpdates :: ([CatalogUpdate])+ _elsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _casesOcat :: Catalog+ _casesOidenv :: IDEnv+ _casesOlib :: LocalBindings+ _elsOcat :: Catalog+ _elsOidenv :: IDEnv+ _elsOlib :: LocalBindings+ _casesIannotatedTree :: ScalarExprListStatementListPairList + _casesIfixedUpIdentifiersTree :: ScalarExprListStatementListPairList + _casesIoriginalTree :: ScalarExprListStatementListPairList + _elsIannotatedTree :: StatementList + _elsIfixedUpIdentifiersTree :: StatementList + _elsIoriginalTree :: StatementList + _elsIproducedCat :: Catalog+ _elsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 134, column 9)+ _elsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 135, column 9)+ _elsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ CaseStatement ann_ _casesIannotatedTree _elsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CaseStatement ann_ _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CaseStatement ann_ _casesIoriginalTree _elsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _casesOcat =+ _lhsIcat+ -- copy rule (down)+ _casesOidenv =+ _lhsIidenv+ -- copy rule (down)+ _casesOlib =+ _lhsIlib+ -- copy rule (down)+ _elsOcat =+ _lhsIcat+ -- copy rule (down)+ _elsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _elsOlib =+ _lhsIlib+ ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree) =+ cases_ _casesOcat _casesOidenv _casesOlib + ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIproducedCat,_elsIproducedLib) =+ els_ _elsOcat _elsOcatUpdates _elsOidenv _elsOlib _elsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CaseStatementSimple :: Annotation ->+ T_ScalarExpr ->+ T_ScalarExprListStatementListPairList ->+ T_StatementList ->+ T_Statement +sem_Statement_CaseStatementSimple ann_ val_ cases_ els_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _elsOcatUpdates :: ([CatalogUpdate])+ _elsOlibUpdates :: ([LocalBindingsUpdate])+ _valOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _valOcat :: Catalog+ _valOidenv :: IDEnv+ _valOlib :: LocalBindings+ _casesOcat :: Catalog+ _casesOidenv :: IDEnv+ _casesOlib :: LocalBindings+ _elsOcat :: Catalog+ _elsOidenv :: IDEnv+ _elsOlib :: LocalBindings+ _valIannotatedTree :: ScalarExpr + _valIfixedUpIdentifiersTree :: ScalarExpr + _valIoriginalTree :: ScalarExpr + _valIuType :: (Maybe Type)+ _casesIannotatedTree :: ScalarExprListStatementListPairList + _casesIfixedUpIdentifiersTree :: ScalarExprListStatementListPairList + _casesIoriginalTree :: ScalarExprListStatementListPairList + _elsIannotatedTree :: StatementList + _elsIfixedUpIdentifiersTree :: StatementList + _elsIoriginalTree :: StatementList + _elsIproducedCat :: Catalog+ _elsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 134, column 9)+ _elsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 135, column 9)+ _elsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 110, column 27)+ _valOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ CaseStatementSimple ann_ _valIannotatedTree _casesIannotatedTree _elsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CaseStatementSimple ann_ _valIfixedUpIdentifiersTree _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CaseStatementSimple ann_ _valIoriginalTree _casesIoriginalTree _elsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _valOcat =+ _lhsIcat+ -- copy rule (down)+ _valOidenv =+ _lhsIidenv+ -- copy rule (down)+ _valOlib =+ _lhsIlib+ -- copy rule (down)+ _casesOcat =+ _lhsIcat+ -- copy rule (down)+ _casesOidenv =+ _lhsIidenv+ -- copy rule (down)+ _casesOlib =+ _lhsIlib+ -- copy rule (down)+ _elsOcat =+ _lhsIcat+ -- copy rule (down)+ _elsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _elsOlib =+ _lhsIlib+ ( _valIannotatedTree,_valIfixedUpIdentifiersTree,_valIoriginalTree,_valIuType) =+ val_ _valOcat _valOexpectedType _valOidenv _valOlib + ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree) =+ cases_ _casesOcat _casesOidenv _casesOlib + ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIproducedCat,_elsIproducedLib) =+ els_ _elsOcat _elsOcatUpdates _elsOidenv _elsOlib _elsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_ContinueStatement :: Annotation ->+ (Maybe String) ->+ T_Statement +sem_Statement_ContinueStatement ann_ lb_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ ContinueStatement ann_ lb_+ -- self rule+ _fixedUpIdentifiersTree =+ ContinueStatement ann_ lb_+ -- self rule+ _originalTree =+ ContinueStatement ann_ lb_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Copy :: Annotation ->+ String ->+ ([String]) ->+ CopySource ->+ T_Statement +sem_Statement_Copy ann_ table_ targetCols_ source_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ Copy ann_ table_ targetCols_ source_+ -- self rule+ _fixedUpIdentifiersTree =+ Copy ann_ table_ targetCols_ source_+ -- self rule+ _originalTree =+ Copy ann_ table_ targetCols_ source_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CopyData :: Annotation ->+ String ->+ T_Statement +sem_Statement_CopyData ann_ insData_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ CopyData ann_ insData_+ -- self rule+ _fixedUpIdentifiersTree =+ CopyData ann_ insData_+ -- self rule+ _originalTree =+ CopyData ann_ insData_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateDomain :: Annotation ->+ String ->+ T_TypeName ->+ String ->+ T_MaybeBoolExpr ->+ T_Statement +sem_Statement_CreateDomain ann_ name_ typ_ checkName_ check_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _catUpdates :: ([CatalogUpdate])+ _checkOlib :: LocalBindings+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _checkOcat :: Catalog+ _checkOidenv :: IDEnv+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + _checkIannotatedTree :: MaybeBoolExpr + _checkIfixedUpIdentifiersTree :: MaybeBoolExpr + _checkIoriginalTree :: MaybeBoolExpr + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 65, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 66, column 9)+ _backTree =+ CreateDomain ann_ name_ _typIannotatedTree checkName_ _checkIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 67, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 68, column 9)+ _catUpdates =+ maybe [] (\t -> [CatCreateDomain (DomainType name_) t]) _typInamedType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 70, column 9)+ _checkOlib =+ either (const _lhsIlib) id $ do+ nt <- lmt _typInamedType+ lbUpdate _lhsIcat+ (LBIds "domain check value" Nothing [("value", nt)])+ _lhsIlib+ -- self rule+ _annotatedTree =+ CreateDomain ann_ name_ _typIannotatedTree checkName_ _checkIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CreateDomain ann_ name_ _typIfixedUpIdentifiersTree checkName_ _checkIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CreateDomain ann_ name_ _typIoriginalTree checkName_ _checkIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ -- copy rule (down)+ _checkOcat =+ _lhsIcat+ -- copy rule (down)+ _checkOidenv =+ _lhsIidenv+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + ( _checkIannotatedTree,_checkIfixedUpIdentifiersTree,_checkIoriginalTree) =+ check_ _checkOcat _checkOidenv _checkOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateFunction :: Annotation ->+ String ->+ T_ParamDefList ->+ T_TypeName ->+ Replace ->+ Language ->+ T_FnBody ->+ Volatility ->+ T_Statement +sem_Statement_CreateFunction ann_ name_ params_ rettype_ rep_ lang_ body_ vol_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _bodyOlib :: LocalBindings+ _paramsOpos :: Int+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _bodyOcat :: Catalog+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _paramsOcat :: Catalog+ _paramsOidenv :: IDEnv+ _paramsOlib :: LocalBindings+ _rettypeOcat :: Catalog+ _rettypeOidenv :: IDEnv+ _rettypeOlib :: LocalBindings+ _bodyOidenv :: IDEnv+ _paramsIannotatedTree :: ParamDefList + _paramsIfixedUpIdentifiersTree :: ParamDefList + _paramsIoriginalTree :: ParamDefList + _paramsIparams :: ([(ParamName, Maybe Type)])+ _rettypeIannotatedTree :: TypeName + _rettypeIfixedUpIdentifiersTree :: TypeName + _rettypeInamedType :: (Maybe Type)+ _rettypeIoriginalTree :: TypeName + _bodyIannotatedTree :: FnBody + _bodyIfixedUpIdentifiersTree :: FnBody + _bodyIoriginalTree :: FnBody + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 63, column 9)+ _bodyOlib =+ either (const _lhsIlib) id $ do+ _ <- lmt _rettypeInamedType+ lbUpdate _lhsIcat (LBIds (name_ ++ " parameters") (Just name_) paramsNoPos) _lhsIlib+ >>= lbUpdate _lhsIcat (LBIds (name_ ++ " parameters") Nothing paramsPosOnly)+ where+ paramsPosOnly :: [(String,Type)]+ paramsPosOnly = mapMaybe prm _paramsIparams+ prm :: (ParamName,Maybe Type) -> Maybe (String,Type)+ prm (NamedParam p _,Just t) = Just ("$" ++ show p, t)+ prm (UnnamedParam p,Just t) = Just ("$" ++ show p, t)+ prm _ = Nothing+ paramsNoPos :: [(String,Type)]+ paramsNoPos = mapMaybe pnp _paramsIparams+ pnp :: (ParamName,Maybe Type) -> Maybe (String,Type)+ pnp (NamedParam _ n,Just t) = Just (n,t)+ pnp _ = Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 79, column 9)+ _paramsOpos =+ 1+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 88, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 89, column 9)+ _catUpdates =+ either (const []) id $ do+ let ps = mapMaybe lpt _paramsIparams+ rt <- lmt _rettypeInamedType+ return [CatCreateFunction FunName+ (map toLower name_)+ ps+ rt+ False]+ where+ lpt (_,Just t) = Just t+ lpt _ = Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 101, column 9)+ _backTree =+ CreateFunction ann_+ name_+ _paramsIannotatedTree+ _rettypeIannotatedTree+ rep_+ lang_+ _bodyIannotatedTree+ vol_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 109, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateFunction.ag"(line 110, column 9)+ _bodyOcat =+ _lhsIinProducedCat+ -- self rule+ _annotatedTree =+ CreateFunction ann_ name_ _paramsIannotatedTree _rettypeIannotatedTree rep_ lang_ _bodyIannotatedTree vol_+ -- self rule+ _fixedUpIdentifiersTree =+ CreateFunction ann_ name_ _paramsIfixedUpIdentifiersTree _rettypeIfixedUpIdentifiersTree rep_ lang_ _bodyIfixedUpIdentifiersTree vol_+ -- self rule+ _originalTree =+ CreateFunction ann_ name_ _paramsIoriginalTree _rettypeIoriginalTree rep_ lang_ _bodyIoriginalTree vol_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _paramsOcat =+ _lhsIcat+ -- copy rule (down)+ _paramsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _paramsOlib =+ _lhsIlib+ -- copy rule (down)+ _rettypeOcat =+ _lhsIcat+ -- copy rule (down)+ _rettypeOidenv =+ _lhsIidenv+ -- copy rule (down)+ _rettypeOlib =+ _lhsIlib+ -- copy rule (down)+ _bodyOidenv =+ _lhsIidenv+ ( _paramsIannotatedTree,_paramsIfixedUpIdentifiersTree,_paramsIoriginalTree,_paramsIparams) =+ params_ _paramsOcat _paramsOidenv _paramsOlib _paramsOpos + ( _rettypeIannotatedTree,_rettypeIfixedUpIdentifiersTree,_rettypeInamedType,_rettypeIoriginalTree) =+ rettype_ _rettypeOcat _rettypeOidenv _rettypeOlib + ( _bodyIannotatedTree,_bodyIfixedUpIdentifiersTree,_bodyIoriginalTree) =+ body_ _bodyOcat _bodyOidenv _bodyOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateLanguage :: Annotation ->+ String ->+ T_Statement +sem_Statement_CreateLanguage ann_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _catUpdates :: ([CatalogUpdate])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 78, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 79, column 9)+ _backTree =+ CreateLanguage ann_ name_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 80, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 81, column 9)+ _catUpdates =+ [CatCreateFunction FunName "plpgsql_call_handler" [] (Pseudo LanguageHandler) False+ ,CatCreateFunction FunName "plpgsql_validator" [ScalarType "oid"] (Pseudo Void) False]+ -- self rule+ _annotatedTree =+ CreateLanguage ann_ name_+ -- self rule+ _fixedUpIdentifiersTree =+ CreateLanguage ann_ name_+ -- self rule+ _originalTree =+ CreateLanguage ann_ name_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateSequence :: Annotation ->+ String ->+ Integer ->+ Integer ->+ Integer ->+ Integer ->+ Integer ->+ T_Statement +sem_Statement_CreateSequence ann_ name_ incr_ min_ max_ start_ cache_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ CreateSequence ann_ name_ incr_ min_ max_ start_ cache_+ -- self rule+ _fixedUpIdentifiersTree =+ CreateSequence ann_ name_ incr_ min_ max_ start_ cache_+ -- self rule+ _originalTree =+ CreateSequence ann_ name_ incr_ min_ max_ start_ cache_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateTable :: Annotation ->+ String ->+ T_AttributeDefList ->+ T_ConstraintList ->+ T_Statement +sem_Statement_CreateTable ann_ name_ atts_ cons_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _attrs :: ([(String,Type)])+ _statementType :: (Maybe StatementType)+ _consOlib :: LocalBindings+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _attsOcat :: Catalog+ _attsOidenv :: IDEnv+ _attsOlib :: LocalBindings+ _consOcat :: Catalog+ _consOidenv :: IDEnv+ _attsIannotatedTree :: AttributeDefList + _attsIattrs :: ([(String, Maybe Type)])+ _attsIfixedUpIdentifiersTree :: AttributeDefList + _attsIoriginalTree :: AttributeDefList + _consIannotatedTree :: ConstraintList + _consIfixedUpIdentifiersTree :: ConstraintList + _consIoriginalTree :: ConstraintList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 31, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 32, column 9)+ _catUpdates =+ [CatCreateTable name_ _attrs defaultSystemColumns]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 35, column 9)+ _attrs =+ mapMaybe okAt _attsIattrs+ where+ okAt (s, Just t) = Just (s,t)+ okAt (_,Nothing) = Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 40, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 41, column 9)+ _backTree =+ CreateTable ann_+ name_+ _attsIannotatedTree+ _consIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 45, column 9)+ _consOlib =+ case lbUpdate _lhsIcat+ (LBIds "attributedefs" Nothing _attrs )+ _lhsIlib of+ Left x -> error $ "statement-createtable-cons.lib " ++ show x+ Right e -> e+ -- self rule+ _annotatedTree =+ CreateTable ann_ name_ _attsIannotatedTree _consIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CreateTable ann_ name_ _attsIfixedUpIdentifiersTree _consIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CreateTable ann_ name_ _attsIoriginalTree _consIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _attsOcat =+ _lhsIcat+ -- copy rule (down)+ _attsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _attsOlib =+ _lhsIlib+ -- copy rule (down)+ _consOcat =+ _lhsIcat+ -- copy rule (down)+ _consOidenv =+ _lhsIidenv+ ( _attsIannotatedTree,_attsIattrs,_attsIfixedUpIdentifiersTree,_attsIoriginalTree) =+ atts_ _attsOcat _attsOidenv _attsOlib + ( _consIannotatedTree,_consIfixedUpIdentifiersTree,_consIoriginalTree) =+ cons_ _consOcat _consOidenv _consOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateTableAs :: Annotation ->+ String ->+ T_QueryExpr ->+ T_Statement +sem_Statement_CreateTableAs ann_ name_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _exprOcsql :: LocalBindings+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _attrs :: (Either [TypeError] [(String,Type)])+ _statementType :: (Maybe StatementType)+ _exprOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: QueryExpr + _exprIcidenv :: IDEnv+ _exprIfixedUpIdentifiersTree :: QueryExpr + _exprIlibUpdates :: ([LocalBindingsUpdate])+ _exprIoriginalTree :: QueryExpr + _exprIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 122, column 21)+ _exprOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 64, column 9)+ _tpe =+ CompositeType <$> lmt _exprIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 65, column 9)+ _catUpdates =+ either (const []) id $ do+ ats <- _attrs+ return [CatCreateTable name_ ats defaultSystemColumns]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 71, column 9)+ _attrs =+ lmt _exprIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 73, column 9)+ _backTree =+ CreateTableAs ann_ name_ _exprIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/CreateTable.ag"(line 74, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 175, column 32)+ _exprOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ CreateTableAs ann_ name_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CreateTableAs ann_ name_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CreateTableAs ann_ name_ _exprIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIcidenv,_exprIfixedUpIdentifiersTree,_exprIlibUpdates,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOcsql _exprOexpectedTypes _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateTrigger :: Annotation ->+ String ->+ TriggerWhen ->+ ([TriggerEvent]) ->+ String ->+ TriggerFire ->+ String ->+ T_ScalarExprList ->+ T_Statement +sem_Statement_CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ fnArgs_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _fnArgsOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _fnArgsOcat :: Catalog+ _fnArgsOidenv :: IDEnv+ _fnArgsOlib :: LocalBindings+ _fnArgsIannotatedTree :: ScalarExprList + _fnArgsIfixedUpIdentifiersTree :: ScalarExprList + _fnArgsIoriginalTree :: ScalarExprList + _fnArgsIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 153, column 21)+ _fnArgsOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ _fnArgsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ _fnArgsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ _fnArgsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _fnArgsOcat =+ _lhsIcat+ -- copy rule (down)+ _fnArgsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _fnArgsOlib =+ _lhsIlib+ ( _fnArgsIannotatedTree,_fnArgsIfixedUpIdentifiersTree,_fnArgsIoriginalTree,_fnArgsIuType) =+ fnArgs_ _fnArgsOcat _fnArgsOexpectedTypes _fnArgsOidenv _fnArgsOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateType :: Annotation ->+ String ->+ T_TypeAttributeDefList ->+ T_Statement +sem_Statement_CreateType ann_ name_ atts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _catUpdates :: ([CatalogUpdate])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _attsOcat :: Catalog+ _attsOidenv :: IDEnv+ _attsOlib :: LocalBindings+ _attsIannotatedTree :: TypeAttributeDefList + _attsIattrs :: ([(String, Maybe Type)])+ _attsIfixedUpIdentifiersTree :: TypeAttributeDefList + _attsIoriginalTree :: TypeAttributeDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 48, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 49, column 9)+ _attrs =+ mapMaybe okAt _attsIattrs+ where+ okAt (s, Just t) = Just (s,t)+ okAt (_,Nothing) = Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 53, column 9)+ _backTree =+ CreateType ann_ name_ _attsIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 54, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 55, column 9)+ _catUpdates =+ [CatCreateComposite name_ _attrs ]+ -- self rule+ _annotatedTree =+ CreateType ann_ name_ _attsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CreateType ann_ name_ _attsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CreateType ann_ name_ _attsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _attsOcat =+ _lhsIcat+ -- copy rule (down)+ _attsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _attsOlib =+ _lhsIlib+ ( _attsIannotatedTree,_attsIattrs,_attsIfixedUpIdentifiersTree,_attsIoriginalTree) =+ atts_ _attsOcat _attsOidenv _attsOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_CreateView :: Annotation ->+ String ->+ (Maybe [String]) ->+ T_QueryExpr ->+ T_Statement +sem_Statement_CreateView ann_ name_ colNames_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _exprOcsql :: LocalBindings+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _exprOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: QueryExpr + _exprIcidenv :: IDEnv+ _exprIfixedUpIdentifiersTree :: QueryExpr + _exprIlibUpdates :: ([LocalBindingsUpdate])+ _exprIoriginalTree :: QueryExpr + _exprIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 123, column 18)+ _exprOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 15, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 16, column 9)+ _backTree =+ CreateView ann_ name_ colNames_ _exprIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 17, column 9)+ _catUpdates =+ maybe [] (\a -> [CatCreateView name_ a]) _exprIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 19, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 175, column 32)+ _exprOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ CreateView ann_ name_ colNames_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ CreateView ann_ name_ colNames_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ CreateView ann_ name_ colNames_ _exprIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIcidenv,_exprIfixedUpIdentifiersTree,_exprIlibUpdates,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOcsql _exprOexpectedTypes _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Delete :: Annotation ->+ T_SQIdentifier ->+ T_TableRefList ->+ T_MaybeBoolExpr ->+ T_MaybeSelectList ->+ T_Statement +sem_Statement_Delete ann_ table_ using_ whr_ returning_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _catUpdates :: ([CatalogUpdate])+ _whrOlib :: LocalBindings+ _returningOlib :: LocalBindings+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _tableOcat :: Catalog+ _tableOidenv :: IDEnv+ _tableOlib :: LocalBindings+ _usingOcat :: Catalog+ _usingOidenv :: IDEnv+ _usingOlib :: LocalBindings+ _whrOcat :: Catalog+ _whrOidenv :: IDEnv+ _returningOcat :: Catalog+ _returningOidenv :: IDEnv+ _tableIannotatedTree :: SQIdentifier + _tableIfixedUpIdentifiersTree :: SQIdentifier + _tableIoriginalTree :: SQIdentifier + _tableItbAnnotatedTree :: SQIdentifier + _tableItbUType :: (Maybe ([(String,Type)],[(String,Type)]))+ _usingIannotatedTree :: TableRefList + _usingIfixedUpIdentifiersTree :: TableRefList + _usingIlibUpdates :: ([LocalBindingsUpdate])+ _usingInewLib2 :: LocalBindings+ _usingIoriginalTree :: TableRefList + _usingItrefIDs :: ([(String,[String])])+ _whrIannotatedTree :: MaybeBoolExpr + _whrIfixedUpIdentifiersTree :: MaybeBoolExpr + _whrIoriginalTree :: MaybeBoolExpr + _returningIannotatedTree :: MaybeSelectList + _returningIfixedUpIdentifiersTree :: MaybeSelectList + _returningIlistType :: ([(String,Maybe Type)])+ _returningIoriginalTree :: MaybeSelectList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 13, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 14, column 9)+ _statementType =+ do+ pt <- sequence $ getPlaceholderTypes _whrIannotatedTree+ lt <- liftList _returningIlistType+ return (pt,lt)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 19, column 9)+ _backTree =+ Delete ann_ _tableItbAnnotatedTree _usingIannotatedTree _whrIannotatedTree _returningIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 20, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 22, column 9)+ _lib =+ either (const _lhsIlib) id $ do+ a <- lmt (allAtts <$> _tableItbUType)+ lbUpdate _lhsIcat (LBIds "delete table attrs" (Just $ getTName _tableIannotatedTree) a) _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 26, column 9)+ _whrOlib =+ _lib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Delete.ag"(line 27, column 9)+ _returningOlib =+ _lib+ -- self rule+ _annotatedTree =+ Delete ann_ _tableIannotatedTree _usingIannotatedTree _whrIannotatedTree _returningIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Delete ann_ _tableIfixedUpIdentifiersTree _usingIfixedUpIdentifiersTree _whrIfixedUpIdentifiersTree _returningIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Delete ann_ _tableIoriginalTree _usingIoriginalTree _whrIoriginalTree _returningIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _tableOcat =+ _lhsIcat+ -- copy rule (down)+ _tableOidenv =+ _lhsIidenv+ -- copy rule (from local)+ _tableOlib =+ _lib+ -- copy rule (down)+ _usingOcat =+ _lhsIcat+ -- copy rule (down)+ _usingOidenv =+ _lhsIidenv+ -- copy rule (from local)+ _usingOlib =+ _lib+ -- copy rule (down)+ _whrOcat =+ _lhsIcat+ -- copy rule (down)+ _whrOidenv =+ _lhsIidenv+ -- copy rule (down)+ _returningOcat =+ _lhsIcat+ -- copy rule (down)+ _returningOidenv =+ _lhsIidenv+ ( _tableIannotatedTree,_tableIfixedUpIdentifiersTree,_tableIoriginalTree,_tableItbAnnotatedTree,_tableItbUType) =+ table_ _tableOcat _tableOidenv _tableOlib + ( _usingIannotatedTree,_usingIfixedUpIdentifiersTree,_usingIlibUpdates,_usingInewLib2,_usingIoriginalTree,_usingItrefIDs) =+ using_ _usingOcat _usingOidenv _usingOlib + ( _whrIannotatedTree,_whrIfixedUpIdentifiersTree,_whrIoriginalTree) =+ whr_ _whrOcat _whrOidenv _whrOlib + ( _returningIannotatedTree,_returningIfixedUpIdentifiersTree,_returningIlistType,_returningIoriginalTree) =+ returning_ _returningOcat _returningOidenv _returningOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_DropFunction :: Annotation ->+ IfExists ->+ T_StringTypeNameListPairList ->+ Cascade ->+ T_Statement +sem_Statement_DropFunction ann_ ifE_ sigs_ cascade_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _sigsOcat :: Catalog+ _sigsOidenv :: IDEnv+ _sigsOlib :: LocalBindings+ _sigsIannotatedTree :: StringTypeNameListPairList + _sigsIfixedUpIdentifiersTree :: StringTypeNameListPairList + _sigsIfnSigs :: ([(String,[Maybe Type])])+ _sigsIoriginalTree :: StringTypeNameListPairList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 10, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 11, column 9)+ _backTree =+ DropFunction ann_ ifE_ _sigsIannotatedTree cascade_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 12, column 9)+ _catUpdates =+ either (const []) id $+ Right $ map mcu $ mapMaybe goodSig _sigsIfnSigs+ where+ mcu :: (String,[Type]) -> CatalogUpdate+ mcu (nm,args) = CatDropFunction ifE nm args+ ifE = ifE_ == IfExists+ goodSig :: (String,[Maybe Type]) -> Maybe (String,[Type])+ goodSig (s, ts) = do+ ts1 <- sequence ts+ return (s,ts1)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 23, column 9)+ _statementType =+ Nothing+ -- self rule+ _annotatedTree =+ DropFunction ann_ ifE_ _sigsIannotatedTree cascade_+ -- self rule+ _fixedUpIdentifiersTree =+ DropFunction ann_ ifE_ _sigsIfixedUpIdentifiersTree cascade_+ -- self rule+ _originalTree =+ DropFunction ann_ ifE_ _sigsIoriginalTree cascade_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _sigsOcat =+ _lhsIcat+ -- copy rule (down)+ _sigsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _sigsOlib =+ _lhsIlib+ ( _sigsIannotatedTree,_sigsIfixedUpIdentifiersTree,_sigsIfnSigs,_sigsIoriginalTree) =+ sigs_ _sigsOcat _sigsOidenv _sigsOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_DropSomething :: Annotation ->+ DropType ->+ IfExists ->+ ([String]) ->+ Cascade ->+ T_Statement +sem_Statement_DropSomething ann_ dropType_ ifE_ names_ cascade_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ DropSomething ann_ dropType_ ifE_ names_ cascade_+ -- self rule+ _fixedUpIdentifiersTree =+ DropSomething ann_ dropType_ ifE_ names_ cascade_+ -- self rule+ _originalTree =+ DropSomething ann_ dropType_ ifE_ names_ cascade_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Execute :: Annotation ->+ T_ScalarExpr ->+ T_Statement +sem_Statement_Execute ann_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 112, column 9)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ Execute ann_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Execute ann_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Execute ann_ _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_ExitStatement :: Annotation ->+ (Maybe String) ->+ T_Statement +sem_Statement_ExitStatement ann_ lb_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ ExitStatement ann_ lb_+ -- self rule+ _fixedUpIdentifiersTree =+ ExitStatement ann_ lb_+ -- self rule+ _originalTree =+ ExitStatement ann_ lb_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_ForIntegerStatement :: Annotation ->+ (Maybe String) ->+ T_ScalarExpr ->+ T_ScalarExpr ->+ T_ScalarExpr ->+ T_StatementList ->+ T_Statement +sem_Statement_ForIntegerStatement ann_ lb_ var_ from_ to_ sts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _stsOcatUpdates :: ([CatalogUpdate])+ _stsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _stsOlib :: LocalBindings+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _fromOexpectedType :: (Maybe Type)+ _toOexpectedType :: (Maybe Type)+ _varOexpectedType :: (Maybe Type)+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _varOcat :: Catalog+ _varOidenv :: IDEnv+ _varOlib :: LocalBindings+ _fromOcat :: Catalog+ _fromOidenv :: IDEnv+ _fromOlib :: LocalBindings+ _toOcat :: Catalog+ _toOidenv :: IDEnv+ _toOlib :: LocalBindings+ _stsOcat :: Catalog+ _stsOidenv :: IDEnv+ _varIannotatedTree :: ScalarExpr + _varIfixedUpIdentifiersTree :: ScalarExpr + _varIoriginalTree :: ScalarExpr + _varIuType :: (Maybe Type)+ _fromIannotatedTree :: ScalarExpr + _fromIfixedUpIdentifiersTree :: ScalarExpr + _fromIoriginalTree :: ScalarExpr + _fromIuType :: (Maybe Type)+ _toIannotatedTree :: ScalarExpr + _toIfixedUpIdentifiersTree :: ScalarExpr + _toIoriginalTree :: ScalarExpr + _toIuType :: (Maybe Type)+ _stsIannotatedTree :: StatementList + _stsIfixedUpIdentifiersTree :: StatementList + _stsIoriginalTree :: StatementList + _stsIproducedCat :: Catalog+ _stsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 138, column 9)+ _stsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 139, column 9)+ _stsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 32, column 9)+ _tpe =+ do+ fromType <- lmt _fromIuType+ toType <- lmt _toIuType+ errorWhen (fromType /= toType) [FromToTypesNotSame fromType toType]+ case _varIuType of+ Just t -> checkAssignmentValid _lhsIcat fromType t+ Nothing -> return ()+ return $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 41, column 9)+ _implicitVar =+ case _varIannotatedTree of+ Identifier a i | errs a == [UnrecognisedIdentifier i] -> True+ _ -> False+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 44, column 9)+ _stsOlib =+ if _implicitVar+ then either (const _lhsIlib) id $ do+ ft <- lmt _fromIuType+ lbUpdate _lhsIcat+ (LBIds "local for loop variable" Nothing [((getName _varIannotatedTree),ft)]) _lhsIlib+ else _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 52, column 9)+ _backTree =+ let i = if _implicitVar+ then let (Identifier a i') = _varIannotatedTree+ in Identifier a { errs = []} i'+ else _varIannotatedTree+ in ForIntegerStatement ann_ lb_ i _fromIannotatedTree _toIannotatedTree _stsIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 58, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 59, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 113, column 27)+ _fromOexpectedType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 114, column 27)+ _toOexpectedType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 116, column 45)+ _varOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ ForIntegerStatement ann_ lb_ _varIannotatedTree _fromIannotatedTree _toIannotatedTree _stsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ForIntegerStatement ann_ lb_ _varIfixedUpIdentifiersTree _fromIfixedUpIdentifiersTree _toIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ForIntegerStatement ann_ lb_ _varIoriginalTree _fromIoriginalTree _toIoriginalTree _stsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _varOcat =+ _lhsIcat+ -- copy rule (down)+ _varOidenv =+ _lhsIidenv+ -- copy rule (down)+ _varOlib =+ _lhsIlib+ -- copy rule (down)+ _fromOcat =+ _lhsIcat+ -- copy rule (down)+ _fromOidenv =+ _lhsIidenv+ -- copy rule (down)+ _fromOlib =+ _lhsIlib+ -- copy rule (down)+ _toOcat =+ _lhsIcat+ -- copy rule (down)+ _toOidenv =+ _lhsIidenv+ -- copy rule (down)+ _toOlib =+ _lhsIlib+ -- copy rule (down)+ _stsOcat =+ _lhsIcat+ -- copy rule (down)+ _stsOidenv =+ _lhsIidenv+ ( _varIannotatedTree,_varIfixedUpIdentifiersTree,_varIoriginalTree,_varIuType) =+ var_ _varOcat _varOexpectedType _varOidenv _varOlib + ( _fromIannotatedTree,_fromIfixedUpIdentifiersTree,_fromIoriginalTree,_fromIuType) =+ from_ _fromOcat _fromOexpectedType _fromOidenv _fromOlib + ( _toIannotatedTree,_toIfixedUpIdentifiersTree,_toIoriginalTree,_toIuType) =+ to_ _toOcat _toOexpectedType _toOidenv _toOlib + ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =+ sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_ForQueryStatement :: Annotation ->+ (Maybe String) ->+ T_ScalarExpr ->+ T_QueryExpr ->+ T_StatementList ->+ T_Statement +sem_Statement_ForQueryStatement ann_ lb_ var_ sel_ sts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _stsOcatUpdates :: ([CatalogUpdate])+ _stsOlibUpdates :: ([LocalBindingsUpdate])+ _selOcsql :: LocalBindings+ _tpe :: (Either [TypeError] Type)+ _stsOlib :: LocalBindings+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _varOexpectedType :: (Maybe Type)+ _selOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _varOcat :: Catalog+ _varOidenv :: IDEnv+ _varOlib :: LocalBindings+ _selOcat :: Catalog+ _selOidenv :: IDEnv+ _selOlib :: LocalBindings+ _stsOcat :: Catalog+ _stsOidenv :: IDEnv+ _varIannotatedTree :: ScalarExpr + _varIfixedUpIdentifiersTree :: ScalarExpr + _varIoriginalTree :: ScalarExpr + _varIuType :: (Maybe Type)+ _selIannotatedTree :: QueryExpr + _selIcidenv :: IDEnv+ _selIfixedUpIdentifiersTree :: QueryExpr + _selIlibUpdates :: ([LocalBindingsUpdate])+ _selIoriginalTree :: QueryExpr + _selIuType :: (Maybe [(String,Type)])+ _stsIannotatedTree :: StatementList + _stsIfixedUpIdentifiersTree :: StatementList + _stsIoriginalTree :: StatementList + _stsIproducedCat :: Catalog+ _stsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 138, column 9)+ _stsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 139, column 9)+ _stsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 124, column 25)+ _selOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 64, column 9)+ _tpe =+ do+ st <- lmt (CompositeType <$> _selIuType)+ toType <- lmt _varIuType+ checkAssignmentValid _lhsIcat st toType+ return $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 74, column 9)+ _stsOlib =+ either (const _lhsIlib) id $ do+ _ <- _tpe+ st <- lmt (CompositeType <$> _selIuType)+ lbUpdate _lhsIcat (LBIds "for loop record type" Nothing [(getName _varIannotatedTree,st)]) _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 80, column 9)+ _backTree =+ ForQueryStatement ann_ lb_ _varIannotatedTree _selIannotatedTree _stsIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 81, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 82, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 116, column 45)+ _varOexpectedType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 177, column 9)+ _selOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ ForQueryStatement ann_ lb_ _varIannotatedTree _selIannotatedTree _stsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ForQueryStatement ann_ lb_ _varIfixedUpIdentifiersTree _selIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ForQueryStatement ann_ lb_ _varIoriginalTree _selIoriginalTree _stsIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _varOcat =+ _lhsIcat+ -- copy rule (down)+ _varOidenv =+ _lhsIidenv+ -- copy rule (down)+ _varOlib =+ _lhsIlib+ -- copy rule (down)+ _selOcat =+ _lhsIcat+ -- copy rule (down)+ _selOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOlib =+ _lhsIlib+ -- copy rule (down)+ _stsOcat =+ _lhsIcat+ -- copy rule (down)+ _stsOidenv =+ _lhsIidenv+ ( _varIannotatedTree,_varIfixedUpIdentifiersTree,_varIoriginalTree,_varIuType) =+ var_ _varOcat _varOexpectedType _varOidenv _varOlib + ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =+ sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib + ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =+ sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_If :: Annotation ->+ T_ScalarExprStatementListPairList ->+ T_StatementList ->+ T_Statement +sem_Statement_If ann_ cases_ els_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _elsOcatUpdates :: ([CatalogUpdate])+ _elsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _casesOcat :: Catalog+ _casesOidenv :: IDEnv+ _casesOlib :: LocalBindings+ _elsOcat :: Catalog+ _elsOidenv :: IDEnv+ _elsOlib :: LocalBindings+ _casesIannotatedTree :: ScalarExprStatementListPairList + _casesIfixedUpIdentifiersTree :: ScalarExprStatementListPairList + _casesIoriginalTree :: ScalarExprStatementListPairList + _elsIannotatedTree :: StatementList + _elsIfixedUpIdentifiersTree :: StatementList + _elsIoriginalTree :: StatementList + _elsIproducedCat :: Catalog+ _elsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 134, column 9)+ _elsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 135, column 9)+ _elsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ If ann_ _casesIannotatedTree _elsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ If ann_ _casesIfixedUpIdentifiersTree _elsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ If ann_ _casesIoriginalTree _elsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _casesOcat =+ _lhsIcat+ -- copy rule (down)+ _casesOidenv =+ _lhsIidenv+ -- copy rule (down)+ _casesOlib =+ _lhsIlib+ -- copy rule (down)+ _elsOcat =+ _lhsIcat+ -- copy rule (down)+ _elsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _elsOlib =+ _lhsIlib+ ( _casesIannotatedTree,_casesIfixedUpIdentifiersTree,_casesIoriginalTree) =+ cases_ _casesOcat _casesOidenv _casesOlib + ( _elsIannotatedTree,_elsIfixedUpIdentifiersTree,_elsIoriginalTree,_elsIproducedCat,_elsIproducedLib) =+ els_ _elsOcat _elsOcatUpdates _elsOidenv _elsOlib _elsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Insert :: Annotation ->+ T_SQIdentifier ->+ ([String]) ->+ T_QueryExpr ->+ T_MaybeSelectList ->+ T_Statement +sem_Statement_Insert ann_ table_ targetCols_ insData_ returning_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _insDataOcsql :: LocalBindings+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _columnTypes :: (Either [TypeError] [(String,Type)])+ _catUpdates :: ([CatalogUpdate])+ _insDataOexpectedTypes :: ([Maybe Type])+ _returningOlib :: LocalBindings+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _tableOcat :: Catalog+ _tableOidenv :: IDEnv+ _tableOlib :: LocalBindings+ _insDataOcat :: Catalog+ _insDataOidenv :: IDEnv+ _insDataOlib :: LocalBindings+ _returningOcat :: Catalog+ _returningOidenv :: IDEnv+ _tableIannotatedTree :: SQIdentifier + _tableIfixedUpIdentifiersTree :: SQIdentifier + _tableIoriginalTree :: SQIdentifier + _tableItbAnnotatedTree :: SQIdentifier + _tableItbUType :: (Maybe ([(String,Type)],[(String,Type)]))+ _insDataIannotatedTree :: QueryExpr + _insDataIcidenv :: IDEnv+ _insDataIfixedUpIdentifiersTree :: QueryExpr + _insDataIlibUpdates :: ([LocalBindingsUpdate])+ _insDataIoriginalTree :: QueryExpr + _insDataIuType :: (Maybe [(String,Type)])+ _returningIannotatedTree :: MaybeSelectList + _returningIfixedUpIdentifiersTree :: MaybeSelectList + _returningIlistType :: ([(String,Maybe Type)])+ _returningIoriginalTree :: MaybeSelectList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 125, column 14)+ _insDataOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 14, column 9)+ _tpe =+ either Left (const $ Right $ Pseudo Void) _columnTypes+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 15, column 9)+ _statementType =+ Just (catMaybes $ getPlaceholderTypes _insDataIannotatedTree+ ,fromMaybe [] $ liftList _returningIlistType)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 20, column 9)+ _columnTypes =+ do+ atts <- lmt (allAtts <$> _tableItbUType)+ pAtts <- lmt (fst <$> _tableItbUType)+ tAtts <- case targetCols_ of+ [] -> return pAtts+ _ -> mapM (lkpA atts) targetCols_+ expAtts <- lmt _insDataIuType+ checkAssignmentsValid _lhsIcat (map snd expAtts) (map snd tAtts)+ return tAtts+ where+ lkpA :: [(String,Type)] -> String -> E (String,Type)+ lkpA m n = maybe (Left [UnrecognisedIdentifier n])+ (\t -> Right (n,t))+ $ lookup n m+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 36, column 9)+ _backTree =+ Insert ann_ _tableItbAnnotatedTree+ targetCols_+ _insDataIannotatedTree+ _returningIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 40, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 41, column 9)+ _insDataOexpectedTypes =+ maybe [] id $ do+ ts <- etmt $ _columnTypes+ return $ map (Just . snd) ts+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Insert.ag"(line 45, column 9)+ _returningOlib =+ either (const _lhsIlib) id $ do+ atts <- lmt (allAtts <$> _tableItbUType)+ lbUpdate _lhsIcat (LBIds "insert target table" (Just $ getTName _tableIannotatedTree) atts) _lhsIlib+ -- self rule+ _annotatedTree =+ Insert ann_ _tableIannotatedTree targetCols_ _insDataIannotatedTree _returningIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Insert ann_ _tableIfixedUpIdentifiersTree targetCols_ _insDataIfixedUpIdentifiersTree _returningIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Insert ann_ _tableIoriginalTree targetCols_ _insDataIoriginalTree _returningIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _tableOcat =+ _lhsIcat+ -- copy rule (down)+ _tableOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tableOlib =+ _lhsIlib+ -- copy rule (down)+ _insDataOcat =+ _lhsIcat+ -- copy rule (down)+ _insDataOidenv =+ _lhsIidenv+ -- copy rule (down)+ _insDataOlib =+ _lhsIlib+ -- copy rule (down)+ _returningOcat =+ _lhsIcat+ -- copy rule (down)+ _returningOidenv =+ _lhsIidenv+ ( _tableIannotatedTree,_tableIfixedUpIdentifiersTree,_tableIoriginalTree,_tableItbAnnotatedTree,_tableItbUType) =+ table_ _tableOcat _tableOidenv _tableOlib + ( _insDataIannotatedTree,_insDataIcidenv,_insDataIfixedUpIdentifiersTree,_insDataIlibUpdates,_insDataIoriginalTree,_insDataIuType) =+ insData_ _insDataOcat _insDataOcsql _insDataOexpectedTypes _insDataOidenv _insDataOlib + ( _returningIannotatedTree,_returningIfixedUpIdentifiersTree,_returningIlistType,_returningIoriginalTree) =+ returning_ _returningOcat _returningOidenv _returningOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Into :: Annotation ->+ Bool ->+ T_ScalarExprList ->+ T_Statement ->+ T_Statement +sem_Statement_Into ann_ strict_ into_ stmt_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _intoOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _intoOcat :: Catalog+ _intoOidenv :: IDEnv+ _intoOlib :: LocalBindings+ _stmtOcat :: Catalog+ _stmtOidenv :: IDEnv+ _stmtOinProducedCat :: Catalog+ _stmtOlib :: LocalBindings+ _intoIannotatedTree :: ScalarExprList + _intoIfixedUpIdentifiersTree :: ScalarExprList + _intoIoriginalTree :: ScalarExprList + _intoIuType :: ([Maybe Type])+ _stmtIannotatedTree :: Statement + _stmtIcatUpdates :: ([CatalogUpdate])+ _stmtIfixedUpIdentifiersTree :: Statement + _stmtIlibUpdates :: ([LocalBindingsUpdate])+ _stmtIoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 117, column 12)+ _intoOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ Into ann_ strict_ _intoIannotatedTree _stmtIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Into ann_ strict_ _intoIfixedUpIdentifiersTree _stmtIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Into ann_ strict_ _intoIoriginalTree _stmtIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _intoOcat =+ _lhsIcat+ -- copy rule (down)+ _intoOidenv =+ _lhsIidenv+ -- copy rule (down)+ _intoOlib =+ _lhsIlib+ -- copy rule (down)+ _stmtOcat =+ _lhsIcat+ -- copy rule (down)+ _stmtOidenv =+ _lhsIidenv+ -- copy rule (down)+ _stmtOinProducedCat =+ _lhsIinProducedCat+ -- copy rule (down)+ _stmtOlib =+ _lhsIlib+ ( _intoIannotatedTree,_intoIfixedUpIdentifiersTree,_intoIoriginalTree,_intoIuType) =+ into_ _intoOcat _intoOexpectedTypes _intoOidenv _intoOlib + ( _stmtIannotatedTree,_stmtIcatUpdates,_stmtIfixedUpIdentifiersTree,_stmtIlibUpdates,_stmtIoriginalTree) =+ stmt_ _stmtOcat _stmtOidenv _stmtOinProducedCat _stmtOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_LoopStatement :: Annotation ->+ (Maybe String) ->+ T_StatementList ->+ T_Statement +sem_Statement_LoopStatement ann_ lb_ sts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _stsOcatUpdates :: ([CatalogUpdate])+ _stsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _stsOcat :: Catalog+ _stsOidenv :: IDEnv+ _stsOlib :: LocalBindings+ _stsIannotatedTree :: StatementList + _stsIfixedUpIdentifiersTree :: StatementList + _stsIoriginalTree :: StatementList + _stsIproducedCat :: Catalog+ _stsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 138, column 9)+ _stsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 139, column 9)+ _stsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ LoopStatement ann_ lb_ _stsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ LoopStatement ann_ lb_ _stsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ LoopStatement ann_ lb_ _stsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _stsOcat =+ _lhsIcat+ -- copy rule (down)+ _stsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _stsOlib =+ _lhsIlib+ ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =+ sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Notify :: Annotation ->+ String ->+ T_Statement +sem_Statement_Notify ann_ name_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ Notify ann_ name_+ -- self rule+ _fixedUpIdentifiersTree =+ Notify ann_ name_+ -- self rule+ _originalTree =+ Notify ann_ name_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_NullStatement :: Annotation ->+ T_Statement +sem_Statement_NullStatement ann_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ NullStatement ann_+ -- self rule+ _fixedUpIdentifiersTree =+ NullStatement ann_+ -- self rule+ _originalTree =+ NullStatement ann_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Perform :: Annotation ->+ T_ScalarExpr ->+ T_Statement +sem_Statement_Perform ann_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 112, column 9)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ Perform ann_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Perform ann_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Perform ann_ _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_QueryStatement :: Annotation ->+ T_QueryExpr ->+ T_Statement +sem_Statement_QueryStatement ann_ ex_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _catUpdates :: ([CatalogUpdate])+ _exOcsql :: LocalBindings+ _exOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exOcat :: Catalog+ _exOidenv :: IDEnv+ _exOlib :: LocalBindings+ _exIannotatedTree :: QueryExpr + _exIcidenv :: IDEnv+ _exIfixedUpIdentifiersTree :: QueryExpr + _exIlibUpdates :: ([LocalBindingsUpdate])+ _exIoriginalTree :: QueryExpr + _exIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 14, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 15, column 9)+ _statementType =+ do+ pt <- sequence $ getPlaceholderTypes _exIannotatedTree+ st <- _exIuType+ return (pt+ ,case st of+ [(_,(Pseudo Void))] -> []+ t -> t)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 23, column 9)+ _backTree =+ QueryStatement ann_ _exIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 24, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 126, column 22)+ _exOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 137, column 9)+ _libUpdates =+ _exIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 178, column 22)+ _exOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ QueryStatement ann_ _exIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ QueryStatement ann_ _exIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ QueryStatement ann_ _exIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exOcat =+ _lhsIcat+ -- copy rule (down)+ _exOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exOlib =+ _lhsIlib+ ( _exIannotatedTree,_exIcidenv,_exIfixedUpIdentifiersTree,_exIlibUpdates,_exIoriginalTree,_exIuType) =+ ex_ _exOcat _exOcsql _exOexpectedTypes _exOidenv _exOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Raise :: Annotation ->+ RaiseType ->+ String ->+ T_ScalarExprList ->+ T_Statement +sem_Statement_Raise ann_ level_ message_ args_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _argsOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _argsOcat :: Catalog+ _argsOidenv :: IDEnv+ _argsOlib :: LocalBindings+ _argsIannotatedTree :: ScalarExprList + _argsIfixedUpIdentifiersTree :: ScalarExprList + _argsIoriginalTree :: ScalarExprList + _argsIuType :: ([Maybe Type])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 154, column 13)+ _argsOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ Raise ann_ level_ message_ _argsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Raise ann_ level_ message_ _argsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Raise ann_ level_ message_ _argsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _argsOcat =+ _lhsIcat+ -- copy rule (down)+ _argsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _argsOlib =+ _lhsIlib+ ( _argsIannotatedTree,_argsIfixedUpIdentifiersTree,_argsIoriginalTree,_argsIuType) =+ args_ _argsOcat _argsOexpectedTypes _argsOidenv _argsOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Return :: Annotation ->+ T_MaybeScalarExpr ->+ T_Statement +sem_Statement_Return ann_ value_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _catUpdates :: ([CatalogUpdate])+ _statementType :: (Maybe StatementType)+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _valueOcat :: Catalog+ _valueOidenv :: IDEnv+ _valueOlib :: LocalBindings+ _valueIannotatedTree :: MaybeScalarExpr + _valueIfixedUpIdentifiersTree :: MaybeScalarExpr + _valueIoriginalTree :: MaybeScalarExpr + _valueIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 12, column 9)+ _tpe =+ maybe (Right $ Pseudo Void) Right _valueIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 13, column 9)+ _backTree =+ Return ann_ _valueIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 14, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Plpgsql.ag"(line 15, column 9)+ _statementType =+ Nothing+ -- self rule+ _annotatedTree =+ Return ann_ _valueIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Return ann_ _valueIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Return ann_ _valueIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _valueOcat =+ _lhsIcat+ -- copy rule (down)+ _valueOidenv =+ _lhsIidenv+ -- copy rule (down)+ _valueOlib =+ _lhsIlib+ ( _valueIannotatedTree,_valueIfixedUpIdentifiersTree,_valueIoriginalTree,_valueIuType) =+ value_ _valueOcat _valueOidenv _valueOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_ReturnNext :: Annotation ->+ T_ScalarExpr ->+ T_Statement +sem_Statement_ReturnNext ann_ expr_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 112, column 9)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ ReturnNext ann_ _exprIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ReturnNext ann_ _exprIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ReturnNext ann_ _exprIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_ReturnQuery :: Annotation ->+ T_QueryExpr ->+ T_Statement +sem_Statement_ReturnQuery ann_ sel_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _selOcsql :: LocalBindings+ _selOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _selOcat :: Catalog+ _selOidenv :: IDEnv+ _selOlib :: LocalBindings+ _selIannotatedTree :: QueryExpr + _selIcidenv :: IDEnv+ _selIfixedUpIdentifiersTree :: QueryExpr + _selIlibUpdates :: ([LocalBindingsUpdate])+ _selIoriginalTree :: QueryExpr + _selIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 127, column 19)+ _selOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 177, column 9)+ _selOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ ReturnQuery ann_ _selIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ReturnQuery ann_ _selIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ReturnQuery ann_ _selIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _selOcat =+ _lhsIcat+ -- copy rule (down)+ _selOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOlib =+ _lhsIlib+ ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =+ sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Set :: Annotation ->+ String ->+ ([SetValue]) ->+ T_Statement +sem_Statement_Set ann_ name_ values_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ Set ann_ name_ values_+ -- self rule+ _fixedUpIdentifiersTree =+ Set ann_ name_ values_+ -- self rule+ _originalTree =+ Set ann_ name_ values_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Truncate :: Annotation ->+ ([String]) ->+ RestartIdentity ->+ Cascade ->+ T_Statement +sem_Statement_Truncate ann_ tables_ restartIdentity_ cascade_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- self rule+ _annotatedTree =+ Truncate ann_ tables_ restartIdentity_ cascade_+ -- self rule+ _fixedUpIdentifiersTree =+ Truncate ann_ tables_ restartIdentity_ cascade_+ -- self rule+ _originalTree =+ Truncate ann_ tables_ restartIdentity_ cascade_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_Update :: Annotation ->+ T_SQIdentifier ->+ T_ScalarExprList ->+ T_TableRefList ->+ T_MaybeBoolExpr ->+ T_MaybeSelectList ->+ T_Statement +sem_Statement_Update ann_ table_ assigns_ fromList_ whr_ returning_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOannotatedTree :: Statement + _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _tpe :: (Either [TypeError] Type)+ _statementType :: (Maybe StatementType)+ _catUpdates :: ([CatalogUpdate])+ _whrOlib :: LocalBindings+ _assignsOlib :: LocalBindings+ _returningOlib :: LocalBindings+ _assignsOexpectedTypes :: ([Maybe Type])+ _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _tableOcat :: Catalog+ _tableOidenv :: IDEnv+ _tableOlib :: LocalBindings+ _assignsOcat :: Catalog+ _assignsOidenv :: IDEnv+ _fromListOcat :: Catalog+ _fromListOidenv :: IDEnv+ _fromListOlib :: LocalBindings+ _whrOcat :: Catalog+ _whrOidenv :: IDEnv+ _returningOcat :: Catalog+ _returningOidenv :: IDEnv+ _tableIannotatedTree :: SQIdentifier + _tableIfixedUpIdentifiersTree :: SQIdentifier + _tableIoriginalTree :: SQIdentifier + _tableItbAnnotatedTree :: SQIdentifier + _tableItbUType :: (Maybe ([(String,Type)],[(String,Type)]))+ _assignsIannotatedTree :: ScalarExprList + _assignsIfixedUpIdentifiersTree :: ScalarExprList + _assignsIoriginalTree :: ScalarExprList + _assignsIuType :: ([Maybe Type])+ _fromListIannotatedTree :: TableRefList + _fromListIfixedUpIdentifiersTree :: TableRefList + _fromListIlibUpdates :: ([LocalBindingsUpdate])+ _fromListInewLib2 :: LocalBindings+ _fromListIoriginalTree :: TableRefList + _fromListItrefIDs :: ([(String,[String])])+ _whrIannotatedTree :: MaybeBoolExpr + _whrIfixedUpIdentifiersTree :: MaybeBoolExpr + _whrIoriginalTree :: MaybeBoolExpr + _returningIannotatedTree :: MaybeSelectList + _returningIfixedUpIdentifiersTree :: MaybeSelectList + _returningIlistType :: ([(String,Maybe Type)])+ _returningIoriginalTree :: MaybeSelectList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 82, column 9)+ _lhsOannotatedTree =+ updateAnnotation+ (\a -> a {stType = _statementType+ ,catUpd = _catUpdates }) $+ setTypeAddErrors _tpe _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 88, column 9)+ _lhsOcatUpdates =+ _catUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 89, column 9)+ _lhsOlibUpdates =+ _libUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 94, column 9)+ _libUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 13, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 18, column 9)+ _statementType =+ do+ pt <- sequence $ getPlaceholderTypes _assignsIannotatedTree+ ++ getPlaceholderTypes _whrIannotatedTree+ return (pt,fromMaybe [] $ liftList _returningIlistType)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 24, column 9)+ _backTree =+ Update ann_+ _tableItbAnnotatedTree+ _assignsIannotatedTree+ _fromListIannotatedTree+ _whrIannotatedTree+ _returningIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 30, column 9)+ _catUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 35, column 9)+ _lib =+ either (const _lhsIlib) id $ do+ a <- lmt (allAtts <$> _tableItbUType)+ lbUpdate _lhsIcat (LBIds "updated table attrs" (Just $ getTName _tableIannotatedTree) a) _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 39, column 9)+ _whrOlib =+ _lib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 40, column 9)+ _assignsOlib =+ _lib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Dml/Update.ag"(line 41, column 9)+ _returningOlib =+ _lib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 155, column 14)+ _assignsOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ Update ann_ _tableIannotatedTree _assignsIannotatedTree _fromListIannotatedTree _whrIannotatedTree _returningIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Update ann_ _tableIfixedUpIdentifiersTree _assignsIfixedUpIdentifiersTree _fromListIfixedUpIdentifiersTree _whrIfixedUpIdentifiersTree _returningIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Update ann_ _tableIoriginalTree _assignsIoriginalTree _fromListIoriginalTree _whrIoriginalTree _returningIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _tableOcat =+ _lhsIcat+ -- copy rule (down)+ _tableOidenv =+ _lhsIidenv+ -- copy rule (from local)+ _tableOlib =+ _lib+ -- copy rule (down)+ _assignsOcat =+ _lhsIcat+ -- copy rule (down)+ _assignsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _fromListOcat =+ _lhsIcat+ -- copy rule (down)+ _fromListOidenv =+ _lhsIidenv+ -- copy rule (from local)+ _fromListOlib =+ _lib+ -- copy rule (down)+ _whrOcat =+ _lhsIcat+ -- copy rule (down)+ _whrOidenv =+ _lhsIidenv+ -- copy rule (down)+ _returningOcat =+ _lhsIcat+ -- copy rule (down)+ _returningOidenv =+ _lhsIidenv+ ( _tableIannotatedTree,_tableIfixedUpIdentifiersTree,_tableIoriginalTree,_tableItbAnnotatedTree,_tableItbUType) =+ table_ _tableOcat _tableOidenv _tableOlib + ( _assignsIannotatedTree,_assignsIfixedUpIdentifiersTree,_assignsIoriginalTree,_assignsIuType) =+ assigns_ _assignsOcat _assignsOexpectedTypes _assignsOidenv _assignsOlib + ( _fromListIannotatedTree,_fromListIfixedUpIdentifiersTree,_fromListIlibUpdates,_fromListInewLib2,_fromListIoriginalTree,_fromListItrefIDs) =+ fromList_ _fromListOcat _fromListOidenv _fromListOlib + ( _whrIannotatedTree,_whrIfixedUpIdentifiersTree,_whrIoriginalTree) =+ whr_ _whrOcat _whrOidenv _whrOlib + ( _returningIannotatedTree,_returningIfixedUpIdentifiersTree,_returningIlistType,_returningIoriginalTree) =+ returning_ _returningOcat _returningOidenv _returningOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+sem_Statement_WhileStatement :: Annotation ->+ (Maybe String) ->+ T_ScalarExpr ->+ T_StatementList ->+ T_Statement +sem_Statement_WhileStatement ann_ lb_ expr_ sts_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIinProducedCat+ _lhsIlib ->+ (let _lhsOcatUpdates :: ([CatalogUpdate])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _stsOcatUpdates :: ([CatalogUpdate])+ _stsOlibUpdates :: ([LocalBindingsUpdate])+ _exprOexpectedType :: (Maybe Type)+ _lhsOannotatedTree :: Statement + _lhsOfixedUpIdentifiersTree :: Statement + _lhsOoriginalTree :: Statement + _exprOcat :: Catalog+ _exprOidenv :: IDEnv+ _exprOlib :: LocalBindings+ _stsOcat :: Catalog+ _stsOidenv :: IDEnv+ _stsOlib :: LocalBindings+ _exprIannotatedTree :: ScalarExpr + _exprIfixedUpIdentifiersTree :: ScalarExpr + _exprIoriginalTree :: ScalarExpr + _exprIuType :: (Maybe Type)+ _stsIannotatedTree :: StatementList + _stsIfixedUpIdentifiersTree :: StatementList + _stsIoriginalTree :: StatementList + _stsIproducedCat :: Catalog+ _stsIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 116, column 9)+ _lhsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 117, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 138, column 9)+ _stsOcatUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 139, column 9)+ _stsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 112, column 9)+ _exprOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ WhileStatement ann_ lb_ _exprIannotatedTree _stsIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ WhileStatement ann_ lb_ _exprIfixedUpIdentifiersTree _stsIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ WhileStatement ann_ lb_ _exprIoriginalTree _stsIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _exprOcat =+ _lhsIcat+ -- copy rule (down)+ _exprOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exprOlib =+ _lhsIlib+ -- copy rule (down)+ _stsOcat =+ _lhsIcat+ -- copy rule (down)+ _stsOidenv =+ _lhsIidenv+ -- copy rule (down)+ _stsOlib =+ _lhsIlib+ ( _exprIannotatedTree,_exprIfixedUpIdentifiersTree,_exprIoriginalTree,_exprIuType) =+ expr_ _exprOcat _exprOexpectedType _exprOidenv _exprOlib + ( _stsIannotatedTree,_stsIfixedUpIdentifiersTree,_stsIoriginalTree,_stsIproducedCat,_stsIproducedLib) =+ sts_ _stsOcat _stsOcatUpdates _stsOidenv _stsOlib _stsOlibUpdates + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOoriginalTree)))+-- StatementList -----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ catUpdates : [CatalogUpdate]+ idenv : IDEnv+ lib : LocalBindings+ libUpdates : [LocalBindingsUpdate]+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + producedCat : Catalog+ producedLib : LocalBindings+ alternatives:+ alternative Cons:+ child hd : Statement + child tl : StatementList + visit 0:+ local newCat : _+ local newLib : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local newCat : _+ local newLib : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type StatementList = [Statement ]+-- cata+sem_StatementList :: StatementList ->+ T_StatementList +sem_StatementList list =+ (Prelude.foldr sem_StatementList_Cons sem_StatementList_Nil (Prelude.map sem_Statement list) )+-- semantic domain+type T_StatementList = Catalog ->+ ([CatalogUpdate]) ->+ IDEnv ->+ LocalBindings ->+ ([LocalBindingsUpdate]) ->+ ( StatementList ,StatementList ,StatementList ,Catalog,LocalBindings)+data Inh_StatementList = Inh_StatementList {cat_Inh_StatementList :: Catalog,catUpdates_Inh_StatementList :: ([CatalogUpdate]),idenv_Inh_StatementList :: IDEnv,lib_Inh_StatementList :: LocalBindings,libUpdates_Inh_StatementList :: ([LocalBindingsUpdate])}+data Syn_StatementList = Syn_StatementList {annotatedTree_Syn_StatementList :: StatementList ,fixedUpIdentifiersTree_Syn_StatementList :: StatementList ,originalTree_Syn_StatementList :: StatementList ,producedCat_Syn_StatementList :: Catalog,producedLib_Syn_StatementList :: LocalBindings}+wrap_StatementList :: T_StatementList ->+ Inh_StatementList ->+ Syn_StatementList +wrap_StatementList sem (Inh_StatementList _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib _lhsIlibUpdates ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib) = sem _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib _lhsIlibUpdates + in (Syn_StatementList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOproducedCat _lhsOproducedLib ))+sem_StatementList_Cons :: T_Statement ->+ T_StatementList ->+ T_StatementList +sem_StatementList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIcatUpdates+ _lhsIidenv+ _lhsIlib+ _lhsIlibUpdates ->+ (let _hdOcat :: Catalog+ _tlOcat :: Catalog+ _hdOlib :: LocalBindings+ _tlOlib :: LocalBindings+ _lhsOproducedCat :: Catalog+ _lhsOproducedLib :: LocalBindings+ _tlOcatUpdates :: ([CatalogUpdate])+ _tlOlibUpdates :: ([LocalBindingsUpdate])+ _hdOinProducedCat :: Catalog+ _lhsOannotatedTree :: StatementList + _lhsOfixedUpIdentifiersTree :: StatementList + _lhsOoriginalTree :: StatementList + _hdOidenv :: IDEnv+ _tlOidenv :: IDEnv+ _hdIannotatedTree :: Statement + _hdIcatUpdates :: ([CatalogUpdate])+ _hdIfixedUpIdentifiersTree :: Statement + _hdIlibUpdates :: ([LocalBindingsUpdate])+ _hdIoriginalTree :: Statement + _tlIannotatedTree :: StatementList + _tlIfixedUpIdentifiersTree :: StatementList + _tlIoriginalTree :: StatementList + _tlIproducedCat :: Catalog+ _tlIproducedLib :: LocalBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 56, column 9)+ _newCat =+ fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 57, column 9)+ _newLib =+ fromRight _lhsIlib $ foldM (flip $ lbUpdate _lhsIcat) _lhsIlib _lhsIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 59, column 9)+ _hdOcat =+ _newCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 60, column 9)+ _tlOcat =+ _newCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 61, column 9)+ _hdOlib =+ _newLib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 62, column 9)+ _tlOlib =+ _newLib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 66, column 9)+ _lhsOproducedCat =+ _tlIproducedCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 67, column 9)+ _lhsOproducedLib =+ _tlIproducedLib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 70, column 9)+ _tlOcatUpdates =+ _hdIcatUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 71, column 9)+ _tlOlibUpdates =+ _hdIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 97, column 12)+ _hdOinProducedCat =+ _tlIproducedCat+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ ( _hdIannotatedTree,_hdIcatUpdates,_hdIfixedUpIdentifiersTree,_hdIlibUpdates,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOinProducedCat _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIproducedCat,_tlIproducedLib) =+ tl_ _tlOcat _tlOcatUpdates _tlOidenv _tlOlib _tlOlibUpdates + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib)))+sem_StatementList_Nil :: T_StatementList +sem_StatementList_Nil =+ (\ _lhsIcat+ _lhsIcatUpdates+ _lhsIidenv+ _lhsIlib+ _lhsIlibUpdates ->+ (let _lhsOproducedCat :: Catalog+ _lhsOproducedLib :: LocalBindings+ _lhsOannotatedTree :: StatementList + _lhsOfixedUpIdentifiersTree :: StatementList + _lhsOoriginalTree :: StatementList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 56, column 9)+ _newCat =+ fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 57, column 9)+ _newLib =+ fromRight _lhsIlib $ foldM (flip $ lbUpdate _lhsIcat) _lhsIlib _lhsIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 73, column 9)+ _lhsOproducedCat =+ _newCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 74, column 9)+ _lhsOproducedLib =+ _newLib+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat,_lhsOproducedLib)))+-- StringTypeNameListPair --------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + fnSig : (String,[Maybe Type])+ originalTree : SELF + alternatives:+ alternative Tuple:+ child x1 : {String}+ child x2 : TypeNameList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type StringTypeNameListPair = ( (String),TypeNameList )+-- cata+sem_StringTypeNameListPair :: StringTypeNameListPair ->+ T_StringTypeNameListPair +sem_StringTypeNameListPair ( x1,x2) =+ (sem_StringTypeNameListPair_Tuple x1 (sem_TypeNameList x2 ) )+-- semantic domain+type T_StringTypeNameListPair = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( StringTypeNameListPair ,StringTypeNameListPair ,((String,[Maybe Type])),StringTypeNameListPair )+data Inh_StringTypeNameListPair = Inh_StringTypeNameListPair {cat_Inh_StringTypeNameListPair :: Catalog,idenv_Inh_StringTypeNameListPair :: IDEnv,lib_Inh_StringTypeNameListPair :: LocalBindings}+data Syn_StringTypeNameListPair = Syn_StringTypeNameListPair {annotatedTree_Syn_StringTypeNameListPair :: StringTypeNameListPair ,fixedUpIdentifiersTree_Syn_StringTypeNameListPair :: StringTypeNameListPair ,fnSig_Syn_StringTypeNameListPair :: ((String,[Maybe Type])),originalTree_Syn_StringTypeNameListPair :: StringTypeNameListPair }+wrap_StringTypeNameListPair :: T_StringTypeNameListPair ->+ Inh_StringTypeNameListPair ->+ Syn_StringTypeNameListPair +wrap_StringTypeNameListPair sem (Inh_StringTypeNameListPair _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSig,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_StringTypeNameListPair _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOfnSig _lhsOoriginalTree ))+sem_StringTypeNameListPair_Tuple :: String ->+ T_TypeNameList ->+ T_StringTypeNameListPair +sem_StringTypeNameListPair_Tuple x1_ x2_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfnSig :: ((String,[Maybe Type]))+ _lhsOannotatedTree :: StringTypeNameListPair + _lhsOfixedUpIdentifiersTree :: StringTypeNameListPair + _lhsOoriginalTree :: StringTypeNameListPair + _x2Ocat :: Catalog+ _x2Oidenv :: IDEnv+ _x2Olib :: LocalBindings+ _x2IannotatedTree :: TypeNameList + _x2IfixedUpIdentifiersTree :: TypeNameList + _x2InamedTypes :: ([Maybe Type])+ _x2IoriginalTree :: TypeNameList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 32, column 13)+ _lhsOfnSig =+ (x1_, _x2InamedTypes)+ -- self rule+ _annotatedTree =+ (x1_,_x2IannotatedTree)+ -- self rule+ _fixedUpIdentifiersTree =+ (x1_,_x2IfixedUpIdentifiersTree)+ -- self rule+ _originalTree =+ (x1_,_x2IoriginalTree)+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _x2Ocat =+ _lhsIcat+ -- copy rule (down)+ _x2Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _x2Olib =+ _lhsIlib+ ( _x2IannotatedTree,_x2IfixedUpIdentifiersTree,_x2InamedTypes,_x2IoriginalTree) =+ x2_ _x2Ocat _x2Oidenv _x2Olib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSig,_lhsOoriginalTree)))+-- StringTypeNameListPairList ----------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + fnSigs : [(String,[Maybe Type])]+ originalTree : SELF + alternatives:+ alternative Cons:+ child hd : StringTypeNameListPair + child tl : StringTypeNameListPairList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type StringTypeNameListPairList = [StringTypeNameListPair ]+-- cata+sem_StringTypeNameListPairList :: StringTypeNameListPairList ->+ T_StringTypeNameListPairList +sem_StringTypeNameListPairList list =+ (Prelude.foldr sem_StringTypeNameListPairList_Cons sem_StringTypeNameListPairList_Nil (Prelude.map sem_StringTypeNameListPair list) )+-- semantic domain+type T_StringTypeNameListPairList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( StringTypeNameListPairList ,StringTypeNameListPairList ,([(String,[Maybe Type])]),StringTypeNameListPairList )+data Inh_StringTypeNameListPairList = Inh_StringTypeNameListPairList {cat_Inh_StringTypeNameListPairList :: Catalog,idenv_Inh_StringTypeNameListPairList :: IDEnv,lib_Inh_StringTypeNameListPairList :: LocalBindings}+data Syn_StringTypeNameListPairList = Syn_StringTypeNameListPairList {annotatedTree_Syn_StringTypeNameListPairList :: StringTypeNameListPairList ,fixedUpIdentifiersTree_Syn_StringTypeNameListPairList :: StringTypeNameListPairList ,fnSigs_Syn_StringTypeNameListPairList :: ([(String,[Maybe Type])]),originalTree_Syn_StringTypeNameListPairList :: StringTypeNameListPairList }+wrap_StringTypeNameListPairList :: T_StringTypeNameListPairList ->+ Inh_StringTypeNameListPairList ->+ Syn_StringTypeNameListPairList +wrap_StringTypeNameListPairList sem (Inh_StringTypeNameListPairList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSigs,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_StringTypeNameListPairList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOfnSigs _lhsOoriginalTree ))+sem_StringTypeNameListPairList_Cons :: T_StringTypeNameListPair ->+ T_StringTypeNameListPairList ->+ T_StringTypeNameListPairList +sem_StringTypeNameListPairList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfnSigs :: ([(String,[Maybe Type])])+ _lhsOannotatedTree :: StringTypeNameListPairList + _lhsOfixedUpIdentifiersTree :: StringTypeNameListPairList + _lhsOoriginalTree :: StringTypeNameListPairList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: StringTypeNameListPair + _hdIfixedUpIdentifiersTree :: StringTypeNameListPair + _hdIfnSig :: ((String,[Maybe Type]))+ _hdIoriginalTree :: StringTypeNameListPair + _tlIannotatedTree :: StringTypeNameListPairList + _tlIfixedUpIdentifiersTree :: StringTypeNameListPairList + _tlIfnSigs :: ([(String,[Maybe Type])])+ _tlIoriginalTree :: StringTypeNameListPairList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 27, column 12)+ _lhsOfnSigs =+ _hdIfnSig : _tlIfnSigs+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIfnSig,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIfnSigs,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSigs,_lhsOoriginalTree)))+sem_StringTypeNameListPairList_Nil :: T_StringTypeNameListPairList +sem_StringTypeNameListPairList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfnSigs :: ([(String,[Maybe Type])])+ _lhsOannotatedTree :: StringTypeNameListPairList + _lhsOfixedUpIdentifiersTree :: StringTypeNameListPairList + _lhsOoriginalTree :: StringTypeNameListPairList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 28, column 11)+ _lhsOfnSigs =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOfnSigs,_lhsOoriginalTree)))+-- TableAlias --------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ expectedNumCols : Maybe Int+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative FullAlias:+ child ann : {Annotation}+ child tb : {String}+ child cols : {[String]}+ visit 0:+ local errs : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative NoAlias:+ child ann : {Annotation}+ visit 0:+ local backTree : _+ local errs : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative TableAlias:+ child ann : {Annotation}+ child tb : {String}+ visit 0:+ local backTree : _+ local errs : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data TableAlias = FullAlias (Annotation) (String) (([String])) + | NoAlias (Annotation) + | TableAlias (Annotation) (String) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_TableAlias :: TableAlias ->+ T_TableAlias +sem_TableAlias (FullAlias _ann _tb _cols ) =+ (sem_TableAlias_FullAlias _ann _tb _cols )+sem_TableAlias (NoAlias _ann ) =+ (sem_TableAlias_NoAlias _ann )+sem_TableAlias (TableAlias _ann _tb ) =+ (sem_TableAlias_TableAlias _ann _tb )+-- semantic domain+type T_TableAlias = Catalog ->+ (Maybe Int) ->+ IDEnv ->+ LocalBindings ->+ ( TableAlias ,TableAlias ,TableAlias )+data Inh_TableAlias = Inh_TableAlias {cat_Inh_TableAlias :: Catalog,expectedNumCols_Inh_TableAlias :: (Maybe Int),idenv_Inh_TableAlias :: IDEnv,lib_Inh_TableAlias :: LocalBindings}+data Syn_TableAlias = Syn_TableAlias {annotatedTree_Syn_TableAlias :: TableAlias ,fixedUpIdentifiersTree_Syn_TableAlias :: TableAlias ,originalTree_Syn_TableAlias :: TableAlias }+wrap_TableAlias :: T_TableAlias ->+ Inh_TableAlias ->+ Syn_TableAlias +wrap_TableAlias sem (Inh_TableAlias _lhsIcat _lhsIexpectedNumCols _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIexpectedNumCols _lhsIidenv _lhsIlib + in (Syn_TableAlias _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_TableAlias_FullAlias :: Annotation ->+ String ->+ ([String]) ->+ T_TableAlias +sem_TableAlias_FullAlias ann_ tb_ cols_ =+ (\ _lhsIcat+ _lhsIexpectedNumCols+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: TableAlias + _lhsOfixedUpIdentifiersTree :: TableAlias + _lhsOoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 286, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 288, column 9)+ _errs =+ case _lhsIexpectedNumCols of+ Nothing -> []+ Just n -> if n == length cols_+ then []+ else [WrongNumberOfAliasCols n $ length cols_]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 293, column 9)+ _backTree =+ FullAlias ann_ tb_ cols_+ -- self rule+ _annotatedTree =+ FullAlias ann_ tb_ cols_+ -- self rule+ _fixedUpIdentifiersTree =+ FullAlias ann_ tb_ cols_+ -- self rule+ _originalTree =+ FullAlias ann_ tb_ cols_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_TableAlias_NoAlias :: Annotation ->+ T_TableAlias +sem_TableAlias_NoAlias ann_ =+ (\ _lhsIcat+ _lhsIexpectedNumCols+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: TableAlias + _lhsOfixedUpIdentifiersTree :: TableAlias + _lhsOoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 286, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 296, column 15)+ _backTree =+ NoAlias ann_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 297, column 15)+ _errs =+ []+ -- self rule+ _annotatedTree =+ NoAlias ann_+ -- self rule+ _fixedUpIdentifiersTree =+ NoAlias ann_+ -- self rule+ _originalTree =+ NoAlias ann_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_TableAlias_TableAlias :: Annotation ->+ String ->+ T_TableAlias +sem_TableAlias_TableAlias ann_ tb_ =+ (\ _lhsIcat+ _lhsIexpectedNumCols+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOannotatedTree :: TableAlias + _lhsOfixedUpIdentifiersTree :: TableAlias + _lhsOoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 286, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 294, column 18)+ _backTree =+ TableAlias ann_ tb_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 295, column 18)+ _errs =+ []+ -- self rule+ _annotatedTree =+ TableAlias ann_ tb_+ -- self rule+ _fixedUpIdentifiersTree =+ TableAlias ann_ tb_+ -- self rule+ _originalTree =+ TableAlias ann_ tb_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- TableRef ----------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + libUpdates : [LocalBindingsUpdate]+ newLib2 : LocalBindings+ originalTree : SELF + trefIDs : [(String,[String])]+ alternatives:+ alternative FunTref:+ child ann : {Annotation}+ child fn : ScalarExpr + child alias : TableAlias + visit 0:+ local _tup2 : {([(String,[String])],TableRef)}+ local errs : _+ local eqfunIdens : {Either [TypeError] (String,[(String,Type)])}+ local qfunIdens : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative JoinTref:+ child ann : {Annotation}+ child tbl : TableRef + child nat : {Natural}+ child joinType : {JoinType}+ child tbl1 : TableRef + child onExpr : OnExpr + child alias : TableAlias + visit 0:+ local _tup3 : _+ local trefIDs : _+ local errs : _+ local joinErrors : _+ local libUpdates : _+ local newLib : {Either [TypeError] LocalBindings}+ local newLib2 : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative SubTref:+ child ann : {Annotation}+ child sel : QueryExpr + child alias : TableAlias + visit 0:+ local _tup4 : {([(String,[String])],TableRef)}+ local errs : _+ local selectAttrs : {Either [TypeError] [(String,Type)]}+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Tref:+ child ann : {Annotation}+ child tbl : SQIdentifier + child alias : TableAlias + visit 0:+ local _tup5 : {([(String,[String])],TableRef)}+ local errs : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data TableRef = FunTref (Annotation) (ScalarExpr ) (TableAlias ) + | JoinTref (Annotation) (TableRef ) (Natural) (JoinType) (TableRef ) (OnExpr ) (TableAlias ) + | SubTref (Annotation) (QueryExpr ) (TableAlias ) + | Tref (Annotation) (SQIdentifier ) (TableAlias ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_TableRef :: TableRef ->+ T_TableRef +sem_TableRef (FunTref _ann _fn _alias ) =+ (sem_TableRef_FunTref _ann (sem_ScalarExpr _fn ) (sem_TableAlias _alias ) )+sem_TableRef (JoinTref _ann _tbl _nat _joinType _tbl1 _onExpr _alias ) =+ (sem_TableRef_JoinTref _ann (sem_TableRef _tbl ) _nat _joinType (sem_TableRef _tbl1 ) (sem_OnExpr _onExpr ) (sem_TableAlias _alias ) )+sem_TableRef (SubTref _ann _sel _alias ) =+ (sem_TableRef_SubTref _ann (sem_QueryExpr _sel ) (sem_TableAlias _alias ) )+sem_TableRef (Tref _ann _tbl _alias ) =+ (sem_TableRef_Tref _ann (sem_SQIdentifier _tbl ) (sem_TableAlias _alias ) )+-- semantic domain+type T_TableRef = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( TableRef ,TableRef ,([LocalBindingsUpdate]),LocalBindings,TableRef ,([(String,[String])]))+data Inh_TableRef = Inh_TableRef {cat_Inh_TableRef :: Catalog,idenv_Inh_TableRef :: IDEnv,lib_Inh_TableRef :: LocalBindings}+data Syn_TableRef = Syn_TableRef {annotatedTree_Syn_TableRef :: TableRef ,fixedUpIdentifiersTree_Syn_TableRef :: TableRef ,libUpdates_Syn_TableRef :: ([LocalBindingsUpdate]),newLib2_Syn_TableRef :: LocalBindings,originalTree_Syn_TableRef :: TableRef ,trefIDs_Syn_TableRef :: ([(String,[String])])}+wrap_TableRef :: T_TableRef ->+ Inh_TableRef ->+ Syn_TableRef +wrap_TableRef sem (Inh_TableRef _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_TableRef _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOnewLib2 _lhsOoriginalTree _lhsOtrefIDs ))+sem_TableRef_FunTref :: Annotation ->+ T_ScalarExpr ->+ T_TableAlias ->+ T_TableRef +sem_TableRef_FunTref ann_ fn_ alias_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let __tup2 :: (([(String,[String])],TableRef))+ _lhsOtrefIDs :: ([(String,[String])])+ _lhsOfixedUpIdentifiersTree :: TableRef + _lhsOannotatedTree :: TableRef + _eqfunIdens :: (Either [TypeError] (String,[(String,Type)]))+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOnewLib2 :: LocalBindings+ _aliasOexpectedNumCols :: (Maybe Int)+ _fnOexpectedType :: (Maybe Type)+ _lhsOoriginalTree :: TableRef + _fnOcat :: Catalog+ _fnOidenv :: IDEnv+ _fnOlib :: LocalBindings+ _aliasOcat :: Catalog+ _aliasOidenv :: IDEnv+ _aliasOlib :: LocalBindings+ _fnIannotatedTree :: ScalarExpr + _fnIfixedUpIdentifiersTree :: ScalarExpr + _fnIoriginalTree :: ScalarExpr + _fnIuType :: (Maybe Type)+ _aliasIannotatedTree :: TableAlias + _aliasIfixedUpIdentifiersTree :: TableAlias + _aliasIoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 382, column 15)+ __tup2 =+ let (FunCall _ f _) = _fnIfixedUpIdentifiersTree+ (trs,al) = doAlias _aliasIannotatedTree [(f,[f])]+ in (trs,FunTref ann_ _fnIfixedUpIdentifiersTree al)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 382, column 15)+ (_lhsOtrefIDs,_) =+ __tup2+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 382, column 15)+ (_,_lhsOfixedUpIdentifiersTree) =+ __tup2+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 102, column 9)+ _errs =+ case _eqfunIdens of+ Left e -> e+ Right _ -> []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 108, column 9)+ _eqfunIdens =+ funIdens _lhsIcat (getAlias "" _aliasIoriginalTree) _fnIannotatedTree _fnIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 109, column 9)+ _lhsOlibUpdates =+ [LBTref "fn"+ (fst _qfunIdens )+ (snd _qfunIdens )+ []]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 113, column 9)+ _qfunIdens =+ fromRight ("",[]) _eqfunIdens+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 247, column 9)+ _lhsOnewLib2 =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 260, column 9)+ _backTree =+ FunTref ann_ _fnIannotatedTree _aliasIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 281, column 9)+ _aliasOexpectedNumCols =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 120, column 15)+ _fnOexpectedType =+ Nothing+ -- self rule+ _annotatedTree =+ FunTref ann_ _fnIannotatedTree _aliasIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ FunTref ann_ _fnIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ FunTref ann_ _fnIoriginalTree _aliasIoriginalTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _fnOcat =+ _lhsIcat+ -- copy rule (down)+ _fnOidenv =+ _lhsIidenv+ -- copy rule (down)+ _fnOlib =+ _lhsIlib+ -- copy rule (down)+ _aliasOcat =+ _lhsIcat+ -- copy rule (down)+ _aliasOidenv =+ _lhsIidenv+ -- copy rule (down)+ _aliasOlib =+ _lhsIlib+ ( _fnIannotatedTree,_fnIfixedUpIdentifiersTree,_fnIoriginalTree,_fnIuType) =+ fn_ _fnOcat _fnOexpectedType _fnOidenv _fnOlib + ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =+ alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))+sem_TableRef_JoinTref :: Annotation ->+ T_TableRef ->+ Natural ->+ JoinType ->+ T_TableRef ->+ T_OnExpr ->+ T_TableAlias ->+ T_TableRef +sem_TableRef_JoinTref ann_ tbl_ nat_ joinType_ tbl1_ onExpr_ alias_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOfixedUpIdentifiersTree :: TableRef + _lhsOtrefIDs :: ([(String,[String])])+ _onExprOidenv :: IDEnv+ _lhsOannotatedTree :: TableRef + _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _newLib :: (Either [TypeError] LocalBindings)+ _lhsOnewLib2 :: LocalBindings+ _onExprOlib :: LocalBindings+ _aliasOexpectedNumCols :: (Maybe Int)+ _lhsOoriginalTree :: TableRef + _tblOcat :: Catalog+ _tblOidenv :: IDEnv+ _tblOlib :: LocalBindings+ _tbl1Ocat :: Catalog+ _tbl1Oidenv :: IDEnv+ _tbl1Olib :: LocalBindings+ _onExprOcat :: Catalog+ _aliasOcat :: Catalog+ _aliasOidenv :: IDEnv+ _aliasOlib :: LocalBindings+ _tblIannotatedTree :: TableRef + _tblIfixedUpIdentifiersTree :: TableRef + _tblIlibUpdates :: ([LocalBindingsUpdate])+ _tblInewLib2 :: LocalBindings+ _tblIoriginalTree :: TableRef + _tblItrefIDs :: ([(String,[String])])+ _tbl1IannotatedTree :: TableRef + _tbl1IfixedUpIdentifiersTree :: TableRef + _tbl1IlibUpdates :: ([LocalBindingsUpdate])+ _tbl1InewLib2 :: LocalBindings+ _tbl1IoriginalTree :: TableRef + _tbl1ItrefIDs :: ([(String,[String])])+ _onExprIannotatedTree :: OnExpr + _onExprIfixedUpIdentifiersTree :: OnExpr + _onExprIoriginalTree :: OnExpr + _aliasIannotatedTree :: TableAlias + _aliasIfixedUpIdentifiersTree :: TableAlias + _aliasIoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 388, column 9)+ __tup3 =+ let (trs,al) = doAlias _aliasIannotatedTree $ _tblItrefIDs ++ _tbl1ItrefIDs+ in (trs, JoinTref ann_ _tblIfixedUpIdentifiersTree+ nat_ joinType_ _tbl1IfixedUpIdentifiersTree+ _onExprIfixedUpIdentifiersTree al)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 388, column 9)+ (_trefIDs,_) =+ __tup3+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 388, column 9)+ (_,_lhsOfixedUpIdentifiersTree) =+ __tup3+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 394, column 9)+ _lhsOtrefIDs =+ _trefIDs+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 395, column 9)+ _onExprOidenv =+ IDEnv _trefIDs+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 118, column 9)+ _errs =+ fromLeft [] _newLib+ ++ _joinErrors+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 120, column 9)+ _lhsOlibUpdates =+ if _joinErrors == []+ then _libUpdates+ else []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 125, column 9)+ _joinErrors =+ fromLeft [] (foldM (flip $ lbUpdate _lhsIcat) _lhsIlib _libUpdates )+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 126, column 9)+ _libUpdates =+ case (_tblIlibUpdates, _tbl1IlibUpdates) of+ ([u1], [u2]) -> [LBJoinTref "join" u1 u2 jids+ (case _aliasIoriginalTree of+ NoAlias _ -> Nothing+ TableAlias _ t -> Just t+ FullAlias _ t _ -> Just t)]+ _ -> []+ where+ jids = case (nat_, _onExprIoriginalTree) of+ (Natural, _) -> Left ()+ (_,Just (JoinUsing _ s)) -> Right s+ _ -> Right []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 140, column 9)+ _newLib =+ case (_tblIlibUpdates, _tbl1IlibUpdates) of+ ([u1],[u2]) -> lbUpdate _lhsIcat+ (LBJoinTref "join" u1 u2 (Right []) Nothing) _lhsIlib+ _ -> Right _lhsIlib+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 220, column 9)+ _newLib2 =+ let t0t :: [(String,Maybe Type)]+ t0t = getUnqualifiedBindings _tblInewLib2+ t1t = getUnqualifiedBindings _tbl1InewLib2+ in case _aliasIoriginalTree of+ (FullAlias _ n cs) ->+ createLocalBindings $ Just [(n,zip cs $ map snd (t0t ++ t1t))]+ (TableAlias _ n) ->+ createLocalBindings $ Just [(n, t0t ++ t1t)]+ NoAlias _ ->+ joinBindings _tblInewLib2 _tbl1InewLib2+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 233, column 9)+ _lhsOnewLib2 =+ _newLib2+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 234, column 9)+ _onExprOlib =+ _newLib2+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 262, column 9)+ _backTree =+ JoinTref ann_+ _tblIannotatedTree+ nat_+ joinType_+ _tbl1IannotatedTree+ _onExprIannotatedTree+ _aliasIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 281, column 9)+ _aliasOexpectedNumCols =+ Nothing+ -- self rule+ _annotatedTree =+ JoinTref ann_ _tblIannotatedTree nat_ joinType_ _tbl1IannotatedTree _onExprIannotatedTree _aliasIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ JoinTref ann_ _tblIfixedUpIdentifiersTree nat_ joinType_ _tbl1IfixedUpIdentifiersTree _onExprIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ JoinTref ann_ _tblIoriginalTree nat_ joinType_ _tbl1IoriginalTree _onExprIoriginalTree _aliasIoriginalTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _tblOcat =+ _lhsIcat+ -- copy rule (down)+ _tblOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tblOlib =+ _lhsIlib+ -- copy rule (down)+ _tbl1Ocat =+ _lhsIcat+ -- copy rule (down)+ _tbl1Oidenv =+ _lhsIidenv+ -- copy rule (down)+ _tbl1Olib =+ _lhsIlib+ -- copy rule (down)+ _onExprOcat =+ _lhsIcat+ -- copy rule (down)+ _aliasOcat =+ _lhsIcat+ -- copy rule (down)+ _aliasOidenv =+ _lhsIidenv+ -- copy rule (down)+ _aliasOlib =+ _lhsIlib+ ( _tblIannotatedTree,_tblIfixedUpIdentifiersTree,_tblIlibUpdates,_tblInewLib2,_tblIoriginalTree,_tblItrefIDs) =+ tbl_ _tblOcat _tblOidenv _tblOlib + ( _tbl1IannotatedTree,_tbl1IfixedUpIdentifiersTree,_tbl1IlibUpdates,_tbl1InewLib2,_tbl1IoriginalTree,_tbl1ItrefIDs) =+ tbl1_ _tbl1Ocat _tbl1Oidenv _tbl1Olib + ( _onExprIannotatedTree,_onExprIfixedUpIdentifiersTree,_onExprIoriginalTree) =+ onExpr_ _onExprOcat _onExprOidenv _onExprOlib + ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =+ alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))+sem_TableRef_SubTref :: Annotation ->+ T_QueryExpr ->+ T_TableAlias ->+ T_TableRef +sem_TableRef_SubTref ann_ sel_ alias_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let __tup4 :: (([(String,[String])],TableRef))+ _lhsOtrefIDs :: ([(String,[String])])+ _lhsOfixedUpIdentifiersTree :: TableRef + _selOcsql :: LocalBindings+ _lhsOannotatedTree :: TableRef + _selectAttrs :: (Either [TypeError] [(String,Type)])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOnewLib2 :: LocalBindings+ _aliasOexpectedNumCols :: (Maybe Int)+ _selOexpectedTypes :: ([Maybe Type])+ _lhsOoriginalTree :: TableRef + _selOcat :: Catalog+ _selOidenv :: IDEnv+ _selOlib :: LocalBindings+ _aliasOcat :: Catalog+ _aliasOidenv :: IDEnv+ _aliasOlib :: LocalBindings+ _selIannotatedTree :: QueryExpr + _selIcidenv :: IDEnv+ _selIfixedUpIdentifiersTree :: QueryExpr + _selIlibUpdates :: ([LocalBindingsUpdate])+ _selIoriginalTree :: QueryExpr + _selIuType :: (Maybe [(String,Type)])+ _aliasIannotatedTree :: TableAlias + _aliasIfixedUpIdentifiersTree :: TableAlias + _aliasIoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 377, column 15)+ __tup4 =+ let IDEnv x = _selIcidenv+ (trs,al) = doAlias _aliasIannotatedTree x+ in (trs, SubTref ann_ _selIfixedUpIdentifiersTree al)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 377, column 15)+ (_lhsOtrefIDs,_) =+ __tup4+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 377, column 15)+ (_,_lhsOfixedUpIdentifiersTree) =+ __tup4+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 129, column 15)+ _selOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 72, column 9)+ _errs =+ case _selectAttrs of+ Left e -> e+ Right _ -> []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 76, column 9)+ _selectAttrs =+ lmt _selIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 77, column 9)+ _lhsOlibUpdates =+ [LBTref "sub query" (getAlias "" _aliasIoriginalTree)+ (fromRight [] _selectAttrs ) []]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 237, column 9)+ _lhsOnewLib2 =+ createLocalBindings $ do+ pu <- _selIuType+ let (n,cs) = case _aliasIoriginalTree of+ (FullAlias _ n cs) -> (n,cs)+ _ -> (n, [])+ return [(n,zip cs $ map (Just . snd) pu)]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 256, column 9)+ _backTree =+ SubTref ann_ _selIannotatedTree _aliasIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 281, column 9)+ _aliasOexpectedNumCols =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 180, column 15)+ _selOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ SubTref ann_ _selIannotatedTree _aliasIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ SubTref ann_ _selIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ SubTref ann_ _selIoriginalTree _aliasIoriginalTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _selOcat =+ _lhsIcat+ -- copy rule (down)+ _selOidenv =+ _lhsIidenv+ -- copy rule (down)+ _selOlib =+ _lhsIlib+ -- copy rule (down)+ _aliasOcat =+ _lhsIcat+ -- copy rule (down)+ _aliasOidenv =+ _lhsIidenv+ -- copy rule (down)+ _aliasOlib =+ _lhsIlib+ ( _selIannotatedTree,_selIcidenv,_selIfixedUpIdentifiersTree,_selIlibUpdates,_selIoriginalTree,_selIuType) =+ sel_ _selOcat _selOcsql _selOexpectedTypes _selOidenv _selOlib + ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =+ alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))+sem_TableRef_Tref :: Annotation ->+ T_SQIdentifier ->+ T_TableAlias ->+ T_TableRef +sem_TableRef_Tref ann_ tbl_ alias_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let __tup5 :: (([(String,[String])],TableRef))+ _lhsOtrefIDs :: ([(String,[String])])+ _lhsOfixedUpIdentifiersTree :: TableRef + _lhsOannotatedTree :: TableRef + _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOnewLib2 :: LocalBindings+ _aliasOexpectedNumCols :: (Maybe Int)+ _lhsOoriginalTree :: TableRef + _tblOcat :: Catalog+ _tblOidenv :: IDEnv+ _tblOlib :: LocalBindings+ _aliasOcat :: Catalog+ _aliasOidenv :: IDEnv+ _aliasOlib :: LocalBindings+ _tblIannotatedTree :: SQIdentifier + _tblIfixedUpIdentifiersTree :: SQIdentifier + _tblIoriginalTree :: SQIdentifier + _tblItbAnnotatedTree :: SQIdentifier + _tblItbUType :: (Maybe ([(String,Type)],[(String,Type)]))+ _aliasIannotatedTree :: TableAlias + _aliasIfixedUpIdentifiersTree :: TableAlias + _aliasIoriginalTree :: TableAlias + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 369, column 12)+ __tup5 =+ let tn = getTName _tblIfixedUpIdentifiersTree+ ids = case catCompositePublicAttrs _lhsIcat relationComposites tn of+ Right attrs -> [(tn, map fst attrs)]+ Left _ -> [(tn,[])]+ (trs,al) = doAlias _aliasIannotatedTree ids+ in (trs,Tref ann_ _tblIfixedUpIdentifiersTree al)+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 369, column 12)+ (_lhsOtrefIDs,_) =+ __tup5+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 369, column 12)+ (_,_lhsOfixedUpIdentifiersTree) =+ __tup5+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 55, column 9)+ _lhsOannotatedTree =+ addTypeErrors _errs _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 85, column 9)+ _errs =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 86, column 9)+ _lhsOlibUpdates =+ maybe [] id $ do+ let n = getTName _tblIannotatedTree+ (pu,pr) <- _tblItbUType+ return [LBTref ("tref: " ++ n)+ (getAlias n _aliasIoriginalTree)+ pu+ pr]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 208, column 9)+ _lhsOnewLib2 =+ createLocalBindings $ do+ let n = getTName _tblIannotatedTree+ (pu,pr) <- _tblItbUType+ let (n,cs) = case _aliasIoriginalTree of+ (FullAlias _ n cs) -> (n,cs)+ _ -> (n, [])+ return [(n,zip cs $ map (Just . snd) pu)+ ,(n,map (second Just) pr)]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 258, column 9)+ _backTree =+ Tref ann_ _tblItbAnnotatedTree _aliasIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 275, column 9)+ _aliasOexpectedNumCols =+ do+ let n = getTName _tblIannotatedTree+ (pu,_) <- _tblItbUType+ return $ length pu+ -- self rule+ _annotatedTree =+ Tref ann_ _tblIannotatedTree _aliasIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ Tref ann_ _tblIfixedUpIdentifiersTree _aliasIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ Tref ann_ _tblIoriginalTree _aliasIoriginalTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _tblOcat =+ _lhsIcat+ -- copy rule (down)+ _tblOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tblOlib =+ _lhsIlib+ -- copy rule (down)+ _aliasOcat =+ _lhsIcat+ -- copy rule (down)+ _aliasOidenv =+ _lhsIidenv+ -- copy rule (down)+ _aliasOlib =+ _lhsIlib+ ( _tblIannotatedTree,_tblIfixedUpIdentifiersTree,_tblIoriginalTree,_tblItbAnnotatedTree,_tblItbUType) =+ tbl_ _tblOcat _tblOidenv _tblOlib + ( _aliasIannotatedTree,_aliasIfixedUpIdentifiersTree,_aliasIoriginalTree) =+ alias_ _aliasOcat _aliasOexpectedNumCols _aliasOidenv _aliasOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))+-- TableRefList ------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + libUpdates : [LocalBindingsUpdate]+ newLib2 : LocalBindings+ originalTree : SELF + trefIDs : [(String,[String])]+ alternatives:+ alternative Cons:+ child hd : TableRef + child tl : TableRefList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type TableRefList = [TableRef ]+-- cata+sem_TableRefList :: TableRefList ->+ T_TableRefList +sem_TableRefList list =+ (Prelude.foldr sem_TableRefList_Cons sem_TableRefList_Nil (Prelude.map sem_TableRef list) )+-- semantic domain+type T_TableRefList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( TableRefList ,TableRefList ,([LocalBindingsUpdate]),LocalBindings,TableRefList ,([(String,[String])]))+data Inh_TableRefList = Inh_TableRefList {cat_Inh_TableRefList :: Catalog,idenv_Inh_TableRefList :: IDEnv,lib_Inh_TableRefList :: LocalBindings}+data Syn_TableRefList = Syn_TableRefList {annotatedTree_Syn_TableRefList :: TableRefList ,fixedUpIdentifiersTree_Syn_TableRefList :: TableRefList ,libUpdates_Syn_TableRefList :: ([LocalBindingsUpdate]),newLib2_Syn_TableRefList :: LocalBindings,originalTree_Syn_TableRefList :: TableRefList ,trefIDs_Syn_TableRefList :: ([(String,[String])])}+wrap_TableRefList :: T_TableRefList ->+ Inh_TableRefList ->+ Syn_TableRefList +wrap_TableRefList sem (Inh_TableRefList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_TableRefList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOlibUpdates _lhsOnewLib2 _lhsOoriginalTree _lhsOtrefIDs ))+sem_TableRefList_Cons :: T_TableRef ->+ T_TableRefList ->+ T_TableRefList +sem_TableRefList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOtrefIDs :: ([(String,[String])])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOnewLib2 :: LocalBindings+ _lhsOannotatedTree :: TableRefList + _lhsOfixedUpIdentifiersTree :: TableRefList + _lhsOoriginalTree :: TableRefList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: TableRef + _hdIfixedUpIdentifiersTree :: TableRef + _hdIlibUpdates :: ([LocalBindingsUpdate])+ _hdInewLib2 :: LocalBindings+ _hdIoriginalTree :: TableRef + _hdItrefIDs :: ([(String,[String])])+ _tlIannotatedTree :: TableRefList + _tlIfixedUpIdentifiersTree :: TableRefList + _tlIlibUpdates :: ([LocalBindingsUpdate])+ _tlInewLib2 :: LocalBindings+ _tlIoriginalTree :: TableRefList + _tlItrefIDs :: ([(String,[String])])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 365, column 12)+ _lhsOtrefIDs =+ _hdItrefIDs ++ _tlItrefIDs+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 61, column 9)+ _lhsOlibUpdates =+ _hdIlibUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 204, column 9)+ _lhsOnewLib2 =+ joinBindings _hdInewLib2 _tlInewLib2+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdIlibUpdates,_hdInewLib2,_hdIoriginalTree,_hdItrefIDs) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIlibUpdates,_tlInewLib2,_tlIoriginalTree,_tlItrefIDs) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))+sem_TableRefList_Nil :: T_TableRefList +sem_TableRefList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOtrefIDs :: ([(String,[String])])+ _lhsOlibUpdates :: ([LocalBindingsUpdate])+ _lhsOnewLib2 :: LocalBindings+ _lhsOannotatedTree :: TableRefList + _lhsOfixedUpIdentifiersTree :: TableRefList + _lhsOoriginalTree :: TableRefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/FixUpIdentifiers.ag"(line 366, column 11)+ _lhsOtrefIDs =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 59, column 9)+ _lhsOlibUpdates =+ []+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 202, column 9)+ _lhsOnewLib2 =+ createLocalBindings $ Just []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOlibUpdates,_lhsOnewLib2,_lhsOoriginalTree,_lhsOtrefIDs)))+-- TypeAttributeDef --------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + attrName : String+ fixedUpIdentifiersTree : SELF + namedType : Maybe Type+ originalTree : SELF + alternatives:+ alternative TypeAttDef:+ child ann : {Annotation}+ child name : {String}+ child typ : TypeName + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data TypeAttributeDef = TypeAttDef (Annotation) (String) (TypeName ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_TypeAttributeDef :: TypeAttributeDef ->+ T_TypeAttributeDef +sem_TypeAttributeDef (TypeAttDef _ann _name _typ ) =+ (sem_TypeAttributeDef_TypeAttDef _ann _name (sem_TypeName _typ ) )+-- semantic domain+type T_TypeAttributeDef = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( TypeAttributeDef ,String,TypeAttributeDef ,(Maybe Type),TypeAttributeDef )+data Inh_TypeAttributeDef = Inh_TypeAttributeDef {cat_Inh_TypeAttributeDef :: Catalog,idenv_Inh_TypeAttributeDef :: IDEnv,lib_Inh_TypeAttributeDef :: LocalBindings}+data Syn_TypeAttributeDef = Syn_TypeAttributeDef {annotatedTree_Syn_TypeAttributeDef :: TypeAttributeDef ,attrName_Syn_TypeAttributeDef :: String,fixedUpIdentifiersTree_Syn_TypeAttributeDef :: TypeAttributeDef ,namedType_Syn_TypeAttributeDef :: (Maybe Type),originalTree_Syn_TypeAttributeDef :: TypeAttributeDef }+wrap_TypeAttributeDef :: T_TypeAttributeDef ->+ Inh_TypeAttributeDef ->+ Syn_TypeAttributeDef +wrap_TypeAttributeDef sem (Inh_TypeAttributeDef _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_TypeAttributeDef _lhsOannotatedTree _lhsOattrName _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree ))+sem_TypeAttributeDef_TypeAttDef :: Annotation ->+ String ->+ T_TypeName ->+ T_TypeAttributeDef +sem_TypeAttributeDef_TypeAttDef ann_ name_ typ_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOattrName :: String+ _lhsOnamedType :: (Maybe Type)+ _lhsOannotatedTree :: TypeAttributeDef + _lhsOfixedUpIdentifiersTree :: TypeAttributeDef + _lhsOoriginalTree :: TypeAttributeDef + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 37, column 9)+ _lhsOattrName =+ name_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 38, column 9)+ _lhsOnamedType =+ _typInamedType+ -- self rule+ _annotatedTree =+ TypeAttDef ann_ name_ _typIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ TypeAttDef ann_ name_ _typIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ TypeAttDef ann_ name_ _typIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + in ( _lhsOannotatedTree,_lhsOattrName,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+-- TypeAttributeDefList ----------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + attrs : [(String, Maybe Type)]+ fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : TypeAttributeDef + child tl : TypeAttributeDefList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type TypeAttributeDefList = [TypeAttributeDef ]+-- cata+sem_TypeAttributeDefList :: TypeAttributeDefList ->+ T_TypeAttributeDefList +sem_TypeAttributeDefList list =+ (Prelude.foldr sem_TypeAttributeDefList_Cons sem_TypeAttributeDefList_Nil (Prelude.map sem_TypeAttributeDef list) )+-- semantic domain+type T_TypeAttributeDefList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( TypeAttributeDefList ,([(String, Maybe Type)]),TypeAttributeDefList ,TypeAttributeDefList )+data Inh_TypeAttributeDefList = Inh_TypeAttributeDefList {cat_Inh_TypeAttributeDefList :: Catalog,idenv_Inh_TypeAttributeDefList :: IDEnv,lib_Inh_TypeAttributeDefList :: LocalBindings}+data Syn_TypeAttributeDefList = Syn_TypeAttributeDefList {annotatedTree_Syn_TypeAttributeDefList :: TypeAttributeDefList ,attrs_Syn_TypeAttributeDefList :: ([(String, Maybe Type)]),fixedUpIdentifiersTree_Syn_TypeAttributeDefList :: TypeAttributeDefList ,originalTree_Syn_TypeAttributeDefList :: TypeAttributeDefList }+wrap_TypeAttributeDefList :: T_TypeAttributeDefList ->+ Inh_TypeAttributeDefList ->+ Syn_TypeAttributeDefList +wrap_TypeAttributeDefList sem (Inh_TypeAttributeDefList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_TypeAttributeDefList _lhsOannotatedTree _lhsOattrs _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_TypeAttributeDefList_Cons :: T_TypeAttributeDef ->+ T_TypeAttributeDefList ->+ T_TypeAttributeDefList +sem_TypeAttributeDefList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOattrs :: ([(String, Maybe Type)])+ _lhsOannotatedTree :: TypeAttributeDefList + _lhsOfixedUpIdentifiersTree :: TypeAttributeDefList + _lhsOoriginalTree :: TypeAttributeDefList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: TypeAttributeDef + _hdIattrName :: String+ _hdIfixedUpIdentifiersTree :: TypeAttributeDef + _hdInamedType :: (Maybe Type)+ _hdIoriginalTree :: TypeAttributeDef + _tlIannotatedTree :: TypeAttributeDefList + _tlIattrs :: ([(String, Maybe Type)])+ _tlIfixedUpIdentifiersTree :: TypeAttributeDefList + _tlIoriginalTree :: TypeAttributeDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 43, column 12)+ _lhsOattrs =+ (_hdIattrName, _hdInamedType) : _tlIattrs+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIattrName,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIattrs,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_TypeAttributeDefList_Nil :: T_TypeAttributeDefList +sem_TypeAttributeDefList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOattrs :: ([(String, Maybe Type)])+ _lhsOannotatedTree :: TypeAttributeDefList + _lhsOfixedUpIdentifiersTree :: TypeAttributeDefList + _lhsOoriginalTree :: TypeAttributeDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/MiscCreates.ag"(line 44, column 11)+ _lhsOattrs =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOattrs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- TypeName ----------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + namedType : Maybe Type+ originalTree : SELF + alternatives:+ alternative ArrayTypeName:+ child ann : {Annotation}+ child typ : TypeName + visit 0:+ local tpe : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Prec2TypeName:+ child ann : {Annotation}+ child tn : {String}+ child prec : {Integer}+ child prec1 : {Integer}+ visit 0:+ local tpe : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative PrecTypeName:+ child ann : {Annotation}+ child tn : {String}+ child prec : {Integer}+ visit 0:+ local tpe : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative SetOfTypeName:+ child ann : {Annotation}+ child typ : TypeName + visit 0:+ local tpe : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative SimpleTypeName:+ child ann : {Annotation}+ child tn : {String}+ visit 0:+ local tpe : _+ local backTree : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data TypeName = ArrayTypeName (Annotation) (TypeName ) + | Prec2TypeName (Annotation) (String) (Integer) (Integer) + | PrecTypeName (Annotation) (String) (Integer) + | SetOfTypeName (Annotation) (TypeName ) + | SimpleTypeName (Annotation) (String) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_TypeName :: TypeName ->+ T_TypeName +sem_TypeName (ArrayTypeName _ann _typ ) =+ (sem_TypeName_ArrayTypeName _ann (sem_TypeName _typ ) )+sem_TypeName (Prec2TypeName _ann _tn _prec _prec1 ) =+ (sem_TypeName_Prec2TypeName _ann _tn _prec _prec1 )+sem_TypeName (PrecTypeName _ann _tn _prec ) =+ (sem_TypeName_PrecTypeName _ann _tn _prec )+sem_TypeName (SetOfTypeName _ann _typ ) =+ (sem_TypeName_SetOfTypeName _ann (sem_TypeName _typ ) )+sem_TypeName (SimpleTypeName _ann _tn ) =+ (sem_TypeName_SimpleTypeName _ann _tn )+-- semantic domain+type T_TypeName = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( TypeName ,TypeName ,(Maybe Type),TypeName )+data Inh_TypeName = Inh_TypeName {cat_Inh_TypeName :: Catalog,idenv_Inh_TypeName :: IDEnv,lib_Inh_TypeName :: LocalBindings}+data Syn_TypeName = Syn_TypeName {annotatedTree_Syn_TypeName :: TypeName ,fixedUpIdentifiersTree_Syn_TypeName :: TypeName ,namedType_Syn_TypeName :: (Maybe Type),originalTree_Syn_TypeName :: TypeName }+wrap_TypeName :: T_TypeName ->+ Inh_TypeName ->+ Syn_TypeName +wrap_TypeName sem (Inh_TypeName _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_TypeName _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOnamedType _lhsOoriginalTree ))+sem_TypeName_ArrayTypeName :: Annotation ->+ T_TypeName ->+ T_TypeName +sem_TypeName_ArrayTypeName ann_ typ_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOannotatedTree :: TypeName + _lhsOfixedUpIdentifiersTree :: TypeName + _lhsOoriginalTree :: TypeName + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 19, column 10)+ _lhsOnamedType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 20, column 10)+ _lhsOannotatedTree =+ addTypeErrors (tes _tpe ) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 27, column 9)+ _tpe =+ lmt _typInamedType >>= Right . ArrayType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 28, column 9)+ _backTree =+ ArrayTypeName ann_ _typIannotatedTree+ -- self rule+ _annotatedTree =+ ArrayTypeName ann_ _typIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ ArrayTypeName ann_ _typIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ ArrayTypeName ann_ _typIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+sem_TypeName_Prec2TypeName :: Annotation ->+ String ->+ Integer ->+ Integer ->+ T_TypeName +sem_TypeName_Prec2TypeName ann_ tn_ prec_ prec1_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOannotatedTree :: TypeName + _lhsOfixedUpIdentifiersTree :: TypeName + _lhsOoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 19, column 10)+ _lhsOnamedType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 20, column 10)+ _lhsOannotatedTree =+ addTypeErrors (tes _tpe ) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 9)+ _tpe =+ catLookupType _lhsIcat $ canonicalizeTypeName tn_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 9)+ _backTree =+ Prec2TypeName ann_ tn_ prec_ prec1_+ -- self rule+ _annotatedTree =+ Prec2TypeName ann_ tn_ prec_ prec1_+ -- self rule+ _fixedUpIdentifiersTree =+ Prec2TypeName ann_ tn_ prec_ prec1_+ -- self rule+ _originalTree =+ Prec2TypeName ann_ tn_ prec_ prec1_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+sem_TypeName_PrecTypeName :: Annotation ->+ String ->+ Integer ->+ T_TypeName +sem_TypeName_PrecTypeName ann_ tn_ prec_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOannotatedTree :: TypeName + _lhsOfixedUpIdentifiersTree :: TypeName + _lhsOoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 19, column 10)+ _lhsOnamedType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 20, column 10)+ _lhsOannotatedTree =+ addTypeErrors (tes _tpe ) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 33, column 9)+ _tpe =+ catLookupType _lhsIcat $ canonicalizeTypeName tn_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 34, column 9)+ _backTree =+ PrecTypeName ann_ tn_ prec_+ -- self rule+ _annotatedTree =+ PrecTypeName ann_ tn_ prec_+ -- self rule+ _fixedUpIdentifiersTree =+ PrecTypeName ann_ tn_ prec_+ -- self rule+ _originalTree =+ PrecTypeName ann_ tn_ prec_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+sem_TypeName_SetOfTypeName :: Annotation ->+ T_TypeName ->+ T_TypeName +sem_TypeName_SetOfTypeName ann_ typ_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOannotatedTree :: TypeName + _lhsOfixedUpIdentifiersTree :: TypeName + _lhsOoriginalTree :: TypeName + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 19, column 10)+ _lhsOnamedType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 20, column 10)+ _lhsOannotatedTree =+ addTypeErrors (tes _tpe ) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 30, column 9)+ _tpe =+ lmt _typInamedType >>= Right . SetOfType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 31, column 9)+ _backTree =+ SetOfTypeName ann_ _typIannotatedTree+ -- self rule+ _annotatedTree =+ SetOfTypeName ann_ _typIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ SetOfTypeName ann_ _typIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ SetOfTypeName ann_ _typIoriginalTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+sem_TypeName_SimpleTypeName :: Annotation ->+ String ->+ T_TypeName +sem_TypeName_SimpleTypeName ann_ tn_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedType :: (Maybe Type)+ _lhsOannotatedTree :: TypeName + _lhsOfixedUpIdentifiersTree :: TypeName + _lhsOoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 19, column 10)+ _lhsOnamedType =+ etmt _tpe+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 20, column 10)+ _lhsOannotatedTree =+ addTypeErrors (tes _tpe ) _backTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 24, column 9)+ _tpe =+ catLookupType _lhsIcat $ canonicalizeTypeName tn_+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 25, column 9)+ _backTree =+ SimpleTypeName ann_ tn_+ -- self rule+ _annotatedTree =+ SimpleTypeName ann_ tn_+ -- self rule+ _fixedUpIdentifiersTree =+ SimpleTypeName ann_ tn_+ -- self rule+ _originalTree =+ SimpleTypeName ann_ tn_+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedType,_lhsOoriginalTree)))+-- TypeNameList ------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + namedTypes : [Maybe Type]+ originalTree : SELF + alternatives:+ alternative Cons:+ child hd : TypeName + child tl : TypeNameList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type TypeNameList = [TypeName ]+-- cata+sem_TypeNameList :: TypeNameList ->+ T_TypeNameList +sem_TypeNameList list =+ (Prelude.foldr sem_TypeNameList_Cons sem_TypeNameList_Nil (Prelude.map sem_TypeName list) )+-- semantic domain+type T_TypeNameList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( TypeNameList ,TypeNameList ,([Maybe Type]),TypeNameList )+data Inh_TypeNameList = Inh_TypeNameList {cat_Inh_TypeNameList :: Catalog,idenv_Inh_TypeNameList :: IDEnv,lib_Inh_TypeNameList :: LocalBindings}+data Syn_TypeNameList = Syn_TypeNameList {annotatedTree_Syn_TypeNameList :: TypeNameList ,fixedUpIdentifiersTree_Syn_TypeNameList :: TypeNameList ,namedTypes_Syn_TypeNameList :: ([Maybe Type]),originalTree_Syn_TypeNameList :: TypeNameList }+wrap_TypeNameList :: T_TypeNameList ->+ Inh_TypeNameList ->+ Syn_TypeNameList +wrap_TypeNameList sem (Inh_TypeNameList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedTypes,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_TypeNameList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOnamedTypes _lhsOoriginalTree ))+sem_TypeNameList_Cons :: T_TypeName ->+ T_TypeNameList ->+ T_TypeNameList +sem_TypeNameList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: TypeNameList + _lhsOfixedUpIdentifiersTree :: TypeNameList + _lhsOoriginalTree :: TypeNameList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: TypeName + _hdIfixedUpIdentifiersTree :: TypeName + _hdInamedType :: (Maybe Type)+ _hdIoriginalTree :: TypeName + _tlIannotatedTree :: TypeNameList + _tlIfixedUpIdentifiersTree :: TypeNameList + _tlInamedTypes :: ([Maybe Type])+ _tlIoriginalTree :: TypeNameList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 37, column 12)+ _lhsOnamedTypes =+ _hdInamedType : _tlInamedTypes+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIfixedUpIdentifiersTree,_hdInamedType,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlInamedTypes,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedTypes,_lhsOoriginalTree)))+sem_TypeNameList_Nil :: T_TypeNameList +sem_TypeNameList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOnamedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: TypeNameList + _lhsOfixedUpIdentifiersTree :: TypeNameList + _lhsOoriginalTree :: TypeNameList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Ddl/Drops.ag"(line 38, column 11)+ _lhsOnamedTypes =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOnamedTypes,_lhsOoriginalTree)))+-- VarDef ------------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + def : (String,Maybe Type)+ fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative ParamAlias:+ child ann : {Annotation}+ child name : {String}+ child i : {Integer}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative VarAlias:+ child ann : {Annotation}+ child name : {String}+ child aliased : {String}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative VarDef:+ child ann : {Annotation}+ child name : {String}+ child typ : TypeName + child value : {Maybe ScalarExpr}+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data VarDef = ParamAlias (Annotation) (String) (Integer) + | VarAlias (Annotation) (String) (String) + | VarDef (Annotation) (String) (TypeName ) ((Maybe ScalarExpr)) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_VarDef :: VarDef ->+ T_VarDef +sem_VarDef (ParamAlias _ann _name _i ) =+ (sem_VarDef_ParamAlias _ann _name _i )+sem_VarDef (VarAlias _ann _name _aliased ) =+ (sem_VarDef_VarAlias _ann _name _aliased )+sem_VarDef (VarDef _ann _name _typ _value ) =+ (sem_VarDef_VarDef _ann _name (sem_TypeName _typ ) _value )+-- semantic domain+type T_VarDef = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( VarDef ,((String,Maybe Type)),VarDef ,VarDef )+data Inh_VarDef = Inh_VarDef {cat_Inh_VarDef :: Catalog,idenv_Inh_VarDef :: IDEnv,lib_Inh_VarDef :: LocalBindings}+data Syn_VarDef = Syn_VarDef {annotatedTree_Syn_VarDef :: VarDef ,def_Syn_VarDef :: ((String,Maybe Type)),fixedUpIdentifiersTree_Syn_VarDef :: VarDef ,originalTree_Syn_VarDef :: VarDef }+wrap_VarDef :: T_VarDef ->+ Inh_VarDef ->+ Syn_VarDef +wrap_VarDef sem (Inh_VarDef _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_VarDef _lhsOannotatedTree _lhsOdef _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_VarDef_ParamAlias :: Annotation ->+ String ->+ Integer ->+ T_VarDef +sem_VarDef_ParamAlias ann_ name_ i_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOdef :: ((String,Maybe Type))+ _lhsOannotatedTree :: VarDef + _lhsOfixedUpIdentifiersTree :: VarDef + _lhsOoriginalTree :: VarDef + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Block.ag"(line 14, column 18)+ _lhsOdef =+ (name_, Nothing)+ -- self rule+ _annotatedTree =+ ParamAlias ann_ name_ i_+ -- self rule+ _fixedUpIdentifiersTree =+ ParamAlias ann_ name_ i_+ -- self rule+ _originalTree =+ ParamAlias ann_ name_ i_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_VarDef_VarAlias :: Annotation ->+ String ->+ String ->+ T_VarDef +sem_VarDef_VarAlias ann_ name_ aliased_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOdef :: ((String,Maybe Type))+ _lhsOannotatedTree :: VarDef + _lhsOfixedUpIdentifiersTree :: VarDef + _lhsOoriginalTree :: VarDef + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Block.ag"(line 13, column 16)+ _lhsOdef =+ (name_, Nothing)+ -- self rule+ _annotatedTree =+ VarAlias ann_ name_ aliased_+ -- self rule+ _fixedUpIdentifiersTree =+ VarAlias ann_ name_ aliased_+ -- self rule+ _originalTree =+ VarAlias ann_ name_ aliased_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_VarDef_VarDef :: Annotation ->+ String ->+ T_TypeName ->+ (Maybe ScalarExpr) ->+ T_VarDef +sem_VarDef_VarDef ann_ name_ typ_ value_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOdef :: ((String,Maybe Type))+ _lhsOannotatedTree :: VarDef + _lhsOfixedUpIdentifiersTree :: VarDef + _lhsOoriginalTree :: VarDef + _typOcat :: Catalog+ _typOidenv :: IDEnv+ _typOlib :: LocalBindings+ _typIannotatedTree :: TypeName + _typIfixedUpIdentifiersTree :: TypeName + _typInamedType :: (Maybe Type)+ _typIoriginalTree :: TypeName + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Block.ag"(line 10, column 14)+ _lhsOdef =+ (name_, if _typInamedType == Just (Pseudo Record)+ then Just (PgRecord Nothing)+ else _typInamedType)+ -- self rule+ _annotatedTree =+ VarDef ann_ name_ _typIannotatedTree value_+ -- self rule+ _fixedUpIdentifiersTree =+ VarDef ann_ name_ _typIfixedUpIdentifiersTree value_+ -- self rule+ _originalTree =+ VarDef ann_ name_ _typIoriginalTree value_+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _typOcat =+ _lhsIcat+ -- copy rule (down)+ _typOidenv =+ _lhsIidenv+ -- copy rule (down)+ _typOlib =+ _lhsIlib+ ( _typIannotatedTree,_typIfixedUpIdentifiersTree,_typInamedType,_typIoriginalTree) =+ typ_ _typOcat _typOidenv _typOlib + in ( _lhsOannotatedTree,_lhsOdef,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- VarDefList --------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + defs : [(String,Maybe Type)]+ fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative Cons:+ child hd : VarDef + child tl : VarDefList + visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type VarDefList = [VarDef ]+-- cata+sem_VarDefList :: VarDefList ->+ T_VarDefList +sem_VarDefList list =+ (Prelude.foldr sem_VarDefList_Cons sem_VarDefList_Nil (Prelude.map sem_VarDef list) )+-- semantic domain+type T_VarDefList = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( VarDefList ,([(String,Maybe Type)]),VarDefList ,VarDefList )+data Inh_VarDefList = Inh_VarDefList {cat_Inh_VarDefList :: Catalog,idenv_Inh_VarDefList :: IDEnv,lib_Inh_VarDefList :: LocalBindings}+data Syn_VarDefList = Syn_VarDefList {annotatedTree_Syn_VarDefList :: VarDefList ,defs_Syn_VarDefList :: ([(String,Maybe Type)]),fixedUpIdentifiersTree_Syn_VarDefList :: VarDefList ,originalTree_Syn_VarDefList :: VarDefList }+wrap_VarDefList :: T_VarDefList ->+ Inh_VarDefList ->+ Syn_VarDefList +wrap_VarDefList sem (Inh_VarDefList _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOdefs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_VarDefList _lhsOannotatedTree _lhsOdefs _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_VarDefList_Cons :: T_VarDef ->+ T_VarDefList ->+ T_VarDefList +sem_VarDefList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOdefs :: ([(String,Maybe Type)])+ _lhsOannotatedTree :: VarDefList + _lhsOfixedUpIdentifiersTree :: VarDefList + _lhsOoriginalTree :: VarDefList + _hdOcat :: Catalog+ _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOcat :: Catalog+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: VarDef + _hdIdef :: ((String,Maybe Type))+ _hdIfixedUpIdentifiersTree :: VarDef + _hdIoriginalTree :: VarDef + _tlIannotatedTree :: VarDefList + _tlIdefs :: ([(String,Maybe Type)])+ _tlIfixedUpIdentifiersTree :: VarDefList + _tlIoriginalTree :: VarDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Block.ag"(line 17, column 12)+ _lhsOdefs =+ _hdIdef : _tlIdefs+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOcat =+ _lhsIcat+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOcat =+ _lhsIcat+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIdef,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIdefs,_tlIfixedUpIdentifiersTree,_tlIoriginalTree) =+ tl_ _tlOcat _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOdefs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+sem_VarDefList_Nil :: T_VarDefList +sem_VarDefList_Nil =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOdefs :: ([(String,Maybe Type)])+ _lhsOannotatedTree :: VarDefList + _lhsOfixedUpIdentifiersTree :: VarDefList + _lhsOoriginalTree :: VarDefList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/Plpgsql/Block.ag"(line 18, column 11)+ _lhsOdefs =+ []+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOdefs,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- WithQuery ---------------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + catUpdates : [CatalogUpdate]+ fixedUpIdentifiersTree : SELF + originalTree : SELF + alternatives:+ alternative WithQuery:+ child ann : {Annotation}+ child name : {String}+ child colAliases : {Maybe [String]}+ child ex : QueryExpr + visit 0:+ local tpe : _+ local backTree : _+ local attrs : _+ local catUpdates : _+ local statementType : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+data WithQuery = WithQuery (Annotation) (String) ((Maybe [String])) (QueryExpr ) + deriving ( Data,Eq,Show,Typeable)+-- cata+sem_WithQuery :: WithQuery ->+ T_WithQuery +sem_WithQuery (WithQuery _ann _name _colAliases _ex ) =+ (sem_WithQuery_WithQuery _ann _name _colAliases (sem_QueryExpr _ex ) )+-- semantic domain+type T_WithQuery = Catalog ->+ IDEnv ->+ LocalBindings ->+ ( WithQuery ,([CatalogUpdate]),WithQuery ,WithQuery )+data Inh_WithQuery = Inh_WithQuery {cat_Inh_WithQuery :: Catalog,idenv_Inh_WithQuery :: IDEnv,lib_Inh_WithQuery :: LocalBindings}+data Syn_WithQuery = Syn_WithQuery {annotatedTree_Syn_WithQuery :: WithQuery ,catUpdates_Syn_WithQuery :: ([CatalogUpdate]),fixedUpIdentifiersTree_Syn_WithQuery :: WithQuery ,originalTree_Syn_WithQuery :: WithQuery }+wrap_WithQuery :: T_WithQuery ->+ Inh_WithQuery ->+ Syn_WithQuery +wrap_WithQuery sem (Inh_WithQuery _lhsIcat _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIidenv _lhsIlib + in (Syn_WithQuery _lhsOannotatedTree _lhsOcatUpdates _lhsOfixedUpIdentifiersTree _lhsOoriginalTree ))+sem_WithQuery_WithQuery :: Annotation ->+ String ->+ (Maybe [String]) ->+ T_QueryExpr ->+ T_WithQuery +sem_WithQuery_WithQuery ann_ name_ colAliases_ ex_ =+ (\ _lhsIcat+ _lhsIidenv+ _lhsIlib ->+ (let _exOcsql :: LocalBindings+ _exOexpectedTypes :: ([Maybe Type])+ _lhsOannotatedTree :: WithQuery + _lhsOfixedUpIdentifiersTree :: WithQuery + _lhsOoriginalTree :: WithQuery + _lhsOcatUpdates :: ([CatalogUpdate])+ _exOcat :: Catalog+ _exOidenv :: IDEnv+ _exOlib :: LocalBindings+ _exIannotatedTree :: QueryExpr + _exIcidenv :: IDEnv+ _exIfixedUpIdentifiersTree :: QueryExpr + _exIlibUpdates :: ([LocalBindingsUpdate])+ _exIoriginalTree :: QueryExpr + _exIuType :: (Maybe [(String,Type)])+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 131, column 17)+ _exOcsql =+ emptyBindings+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 272, column 9)+ _tpe =+ Right $ Pseudo Void+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 273, column 9)+ _backTree =+ WithQuery ann_ name_ colAliases_ _exIannotatedTree+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 274, column 9)+ _attrs =+ maybe [] id $ _exIuType+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 275, column 9)+ _catUpdates =+ [CatCreateView name_ _attrs ]+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 276, column 9)+ _statementType =+ Nothing+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/ParameterizedStatements.ag"(line 182, column 17)+ _exOexpectedTypes =+ []+ -- self rule+ _annotatedTree =+ WithQuery ann_ name_ colAliases_ _exIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ WithQuery ann_ name_ colAliases_ _exIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ WithQuery ann_ name_ colAliases_ _exIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (from local)+ _lhsOcatUpdates =+ _catUpdates+ -- copy rule (down)+ _exOcat =+ _lhsIcat+ -- copy rule (down)+ _exOidenv =+ _lhsIidenv+ -- copy rule (down)+ _exOlib =+ _lhsIlib+ ( _exIannotatedTree,_exIcidenv,_exIfixedUpIdentifiersTree,_exIlibUpdates,_exIoriginalTree,_exIuType) =+ ex_ _exOcat _exOcsql _exOexpectedTypes _exOidenv _exOlib + in ( _lhsOannotatedTree,_lhsOcatUpdates,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree)))+-- WithQueryList -----------------------------------------------+{-+ visit 0:+ inherited attributes:+ cat : Catalog+ catUpdates : [CatalogUpdate]+ idenv : IDEnv+ lib : LocalBindings+ synthesized attributes:+ annotatedTree : SELF + fixedUpIdentifiersTree : SELF + originalTree : SELF + producedCat : Catalog+ alternatives:+ alternative Cons:+ child hd : WithQuery + child tl : WithQueryList + visit 0:+ local newCat : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+ alternative Nil:+ visit 0:+ local newCat : _+ local annotatedTree : _+ local fixedUpIdentifiersTree : _+ local originalTree : _+-}+type WithQueryList = [WithQuery ]+-- cata+sem_WithQueryList :: WithQueryList ->+ T_WithQueryList +sem_WithQueryList list =+ (Prelude.foldr sem_WithQueryList_Cons sem_WithQueryList_Nil (Prelude.map sem_WithQuery list) )+-- semantic domain+type T_WithQueryList = Catalog ->+ ([CatalogUpdate]) ->+ IDEnv ->+ LocalBindings ->+ ( WithQueryList ,WithQueryList ,WithQueryList ,Catalog)+data Inh_WithQueryList = Inh_WithQueryList {cat_Inh_WithQueryList :: Catalog,catUpdates_Inh_WithQueryList :: ([CatalogUpdate]),idenv_Inh_WithQueryList :: IDEnv,lib_Inh_WithQueryList :: LocalBindings}+data Syn_WithQueryList = Syn_WithQueryList {annotatedTree_Syn_WithQueryList :: WithQueryList ,fixedUpIdentifiersTree_Syn_WithQueryList :: WithQueryList ,originalTree_Syn_WithQueryList :: WithQueryList ,producedCat_Syn_WithQueryList :: Catalog}+wrap_WithQueryList :: T_WithQueryList ->+ Inh_WithQueryList ->+ Syn_WithQueryList +wrap_WithQueryList sem (Inh_WithQueryList _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib ) =+ (let ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat) = sem _lhsIcat _lhsIcatUpdates _lhsIidenv _lhsIlib + in (Syn_WithQueryList _lhsOannotatedTree _lhsOfixedUpIdentifiersTree _lhsOoriginalTree _lhsOproducedCat ))+sem_WithQueryList_Cons :: T_WithQuery ->+ T_WithQueryList ->+ T_WithQueryList +sem_WithQueryList_Cons hd_ tl_ =+ (\ _lhsIcat+ _lhsIcatUpdates+ _lhsIidenv+ _lhsIlib ->+ (let _hdOcat :: Catalog+ _tlOcat :: Catalog+ _lhsOproducedCat :: Catalog+ _tlOcatUpdates :: ([CatalogUpdate])+ _lhsOannotatedTree :: WithQueryList + _lhsOfixedUpIdentifiersTree :: WithQueryList + _lhsOoriginalTree :: WithQueryList + _hdOidenv :: IDEnv+ _hdOlib :: LocalBindings+ _tlOidenv :: IDEnv+ _tlOlib :: LocalBindings+ _hdIannotatedTree :: WithQuery + _hdIcatUpdates :: ([CatalogUpdate])+ _hdIfixedUpIdentifiersTree :: WithQuery + _hdIoriginalTree :: WithQuery + _tlIannotatedTree :: WithQueryList + _tlIfixedUpIdentifiersTree :: WithQueryList + _tlIoriginalTree :: WithQueryList + _tlIproducedCat :: Catalog+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 256, column 9)+ _newCat =+ fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 258, column 9)+ _hdOcat =+ _newCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 259, column 9)+ _tlOcat =+ _newCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 263, column 9)+ _lhsOproducedCat =+ _tlIproducedCat+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 266, column 9)+ _tlOcatUpdates =+ _hdIcatUpdates+ -- self rule+ _annotatedTree =+ (:) _hdIannotatedTree _tlIannotatedTree+ -- self rule+ _fixedUpIdentifiersTree =+ (:) _hdIfixedUpIdentifiersTree _tlIfixedUpIdentifiersTree+ -- self rule+ _originalTree =+ (:) _hdIoriginalTree _tlIoriginalTree+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ -- copy rule (down)+ _hdOidenv =+ _lhsIidenv+ -- copy rule (down)+ _hdOlib =+ _lhsIlib+ -- copy rule (down)+ _tlOidenv =+ _lhsIidenv+ -- copy rule (down)+ _tlOlib =+ _lhsIlib+ ( _hdIannotatedTree,_hdIcatUpdates,_hdIfixedUpIdentifiersTree,_hdIoriginalTree) =+ hd_ _hdOcat _hdOidenv _hdOlib + ( _tlIannotatedTree,_tlIfixedUpIdentifiersTree,_tlIoriginalTree,_tlIproducedCat) =+ tl_ _tlOcat _tlOcatUpdates _tlOidenv _tlOlib + in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat)))+sem_WithQueryList_Nil :: T_WithQueryList +sem_WithQueryList_Nil =+ (\ _lhsIcat+ _lhsIcatUpdates+ _lhsIidenv+ _lhsIlib ->+ (let _lhsOproducedCat :: Catalog+ _lhsOannotatedTree :: WithQueryList + _lhsOfixedUpIdentifiersTree :: WithQueryList + _lhsOoriginalTree :: WithQueryList + -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 256, column 9)+ _newCat =+ fromRight _lhsIcat $ updateCatalog _lhsIcat _lhsIcatUpdates+ -- "src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryStatement.ag"(line 268, column 9)+ _lhsOproducedCat =+ _newCat+ -- self rule+ _annotatedTree =+ []+ -- self rule+ _fixedUpIdentifiersTree =+ []+ -- self rule+ _originalTree =+ []+ -- self rule+ _lhsOannotatedTree =+ _annotatedTree+ -- self rule+ _lhsOfixedUpIdentifiersTree =+ _fixedUpIdentifiersTree+ -- self rule+ _lhsOoriginalTree =+ _originalTree+ in ( _lhsOannotatedTree,_lhsOfixedUpIdentifiersTree,_lhsOoriginalTree,_lhsOproducedCat)))
+ src/Database/HsSqlPpp/Internals/Catalog/CatalogInternal.lhs view
@@ -0,0 +1,531 @@++This module contains the implementation of the Catalog data types+and functions, and provides the api for the other type checking+modules.++> {-# LANGUAGE DeriveDataTypeable #-}+>+> module Database.HsSqlPpp.Internals.Catalog.CatalogInternal+> (+> Catalog+> ,CastContext(..)+> ,CompositeFlavour(..)+> ,relationComposites+> ,CompositeDef+> ,FunctionPrototype+> ,DomainDefinition+> ,FunFlav(..)+> ,emptyCatalog+> ,defaultCatalog+> ,CatalogUpdate(..)+> ,ppCatUpdate+> ,updateCatalog+> ,deconstructCatalog+> -- type checker stuff+> ,catCompositeDef+> ,catCompositeAttrsPair+> ,catCompositeAttrs+> ,catCompositePublicAttrs+> ,catTypeCategory+> ,catPreferredType+> ,catCast+> ,catDomainBaseType+> ,catLookupFns+> ,catTypeExists+> ,catLookupType+> ,OperatorType(..)+> ,getOperatorType+> ,isOperatorName+> -- comparing catalogs+> ,CatalogDiff(..)+> ,compareCatalogs+> ,ppCatDiff+> ) where+>+> import Control.Monad+> import Data.List+> import Data.Data+> -- import Debug.Trace+> import Data.Char+>+> import Database.HsSqlPpp.Internals.TypeType+> import Database.HsSqlPpp.Utils.Utils+>+> -- | The main datatype, this holds the catalog and context+> -- information to type check against.+> data Catalog = Catalog+> {catTypeNames :: [(String, Type)]+> ,catDomainDefs :: [DomainDefinition]+> ,catCasts :: [(Type,Type,CastContext)]+> ,catTypeCategories :: [(Type,String,Bool)]+> ,catPrefixOperators :: [FunctionPrototype]+> ,catPostfixOperators :: [FunctionPrototype]+> ,catBinaryOperators :: [FunctionPrototype]+> ,catFunctions :: [FunctionPrototype]+> ,catAggregates :: [FunctionPrototype]+> ,catWindowFunctions :: [FunctionPrototype]+> ,catAttrDefs :: [CompositeDef]+> ,catUpdates :: [CatalogUpdate]}+> deriving Show+>+> -- | Represents an empty catalog. This doesn't contain things+> -- like the \'and\' operator, 'defaultCatalog' contains these.+> emptyCatalog :: Catalog+> emptyCatalog = Catalog [] [] [] [] [] [] [] [] [] [] [] []+>+> -- | Represents what you probably want to use as a starting point if+> -- you are building an catalog from scratch. It contains+> -- information on built in function like things that aren't in the+> -- PostgreSQL catalog, such as greatest, coalesce, keyword operators+> -- like \'and\', etc..+> defaultCatalog :: Catalog+> defaultCatalog =+> emptyCatalog {catTypeNames = pseudoTypes+> ,catBinaryOperators = pe : keywordOperatorTypes+> ,catFunctions = specialFunctionTypes}+> where+> pe = ("=", [Pseudo AnyElement, Pseudo AnyElement], typeBool, False)+>+> -- | Use to note what the flavour of a cast is, i.e. if/when it can+> -- be used implicitly.+> data CastContext = ImplicitCastContext+> | AssignmentCastContext+> | ExplicitCastContext+> deriving (Eq,Show,Ord,Typeable,Data)+>+> -- | Used to distinguish between standalone composite types, and+> -- automatically generated ones, generated from a table or view+> -- respectively.+> data CompositeFlavour = Composite | TableComposite | ViewComposite+> deriving (Eq,Ord,Show)+>+> relationComposites :: [CompositeFlavour]+> relationComposites = [TableComposite,ViewComposite]+>+> -- | Provides the definition of a composite type. The components are+> -- composite (or table or view) name, the flavour of the composite,+> -- the types of the composite attributes, and the types of the+> -- system columns iff the composite represents a table type (the+> -- third and fourth components are always 'CompositeType's).+> type CompositeDef = (String, CompositeFlavour, Type, Type)+>+> -- | The components are: function (or operator) name, argument+> -- types, return type and is variadic.+> type FunctionPrototype = (String, [Type], Type, Bool)+>+> -- | The components are domain type, base type (todo: add check+> -- constraint).+> type DomainDefinition = (Type,Type)+>+> data CatalogUpdate =+> -- | add a new scalar type with the name given, also creates+> -- an array type automatically+> CatCreateScalar Type String Bool+> -- | add a new domain to the catalog+> | CatCreateDomain Type Type+> -- | add a new composite type to the catalog+> | CatCreateComposite String [(String,Type)]+> -- | add a new cast to the catalog+> | CatCreateCast Type Type CastContext+> -- | add a new table to the catalog with the given public and private columns+> -- also creates the composite type to go with this table+> | CatCreateTable String [(String,Type)] [(String,Type)]+> -- | add the view to the catalog, using the column names and types supplied+> | CatCreateView String [(String,Type)]+> -- | add a new function to the catalog+> | CatCreateFunction FunFlav String [Type] Type Bool+> -- | drop a function from the catalog+> | CatDropFunction Bool String [Type]+> deriving (Eq,Ord,Typeable,Data,Show)+>+> -- | attempt to show a readable representation of a 'CatalogUpdate' value+> ppCatUpdate :: CatalogUpdate -> String+> ppCatUpdate (CatCreateScalar t c p) =+> "CatCreateScalar " ++ show t ++ "(" ++ c ++ "," ++ show p ++ ")"+> ppCatUpdate (CatCreateDomain t b) =+> "CatCreateDomain " ++ show t ++ " as " ++ show b+> ppCatUpdate (CatCreateComposite nm flds) =+> "CatCreateComposite " ++ nm ++ showFlds flds+> ppCatUpdate (CatCreateCast s t ctx) =+> "CatCreateCast " ++ show s ++ "->" ++ show t ++ " " ++ show ctx+> ppCatUpdate (CatCreateTable nm flds1 flds2) =+> "CatCreateTable " ++ nm ++ showFlds flds1 ++ showFlds flds2+> ppCatUpdate (CatCreateView nm flds) =+> "CatCreateView " ++ nm ++ showFlds flds+> ppCatUpdate (CatCreateFunction flav nm args ret vdc) =+> "CatCreateFunction " ++ show flav ++ " " ++ nm+> ++ " returns " ++ show ret+> ++ "(" ++ intercalate "," (map show args) ++ ")"+> ++ if vdc then " variadic" else ""+> ppCatUpdate (CatDropFunction _ nm args) =+> "CatDropFunction " ++ nm ++ "(" ++ show args ++ ")"+>+> showFlds :: [(String,Type)] -> String+> showFlds flds = "(\n" ++ sfs flds ++ ")"+> where+> sfs ((nm,t):fs) = " " ++ show nm+> ++ " " ++ show t ++ "\n" ++ sfs fs+> sfs [] = ""+>+> data FunFlav = FunPrefix | FunPostfix | FunBinary+> | FunName | FunAgg | FunWindow+> deriving (Eq,Show,Ord,Typeable,Data)+>+> -- | Applies a list of 'CatalogUpdate's to an 'Catalog' value+> -- to produce a new Catalog value.+> updateCatalog :: Catalog+> -> [CatalogUpdate]+> -> Either [TypeError] Catalog+> updateCatalog cat' eus =+> foldM updateCat' (cat' {catUpdates = catUpdates cat' ++ eus}) eus+> where+> updateCat' cat (CatCreateScalar ty catl pref) = do+> errorWhen (not allowed)+> [BadCatalogUpdate $ "can only add scalar types\+> \this way, got " ++ show ty]+> let ScalarType nm = ty+> return $ addTypeWithArray cat nm ty catl pref+> where+> allowed = case ty of+> ScalarType _ -> True+> _ -> False+>+> updateCat' cat (CatCreateDomain ty baseTy) = do+> errorWhen (not allowed)+> [BadCatalogUpdate $ "can only add domain types\+> \this way, got " ++ show ty]+> errorWhen (not baseAllowed)+> [BadCatalogUpdate $ "can only add domain types\+> \based on scalars, got "+> ++ show baseTy]+> let DomainType nm = ty+> catl <- catTypeCategory cat baseTy+> return (addTypeWithArray cat nm ty catl False) {+> catDomainDefs =+> (ty,baseTy):catDomainDefs cat+> ,catCasts =+> (ty,baseTy,ImplicitCastContext):catCasts cat}+> where+> allowed = case ty of+> DomainType _ -> True+> _ -> False+> baseAllowed = case baseTy of+> ScalarType _ -> True+> _ -> False+> updateCat' cat (CatCreateComposite nm flds) =+> return $ (addTypeWithArray cat nm (NamedCompositeType nm) "C" False) {+> catAttrDefs =+> (nm,Composite,CompositeType flds, CompositeType [])+> : catAttrDefs cat}+>+> updateCat' cat (CatCreateCast src tgt ctx) =+> return $ cat {catCasts = (src,tgt,ctx):catCasts cat}+>+> updateCat' cat (CatCreateTable nm attrs sysAttrs) = do+> checkTypeDoesntExist cat nm (NamedCompositeType nm)+> return $ (addTypeWithArray cat nm+> (NamedCompositeType nm) "C" False) {+> catAttrDefs =+> (nm,TableComposite+> ,CompositeType attrs+> , CompositeType sysAttrs)+> : catAttrDefs cat}+>+> updateCat' cat (CatCreateView nm attrs) = do+> checkTypeDoesntExist cat nm (NamedCompositeType nm)+> return $ (addTypeWithArray cat nm+> (NamedCompositeType nm) "C" False) {+> catAttrDefs =+> (nm,ViewComposite,CompositeType attrs, CompositeType [])+> : catAttrDefs cat}+>+> updateCat' cat (CatCreateFunction f nm args ret vdc) =+> return $ case f of+> FunPrefix -> cat {catPrefixOperators =+> fp : catPrefixOperators cat}+> FunPostfix -> cat {catPostfixOperators =+> fp : catPostfixOperators cat}+> FunBinary -> cat {catBinaryOperators =+> fp : catBinaryOperators cat}+> FunAgg -> cat {catAggregates =+> fp : catAggregates cat}+> FunWindow -> cat {catWindowFunctions =+> fp : catWindowFunctions cat}+> FunName -> cat {catFunctions =+> fp : catFunctions cat}+> where fp = (nm,args,ret,vdc)+>+> updateCat' cat (CatDropFunction _ifexists nm args) = do+> let matches = filter matchingFn (catFunctions cat)+> errorWhen (null matches)+> [BadCatalogUpdate+> $ "couldn't find function to drop "+> ++ show nm ++ "(" ++ show args++")"]+> errorWhen (length matches > 1)+> [BadCatalogUpdate+> $ "multiple matching functions to drop "+> ++ show nm ++ "(" ++ show args++")"]+> return cat {catFunctions = filter (not . matchingFn)+> (catFunctions cat)+> ,catUpdates = filter (not.matchingUpdate)+> (catUpdates cat)}+> where+> matchingFn (nm1,a1,_,_) =+> map toLower nm == map toLower nm1 && args == a1+> matchingUpdate (CatDropFunction _ nm2 a2)+> | map toLower nm2 == map toLower nm+> && a2 == args = True+> matchingUpdate (CatCreateFunction _ nm2 a2 _ _)+> | map toLower nm2 == map toLower nm+> && a2 == args = True+> matchingUpdate _ = False++todo:+look for matching function in list, if not found then error+remove from list, and remove from update list++> addTypeWithArray cat nm ty catl pref =+> cat {catTypeNames =+> ('_':nm,ArrayType ty)+> : (nm,ty)+> : catTypeNames cat+> ,catTypeCategories =+> (ArrayType ty,"A",False)+> : (ty,catl,pref)+> : catTypeCategories cat}+> checkTypeDoesntExist cat nm ty = do+> errorWhen (any (==nm) $ map fst $ catTypeNames cat)+> [TypeAlreadyExists ty]+> errorWhen (any (==ty) $ map snd $ catTypeNames cat)+> [TypeAlreadyExists ty]+> return ()+> {-+> | Takes part an 'Catalog' value to produce a list of 'CatalogUpdate's.+> You can use this to look inside the Catalog data type e.g. if you want to+> examine a catalog. It should be the case that:+> @+> updateCatalog emptyCatalog (deconstructCatalog cat) = cat+> @ -}+> deconstructCatalog :: Catalog -> [CatalogUpdate]+> deconstructCatalog = catUpdates++--------------------------------------------------------------------------------++= type checking stuff++> catCompositeDef :: Catalog -> [CompositeFlavour] -> String+> -> Either [TypeError] CompositeDef+> catCompositeDef cat flvs nm = do+> let c = filter m $ catAttrDefs cat+> errorWhen (null c)+> [UnrecognisedRelation nm]+> case c of+> (_,fl1,r,s):[] -> return (nm,fl1,r,s)+> _ -> Left [InternalError $ "problem getting attributes for: "+> ++ show nm ++ ", " ++ show c]+> where+> m (n,t,_,_) = n == nm && (null flvs || t `elem` flvs)+>+> catCompositeAttrsPair :: Catalog -> [CompositeFlavour] -> String+> -> Either [TypeError] ([(String,Type)],[(String,Type)])+> catCompositeAttrsPair cat flvs ty = do+> (_,_,CompositeType a,CompositeType b) <- catCompositeDef cat flvs ty+> return (a,b)+>+> catCompositeAttrs :: Catalog -> [CompositeFlavour] -> String+> -> Either [TypeError] [(String,Type)]+> catCompositeAttrs cat flvs ty = do+> (a,b) <- catCompositeAttrsPair cat flvs ty+> return $ a ++ b+>+> catCompositePublicAttrs :: Catalog -> [CompositeFlavour] -> String+> -> Either [TypeError] [(String,Type)]+> catCompositePublicAttrs cat flvs ty = do+> (a,_) <- catCompositeAttrsPair cat flvs ty+> return a+>+> catTypeCategory :: Catalog -> Type -> Either [TypeError] String+> catTypeCategory cat ty =+> fmap fst $ catGetCategoryInfo cat ty+>+> catPreferredType :: Catalog -> Type -> Either [TypeError] Bool+> catPreferredType cat ty =+> fmap snd $ catGetCategoryInfo cat ty+>+> catCast :: Catalog -> CastContext -> Type -> Type -> Either [TypeError] Bool+> catCast cat ctx from to = {-trace ("check cast " ++ show from ++ show to) $-}+> case from of+> t@(DomainType _) -> do+> baseType <- catDomainBaseType cat t+> cc <- catCast cat ctx baseType to+> return $ (baseType == to) ||+> (cc ||+> any (== (from, to, ctx)) (catCasts cat))+> _ -> Right $ any (==(from,to,ctx)) (catCasts cat)+>+> catDomainBaseType :: Catalog -> Type -> Either [TypeError] Type+> catDomainBaseType cat ty =+> --check type is domain, check it exists in main list+> case lookup ty (catDomainDefs cat) of+> Nothing -> Left [DomainDefNotFound ty]+> Just t -> Right t+>+> catLookupFns :: Catalog -> String -> [FunctionPrototype]+> catLookupFns cat name =+> filter (\(nm,_,_,_) -> map toLower nm == map toLower name) catGetAllFns+> where+> catGetAllFns =+> concat [catPrefixOperators cat+> ,catPostfixOperators cat+> ,catBinaryOperators cat+> ,catFunctions cat+> ,catAggregates cat+> ,catWindowFunctions cat]++== internal support for type checker fns above++> catGetCategoryInfo :: Catalog -> Type -> Either [TypeError] (String, Bool)+> catGetCategoryInfo cat ty =+> case ty of+> SetOfType _ -> Right ("", False)+> AnonymousRecordType _ -> Right ("", False)+> ArrayType (Pseudo _) -> Right ("A",False)+> Pseudo _ -> Right ("P",False)+> _ -> let l = filter (\(t,_,_) -> ty == t) $ catTypeCategories cat+> in if null l+> then Left [InternalError $ "no type category for " ++ show ty]+> else let (_,c,p):_ =l+> in Right (c,p)+>+> catTypeExists :: Catalog -> Type -> Either [TypeError] Type+> catTypeExists cat t =+> errorWhen (t `notElem` map snd (catTypeNames cat))+> [UnknownTypeError t] >>+> Right t+>+> catLookupType :: Catalog -> String -> Either [TypeError] Type+> catLookupType cat name =+> liftME [UnknownTypeName name] $+> lookup name (catTypeNames cat)+>++================================================================================++= built in stuff++keyword operators, all of these are built in and don't appear in any+postgresql catalog++This is wrong, these need to be separated into prefix, postfix, binary++> keywordOperatorTypes :: [FunctionPrototype]+> keywordOperatorTypes = [+> ("!and", [typeBool, typeBool], typeBool, False)+> ,("!or", [typeBool, typeBool], typeBool, False)+> ,("!like", [ScalarType "text", ScalarType "text"], typeBool, False)+> ,("!like", [ScalarType "char", ScalarType "char"], typeBool, False)+> ,("!like", [ScalarType "varchar", ScalarType "varchar"], typeBool, False)+> ,("!notlike", [ScalarType "text", ScalarType "text"], typeBool, False)+> ,("!notlike", [ScalarType "char", ScalarType "char"], typeBool, False)+> ,("!notlike", [ScalarType "varchar", ScalarType "varchar"], typeBool, False)+> ,("!not", [typeBool], typeBool, False)+> ,("!isnull", [Pseudo AnyElement], typeBool, False)+> ,("!isnotnull", [Pseudo AnyElement], typeBool, False)+> ,("!arrayctor", [ArrayType $ Pseudo AnyElement], Pseudo AnyArray, True)+> ,("!between", [Pseudo AnyElement+> ,Pseudo AnyElement+> ,Pseudo AnyElement], typeBool, False)+> ,("!substring",[ScalarType "text",typeInt,typeInt],ScalarType "text",False)+> ,("!substring",[ScalarType "varchar",typeInt,typeInt],ScalarType "varchar",False)+> ,("!substring",[ScalarType "char",typeInt,typeInt],ScalarType "char",False)+> ,("!arraysub", [Pseudo AnyArray,typeInt], Pseudo AnyElement, False)+> ]+>+> -- these look like functions, but don't appear in the postgresql catalog.+>+> specialFunctionTypes :: [FunctionPrototype]+> specialFunctionTypes = [+> ("coalesce", [ArrayType $ Pseudo AnyElement], Pseudo AnyElement, True)+> ,("nullif", [Pseudo AnyElement, Pseudo AnyElement], Pseudo AnyElement,False)+> ,("greatest", [ArrayType $ Pseudo AnyElement], Pseudo AnyElement,True)+> ,("least", [ArrayType $ Pseudo AnyElement], Pseudo AnyElement,True)+> ]+>+> pseudoTypes :: [(String, Type)]+> pseudoTypes =+> [("any",Pseudo Any)+> ,("anyarray",Pseudo AnyArray)+> ,("anyelement",Pseudo AnyElement)+> ,("anyenum",Pseudo AnyEnum)+> ,("anynonarray",Pseudo AnyNonArray)+> ,("cstring",Pseudo Cstring)+> ,("record",Pseudo Record)+> ,("trigger",Pseudo Trigger)+> ,("void",Pseudo Void)+> ,("_cstring",ArrayType $ Pseudo Cstring)+> ,("_record",ArrayType $ Pseudo Record)+> --,Pseudo Internal+> --,Pseudo LanguageHandler+> --,Pseudo Opaque+> ]++================================================================================++= getOperatorType++used by the pretty printer, not sure this is a very good design++for now, assume that all the overloaded operators that have the+same name are all either binary, prefix or postfix, otherwise the+getoperatortype would need the types of the arguments to determine+the operator type, and the parser would have to be a lot cleverer+although, parsec handles - being unary and binary without breaking+a sweat, so maybe this isn't too difficult?++this is why binary @ operator isn't currently supported++> data OperatorType = BinaryOp | PrefixOp | PostfixOp+> deriving (Eq,Show)+>+> getOperatorType :: Catalog -> String -> Either [TypeError] OperatorType+> getOperatorType cat s =+> case () of+> _ | s `elem` ["!and", "!or","!like","!notlike","."] -> Right BinaryOp+> | s `elem` ["!not"] -> Right PrefixOp+> | s `elem` ["!isnull", "!isnotnull"] -> Right PostfixOp+> | any (\(x,_,_,_) -> x == s) (catBinaryOperators cat) ->+> Right BinaryOp+> | any (\(x,_,_,_) -> x == s || (x=="-" && s=="u-"))+> (catPrefixOperators cat) ->+> Right PrefixOp+> | any (\(x,_,_,_) -> x == s) (catPostfixOperators cat) ->+> Right PostfixOp+> | otherwise ->+> Left [InternalError $ "don't know flavour of operator " ++ s]+>+> isOperatorName :: String -> Bool+> isOperatorName = any (`elem` "+-*/<>=~!@#%^&|`?.")++================================================================================++> -- | items in first catalog and not second, items in second and not first.+> data CatalogDiff = CatalogDiff [CatalogUpdate] [CatalogUpdate]+> deriving Show+>+> -- | find differences between two catalogs+> compareCatalogs :: Catalog -> Catalog -> Catalog -> CatalogDiff+> compareCatalogs base start end =+> let baseCatBits = deconstructCatalog base+> startCatBits = deconstructCatalog start \\ baseCatBits+> endCatBits = deconstructCatalog end \\ baseCatBits+> missing = sort $ endCatBits \\ startCatBits+> extras = sort $ startCatBits \\ endCatBits+> in CatalogDiff missing extras+>+> -- | print a catdiff in a more human readable way than show.+> ppCatDiff :: CatalogDiff -> String+> ppCatDiff (CatalogDiff missing extr) =+> "\nmissing:\n"+> ++ intercalate "\n" (map ppCatUpdate missing)+> ++ "\nextra:\n"+> ++ intercalate "\n" (map ppCatUpdate extr)
+ src/Database/HsSqlPpp/Internals/Catalog/DefaultTemplate1Catalog.lhs view
@@ -0,0 +1,13044 @@+++++This file is auto generated, to regenerate run+MUMBLE MUMBLE SOMETHING++from the project root (i.e. where the cabal file is located).++> module Database.HsSqlPpp.Internals.Catalog.DefaultTemplate1Catalog+> (defaultTemplate1Catalog) where+>+> import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+> import Database.HsSqlPpp.Internals.TypeType+>+> defaultTemplate1Catalog :: Catalog+> defaultTemplate1Catalog =+> (\l -> case l of+> Left x -> error $ show x+> Right e -> e) $+> updateCatalog defaultCatalog++ +> [CatCreateScalar (ScalarType "bool") "B" True,+> CatCreateScalar (ScalarType "bytea") "U" False,+> CatCreateScalar (ScalarType "char") "S" False,+> CatCreateScalar (ScalarType "name") "S" False,+> CatCreateScalar (ScalarType "int8") "N" False,+> CatCreateScalar (ScalarType "int2") "N" False,+> CatCreateScalar (ScalarType "int2vector") "A" False,+> CatCreateScalar (ScalarType "int4") "N" False,+> CatCreateScalar (ScalarType "regproc") "N" False,+> CatCreateScalar (ScalarType "text") "S" True,+> CatCreateScalar (ScalarType "oid") "N" True,+> CatCreateScalar (ScalarType "tid") "U" False,+> CatCreateScalar (ScalarType "xid") "U" False,+> CatCreateScalar (ScalarType "cid") "U" False,+> CatCreateScalar (ScalarType "oidvector") "A" False,+> CatCreateScalar (ScalarType "xml") "U" False,+> CatCreateScalar (ScalarType "point") "G" False,+> CatCreateScalar (ScalarType "lseg") "G" False,+> CatCreateScalar (ScalarType "path") "G" False,+> CatCreateScalar (ScalarType "box") "G" False,+> CatCreateScalar (ScalarType "polygon") "G" False,+> CatCreateScalar (ScalarType "line") "G" False,+> CatCreateScalar (ScalarType "float4") "N" False,+> CatCreateScalar (ScalarType "float8") "N" True,+> CatCreateScalar (ScalarType "abstime") "D" False,+> CatCreateScalar (ScalarType "reltime") "T" False,+> CatCreateScalar (ScalarType "tinterval") "T" False,+> CatCreateScalar (ScalarType "circle") "G" False,+> CatCreateScalar (ScalarType "money") "N" False,+> CatCreateScalar (ScalarType "macaddr") "U" False,+> CatCreateScalar (ScalarType "inet") "I" True,+> CatCreateScalar (ScalarType "cidr") "I" False,+> CatCreateScalar (ScalarType "aclitem") "U" False,+> CatCreateScalar (ScalarType "bpchar") "S" False,+> CatCreateScalar (ScalarType "varchar") "S" False,+> CatCreateScalar (ScalarType "date") "D" False,+> CatCreateScalar (ScalarType "time") "D" False,+> CatCreateScalar (ScalarType "timestamp") "D" False,+> CatCreateScalar (ScalarType "timestamptz") "D" True,+> CatCreateScalar (ScalarType "interval") "T" True,+> CatCreateScalar (ScalarType "timetz") "D" False,+> CatCreateScalar (ScalarType "bit") "V" False,+> CatCreateScalar (ScalarType "varbit") "V" True,+> CatCreateScalar (ScalarType "numeric") "N" False,+> CatCreateScalar (ScalarType "refcursor") "U" False,+> CatCreateScalar (ScalarType "regprocedure") "N" False,+> CatCreateScalar (ScalarType "regoper") "N" False,+> CatCreateScalar (ScalarType "regoperator") "N" False,+> CatCreateScalar (ScalarType "regclass") "N" False,+> CatCreateScalar (ScalarType "regtype") "N" False,+> CatCreateScalar (ScalarType "uuid") "U" False,+> CatCreateScalar (ScalarType "tsvector") "U" False,+> CatCreateScalar (ScalarType "gtsvector") "U" False,+> CatCreateScalar (ScalarType "tsquery") "U" False,+> CatCreateScalar (ScalarType "regconfig") "N" False,+> CatCreateScalar (ScalarType "regdictionary") "N" False,+> CatCreateScalar (ScalarType "txid_snapshot") "U" False,+> CatCreateDomain (DomainType "information_schema.cardinal_number")+> (ScalarType "int4"),+> CatCreateDomain (DomainType "information_schema.character_data")+> (ScalarType "varchar"),+> CatCreateDomain (DomainType "information_schema.sql_identifier")+> (ScalarType "varchar"),+> CatCreateDomain (DomainType "information_schema.time_stamp")+> (ScalarType "timestamptz"),+> CatCreateCast (ScalarType "int8") (ScalarType "int2")+> AssignmentCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "float4")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "float8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "numeric")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "int8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "int4")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "float4")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "float8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "numeric")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "int8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "int2")+> AssignmentCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "float4")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "float8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "numeric")+> ImplicitCastContext,+> CatCreateCast (ScalarType "float4") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float4") (ScalarType "int2")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float4") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float4") (ScalarType "float8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "float4") (ScalarType "numeric")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float8") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float8") (ScalarType "int2")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float8") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float8") (ScalarType "float4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "float8") (ScalarType "numeric")+> AssignmentCastContext,+> CatCreateCast (ScalarType "numeric") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "numeric") (ScalarType "int2")+> AssignmentCastContext,+> CatCreateCast (ScalarType "numeric") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "numeric") (ScalarType "float4")+> ImplicitCastContext,+> CatCreateCast (ScalarType "numeric") (ScalarType "float8")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "bool")+> ExplicitCastContext,+> CatCreateCast (ScalarType "bool") (ScalarType "int4")+> ExplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regproc")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regproc") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regproc")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regproc")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regproc")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regproc") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regproc") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regproc") (ScalarType "regprocedure")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regprocedure") (ScalarType "regproc")+> ImplicitCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regprocedure")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regprocedure") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regprocedure")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regprocedure")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regprocedure")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regprocedure") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regprocedure") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regoper")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regoper") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regoper")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regoper")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regoper")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regoper") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regoper") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regoper") (ScalarType "regoperator")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regoperator") (ScalarType "regoper")+> ImplicitCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regoperator")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regoperator") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regoperator")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regoperator")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regoperator")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regoperator") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regoperator") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regclass")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regclass") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regclass")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regclass")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regclass")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regclass") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regclass") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regtype")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regtype") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regtype")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regtype")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regtype")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regtype") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regtype") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regconfig")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regconfig") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regconfig")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regconfig")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regconfig")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regconfig") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regconfig") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "oid") (ScalarType "regdictionary")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regdictionary") (ScalarType "oid")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "regdictionary")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int2") (ScalarType "regdictionary")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "regdictionary")+> ImplicitCastContext,+> CatCreateCast (ScalarType "regdictionary") (ScalarType "int8")+> AssignmentCastContext,+> CatCreateCast (ScalarType "regdictionary") (ScalarType "int4")+> AssignmentCastContext,+> CatCreateCast (ScalarType "text") (ScalarType "regclass")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "regclass")+> ImplicitCastContext,+> CatCreateCast (ScalarType "text") (ScalarType "bpchar")+> ImplicitCastContext,+> CatCreateCast (ScalarType "text") (ScalarType "varchar")+> ImplicitCastContext,+> CatCreateCast (ScalarType "bpchar") (ScalarType "text")+> ImplicitCastContext,+> CatCreateCast (ScalarType "bpchar") (ScalarType "varchar")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "text")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "bpchar")+> ImplicitCastContext,+> CatCreateCast (ScalarType "char") (ScalarType "text")+> ImplicitCastContext,+> CatCreateCast (ScalarType "char") (ScalarType "bpchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "char") (ScalarType "varchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "name") (ScalarType "text")+> ImplicitCastContext,+> CatCreateCast (ScalarType "name") (ScalarType "bpchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "name") (ScalarType "varchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "text") (ScalarType "char")+> AssignmentCastContext,+> CatCreateCast (ScalarType "bpchar") (ScalarType "char")+> AssignmentCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "char")+> AssignmentCastContext,+> CatCreateCast (ScalarType "text") (ScalarType "name")+> ImplicitCastContext,+> CatCreateCast (ScalarType "bpchar") (ScalarType "name")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "name")+> ImplicitCastContext,+> CatCreateCast (ScalarType "char") (ScalarType "int4")+> ExplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "char")+> ExplicitCastContext,+> CatCreateCast (ScalarType "abstime") (ScalarType "date")+> AssignmentCastContext,+> CatCreateCast (ScalarType "abstime") (ScalarType "time")+> AssignmentCastContext,+> CatCreateCast (ScalarType "abstime") (ScalarType "timestamp")+> ImplicitCastContext,+> CatCreateCast (ScalarType "abstime") (ScalarType "timestamptz")+> ImplicitCastContext,+> CatCreateCast (ScalarType "reltime") (ScalarType "interval")+> ImplicitCastContext,+> CatCreateCast (ScalarType "date") (ScalarType "timestamp")+> ImplicitCastContext,+> CatCreateCast (ScalarType "date") (ScalarType "timestamptz")+> ImplicitCastContext,+> CatCreateCast (ScalarType "time") (ScalarType "interval")+> ImplicitCastContext,+> CatCreateCast (ScalarType "time") (ScalarType "timetz")+> ImplicitCastContext,+> CatCreateCast (ScalarType "timestamp") (ScalarType "abstime")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamp") (ScalarType "date")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamp") (ScalarType "time")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamp") (ScalarType "timestamptz")+> ImplicitCastContext,+> CatCreateCast (ScalarType "timestamptz") (ScalarType "abstime")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamptz") (ScalarType "date")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamptz") (ScalarType "time")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamptz") (ScalarType "timestamp")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timestamptz") (ScalarType "timetz")+> AssignmentCastContext,+> CatCreateCast (ScalarType "interval") (ScalarType "reltime")+> AssignmentCastContext,+> CatCreateCast (ScalarType "interval") (ScalarType "time")+> AssignmentCastContext,+> CatCreateCast (ScalarType "timetz") (ScalarType "time")+> AssignmentCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "abstime")+> ExplicitCastContext,+> CatCreateCast (ScalarType "abstime") (ScalarType "int4")+> ExplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "reltime")+> ExplicitCastContext,+> CatCreateCast (ScalarType "reltime") (ScalarType "int4")+> ExplicitCastContext,+> CatCreateCast (ScalarType "lseg") (ScalarType "point")+> ExplicitCastContext,+> CatCreateCast (ScalarType "path") (ScalarType "point")+> ExplicitCastContext,+> CatCreateCast (ScalarType "path") (ScalarType "polygon")+> AssignmentCastContext,+> CatCreateCast (ScalarType "box") (ScalarType "point")+> ExplicitCastContext,+> CatCreateCast (ScalarType "box") (ScalarType "lseg")+> ExplicitCastContext,+> CatCreateCast (ScalarType "box") (ScalarType "polygon")+> AssignmentCastContext,+> CatCreateCast (ScalarType "box") (ScalarType "circle")+> ExplicitCastContext,+> CatCreateCast (ScalarType "polygon") (ScalarType "point")+> ExplicitCastContext,+> CatCreateCast (ScalarType "polygon") (ScalarType "path")+> AssignmentCastContext,+> CatCreateCast (ScalarType "polygon") (ScalarType "box")+> ExplicitCastContext,+> CatCreateCast (ScalarType "polygon") (ScalarType "circle")+> ExplicitCastContext,+> CatCreateCast (ScalarType "circle") (ScalarType "point")+> ExplicitCastContext,+> CatCreateCast (ScalarType "circle") (ScalarType "box")+> ExplicitCastContext,+> CatCreateCast (ScalarType "circle") (ScalarType "polygon")+> ExplicitCastContext,+> CatCreateCast (ScalarType "cidr") (ScalarType "inet")+> ImplicitCastContext,+> CatCreateCast (ScalarType "inet") (ScalarType "cidr")+> AssignmentCastContext,+> CatCreateCast (ScalarType "bit") (ScalarType "varbit")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varbit") (ScalarType "bit")+> ImplicitCastContext,+> CatCreateCast (ScalarType "int8") (ScalarType "bit")+> ExplicitCastContext,+> CatCreateCast (ScalarType "int4") (ScalarType "bit")+> ExplicitCastContext,+> CatCreateCast (ScalarType "bit") (ScalarType "int8")+> ExplicitCastContext,+> CatCreateCast (ScalarType "bit") (ScalarType "int4")+> ExplicitCastContext,+> CatCreateCast (ScalarType "cidr") (ScalarType "text")+> AssignmentCastContext,+> CatCreateCast (ScalarType "inet") (ScalarType "text")+> AssignmentCastContext,+> CatCreateCast (ScalarType "bool") (ScalarType "text")+> AssignmentCastContext,+> CatCreateCast (ScalarType "xml") (ScalarType "text")+> AssignmentCastContext,+> CatCreateCast (ScalarType "text") (ScalarType "xml")+> ExplicitCastContext,+> CatCreateCast (ScalarType "cidr") (ScalarType "varchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "inet") (ScalarType "varchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "bool") (ScalarType "varchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "xml") (ScalarType "varchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "xml")+> ExplicitCastContext,+> CatCreateCast (ScalarType "cidr") (ScalarType "bpchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "inet") (ScalarType "bpchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "bool") (ScalarType "bpchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "xml") (ScalarType "bpchar")+> AssignmentCastContext,+> CatCreateCast (ScalarType "bpchar") (ScalarType "xml")+> ExplicitCastContext,+> CatCreateCast (ScalarType "bpchar") (ScalarType "bpchar")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varchar") (ScalarType "varchar")+> ImplicitCastContext,+> CatCreateCast (ScalarType "time") (ScalarType "time")+> ImplicitCastContext,+> CatCreateCast (ScalarType "timestamp") (ScalarType "timestamp")+> ImplicitCastContext,+> CatCreateCast (ScalarType "timestamptz") (ScalarType "timestamptz")+> ImplicitCastContext,+> CatCreateCast (ScalarType "interval") (ScalarType "interval")+> ImplicitCastContext,+> CatCreateCast (ScalarType "timetz") (ScalarType "timetz")+> ImplicitCastContext,+> CatCreateCast (ScalarType "bit") (ScalarType "bit")+> ImplicitCastContext,+> CatCreateCast (ScalarType "varbit") (ScalarType "varbit")+> ImplicitCastContext,+> CatCreateCast (ScalarType "numeric") (ScalarType "numeric")+> ImplicitCastContext,+> CatCreateFunction FunPrefix "~" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunPrefix "~" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunPrefix "~" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunPrefix "~" [ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunPrefix "~" [ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunPrefix "||/" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "|/" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "|" [ScalarType "tinterval"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunPrefix "@@" [ScalarType "circle"]+> (ScalarType "point")+> False,+> CatCreateFunction FunPrefix "@@" [ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunPrefix "@@" [ScalarType "path"]+> (ScalarType "point")+> False,+> CatCreateFunction FunPrefix "@@" [ScalarType "polygon"]+> (ScalarType "point")+> False,+> CatCreateFunction FunPrefix "@@" [ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunPrefix "@-@" [ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "@-@" [ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "@" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunPrefix "@" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunPrefix "@" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunPrefix "@" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "@" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunPrefix "@" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunPrefix "?|" [ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunPrefix "?|" [ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunPrefix "?-" [ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunPrefix "?-" [ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunPrefix "-" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunPrefix "+" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunPrefix "+" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunPrefix "+" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunPrefix "+" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunPrefix "+" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunPrefix "+" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunPrefix "#" [ScalarType "path"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunPrefix "#" [ScalarType "polygon"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunPrefix "!!" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunPrefix "!!" [ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunPostfix "!" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "~~*"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~~*"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~~*"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~~"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~~"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~~"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~>~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~>~"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~>=~"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~>=~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~="+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~="+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~="+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~="+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~="+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~<~"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~<~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~<=~"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~<=~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~*"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~*"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~*"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "polygon", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "~"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "||" [Pseudo AnyArray, Pseudo AnyArray]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunBinary "||"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunBinary "||"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "varbit")+> False,+> CatCreateFunction FunBinary "||"+> [Pseudo AnyElement, Pseudo AnyArray]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunBinary "||"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunBinary "||"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunBinary "||"+> [Pseudo AnyNonArray, ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunBinary "||"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunBinary "||"+> [Pseudo AnyArray, Pseudo AnyElement]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunBinary "||"+> [ScalarType "text", Pseudo AnyNonArray]+> (ScalarType "text")+> False,+> CatCreateFunction FunBinary "|>>"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "|>>"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "|>>"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "|&>"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "|&>"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "|&>"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "|"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "|"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "|"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "|"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunBinary "|"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunBinary "^"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "^"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "@@@"+> [ScalarType "tsquery", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@@@"+> [ScalarType "tsvector", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@@"+> [ScalarType "text", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@@"+> [ScalarType "tsquery", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@@"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@@"+> [ScalarType "tsvector", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "polygon", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "@>"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?||"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?||"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?|"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?-|"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?-|"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?-"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "?#"+> [ScalarType "line", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">^"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">^"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>="+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">>"+> [ScalarType "bit", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">=" [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">=" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">=" [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">="+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">" [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">" [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary ">"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "aclitem", ScalarType "aclitem"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int2vector", ScalarType "int2vector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "=" [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "cid", ScalarType "cid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "xid", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "=" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "=" [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "xid", ScalarType "xid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "="+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<^"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<^"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "point", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "point", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "point", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "point", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "point", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<@"+> [ScalarType "point", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<?>"+> [ScalarType "abstime", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>" [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>" [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<>"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<=" [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<=" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<=" [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<="+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<|"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<|"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<|"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<="+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "bit", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "<<"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "circle", ScalarType "polygon"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "point", ScalarType "line"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "point", ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "point", ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "point", ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "point", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<->"+> [ScalarType "line", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "<#>"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "tinterval")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<" [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<" [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "<"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "money", ScalarType "float4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "money", ScalarType "int4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "interval", ScalarType "float8"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "money", ScalarType "int2"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "money", ScalarType "float8"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "/"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "timestamptz", ScalarType "interval"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "date", ScalarType "int4"]+> (ScalarType "date")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "date", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "-"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ArrayType (ScalarType "aclitem"))+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "inet", ScalarType "int8"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "time", ScalarType "interval"]+> (ScalarType "time")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "timetz", ScalarType "interval"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "abstime", ScalarType "reltime"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "timestamp", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "-"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "date", ScalarType "time"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "timetz", ScalarType "interval"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "time", ScalarType "interval"]+> (ScalarType "time")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "timestamp", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "time", ScalarType "date"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "date", ScalarType "timetz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "path")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int8", ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunBinary "+"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ArrayType (ScalarType "aclitem"))+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "inet", ScalarType "int8"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "interval", ScalarType "date"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "date", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "timetz", ScalarType "date"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "interval", ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "interval", ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "date", ScalarType "int4"]+> (ScalarType "date")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "interval", ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "int4", ScalarType "date"]+> (ScalarType "date")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "timestamptz", ScalarType "interval"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "abstime", ScalarType "reltime"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunBinary "+"+> [ScalarType "interval", ScalarType "time"]+> (ScalarType "time")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "money", ScalarType "float4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float4", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "money", ScalarType "float8"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "money", ScalarType "int4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "money", ScalarType "int2"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float8", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int4", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int2", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float8", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "interval", ScalarType "float8"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "*"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunBinary "&>"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&>"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&>"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&<|"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&<|"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&<|"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&<"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&<"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&<"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&&" [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&&"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&&"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&&"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&&"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "&&"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunBinary "&"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunBinary "&"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunBinary "&"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "&"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "&"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "%"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "%"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunBinary "%"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "%"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "#>="+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "#>"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "#="+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "#<>"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "#<="+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "#<"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "line", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "point", ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "line", ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "point", ScalarType "line"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "point", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "##"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "box")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunBinary "#"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunBinary "!~~*"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~~*"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~~*"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~~"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~~"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~~"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~*"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~*"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~*"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunBinary "!~"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "RI_FKey_cascade_del" [] (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_cascade_upd" [] (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_check_ins" [] (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_check_upd" [] (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_noaction_del" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_noaction_upd" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_restrict_del" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_restrict_upd" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_setdefault_del" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_setdefault_upd" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_setnull_del" [] (Pseudo Trigger)+> False,+> CatCreateFunction FunName "RI_FKey_setnull_upd" [] (Pseudo Trigger)+> False,+> CatCreateFunction FunName "abbrev" [ScalarType "cidr"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "abbrev" [ScalarType "inet"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "abs" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "abs" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "abs" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "abs" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "abs" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "abs" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "abstime" [ScalarType "timestamp"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "abstime" [ScalarType "timestamptz"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "abstimeeq"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "abstimege"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "abstimegt"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "abstimein" [Pseudo Cstring]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "abstimele"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "abstimelt"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "abstimene"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "abstimeout" [ScalarType "abstime"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "abstimerecv" [Pseudo Internal]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "abstimesend" [ScalarType "abstime"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "aclcontains"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "aclinsert"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ArrayType (ScalarType "aclitem"))+> False,+> CatCreateFunction FunName "aclitemeq"+> [ScalarType "aclitem", ScalarType "aclitem"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "aclitemin" [Pseudo Cstring]+> (ScalarType "aclitem")+> False,+> CatCreateFunction FunName "aclitemout" [ScalarType "aclitem"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "aclremove"+> [ArrayType (ScalarType "aclitem"), ScalarType "aclitem"]+> (ArrayType (ScalarType "aclitem"))+> False,+> CatCreateFunction FunName "acos" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "age" [ScalarType "xid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "age" [ScalarType "timestamp"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "age" [ScalarType "timestamptz"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "age"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "age"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "any_in" [Pseudo Cstring] (Pseudo Any)+> False,+> CatCreateFunction FunName "any_out" [Pseudo Any] (Pseudo Cstring)+> False,+> CatCreateFunction FunName "anyarray_in" [Pseudo Cstring]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "anyarray_out" [Pseudo AnyArray]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "anyarray_recv" [Pseudo Internal]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "anyarray_send" [Pseudo AnyArray]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "anyelement_in" [Pseudo Cstring]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunName "anyelement_out" [Pseudo AnyElement]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "anyenum_in" [Pseudo Cstring]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "anyenum_out" [Pseudo AnyEnum]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "anynonarray_in" [Pseudo Cstring]+> (Pseudo AnyNonArray)+> False,+> CatCreateFunction FunName "anynonarray_out" [Pseudo AnyNonArray]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "anytextcat"+> [Pseudo AnyNonArray, ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "area" [ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "area" [ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "area" [ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "areajoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "areasel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "array_agg_finalfn" [Pseudo Internal]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_agg_transfn"+> [Pseudo Internal, Pseudo AnyElement]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "array_append"+> [Pseudo AnyArray, Pseudo AnyElement]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_cat"+> [Pseudo AnyArray, Pseudo AnyArray]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_dims" [Pseudo AnyArray]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "array_eq"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "array_fill"+> [Pseudo AnyElement, ArrayType (ScalarType "int4")]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_fill"+> [Pseudo AnyElement, ArrayType (ScalarType "int4"),+> ArrayType (ScalarType "int4")]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_ge"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "array_gt"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "array_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_larger"+> [Pseudo AnyArray, Pseudo AnyArray]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_le"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "array_length"+> [Pseudo AnyArray, ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "array_lower"+> [Pseudo AnyArray, ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "array_lt"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "array_ndims" [Pseudo AnyArray]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "array_ne"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "array_out" [Pseudo AnyArray]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "array_prepend"+> [Pseudo AnyElement, Pseudo AnyArray]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_send" [Pseudo AnyArray]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "array_smaller"+> [Pseudo AnyArray, Pseudo AnyArray]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "array_to_string"+> [Pseudo AnyArray, ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "array_upper"+> [Pseudo AnyArray, ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "arraycontained"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "arraycontains"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "arrayoverlap"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ascii" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "ascii_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "ascii_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "asin" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "atan" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "atan2"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "big5_to_euc_tw"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "big5_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "big5_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "bit"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bit"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bit"+> [ScalarType "bit", ScalarType "int4", ScalarType "bool"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bit_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bit_length" [ScalarType "bytea"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bit_length" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bit_length" [ScalarType "bit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bit_out" [ScalarType "bit"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "bit_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bit_send" [ScalarType "bit"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "bitand"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bitcat"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "varbit")+> False,+> CatCreateFunction FunName "bitcmp"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "biteq"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bitge"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bitgt"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bitle"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bitlt"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bitne"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bitnot" [ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bitor"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bitshiftleft"+> [ScalarType "bit", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bitshiftright"+> [ScalarType "bit", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bittypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bittypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "bitxor"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "bool" [ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "booland_statefunc"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "booleq"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolge"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolgt"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolin" [Pseudo Cstring]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolle"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boollt"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolne"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolor_statefunc"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolout" [ScalarType "bool"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "boolrecv" [Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "boolsend" [ScalarType "bool"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "box" [ScalarType "polygon"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box" [ScalarType "circle"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_above"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_above_eq"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_add"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_below"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_below_eq"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_center" [ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "box_contain"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_contained"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_distance"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "box_div"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_eq"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_ge"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_gt"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_in" [Pseudo Cstring]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_intersect"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_le"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_left"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_lt"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_mul"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_out" [ScalarType "box"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "box_overabove"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_overbelow"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_overlap"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_overleft"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_overright"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_recv" [Pseudo Internal]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "box_right"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_same"+> [ScalarType "box", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "box_send" [ScalarType "box"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "box_sub"+> [ScalarType "box", ScalarType "point"]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "bpchar" [ScalarType "char"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpchar" [ScalarType "name"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpchar"+> [ScalarType "bpchar", ScalarType "int4", ScalarType "bool"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpchar_larger"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpchar_pattern_ge"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpchar_pattern_gt"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpchar_pattern_le"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpchar_pattern_lt"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpchar_smaller"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpcharcmp"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bpchareq"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharge"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpchargt"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpchariclike"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharicnlike"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharicregexeq"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharicregexne"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharin"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpcharle"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharlike"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharlt"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharne"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharnlike"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharout" [ScalarType "bpchar"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "bpcharrecv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunName "bpcharregexeq"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharregexne"+> [ScalarType "bpchar", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bpcharsend" [ScalarType "bpchar"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "bpchartypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bpchartypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "broadcast" [ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "btabstimecmp"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btarraycmp"+> [Pseudo AnyArray, Pseudo AnyArray]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btbeginscan"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "btboolcmp"+> [ScalarType "bool", ScalarType "bool"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btbpchar_pattern_cmp"+> [ScalarType "bpchar", ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btbuild"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "btbulkdelete"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "btcharcmp"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btcostestimate"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "btendscan" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "btfloat48cmp"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btfloat4cmp"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btfloat84cmp"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btfloat8cmp"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btgetbitmap"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "btgettuple"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "btinsert"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "btint24cmp"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint28cmp"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint2cmp"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint42cmp"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint48cmp"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint4cmp"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint82cmp"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint84cmp"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btint8cmp"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btmarkpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "btnamecmp"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btoidcmp"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btoidvectorcmp"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btoptions"+> [ArrayType (ScalarType "text"), ScalarType "bool"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "btrecordcmp"+> [Pseudo Record, Pseudo Record]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btreltimecmp"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btrescan"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "btrestrpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "btrim" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "btrim"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "btrim"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "bttext_pattern_cmp"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bttextcmp"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bttidcmp"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "bttintervalcmp"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "btvacuumcleanup"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "byteacat"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "byteacmp"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "byteaeq"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "byteage"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "byteagt"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "byteain" [Pseudo Cstring]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "byteale"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bytealike"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "bytealt"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "byteane"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "byteanlike"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "byteaout" [ScalarType "bytea"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "bytearecv" [Pseudo Internal]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "byteasend" [ScalarType "bytea"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "cash_cmp"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "cash_div_flt4"+> [ScalarType "money", ScalarType "float4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_div_flt8"+> [ScalarType "money", ScalarType "float8"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_div_int2"+> [ScalarType "money", ScalarType "int2"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_div_int4"+> [ScalarType "money", ScalarType "int4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_eq"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cash_ge"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cash_gt"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cash_in" [Pseudo Cstring]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_le"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cash_lt"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cash_mi"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_mul_flt4"+> [ScalarType "money", ScalarType "float4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_mul_flt8"+> [ScalarType "money", ScalarType "float8"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_mul_int2"+> [ScalarType "money", ScalarType "int2"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_mul_int4"+> [ScalarType "money", ScalarType "int4"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_ne"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cash_out" [ScalarType "money"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "cash_pl"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_recv" [Pseudo Internal]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cash_send" [ScalarType "money"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "cash_words" [ScalarType "money"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "cashlarger"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cashsmaller"+> [ScalarType "money", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "cbrt" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "ceil" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "ceil" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "ceiling" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "ceiling" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "center" [ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "center" [ScalarType "circle"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "char" [ScalarType "int4"]+> (ScalarType "char")+> False,+> CatCreateFunction FunName "char" [ScalarType "text"]+> (ScalarType "char")+> False,+> CatCreateFunction FunName "char_length" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "char_length" [ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "character_length" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "character_length" [ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "chareq"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "charge"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "chargt"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "charin" [Pseudo Cstring]+> (ScalarType "char")+> False,+> CatCreateFunction FunName "charle"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "charlt"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "charne"+> [ScalarType "char", ScalarType "char"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "charout" [ScalarType "char"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "charrecv" [Pseudo Internal]+> (ScalarType "char")+> False,+> CatCreateFunction FunName "charsend" [ScalarType "char"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "chr" [ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "cideq"+> [ScalarType "cid", ScalarType "cid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "cidin" [Pseudo Cstring]+> (ScalarType "cid")+> False,+> CatCreateFunction FunName "cidout" [ScalarType "cid"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "cidr" [ScalarType "inet"]+> (ScalarType "cidr")+> False,+> CatCreateFunction FunName "cidr_in" [Pseudo Cstring]+> (ScalarType "cidr")+> False,+> CatCreateFunction FunName "cidr_out" [ScalarType "cidr"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "cidr_recv" [Pseudo Internal]+> (ScalarType "cidr")+> False,+> CatCreateFunction FunName "cidr_send" [ScalarType "cidr"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "cidrecv" [Pseudo Internal]+> (ScalarType "cid")+> False,+> CatCreateFunction FunName "cidsend" [ScalarType "cid"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "circle" [ScalarType "box"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle" [ScalarType "polygon"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle"+> [ScalarType "point", ScalarType "float8"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle_above"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_add_pt"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle_below"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_center" [ScalarType "circle"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "circle_contain"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_contain_pt"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_contained"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_distance"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "circle_div_pt"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle_eq"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_ge"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_gt"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_in" [Pseudo Cstring]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle_le"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_left"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_lt"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_mul_pt"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle_ne"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_out" [ScalarType "circle"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "circle_overabove"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_overbelow"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_overlap"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_overleft"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_overright"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_recv" [Pseudo Internal]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "circle_right"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_same"+> [ScalarType "circle", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "circle_send" [ScalarType "circle"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "circle_sub_pt"+> [ScalarType "circle", ScalarType "point"]+> (ScalarType "circle")+> False,+> CatCreateFunction FunName "clock_timestamp" []+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "close_lb"+> [ScalarType "line", ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_ls"+> [ScalarType "line", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_lseg"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_pb"+> [ScalarType "point", ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_pl"+> [ScalarType "point", ScalarType "line"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_ps"+> [ScalarType "point", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_sb"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "close_sl"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "col_description"+> [ScalarType "oid", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "contjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "contsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "convert"+> [ScalarType "bytea", ScalarType "name", ScalarType "name"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "convert_from"+> [ScalarType "bytea", ScalarType "name"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "convert_to"+> [ScalarType "text", ScalarType "name"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "cos" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "cot" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "cstring_in" [Pseudo Cstring]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "cstring_out" [Pseudo Cstring]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "cstring_recv" [Pseudo Internal]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "cstring_send" [Pseudo Cstring]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "current_database" [] (ScalarType "name")+> False,+> CatCreateFunction FunName "current_query" [] (ScalarType "text")+> False,+> CatCreateFunction FunName "current_schema" [] (ScalarType "name")+> False,+> CatCreateFunction FunName "current_schemas" [ScalarType "bool"]+> (ArrayType (ScalarType "name"))+> False,+> CatCreateFunction FunName "current_setting" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "current_user" [] (ScalarType "name")+> False,+> CatCreateFunction FunName "currtid"+> [ScalarType "oid", ScalarType "tid"]+> (ScalarType "tid")+> False,+> CatCreateFunction FunName "currtid2"+> [ScalarType "text", ScalarType "tid"]+> (ScalarType "tid")+> False,+> CatCreateFunction FunName "currval" [ScalarType "regclass"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "cursor_to_xml"+> [ScalarType "refcursor", ScalarType "int4", ScalarType "bool",+> ScalarType "bool", ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "cursor_to_xmlschema"+> [ScalarType "refcursor", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "database_to_xml"+> [ScalarType "bool", ScalarType "bool", ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "database_to_xml_and_xmlschema"+> [ScalarType "bool", ScalarType "bool", ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "database_to_xmlschema"+> [ScalarType "bool", ScalarType "bool", ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "date" [ScalarType "abstime"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date" [ScalarType "timestamp"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date" [ScalarType "timestamptz"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_cmp"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "date_cmp_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "date_cmp_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "date_eq"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_eq_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_eq_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_ge"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_ge_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_ge_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_gt"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_gt_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_gt_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_in" [Pseudo Cstring]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_larger"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_le"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_le_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_le_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_lt"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_lt_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_lt_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_mi"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "date_mi_interval"+> [ScalarType "date", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "date_mii"+> [ScalarType "date", ScalarType "int4"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_ne"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_ne_timestamp"+> [ScalarType "date", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_ne_timestamptz"+> [ScalarType "date", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "date_out" [ScalarType "date"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "abstime"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "reltime"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "date"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "time"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "timestamp"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "timestamptz"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "interval"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_part"+> [ScalarType "text", ScalarType "timetz"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "date_pl_interval"+> [ScalarType "date", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "date_pli"+> [ScalarType "date", ScalarType "int4"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_recv" [Pseudo Internal]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_send" [ScalarType "date"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "date_smaller"+> [ScalarType "date", ScalarType "date"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "date_trunc"+> [ScalarType "text", ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "date_trunc"+> [ScalarType "text", ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "date_trunc"+> [ScalarType "text", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "datetime_pl"+> [ScalarType "date", ScalarType "time"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "datetimetz_pl"+> [ScalarType "date", ScalarType "timetz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "dcbrt" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "decode"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "degrees" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dexp" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "diagonal" [ScalarType "box"]+> (ScalarType "lseg")+> False,+> CatCreateFunction FunName "diameter" [ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dispell_init" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dispell_lexize"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dist_cpoly"+> [ScalarType "circle", ScalarType "polygon"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_lb"+> [ScalarType "line", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_pb"+> [ScalarType "point", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_pc"+> [ScalarType "point", ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_pl"+> [ScalarType "point", ScalarType "line"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_ppath"+> [ScalarType "point", ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_ps"+> [ScalarType "point", ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_sb"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dist_sl"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "div"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "dlog1" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dlog10" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "domain_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (Pseudo Any)+> False,+> CatCreateFunction FunName "domain_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (Pseudo Any)+> False,+> CatCreateFunction FunName "dpow"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dround" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dsimple_init" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dsimple_lexize"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dsnowball_init" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dsnowball_lexize"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dsqrt" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "dsynonym_init" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dsynonym_lexize"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "dtrunc" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "encode"+> [ScalarType "bytea", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "enum_cmp"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "enum_eq"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "enum_first" [Pseudo AnyEnum]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "enum_ge"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "enum_gt"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "enum_in"+> [Pseudo Cstring, ScalarType "oid"]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "enum_larger"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "enum_last" [Pseudo AnyEnum]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "enum_le"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "enum_lt"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "enum_ne"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "enum_out" [Pseudo AnyEnum]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "enum_range" [Pseudo AnyEnum]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "enum_range"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunName "enum_recv"+> [Pseudo Cstring, ScalarType "oid"]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "enum_send" [Pseudo AnyEnum]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "enum_smaller"+> [Pseudo AnyEnum, Pseudo AnyEnum]+> (Pseudo AnyEnum)+> False,+> CatCreateFunction FunName "eqjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "eqsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "euc_cn_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_cn_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_jis_2004_to_shift_jis_2004"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_jis_2004_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_jp_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_jp_to_sjis"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_jp_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_kr_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_kr_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_tw_to_big5"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_tw_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "euc_tw_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "exp" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "exp" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "factorial" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "family" [ScalarType "inet"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "flatfile_update_trigger" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "float4" [ScalarType "int8"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4" [ScalarType "int2"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4" [ScalarType "int4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4" [ScalarType "float8"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4" [ScalarType "numeric"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float48div"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float48eq"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float48ge"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float48gt"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float48le"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float48lt"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float48mi"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float48mul"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float48ne"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float48pl"+> [ScalarType "float4", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float4_accum"+> [ArrayType (ScalarType "float8"), ScalarType "float4"]+> (ArrayType (ScalarType "float8"))+> False,+> CatCreateFunction FunName "float4abs" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4div"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4eq"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float4ge"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float4gt"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float4in" [Pseudo Cstring]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4larger"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4le"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float4lt"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float4mi"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4mul"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4ne"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float4out" [ScalarType "float4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "float4pl"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4recv" [Pseudo Internal]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4send" [ScalarType "float4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "float4smaller"+> [ScalarType "float4", ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4um" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float4up" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "float8" [ScalarType "int8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8" [ScalarType "int2"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8" [ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8" [ScalarType "numeric"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float84div"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float84eq"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float84ge"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float84gt"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float84le"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float84lt"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float84mi"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float84mul"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float84ne"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float84pl"+> [ScalarType "float8", ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_accum"+> [ArrayType (ScalarType "float8"), ScalarType "float8"]+> (ArrayType (ScalarType "float8"))+> False,+> CatCreateFunction FunName "float8_avg"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_corr"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_covar_pop"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_covar_samp"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_accum"+> [ArrayType (ScalarType "float8"), ScalarType "float8",+> ScalarType "float8"]+> (ArrayType (ScalarType "float8"))+> False,+> CatCreateFunction FunName "float8_regr_avgx"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_avgy"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_intercept"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_r2"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_slope"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_sxx"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_sxy"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_regr_syy"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_stddev_pop"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_stddev_samp"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_var_pop"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8_var_samp"+> [ArrayType (ScalarType "float8")]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8abs" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8div"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8eq"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float8ge"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float8gt"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float8in" [Pseudo Cstring]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8larger"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8le"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float8lt"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float8mi"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8mul"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8ne"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "float8out" [ScalarType "float8"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "float8pl"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8recv" [Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8send" [ScalarType "float8"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "float8smaller"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8um" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "float8up" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "floor" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "floor" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "flt4_mul_cash"+> [ScalarType "float4", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "flt8_mul_cash"+> [ScalarType "float8", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "fmgr_c_validator" [ScalarType "oid"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "fmgr_internal_validator"+> [ScalarType "oid"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "fmgr_sql_validator" [ScalarType "oid"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "format_type"+> [ScalarType "oid", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "gb18030_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gbk_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "generate_series"+> [ScalarType "int8", ScalarType "int8"]+> (SetOfType (ScalarType "int8"))+> False,+> CatCreateFunction FunName "generate_series"+> [ScalarType "int4", ScalarType "int4"]+> (SetOfType (ScalarType "int4"))+> False,+> CatCreateFunction FunName "generate_series"+> [ScalarType "int8", ScalarType "int8", ScalarType "int8"]+> (SetOfType (ScalarType "int8"))+> False,+> CatCreateFunction FunName "generate_series"+> [ScalarType "int4", ScalarType "int4", ScalarType "int4"]+> (SetOfType (ScalarType "int4"))+> False,+> CatCreateFunction FunName "generate_series"+> [ScalarType "timestamp", ScalarType "timestamp",+> ScalarType "interval"]+> (SetOfType (ScalarType "timestamp"))+> False,+> CatCreateFunction FunName "generate_series"+> [ScalarType "timestamptz", ScalarType "timestamptz",+> ScalarType "interval"]+> (SetOfType (ScalarType "timestamptz"))+> False,+> CatCreateFunction FunName "generate_subscripts"+> [Pseudo AnyArray, ScalarType "int4"]+> (SetOfType (ScalarType "int4"))+> False,+> CatCreateFunction FunName "generate_subscripts"+> [Pseudo AnyArray, ScalarType "int4", ScalarType "bool"]+> (SetOfType (ScalarType "int4"))+> False,+> CatCreateFunction FunName "get_bit"+> [ScalarType "bytea", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "get_byte"+> [ScalarType "bytea", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "get_current_ts_config" []+> (ScalarType "regconfig")+> False,+> CatCreateFunction FunName "getdatabaseencoding" []+> (ScalarType "name")+> False,+> CatCreateFunction FunName "getpgusername" [] (ScalarType "name")+> False,+> CatCreateFunction FunName "gin_cmp_prefix"+> [ScalarType "text", ScalarType "text", ScalarType "int2",+> Pseudo Internal]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "gin_cmp_tslexeme"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "gin_extract_tsquery"+> [ScalarType "tsquery", Pseudo Internal, ScalarType "int2",+> Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gin_extract_tsvector"+> [ScalarType "tsvector", Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gin_tsquery_consistent"+> [Pseudo Internal, ScalarType "int2", ScalarType "tsquery",+> ScalarType "int4", Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ginarrayconsistent"+> [Pseudo Internal, ScalarType "int2", Pseudo AnyArray,+> ScalarType "int4", Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ginarrayextract"+> [Pseudo AnyArray, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "ginbeginscan"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "ginbuild"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "ginbulkdelete"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gincostestimate"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "ginendscan" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gingetbitmap"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "gininsert"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ginmarkpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "ginoptions"+> [ArrayType (ScalarType "text"), ScalarType "bool"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "ginqueryarrayextract"+> [Pseudo AnyArray, Pseudo Internal, ScalarType "int2",+> Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "ginrescan"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "ginrestrpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "ginvacuumcleanup"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_box_compress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_box_consistent"+> [Pseudo Internal, ScalarType "box", ScalarType "int4",+> ScalarType "oid", Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gist_box_decompress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_box_penalty"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_box_picksplit"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_box_same"+> [ScalarType "box", ScalarType "box", Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_box_union"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "box")+> False,+> CatCreateFunction FunName "gist_circle_compress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_circle_consistent"+> [Pseudo Internal, ScalarType "circle", ScalarType "int4",+> ScalarType "oid", Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gist_poly_compress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gist_poly_consistent"+> [Pseudo Internal, ScalarType "polygon", ScalarType "int4",+> ScalarType "oid", Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gistbeginscan"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gistbuild"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gistbulkdelete"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gistcostestimate"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gistendscan" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gistgetbitmap"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "gistgettuple"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gistinsert"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gistmarkpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gistoptions"+> [ArrayType (ScalarType "text"), ScalarType "bool"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "gistrescan"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gistrestrpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "gistvacuumcleanup"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsquery_compress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsquery_consistent"+> [Pseudo Internal, Pseudo Internal, ScalarType "int4",+> ScalarType "oid", Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gtsquery_decompress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsquery_penalty"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsquery_picksplit"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsquery_same"+> [ScalarType "int8", ScalarType "int8", Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsquery_union"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvector_compress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvector_consistent"+> [Pseudo Internal, ScalarType "gtsvector", ScalarType "int4",+> ScalarType "oid", Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "gtsvector_decompress" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvector_penalty"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvector_picksplit"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvector_same"+> [ScalarType "gtsvector", ScalarType "gtsvector", Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvector_union"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "gtsvectorin" [Pseudo Cstring]+> (ScalarType "gtsvector")+> False,+> CatCreateFunction FunName "gtsvectorout" [ScalarType "gtsvector"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "has_any_column_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_any_column_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_any_column_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_any_column_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_any_column_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_any_column_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "text", ScalarType "int2", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "oid", ScalarType "int2", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "int2",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "int2",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "int2",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "int2",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_column_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text",+> ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_database_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_database_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_database_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_database_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_database_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_database_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_foreign_data_wrapper_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_function_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_function_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_function_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_function_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_function_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_function_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_language_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_language_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_language_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_language_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_language_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_language_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_schema_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_schema_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_schema_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_schema_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_schema_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_schema_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_server_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_server_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_server_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_server_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_server_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_server_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_table_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_table_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_table_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_table_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_table_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_table_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_tablespace_privilege"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_tablespace_privilege"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_tablespace_privilege"+> [ScalarType "name", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_tablespace_privilege"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_tablespace_privilege"+> [ScalarType "oid", ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "has_tablespace_privilege"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "hash_aclitem" [ScalarType "aclitem"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hash_numeric" [ScalarType "numeric"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashbeginscan"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "hashbpchar" [ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashbuild"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "hashbulkdelete"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "hashchar" [ScalarType "char"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashcostestimate"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "hashendscan" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "hashenum" [Pseudo AnyEnum]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashfloat4" [ScalarType "float4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashfloat8" [ScalarType "float8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashgetbitmap"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "hashgettuple"+> [Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "hashinet" [ScalarType "inet"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashinsert"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "hashint2" [ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashint2vector"+> [ScalarType "int2vector"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashint4" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashint8" [ScalarType "int8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashmacaddr" [ScalarType "macaddr"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashmarkpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "hashname" [ScalarType "name"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashoid" [ScalarType "oid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashoidvector" [ScalarType "oidvector"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashoptions"+> [ArrayType (ScalarType "text"), ScalarType "bool"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "hashrescan"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "hashrestrpos" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "hashtext" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "hashvacuumcleanup"+> [Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "hashvarlena" [Pseudo Internal]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "height" [ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "host" [ScalarType "inet"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "hostmask" [ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "iclikejoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "iclikesel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "icnlikejoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "icnlikesel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "icregexeqjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "icregexeqsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "icregexnejoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "icregexnesel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "inet_client_addr" [] (ScalarType "inet")+> False,+> CatCreateFunction FunName "inet_client_port" [] (ScalarType "int4")+> False,+> CatCreateFunction FunName "inet_in" [Pseudo Cstring]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "inet_out" [ScalarType "inet"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "inet_recv" [Pseudo Internal]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "inet_send" [ScalarType "inet"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "inet_server_addr" [] (ScalarType "inet")+> False,+> CatCreateFunction FunName "inet_server_port" [] (ScalarType "int4")+> False,+> CatCreateFunction FunName "inetand"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "inetmi"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "inetmi_int8"+> [ScalarType "inet", ScalarType "int8"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "inetnot" [ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "inetor"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "inetpl"+> [ScalarType "inet", ScalarType "int8"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "initcap" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "int2" [ScalarType "int8"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2" [ScalarType "int4"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2" [ScalarType "float4"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2" [ScalarType "float8"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2" [ScalarType "numeric"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int24div"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int24eq"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int24ge"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int24gt"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int24le"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int24lt"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int24mi"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int24mul"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int24ne"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int24pl"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int28div"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int28eq"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int28ge"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int28gt"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int28le"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int28lt"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int28mi"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int28mul"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int28ne"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int28pl"+> [ScalarType "int2", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int2_accum"+> [ArrayType (ScalarType "numeric"), ScalarType "int2"]+> (ArrayType (ScalarType "numeric"))+> False,+> CatCreateFunction FunName "int2_avg_accum"+> [ArrayType (ScalarType "int8"), ScalarType "int2"]+> (ArrayType (ScalarType "int8"))+> False,+> CatCreateFunction FunName "int2_mul_cash"+> [ScalarType "int2", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "int2_sum"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int2abs" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2and"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2div"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2eq"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2ge"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2gt"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2in" [Pseudo Cstring]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2larger"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2le"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2lt"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2mi"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2mod"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2mul"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2ne"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2not" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2or"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2out" [ScalarType "int2"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "int2pl"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2recv" [Pseudo Internal]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2send" [ScalarType "int2"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "int2shl"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2shr"+> [ScalarType "int2", ScalarType "int4"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2smaller"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2um" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2up" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int2vectoreq"+> [ScalarType "int2vector", ScalarType "int2vector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int2vectorin" [Pseudo Cstring]+> (ScalarType "int2vector")+> False,+> CatCreateFunction FunName "int2vectorout" [ScalarType "int2vector"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "int2vectorrecv" [Pseudo Internal]+> (ScalarType "int2vector")+> False,+> CatCreateFunction FunName "int2vectorsend"+> [ScalarType "int2vector"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "int2xor"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "int4" [ScalarType "bool"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "char"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "int8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "float4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "float8"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "bit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4" [ScalarType "numeric"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int42div"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int42eq"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int42ge"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int42gt"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int42le"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int42lt"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int42mi"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int42mul"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int42ne"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int42pl"+> [ScalarType "int4", ScalarType "int2"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int48div"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int48eq"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int48ge"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int48gt"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int48le"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int48lt"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int48mi"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int48mul"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int48ne"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int48pl"+> [ScalarType "int4", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int4_accum"+> [ArrayType (ScalarType "numeric"), ScalarType "int4"]+> (ArrayType (ScalarType "numeric"))+> False,+> CatCreateFunction FunName "int4_avg_accum"+> [ArrayType (ScalarType "int8"), ScalarType "int4"]+> (ArrayType (ScalarType "int8"))+> False,+> CatCreateFunction FunName "int4_mul_cash"+> [ScalarType "int4", ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunName "int4_sum"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int4abs" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4and"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4div"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4eq"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int4ge"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int4gt"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int4in" [Pseudo Cstring]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4inc" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4larger"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4le"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int4lt"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int4mi"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4mod"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4mul"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4ne"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int4not" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4or"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4out" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "int4pl"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4recv" [Pseudo Internal]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4send" [ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "int4shl"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4shr"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4smaller"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4um" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4up" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int4xor"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "int8" [ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8" [ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8" [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8" [ScalarType "float4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8" [ScalarType "float8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8" [ScalarType "bit"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8" [ScalarType "numeric"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int82div"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int82eq"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int82ge"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int82gt"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int82le"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int82lt"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int82mi"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int82mul"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int82ne"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int82pl"+> [ScalarType "int8", ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int84div"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int84eq"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int84ge"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int84gt"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int84le"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int84lt"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int84mi"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int84mul"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int84ne"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int84pl"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8_accum"+> [ArrayType (ScalarType "numeric"), ScalarType "int8"]+> (ArrayType (ScalarType "numeric"))+> False,+> CatCreateFunction FunName "int8_avg"+> [ArrayType (ScalarType "int8")]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "int8_avg_accum"+> [ArrayType (ScalarType "numeric"), ScalarType "int8"]+> (ArrayType (ScalarType "numeric"))+> False,+> CatCreateFunction FunName "int8_sum"+> [ScalarType "numeric", ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "int8abs" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8and"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8div"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8eq"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int8ge"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int8gt"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int8in" [Pseudo Cstring]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8inc" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8inc_any"+> [ScalarType "int8", Pseudo Any]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8inc_float8_float8"+> [ScalarType "int8", ScalarType "float8", ScalarType "float8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8larger"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8le"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int8lt"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int8mi"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8mod"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8mul"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8ne"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "int8not" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8or"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8out" [ScalarType "int8"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "int8pl"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8pl_inet"+> [ScalarType "int8", ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "int8recv" [Pseudo Internal]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8send" [ScalarType "int8"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "int8shl"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8shr"+> [ScalarType "int8", ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8smaller"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8um" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8up" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "int8xor"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "integer_pl_date"+> [ScalarType "int4", ScalarType "date"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "inter_lb"+> [ScalarType "line", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "inter_sb"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "inter_sl"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "internal_in" [Pseudo Cstring]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "internal_out" [Pseudo Internal]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "interval" [ScalarType "reltime"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval" [ScalarType "time"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval"+> [ScalarType "interval", ScalarType "int4"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_accum"+> [ArrayType (ScalarType "interval"), ScalarType "interval"]+> (ArrayType (ScalarType "interval"))+> False,+> CatCreateFunction FunName "interval_avg"+> [ArrayType (ScalarType "interval")]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_cmp"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "interval_div"+> [ScalarType "interval", ScalarType "float8"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_eq"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "interval_ge"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "interval_gt"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "interval_hash" [ScalarType "interval"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "interval_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_larger"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_le"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "interval_lt"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "interval_mi"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_mul"+> [ScalarType "interval", ScalarType "float8"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_ne"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "interval_out" [ScalarType "interval"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "interval_pl"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_pl_date"+> [ScalarType "interval", ScalarType "date"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "interval_pl_time"+> [ScalarType "interval", ScalarType "time"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "interval_pl_timestamp"+> [ScalarType "interval", ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "interval_pl_timestamptz"+> [ScalarType "interval", ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "interval_pl_timetz"+> [ScalarType "interval", ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "interval_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_send" [ScalarType "interval"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "interval_smaller"+> [ScalarType "interval", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "interval_um" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "intervaltypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "intervaltypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "intinterval"+> [ScalarType "abstime", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isclosed" [ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isfinite" [ScalarType "abstime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isfinite" [ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isfinite" [ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isfinite" [ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isfinite" [ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ishorizontal" [ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ishorizontal" [ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ishorizontal"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "iso8859_1_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "iso8859_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "iso_to_koi8r"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "iso_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "iso_to_win1251"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "iso_to_win866"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "isopen" [ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isparallel"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isparallel"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isperp"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isperp"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isvertical" [ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isvertical" [ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "isvertical"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "johab_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "justify_days" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "justify_hours" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "justify_interval"+> [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "koi8r_to_iso"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "koi8r_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "koi8r_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "koi8r_to_win1251"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "koi8r_to_win866"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "koi8u_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "language_handler_in" [Pseudo Cstring]+> (Pseudo LanguageHandler)+> False,+> CatCreateFunction FunName "language_handler_out"+> [Pseudo LanguageHandler]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "lastval" [] (ScalarType "int8") False,+> CatCreateFunction FunName "latin1_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "latin2_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "latin2_to_win1250"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "latin3_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "latin4_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "length" [ScalarType "bytea"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "length" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "length" [ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "length" [ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "length" [ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "length" [ScalarType "bit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "length" [ScalarType "tsvector"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "length"+> [ScalarType "bytea", ScalarType "name"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "like"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "like"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "like"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "like_escape"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "like_escape"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "likejoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "likesel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "line"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "line")+> False,+> CatCreateFunction FunName "line_distance"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "line_eq"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "line_horizontal" [ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "line_in" [Pseudo Cstring]+> (ScalarType "line")+> False,+> CatCreateFunction FunName "line_interpt"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "line_intersect"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "line_out" [ScalarType "line"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "line_parallel"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "line_perp"+> [ScalarType "line", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "line_recv" [Pseudo Internal]+> (ScalarType "line")+> False,+> CatCreateFunction FunName "line_send" [ScalarType "line"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "line_vertical" [ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ln" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "ln" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "lo_close" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lo_creat" [ScalarType "int4"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "lo_create" [ScalarType "oid"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "lo_export"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lo_import" [ScalarType "text"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "lo_import"+> [ScalarType "text", ScalarType "oid"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "lo_lseek"+> [ScalarType "int4", ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lo_open"+> [ScalarType "oid", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lo_tell" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lo_truncate"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lo_unlink" [ScalarType "oid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "log" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "log" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "log"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "loread"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "lower" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "lowrite"+> [ScalarType "int4", ScalarType "bytea"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "lpad"+> [ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "lpad"+> [ScalarType "text", ScalarType "int4", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "lseg" [ScalarType "box"]+> (ScalarType "lseg")+> False,+> CatCreateFunction FunName "lseg"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "lseg")+> False,+> CatCreateFunction FunName "lseg_center" [ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "lseg_distance"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "lseg_eq"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_ge"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_gt"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_horizontal" [ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_in" [Pseudo Cstring]+> (ScalarType "lseg")+> False,+> CatCreateFunction FunName "lseg_interpt"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "lseg_intersect"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_le"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_length" [ScalarType "lseg"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "lseg_lt"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_ne"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_out" [ScalarType "lseg"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "lseg_parallel"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_perp"+> [ScalarType "lseg", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "lseg_recv" [Pseudo Internal]+> (ScalarType "lseg")+> False,+> CatCreateFunction FunName "lseg_send" [ScalarType "lseg"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "lseg_vertical" [ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ltrim" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "ltrim"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "macaddr_cmp"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "macaddr_eq"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "macaddr_ge"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "macaddr_gt"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "macaddr_in" [Pseudo Cstring]+> (ScalarType "macaddr")+> False,+> CatCreateFunction FunName "macaddr_le"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "macaddr_lt"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "macaddr_ne"+> [ScalarType "macaddr", ScalarType "macaddr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "macaddr_out" [ScalarType "macaddr"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "macaddr_recv" [Pseudo Internal]+> (ScalarType "macaddr")+> False,+> CatCreateFunction FunName "macaddr_send" [ScalarType "macaddr"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "makeaclitem"+> [ScalarType "oid", ScalarType "oid", ScalarType "text",+> ScalarType "bool"]+> (ScalarType "aclitem")+> False,+> CatCreateFunction FunName "masklen" [ScalarType "inet"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "md5" [ScalarType "bytea"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "md5" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "mic_to_ascii"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_big5"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_euc_cn"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_euc_jp"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_euc_kr"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_euc_tw"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_iso"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_koi8r"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_latin1"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_latin2"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_latin3"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_latin4"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_sjis"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_win1250"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_win1251"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mic_to_win866"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "mktinterval"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "tinterval")+> False,+> CatCreateFunction FunName "mod"+> [ScalarType "int8", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "mod"+> [ScalarType "int2", ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunName "mod"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "mod"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "mul_d_interval"+> [ScalarType "float8", ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "name" [ScalarType "text"]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "name" [ScalarType "bpchar"]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "name" [ScalarType "varchar"]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "nameeq"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namege"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namegt"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nameiclike"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nameicnlike"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nameicregexeq"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nameicregexne"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namein" [Pseudo Cstring]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "namele"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namelike"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namelt"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namene"+> [ScalarType "name", ScalarType "name"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namenlike"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nameout" [ScalarType "name"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "namerecv" [Pseudo Internal]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "nameregexeq"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nameregexne"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "namesend" [ScalarType "name"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "neqjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "neqsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "netmask" [ScalarType "inet"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "network" [ScalarType "inet"]+> (ScalarType "cidr")+> False,+> CatCreateFunction FunName "network_cmp"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "network_eq"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_ge"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_gt"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_le"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_lt"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_ne"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_sub"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_subeq"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_sup"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "network_supeq"+> [ScalarType "inet", ScalarType "inet"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "nextval" [ScalarType "regclass"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "nlikejoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "nlikesel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "notlike"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "notlike"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "notlike"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "now" [] (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "npoints" [ScalarType "path"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "npoints" [ScalarType "polygon"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "numeric" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric" [ScalarType "float4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric" [ScalarType "float8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric"+> [ScalarType "numeric", ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_abs" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_accum"+> [ArrayType (ScalarType "numeric"), ScalarType "numeric"]+> (ArrayType (ScalarType "numeric"))+> False,+> CatCreateFunction FunName "numeric_add"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_avg"+> [ArrayType (ScalarType "numeric")]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_avg_accum"+> [ArrayType (ScalarType "numeric"), ScalarType "numeric"]+> (ArrayType (ScalarType "numeric"))+> False,+> CatCreateFunction FunName "numeric_cmp"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "numeric_div"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_div_trunc"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_eq"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "numeric_exp" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_fac" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_ge"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "numeric_gt"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "numeric_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_inc" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_larger"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_le"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "numeric_ln" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_log"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_lt"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "numeric_mod"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_mul"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_ne"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "numeric_out" [ScalarType "numeric"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "numeric_power"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_send" [ScalarType "numeric"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "numeric_smaller"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_sqrt" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_stddev_pop"+> [ArrayType (ScalarType "numeric")]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_stddev_samp"+> [ArrayType (ScalarType "numeric")]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_sub"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_uminus" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_uplus" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_var_pop"+> [ArrayType (ScalarType "numeric")]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numeric_var_samp"+> [ArrayType (ScalarType "numeric")]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "numerictypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "numerictypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "numnode" [ScalarType "tsquery"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "obj_description" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "obj_description"+> [ScalarType "oid", ScalarType "name"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "octet_length" [ScalarType "bytea"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "octet_length" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "octet_length" [ScalarType "bpchar"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "octet_length" [ScalarType "bit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "oid" [ScalarType "int8"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "oideq"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidge"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidgt"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidin" [Pseudo Cstring]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "oidlarger"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "oidle"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidlt"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidne"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidout" [ScalarType "oid"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "oidrecv" [Pseudo Internal]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "oidsend" [ScalarType "oid"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "oidsmaller"+> [ScalarType "oid", ScalarType "oid"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "oidvectoreq"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidvectorge"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidvectorgt"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidvectorin" [Pseudo Cstring]+> (ScalarType "oidvector")+> False,+> CatCreateFunction FunName "oidvectorle"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidvectorlt"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidvectorne"+> [ScalarType "oidvector", ScalarType "oidvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "oidvectorout" [ScalarType "oidvector"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "oidvectorrecv" [Pseudo Internal]+> (ScalarType "oidvector")+> False,+> CatCreateFunction FunName "oidvectorsend" [ScalarType "oidvector"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "oidvectortypes" [ScalarType "oidvector"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "on_pb"+> [ScalarType "point", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "on_pl"+> [ScalarType "point", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "on_ppath"+> [ScalarType "point", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "on_ps"+> [ScalarType "point", ScalarType "lseg"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "on_sb"+> [ScalarType "lseg", ScalarType "box"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "on_sl"+> [ScalarType "lseg", ScalarType "line"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "opaque_in" [Pseudo Cstring]+> (Pseudo Opaque)+> False,+> CatCreateFunction FunName "opaque_out" [Pseudo Opaque]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "time", ScalarType "time", ScalarType "time",+> ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "time", ScalarType "time", ScalarType "time",+> ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "time", ScalarType "interval", ScalarType "time",+> ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "time", ScalarType "interval", ScalarType "time",+> ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamp", ScalarType "timestamp",+> ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamp", ScalarType "timestamp",+> ScalarType "timestamp", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamp", ScalarType "interval",+> ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamp", ScalarType "interval",+> ScalarType "timestamp", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamptz", ScalarType "timestamptz",+> ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamptz", ScalarType "timestamptz",+> ScalarType "timestamptz", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamptz", ScalarType "interval",+> ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timestamptz", ScalarType "interval",+> ScalarType "timestamptz", ScalarType "interval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlaps"+> [ScalarType "timetz", ScalarType "timetz", ScalarType "timetz",+> ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "overlay"+> [ScalarType "text", ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "overlay"+> [ScalarType "text", ScalarType "text", ScalarType "int4",+> ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "path" [ScalarType "polygon"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_add"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_add_pt"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_center" [ScalarType "path"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "path_contain_pt"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_distance"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "path_div_pt"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_in" [Pseudo Cstring]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_inter"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_length" [ScalarType "path"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "path_mul_pt"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_n_eq"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_n_ge"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_n_gt"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_n_le"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_n_lt"+> [ScalarType "path", ScalarType "path"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "path_npoints" [ScalarType "path"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "path_out" [ScalarType "path"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "path_recv" [Pseudo Internal]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "path_send" [ScalarType "path"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "path_sub_pt"+> [ScalarType "path", ScalarType "point"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "pclose" [ScalarType "path"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "pg_advisory_lock" [ScalarType "int8"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_advisory_lock"+> [ScalarType "int4", ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_advisory_lock_shared"+> [ScalarType "int8"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_advisory_lock_shared"+> [ScalarType "int4", ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_advisory_unlock" [ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_advisory_unlock"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_advisory_unlock_all" [] (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_advisory_unlock_shared"+> [ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_advisory_unlock_shared"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_backend_pid" [] (ScalarType "int4")+> False,+> CatCreateFunction FunName "pg_cancel_backend" [ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_char_to_encoding" [ScalarType "name"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "pg_client_encoding" []+> (ScalarType "name")+> False,+> CatCreateFunction FunName "pg_column_size" [Pseudo Any]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "pg_conf_load_time" []+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_conversion_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_current_xlog_insert_location" []+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_current_xlog_location" []+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_cursor" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_database_size" [ScalarType "name"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_database_size" [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_encoding_to_char" [ScalarType "int4"]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "pg_function_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_get_constraintdef" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_constraintdef"+> [ScalarType "oid", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_expr"+> [ScalarType "text", ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_expr"+> [ScalarType "text", ScalarType "oid", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_function_arguments"+> [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_function_identity_arguments"+> [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_function_result"+> [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_functiondef" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_indexdef" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_indexdef"+> [ScalarType "oid", ScalarType "int4", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_keywords" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_get_ruledef" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_ruledef"+> [ScalarType "oid", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_serial_sequence"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_triggerdef" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_userbyid" [ScalarType "oid"]+> (ScalarType "name")+> False,+> CatCreateFunction FunName "pg_get_viewdef" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_viewdef" [ScalarType "oid"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_viewdef"+> [ScalarType "text", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_get_viewdef"+> [ScalarType "oid", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_has_role"+> [ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_has_role"+> [ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_has_role"+> [ScalarType "name", ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_has_role"+> [ScalarType "name", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_has_role"+> [ScalarType "oid", ScalarType "name", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_has_role"+> [ScalarType "oid", ScalarType "oid", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_is_other_temp_schema"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_lock_status" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_ls_dir" [ScalarType "text"]+> (SetOfType (ScalarType "text"))+> False,+> CatCreateFunction FunName "pg_my_temp_schema" [] (ScalarType "oid")+> False,+> CatCreateFunction FunName "pg_opclass_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_operator_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_options_to_table"+> [ArrayType (ScalarType "text")]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_postmaster_start_time" []+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_prepared_statement" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_prepared_xact" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_read_file"+> [ScalarType "text", ScalarType "int8", ScalarType "int8"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_relation_size"+> [ScalarType "regclass"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_relation_size"+> [ScalarType "regclass", ScalarType "text"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_reload_conf" [] (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_rotate_logfile" []+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_show_all_settings" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_size_pretty" [ScalarType "int8"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_sleep" [ScalarType "float8"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_start_backup"+> [ScalarType "text", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_stat_clear_snapshot" [] (Pseudo Void)+> False,+> CatCreateFunction FunName "pg_stat_file" [ScalarType "text"]+> (Pseudo Record)+> False,+> CatCreateFunction FunName "pg_stat_get_activity"+> [ScalarType "int4"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_stat_get_backend_activity"+> [ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_activity_start"+> [ScalarType "int4"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_client_addr"+> [ScalarType "int4"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_client_port"+> [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_dbid"+> [ScalarType "int4"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_idset" []+> (SetOfType (ScalarType "int4"))+> False,+> CatCreateFunction FunName "pg_stat_get_backend_pid"+> [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_start"+> [ScalarType "int4"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_userid"+> [ScalarType "int4"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_waiting"+> [ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_stat_get_backend_xact_start"+> [ScalarType "int4"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName+> "pg_stat_get_bgwriter_buf_written_checkpoints"+> []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_bgwriter_buf_written_clean"+> []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_bgwriter_maxwritten_clean"+> []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName+> "pg_stat_get_bgwriter_requested_checkpoints"+> []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_bgwriter_timed_checkpoints"+> []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_blocks_fetched"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_blocks_hit"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_buf_alloc" []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_buf_written_backend" []+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_blocks_fetched"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_blocks_hit"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_numbackends"+> [ScalarType "oid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "pg_stat_get_db_tuples_deleted"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_tuples_fetched"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_tuples_inserted"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_tuples_returned"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_tuples_updated"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_xact_commit"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_db_xact_rollback"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_dead_tuples"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_function_calls"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_function_self_time"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_function_time"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_last_analyze_time"+> [ScalarType "oid"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_stat_get_last_autoanalyze_time"+> [ScalarType "oid"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_stat_get_last_autovacuum_time"+> [ScalarType "oid"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_stat_get_last_vacuum_time"+> [ScalarType "oid"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "pg_stat_get_live_tuples"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_numscans" [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_tuples_deleted"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_tuples_fetched"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_tuples_hot_updated"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_tuples_inserted"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_tuples_returned"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_get_tuples_updated"+> [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_stat_reset" [] (Pseudo Void) False,+> CatCreateFunction FunName "pg_stop_backup" [] (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_switch_xlog" [] (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_table_is_visible" [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_tablespace_databases"+> [ScalarType "oid"]+> (SetOfType (ScalarType "oid"))+> False,+> CatCreateFunction FunName "pg_tablespace_size" [ScalarType "name"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_tablespace_size" [ScalarType "oid"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_terminate_backend"+> [ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_timezone_abbrevs" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_timezone_names" []+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "pg_total_relation_size"+> [ScalarType "regclass"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "pg_try_advisory_lock"+> [ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_try_advisory_lock"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_try_advisory_lock_shared"+> [ScalarType "int8"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_try_advisory_lock_shared"+> [ScalarType "int4", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_ts_config_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_ts_dict_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_ts_parser_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_ts_template_is_visible"+> [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_type_is_visible" [ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pg_typeof" [Pseudo Any]+> (ScalarType "regtype")+> False,+> CatCreateFunction FunName "pg_xlogfile_name" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "pg_xlogfile_name_offset"+> [ScalarType "text"]+> (Pseudo Record)+> False,+> CatCreateFunction FunName "pi" [] (ScalarType "float8") False,+> CatCreateFunction FunName "plainto_tsquery" [ScalarType "text"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "plainto_tsquery"+> [ScalarType "regconfig", ScalarType "text"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "point" [ScalarType "lseg"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point" [ScalarType "path"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point" [ScalarType "box"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point" [ScalarType "polygon"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point" [ScalarType "circle"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_above"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_add"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_below"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_distance"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "point_div"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_eq"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_horiz"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_in" [Pseudo Cstring]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_left"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_mul"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_ne"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_out" [ScalarType "point"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "point_recv" [Pseudo Internal]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_right"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "point_send" [ScalarType "point"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "point_sub"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "point_vert"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_above"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_below"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_center" [ScalarType "polygon"]+> (ScalarType "point")+> False,+> CatCreateFunction FunName "poly_contain"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_contain_pt"+> [ScalarType "polygon", ScalarType "point"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_contained"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_distance"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "poly_in" [Pseudo Cstring]+> (ScalarType "polygon")+> False,+> CatCreateFunction FunName "poly_left"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_npoints" [ScalarType "polygon"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "poly_out" [ScalarType "polygon"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "poly_overabove"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_overbelow"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_overlap"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_overleft"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_overright"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_recv" [Pseudo Internal]+> (ScalarType "polygon")+> False,+> CatCreateFunction FunName "poly_right"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_same"+> [ScalarType "polygon", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "poly_send" [ScalarType "polygon"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "polygon" [ScalarType "path"]+> (ScalarType "polygon")+> False,+> CatCreateFunction FunName "polygon" [ScalarType "box"]+> (ScalarType "polygon")+> False,+> CatCreateFunction FunName "polygon" [ScalarType "circle"]+> (ScalarType "polygon")+> False,+> CatCreateFunction FunName "polygon"+> [ScalarType "int4", ScalarType "circle"]+> (ScalarType "polygon")+> False,+> CatCreateFunction FunName "popen" [ScalarType "path"]+> (ScalarType "path")+> False,+> CatCreateFunction FunName "position"+> [ScalarType "bytea", ScalarType "bytea"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "position"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "position"+> [ScalarType "bit", ScalarType "bit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "positionjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "positionsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "postgresql_fdw_validator"+> [ArrayType (ScalarType "text"), ScalarType "oid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pow"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "pow"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "power"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "power"+> [ScalarType "numeric", ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "prsd_end" [Pseudo Internal]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "prsd_headline"+> [Pseudo Internal, Pseudo Internal, ScalarType "tsquery"]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "prsd_lextype" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "prsd_nexttoken"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "prsd_start"+> [Pseudo Internal, ScalarType "int4"]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "pt_contained_circle"+> [ScalarType "point", ScalarType "circle"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "pt_contained_poly"+> [ScalarType "point", ScalarType "polygon"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "query_to_xml"+> [ScalarType "text", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "query_to_xml_and_xmlschema"+> [ScalarType "text", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "query_to_xmlschema"+> [ScalarType "text", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "querytree" [ScalarType "tsquery"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "quote_ident" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "quote_literal" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "quote_literal" [Pseudo AnyElement]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "quote_nullable" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "quote_nullable" [Pseudo AnyElement]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "radians" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "radius" [ScalarType "circle"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "random" [] (ScalarType "float8") False,+> CatCreateFunction FunName "record_eq"+> [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "record_ge"+> [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "record_gt"+> [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "record_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (Pseudo Record)+> False,+> CatCreateFunction FunName "record_le"+> [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "record_lt"+> [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "record_ne"+> [Pseudo Record, Pseudo Record]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "record_out" [Pseudo Record]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "record_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (Pseudo Record)+> False,+> CatCreateFunction FunName "record_send" [Pseudo Record]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regclass" [ScalarType "text"]+> (ScalarType "regclass")+> False,+> CatCreateFunction FunName "regclassin" [Pseudo Cstring]+> (ScalarType "regclass")+> False,+> CatCreateFunction FunName "regclassout" [ScalarType "regclass"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regclassrecv" [Pseudo Internal]+> (ScalarType "regclass")+> False,+> CatCreateFunction FunName "regclasssend" [ScalarType "regclass"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regconfigin" [Pseudo Cstring]+> (ScalarType "regconfig")+> False,+> CatCreateFunction FunName "regconfigout" [ScalarType "regconfig"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regconfigrecv" [Pseudo Internal]+> (ScalarType "regconfig")+> False,+> CatCreateFunction FunName "regconfigsend" [ScalarType "regconfig"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regdictionaryin" [Pseudo Cstring]+> (ScalarType "regdictionary")+> False,+> CatCreateFunction FunName "regdictionaryout"+> [ScalarType "regdictionary"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regdictionaryrecv" [Pseudo Internal]+> (ScalarType "regdictionary")+> False,+> CatCreateFunction FunName "regdictionarysend"+> [ScalarType "regdictionary"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regexeqjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "regexeqsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "regexnejoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "regexnesel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "regexp_matches"+> [ScalarType "text", ScalarType "text"]+> (SetOfType (ArrayType (ScalarType "text")))+> False,+> CatCreateFunction FunName "regexp_matches"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (SetOfType (ArrayType (ScalarType "text")))+> False,+> CatCreateFunction FunName "regexp_replace"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "regexp_replace"+> [ScalarType "text", ScalarType "text", ScalarType "text",+> ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "regexp_split_to_array"+> [ScalarType "text", ScalarType "text"]+> (ArrayType (ScalarType "text"))+> False,+> CatCreateFunction FunName "regexp_split_to_array"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (ArrayType (ScalarType "text"))+> False,+> CatCreateFunction FunName "regexp_split_to_table"+> [ScalarType "text", ScalarType "text"]+> (SetOfType (ScalarType "text"))+> False,+> CatCreateFunction FunName "regexp_split_to_table"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (SetOfType (ScalarType "text"))+> False,+> CatCreateFunction FunName "regoperatorin" [Pseudo Cstring]+> (ScalarType "regoperator")+> False,+> CatCreateFunction FunName "regoperatorout"+> [ScalarType "regoperator"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regoperatorrecv" [Pseudo Internal]+> (ScalarType "regoperator")+> False,+> CatCreateFunction FunName "regoperatorsend"+> [ScalarType "regoperator"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regoperin" [Pseudo Cstring]+> (ScalarType "regoper")+> False,+> CatCreateFunction FunName "regoperout" [ScalarType "regoper"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regoperrecv" [Pseudo Internal]+> (ScalarType "regoper")+> False,+> CatCreateFunction FunName "regopersend" [ScalarType "regoper"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regprocedurein" [Pseudo Cstring]+> (ScalarType "regprocedure")+> False,+> CatCreateFunction FunName "regprocedureout"+> [ScalarType "regprocedure"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regprocedurerecv" [Pseudo Internal]+> (ScalarType "regprocedure")+> False,+> CatCreateFunction FunName "regproceduresend"+> [ScalarType "regprocedure"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regprocin" [Pseudo Cstring]+> (ScalarType "regproc")+> False,+> CatCreateFunction FunName "regprocout" [ScalarType "regproc"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regprocrecv" [Pseudo Internal]+> (ScalarType "regproc")+> False,+> CatCreateFunction FunName "regprocsend" [ScalarType "regproc"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "regtypein" [Pseudo Cstring]+> (ScalarType "regtype")+> False,+> CatCreateFunction FunName "regtypeout" [ScalarType "regtype"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "regtyperecv" [Pseudo Internal]+> (ScalarType "regtype")+> False,+> CatCreateFunction FunName "regtypesend" [ScalarType "regtype"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "reltime" [ScalarType "interval"]+> (ScalarType "reltime")+> False,+> CatCreateFunction FunName "reltimeeq"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "reltimege"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "reltimegt"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "reltimein" [Pseudo Cstring]+> (ScalarType "reltime")+> False,+> CatCreateFunction FunName "reltimele"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "reltimelt"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "reltimene"+> [ScalarType "reltime", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "reltimeout" [ScalarType "reltime"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "reltimerecv" [Pseudo Internal]+> (ScalarType "reltime")+> False,+> CatCreateFunction FunName "reltimesend" [ScalarType "reltime"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "repeat"+> [ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "replace"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "round" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "round" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "round"+> [ScalarType "numeric", ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "rpad"+> [ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "rpad"+> [ScalarType "text", ScalarType "int4", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "rtrim" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "rtrim"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "scalargtjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "scalargtsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "scalarltjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "scalarltsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "schema_to_xml"+> [ScalarType "name", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "schema_to_xml_and_xmlschema"+> [ScalarType "name", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "schema_to_xmlschema"+> [ScalarType "name", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "session_user" [] (ScalarType "name")+> False,+> CatCreateFunction FunName "set_bit"+> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "set_byte"+> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "set_config"+> [ScalarType "text", ScalarType "text", ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "set_masklen"+> [ScalarType "cidr", ScalarType "int4"]+> (ScalarType "cidr")+> False,+> CatCreateFunction FunName "set_masklen"+> [ScalarType "inet", ScalarType "int4"]+> (ScalarType "inet")+> False,+> CatCreateFunction FunName "setseed" [ScalarType "float8"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "setval"+> [ScalarType "regclass", ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "setval"+> [ScalarType "regclass", ScalarType "int8", ScalarType "bool"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "setweight"+> [ScalarType "tsvector", ScalarType "char"]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "shell_in" [Pseudo Cstring]+> (Pseudo Opaque)+> False,+> CatCreateFunction FunName "shell_out" [Pseudo Opaque]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "shift_jis_2004_to_euc_jis_2004"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "shift_jis_2004_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "shobj_description"+> [ScalarType "oid", ScalarType "name"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "sign" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "sign" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "similar_escape"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "sin" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "sjis_to_euc_jp"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "sjis_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "sjis_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "slope"+> [ScalarType "point", ScalarType "point"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "smgreq"+> [ScalarType "smgr", ScalarType "smgr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "smgrin" [Pseudo Cstring]+> (ScalarType "smgr")+> False,+> CatCreateFunction FunName "smgrne"+> [ScalarType "smgr", ScalarType "smgr"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "smgrout" [ScalarType "smgr"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "split_part"+> [ScalarType "text", ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "sqrt" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "sqrt" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "statement_timestamp" []+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "string_to_array"+> [ScalarType "text", ScalarType "text"]+> (ArrayType (ScalarType "text"))+> False,+> CatCreateFunction FunName "strip" [ScalarType "tsvector"]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "strpos"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "substr"+> [ScalarType "bytea", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "substr"+> [ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "substr"+> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "substr"+> [ScalarType "text", ScalarType "int4", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "bytea", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "bit", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "bytea", ScalarType "int4", ScalarType "int4"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "text", ScalarType "int4", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "substring"+> [ScalarType "bit", ScalarType "int4", ScalarType "int4"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunName "suppress_redundant_updates_trigger" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "table_to_xml"+> [ScalarType "regclass", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "table_to_xml_and_xmlschema"+> [ScalarType "regclass", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "table_to_xmlschema"+> [ScalarType "regclass", ScalarType "bool", ScalarType "bool",+> ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "tan" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "text" [ScalarType "bool"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text" [ScalarType "char"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text" [ScalarType "name"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text" [ScalarType "xml"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text" [ScalarType "inet"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text" [ScalarType "bpchar"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text_ge"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_gt"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_larger"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "text_le"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_lt"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_pattern_ge"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_pattern_gt"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_pattern_le"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_pattern_lt"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "text_smaller"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "textanycat"+> [ScalarType "text", Pseudo AnyNonArray]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "textcat"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "texteq"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "texticlike"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "texticnlike"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "texticregexeq"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "texticregexne"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "textin" [Pseudo Cstring]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "textlen" [ScalarType "text"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "textlike"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "textne"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "textnlike"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "textout" [ScalarType "text"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "textrecv" [Pseudo Internal]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "textregexeq"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "textregexne"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "textsend" [ScalarType "text"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "thesaurus_init" [Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "thesaurus_lexize"+> [Pseudo Internal, Pseudo Internal, Pseudo Internal,+> Pseudo Internal]+> (Pseudo Internal)+> False,+> CatCreateFunction FunName "tideq"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tidge"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tidgt"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tidin" [Pseudo Cstring]+> (ScalarType "tid")+> False,+> CatCreateFunction FunName "tidlarger"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "tid")+> False,+> CatCreateFunction FunName "tidle"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tidlt"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tidne"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tidout" [ScalarType "tid"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "tidrecv" [Pseudo Internal]+> (ScalarType "tid")+> False,+> CatCreateFunction FunName "tidsend" [ScalarType "tid"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "tidsmaller"+> [ScalarType "tid", ScalarType "tid"]+> (ScalarType "tid")+> False,+> CatCreateFunction FunName "time" [ScalarType "abstime"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time" [ScalarType "timestamp"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time" [ScalarType "timestamptz"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time" [ScalarType "interval"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time" [ScalarType "timetz"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time"+> [ScalarType "time", ScalarType "int4"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time_cmp"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "time_eq"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "time_ge"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "time_gt"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "time_hash" [ScalarType "time"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "time_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time_larger"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time_le"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "time_lt"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "time_mi_interval"+> [ScalarType "time", ScalarType "interval"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time_mi_time"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "time_ne"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "time_out" [ScalarType "time"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "time_pl_interval"+> [ScalarType "time", ScalarType "interval"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "time_send" [ScalarType "time"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "time_smaller"+> [ScalarType "time", ScalarType "time"]+> (ScalarType "time")+> False,+> CatCreateFunction FunName "timedate_pl"+> [ScalarType "time", ScalarType "date"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timemi"+> [ScalarType "abstime", ScalarType "reltime"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "timenow" [] (ScalarType "abstime")+> False,+> CatCreateFunction FunName "timeofday" [] (ScalarType "text") False,+> CatCreateFunction FunName "timepl"+> [ScalarType "abstime", ScalarType "reltime"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "timestamp" [ScalarType "abstime"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp" [ScalarType "date"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp" [ScalarType "timestamptz"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp"+> [ScalarType "date", ScalarType "time"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp"+> [ScalarType "timestamp", ScalarType "int4"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp_cmp"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamp_cmp_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamp_cmp_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamp_eq"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_eq_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_eq_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_ge"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_ge_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_ge_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_gt"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_gt_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_gt_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_hash" [ScalarType "timestamp"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamp_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp_larger"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp_le"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_le_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_le_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_lt"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_lt_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_lt_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_mi"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "timestamp_mi_interval"+> [ScalarType "timestamp", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp_ne"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_ne_date"+> [ScalarType "timestamp", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_ne_timestamptz"+> [ScalarType "timestamp", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamp_out" [ScalarType "timestamp"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timestamp_pl_interval"+> [ScalarType "timestamp", ScalarType "interval"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamp_send" [ScalarType "timestamp"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "timestamp_smaller"+> [ScalarType "timestamp", ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timestamptypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamptypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timestamptz" [ScalarType "abstime"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz" [ScalarType "date"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz" [ScalarType "timestamp"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz"+> [ScalarType "date", ScalarType "time"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz"+> [ScalarType "date", ScalarType "timetz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz"+> [ScalarType "timestamptz", ScalarType "int4"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz_cmp"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamptz_cmp_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamptz_cmp_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamptz_eq"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_eq_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_eq_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_ge"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_ge_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_ge_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_gt"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_gt_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_gt_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz_larger"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz_le"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_le_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_le_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_lt"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_lt_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_lt_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_mi"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunName "timestamptz_mi_interval"+> [ScalarType "timestamptz", ScalarType "interval"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz_ne"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_ne_date"+> [ScalarType "timestamptz", ScalarType "date"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_ne_timestamp"+> [ScalarType "timestamptz", ScalarType "timestamp"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timestamptz_out"+> [ScalarType "timestamptz"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timestamptz_pl_interval"+> [ScalarType "timestamptz", ScalarType "interval"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptz_send"+> [ScalarType "timestamptz"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "timestamptz_smaller"+> [ScalarType "timestamptz", ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timestamptztypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timestamptztypmodout"+> [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timetypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timetypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timetz" [ScalarType "time"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz" [ScalarType "timestamptz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz"+> [ScalarType "timetz", ScalarType "int4"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz_cmp"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timetz_eq"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timetz_ge"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timetz_gt"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timetz_hash" [ScalarType "timetz"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timetz_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz_larger"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz_le"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timetz_lt"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timetz_mi_interval"+> [ScalarType "timetz", ScalarType "interval"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz_ne"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "timetz_out" [ScalarType "timetz"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timetz_pl_interval"+> [ScalarType "timetz", ScalarType "interval"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetz_send" [ScalarType "timetz"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "timetz_smaller"+> [ScalarType "timetz", ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timetzdate_pl"+> [ScalarType "timetz", ScalarType "date"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timetztypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "timetztypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "timezone"+> [ScalarType "text", ScalarType "timestamp"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timezone"+> [ScalarType "text", ScalarType "timestamptz"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timezone"+> [ScalarType "text", ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "timezone"+> [ScalarType "interval", ScalarType "timestamp"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "timezone"+> [ScalarType "interval", ScalarType "timestamptz"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunName "timezone"+> [ScalarType "interval", ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunName "tinterval"+> [ScalarType "abstime", ScalarType "abstime"]+> (ScalarType "tinterval")+> False,+> CatCreateFunction FunName "tintervalct"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalend" [ScalarType "tinterval"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "tintervaleq"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalge"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalgt"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalin" [Pseudo Cstring]+> (ScalarType "tinterval")+> False,+> CatCreateFunction FunName "tintervalle"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalleneq"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervallenge"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervallengt"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervallenle"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervallenlt"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervallenne"+> [ScalarType "tinterval", ScalarType "reltime"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervallt"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalne"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalout" [ScalarType "tinterval"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "tintervalov"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalrecv" [Pseudo Internal]+> (ScalarType "tinterval")+> False,+> CatCreateFunction FunName "tintervalrel" [ScalarType "tinterval"]+> (ScalarType "reltime")+> False,+> CatCreateFunction FunName "tintervalsame"+> [ScalarType "tinterval", ScalarType "tinterval"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tintervalsend" [ScalarType "tinterval"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "tintervalstart" [ScalarType "tinterval"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunName "to_ascii" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_ascii"+> [ScalarType "text", ScalarType "name"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_ascii"+> [ScalarType "text", ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "int8", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "int4", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "float4", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "float8", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "timestamp", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "timestamptz", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "interval", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_char"+> [ScalarType "numeric", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_date"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "date")+> False,+> CatCreateFunction FunName "to_hex" [ScalarType "int8"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_hex" [ScalarType "int4"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "to_number"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "to_timestamp" [ScalarType "float8"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "to_timestamp"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "to_tsquery" [ScalarType "text"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "to_tsquery"+> [ScalarType "regconfig", ScalarType "text"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "to_tsvector" [ScalarType "text"]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "to_tsvector"+> [ScalarType "regconfig", ScalarType "text"]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "transaction_timestamp" []+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunName "translate"+> [ScalarType "text", ScalarType "text", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "trigger_in" [Pseudo Cstring]+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "trigger_out" [Pseudo Trigger]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "trunc" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "trunc" [ScalarType "macaddr"]+> (ScalarType "macaddr")+> False,+> CatCreateFunction FunName "trunc" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "trunc"+> [ScalarType "numeric", ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunName "ts_debug" [ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_debug"+> [ScalarType "regconfig", ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_headline"+> [ScalarType "text", ScalarType "tsquery"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "ts_headline"+> [ScalarType "text", ScalarType "tsquery", ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "ts_headline"+> [ScalarType "regconfig", ScalarType "text", ScalarType "tsquery"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "ts_headline"+> [ScalarType "regconfig", ScalarType "text", ScalarType "tsquery",+> ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "ts_lexize"+> [ScalarType "regdictionary", ScalarType "text"]+> (ArrayType (ScalarType "text"))+> False,+> CatCreateFunction FunName "ts_match_qv"+> [ScalarType "tsquery", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ts_match_tq"+> [ScalarType "text", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ts_match_tt"+> [ScalarType "text", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ts_match_vq"+> [ScalarType "tsvector", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "ts_parse"+> [ScalarType "text", ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_parse"+> [ScalarType "oid", ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_rank"+> [ScalarType "tsvector", ScalarType "tsquery"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank"+> [ArrayType (ScalarType "float4"), ScalarType "tsvector",+> ScalarType "tsquery"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank"+> [ScalarType "tsvector", ScalarType "tsquery", ScalarType "int4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank"+> [ArrayType (ScalarType "float4"), ScalarType "tsvector",+> ScalarType "tsquery", ScalarType "int4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank_cd"+> [ScalarType "tsvector", ScalarType "tsquery"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank_cd"+> [ArrayType (ScalarType "float4"), ScalarType "tsvector",+> ScalarType "tsquery"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank_cd"+> [ScalarType "tsvector", ScalarType "tsquery", ScalarType "int4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rank_cd"+> [ArrayType (ScalarType "float4"), ScalarType "tsvector",+> ScalarType "tsquery", ScalarType "int4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunName "ts_rewrite"+> [ScalarType "tsquery", ScalarType "text"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "ts_rewrite"+> [ScalarType "tsquery", ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "ts_stat" [ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_stat"+> [ScalarType "text", ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_token_type" [ScalarType "text"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_token_type" [ScalarType "oid"]+> (SetOfType (Pseudo Record))+> False,+> CatCreateFunction FunName "ts_typanalyze" [Pseudo Internal]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsmatchjoinsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int2", Pseudo Internal]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "tsmatchsel"+> [Pseudo Internal, ScalarType "oid", Pseudo Internal,+> ScalarType "int4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "tsq_mcontained"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsq_mcontains"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_and"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "tsquery_cmp"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "tsquery_eq"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_ge"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_gt"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_le"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_lt"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_ne"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsquery_not" [ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "tsquery_or"+> [ScalarType "tsquery", ScalarType "tsquery"]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "tsqueryin" [Pseudo Cstring]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "tsqueryout" [ScalarType "tsquery"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "tsqueryrecv" [Pseudo Internal]+> (ScalarType "tsquery")+> False,+> CatCreateFunction FunName "tsquerysend" [ScalarType "tsquery"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "tsvector_cmp"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "tsvector_concat"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "tsvector_eq"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsvector_ge"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsvector_gt"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsvector_le"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsvector_lt"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsvector_ne"+> [ScalarType "tsvector", ScalarType "tsvector"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "tsvector_update_trigger" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "tsvector_update_trigger_column" []+> (Pseudo Trigger)+> False,+> CatCreateFunction FunName "tsvectorin" [Pseudo Cstring]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "tsvectorout" [ScalarType "tsvector"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "tsvectorrecv" [Pseudo Internal]+> (ScalarType "tsvector")+> False,+> CatCreateFunction FunName "tsvectorsend" [ScalarType "tsvector"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "txid_current" [] (ScalarType "int8")+> False,+> CatCreateFunction FunName "txid_current_snapshot" []+> (ScalarType "txid_snapshot")+> False,+> CatCreateFunction FunName "txid_snapshot_in" [Pseudo Cstring]+> (ScalarType "txid_snapshot")+> False,+> CatCreateFunction FunName "txid_snapshot_out"+> [ScalarType "txid_snapshot"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "txid_snapshot_recv" [Pseudo Internal]+> (ScalarType "txid_snapshot")+> False,+> CatCreateFunction FunName "txid_snapshot_send"+> [ScalarType "txid_snapshot"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "txid_snapshot_xip"+> [ScalarType "txid_snapshot"]+> (SetOfType (ScalarType "int8"))+> False,+> CatCreateFunction FunName "txid_snapshot_xmax"+> [ScalarType "txid_snapshot"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "txid_snapshot_xmin"+> [ScalarType "txid_snapshot"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunName "txid_visible_in_snapshot"+> [ScalarType "int8", ScalarType "txid_snapshot"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uhc_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "unknownin" [Pseudo Cstring]+> (ScalarType "unknown")+> False,+> CatCreateFunction FunName "unknownout" [ScalarType "unknown"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "unknownrecv" [Pseudo Internal]+> (ScalarType "unknown")+> False,+> CatCreateFunction FunName "unknownsend" [ScalarType "unknown"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "unnest" [Pseudo AnyArray]+> (SetOfType (Pseudo AnyElement))+> False,+> CatCreateFunction FunName "upper" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunName "utf8_to_ascii"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_big5"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_euc_cn"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_euc_jis_2004"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_euc_jp"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_euc_kr"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_euc_tw"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_gb18030"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_gbk"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_iso8859"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_iso8859_1"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_johab"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_koi8r"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_koi8u"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_shift_jis_2004"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_sjis"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_uhc"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "utf8_to_win"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "uuid_cmp"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "uuid_eq"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uuid_ge"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uuid_gt"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uuid_hash" [ScalarType "uuid"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "uuid_in" [Pseudo Cstring]+> (ScalarType "uuid")+> False,+> CatCreateFunction FunName "uuid_le"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uuid_lt"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uuid_ne"+> [ScalarType "uuid", ScalarType "uuid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "uuid_out" [ScalarType "uuid"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "uuid_recv" [Pseudo Internal]+> (ScalarType "uuid")+> False,+> CatCreateFunction FunName "uuid_send" [ScalarType "uuid"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "varbit"+> [ScalarType "varbit", ScalarType "int4", ScalarType "bool"]+> (ScalarType "varbit")+> False,+> CatCreateFunction FunName "varbit_in"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "varbit")+> False,+> CatCreateFunction FunName "varbit_out" [ScalarType "varbit"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "varbit_recv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "varbit")+> False,+> CatCreateFunction FunName "varbit_send" [ScalarType "varbit"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "varbitcmp"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "varbiteq"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "varbitge"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "varbitgt"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "varbitle"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "varbitlt"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "varbitne"+> [ScalarType "varbit", ScalarType "varbit"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "varbittypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "varbittypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "varchar" [ScalarType "name"]+> (ScalarType "varchar")+> False,+> CatCreateFunction FunName "varchar"+> [ScalarType "varchar", ScalarType "int4", ScalarType "bool"]+> (ScalarType "varchar")+> False,+> CatCreateFunction FunName "varcharin"+> [Pseudo Cstring, ScalarType "oid", ScalarType "int4"]+> (ScalarType "varchar")+> False,+> CatCreateFunction FunName "varcharout" [ScalarType "varchar"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "varcharrecv"+> [Pseudo Internal, ScalarType "oid", ScalarType "int4"]+> (ScalarType "varchar")+> False,+> CatCreateFunction FunName "varcharsend" [ScalarType "varchar"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "varchartypmodin"+> [ArrayType (Pseudo Cstring)]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "varchartypmodout" [ScalarType "int4"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "version" [] (ScalarType "text") False,+> CatCreateFunction FunName "void_in" [Pseudo Cstring] (Pseudo Void)+> False,+> CatCreateFunction FunName "void_out" [Pseudo Void] (Pseudo Cstring)+> False,+> CatCreateFunction FunName "width" [ScalarType "box"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunName "width_bucket"+> [ScalarType "float8", ScalarType "float8", ScalarType "float8",+> ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "width_bucket"+> [ScalarType "numeric", ScalarType "numeric", ScalarType "numeric",+> ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunName "win1250_to_latin2"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win1250_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win1251_to_iso"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win1251_to_koi8r"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win1251_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win1251_to_win866"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win866_to_iso"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win866_to_koi8r"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win866_to_mic"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win866_to_win1251"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "win_to_utf8"+> [ScalarType "int4", ScalarType "int4", Pseudo Cstring,+> Pseudo Internal, ScalarType "int4"]+> (Pseudo Void)+> False,+> CatCreateFunction FunName "xideq"+> [ScalarType "xid", ScalarType "xid"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "xideqint4"+> [ScalarType "xid", ScalarType "int4"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "xidin" [Pseudo Cstring]+> (ScalarType "xid")+> False,+> CatCreateFunction FunName "xidout" [ScalarType "xid"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "xidrecv" [Pseudo Internal]+> (ScalarType "xid")+> False,+> CatCreateFunction FunName "xidsend" [ScalarType "xid"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "xml" [ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "xml_in" [Pseudo Cstring]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "xml_out" [ScalarType "xml"]+> (Pseudo Cstring)+> False,+> CatCreateFunction FunName "xml_recv" [Pseudo Internal]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "xml_send" [ScalarType "xml"]+> (ScalarType "bytea")+> False,+> CatCreateFunction FunName "xmlcomment" [ScalarType "text"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "xmlconcat2"+> [ScalarType "xml", ScalarType "xml"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunName "xmlvalidate"+> [ScalarType "xml", ScalarType "text"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunName "xpath"+> [ScalarType "text", ScalarType "xml"]+> (ArrayType (ScalarType "xml"))+> False,+> CatCreateFunction FunName "xpath"+> [ScalarType "text", ScalarType "xml",+> ArrayType (ScalarType "text")]+> (ArrayType (ScalarType "xml"))+> False,+> CatCreateFunction FunAgg "array_agg" [Pseudo AnyElement]+> (Pseudo AnyArray)+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunAgg "avg" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "bit_and" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "bit_and" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunAgg "bit_and" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunAgg "bit_and" [ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunAgg "bit_or" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "bit_or" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunAgg "bit_or" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunAgg "bit_or" [ScalarType "bit"]+> (ScalarType "bit")+> False,+> CatCreateFunction FunAgg "bool_and" [ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunAgg "bool_or" [ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunAgg "corr"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "count" [] (ScalarType "int8") False,+> CatCreateFunction FunAgg "count" [Pseudo Any] (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "covar_pop"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "covar_samp"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "every" [ScalarType "bool"]+> (ScalarType "bool")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "oid"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "tid"]+> (ScalarType "tid")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "abstime"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "bpchar"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "date"]+> (ScalarType "date")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "time"]+> (ScalarType "time")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunAgg "max" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "max" [Pseudo AnyArray] (Pseudo AnyArray)+> False,+> CatCreateFunction FunAgg "max" [Pseudo AnyEnum] (Pseudo AnyEnum)+> False,+> CatCreateFunction FunAgg "min" [ScalarType "int8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "int2"]+> (ScalarType "int2")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "text"]+> (ScalarType "text")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "oid"]+> (ScalarType "oid")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "tid"]+> (ScalarType "tid")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "abstime"]+> (ScalarType "abstime")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "bpchar"]+> (ScalarType "bpchar")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "date"]+> (ScalarType "date")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "time"]+> (ScalarType "time")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "timestamp"]+> (ScalarType "timestamp")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "timestamptz"]+> (ScalarType "timestamptz")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "timetz"]+> (ScalarType "timetz")+> False,+> CatCreateFunction FunAgg "min" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "min" [Pseudo AnyArray] (Pseudo AnyArray)+> False,+> CatCreateFunction FunAgg "min" [Pseudo AnyEnum] (Pseudo AnyEnum)+> False,+> CatCreateFunction FunAgg "regr_avgx"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_avgy"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_count"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "regr_intercept"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_r2"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_slope"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_sxx"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_sxy"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "regr_syy"+> [ScalarType "float8", ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_pop" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_pop" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_pop" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_pop" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev_pop" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev_pop" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_samp" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_samp" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_samp" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "stddev_samp" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev_samp" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "stddev_samp" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "int2"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "int4"]+> (ScalarType "int8")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "float4"]+> (ScalarType "float4")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "money"]+> (ScalarType "money")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "interval"]+> (ScalarType "interval")+> False,+> CatCreateFunction FunAgg "sum" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_pop" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_pop" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_pop" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_pop" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "var_pop" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "var_pop" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_samp" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_samp" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_samp" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "var_samp" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "var_samp" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "var_samp" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "variance" [ScalarType "int8"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "variance" [ScalarType "int2"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "variance" [ScalarType "int4"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "variance" [ScalarType "float4"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "variance" [ScalarType "float8"]+> (ScalarType "float8")+> False,+> CatCreateFunction FunAgg "variance" [ScalarType "numeric"]+> (ScalarType "numeric")+> False,+> CatCreateFunction FunAgg "xmlagg" [ScalarType "xml"]+> (ScalarType "xml")+> False,+> CatCreateFunction FunWindow "cume_dist" [] (ScalarType "float8")+> False,+> CatCreateFunction FunWindow "dense_rank" [] (ScalarType "int8")+> False,+> CatCreateFunction FunWindow "first_value" [Pseudo AnyElement]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "lag" [Pseudo AnyElement]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "lag"+> [Pseudo AnyElement, ScalarType "int4"]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "lag"+> [Pseudo AnyElement, ScalarType "int4", Pseudo AnyElement]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "last_value" [Pseudo AnyElement]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "lead" [Pseudo AnyElement]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "lead"+> [Pseudo AnyElement, ScalarType "int4"]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "lead"+> [Pseudo AnyElement, ScalarType "int4", Pseudo AnyElement]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "nth_value"+> [Pseudo AnyElement, ScalarType "int4"]+> (Pseudo AnyElement)+> False,+> CatCreateFunction FunWindow "ntile" [ScalarType "int4"]+> (ScalarType "int4")+> False,+> CatCreateFunction FunWindow "percent_rank" [] (ScalarType "float8")+> False,+> CatCreateFunction FunWindow "rank" [] (ScalarType "int8") False,+> CatCreateFunction FunWindow "row_number" [] (ScalarType "int8")+> False,+> CatCreateTable "pg_aggregate"+> [("aggfnoid", ScalarType "regproc"),+> ("aggtransfn", ScalarType "regproc"),+> ("aggfinalfn", ScalarType "regproc"),+> ("aggsortop", ScalarType "oid"),+> ("aggtranstype", ScalarType "oid"),+> ("agginitval", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_am"+> [("amname", ScalarType "name"),+> ("amstrategies", ScalarType "int2"),+> ("amsupport", ScalarType "int2"),+> ("amcanorder", ScalarType "bool"),+> ("amcanbackward", ScalarType "bool"),+> ("amcanunique", ScalarType "bool"),+> ("amcanmulticol", ScalarType "bool"),+> ("amoptionalkey", ScalarType "bool"),+> ("amindexnulls", ScalarType "bool"),+> ("amsearchnulls", ScalarType "bool"),+> ("amstorage", ScalarType "bool"),+> ("amclusterable", ScalarType "bool"),+> ("amkeytype", ScalarType "oid"),+> ("aminsert", ScalarType "regproc"),+> ("ambeginscan", ScalarType "regproc"),+> ("amgettuple", ScalarType "regproc"),+> ("amgetbitmap", ScalarType "regproc"),+> ("amrescan", ScalarType "regproc"),+> ("amendscan", ScalarType "regproc"),+> ("ammarkpos", ScalarType "regproc"),+> ("amrestrpos", ScalarType "regproc"),+> ("ambuild", ScalarType "regproc"),+> ("ambulkdelete", ScalarType "regproc"),+> ("amvacuumcleanup", ScalarType "regproc"),+> ("amcostestimate", ScalarType "regproc"),+> ("amoptions", ScalarType "regproc")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_amop"+> [("amopfamily", ScalarType "oid"),+> ("amoplefttype", ScalarType "oid"),+> ("amoprighttype", ScalarType "oid"),+> ("amopstrategy", ScalarType "int2"), ("amopopr", ScalarType "oid"),+> ("amopmethod", ScalarType "oid")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_amproc"+> [("amprocfamily", ScalarType "oid"),+> ("amproclefttype", ScalarType "oid"),+> ("amprocrighttype", ScalarType "oid"),+> ("amprocnum", ScalarType "int2"), ("amproc", ScalarType "regproc")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_attrdef"+> [("adrelid", ScalarType "oid"), ("adnum", ScalarType "int2"),+> ("adbin", ScalarType "text"), ("adsrc", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_attribute"+> [("attrelid", ScalarType "oid"), ("attname", ScalarType "name"),+> ("atttypid", ScalarType "oid"),+> ("attstattarget", ScalarType "int4"),+> ("attlen", ScalarType "int2"), ("attnum", ScalarType "int2"),+> ("attndims", ScalarType "int4"),+> ("attcacheoff", ScalarType "int4"),+> ("atttypmod", ScalarType "int4"), ("attbyval", ScalarType "bool"),+> ("attstorage", ScalarType "char"), ("attalign", ScalarType "char"),+> ("attnotnull", ScalarType "bool"),+> ("atthasdef", ScalarType "bool"),+> ("attisdropped", ScalarType "bool"),+> ("attislocal", ScalarType "bool"),+> ("attinhcount", ScalarType "int4"),+> ("attacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_auth_members"+> [("roleid", ScalarType "oid"), ("member", ScalarType "oid"),+> ("grantor", ScalarType "oid"), ("admin_option", ScalarType "bool")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_authid"+> [("rolname", ScalarType "name"), ("rolsuper", ScalarType "bool"),+> ("rolinherit", ScalarType "bool"),+> ("rolcreaterole", ScalarType "bool"),+> ("rolcreatedb", ScalarType "bool"),+> ("rolcatupdate", ScalarType "bool"),+> ("rolcanlogin", ScalarType "bool"),+> ("rolconnlimit", ScalarType "int4"),+> ("rolpassword", ScalarType "text"),+> ("rolvaliduntil", ScalarType "timestamptz"),+> ("rolconfig", ArrayType (ScalarType "text"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_cast"+> [("castsource", ScalarType "oid"),+> ("casttarget", ScalarType "oid"), ("castfunc", ScalarType "oid"),+> ("castcontext", ScalarType "char"),+> ("castmethod", ScalarType "char")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_class"+> [("relname", ScalarType "name"),+> ("relnamespace", ScalarType "oid"), ("reltype", ScalarType "oid"),+> ("relowner", ScalarType "oid"), ("relam", ScalarType "oid"),+> ("relfilenode", ScalarType "oid"),+> ("reltablespace", ScalarType "oid"),+> ("relpages", ScalarType "int4"),+> ("reltuples", ScalarType "float4"),+> ("reltoastrelid", ScalarType "oid"),+> ("reltoastidxid", ScalarType "oid"),+> ("relhasindex", ScalarType "bool"),+> ("relisshared", ScalarType "bool"),+> ("relistemp", ScalarType "bool"), ("relkind", ScalarType "char"),+> ("relnatts", ScalarType "int2"), ("relchecks", ScalarType "int2"),+> ("relhasoids", ScalarType "bool"),+> ("relhaspkey", ScalarType "bool"),+> ("relhasrules", ScalarType "bool"),+> ("relhastriggers", ScalarType "bool"),+> ("relhassubclass", ScalarType "bool"),+> ("relfrozenxid", ScalarType "xid"),+> ("relacl", ArrayType (ScalarType "aclitem")),+> ("reloptions", ArrayType (ScalarType "text"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_constraint"+> [("conname", ScalarType "name"),+> ("connamespace", ScalarType "oid"), ("contype", ScalarType "char"),+> ("condeferrable", ScalarType "bool"),+> ("condeferred", ScalarType "bool"), ("conrelid", ScalarType "oid"),+> ("contypid", ScalarType "oid"), ("confrelid", ScalarType "oid"),+> ("confupdtype", ScalarType "char"),+> ("confdeltype", ScalarType "char"),+> ("confmatchtype", ScalarType "char"),+> ("conislocal", ScalarType "bool"),+> ("coninhcount", ScalarType "int4"),+> ("conkey", ArrayType (ScalarType "int2")),+> ("confkey", ArrayType (ScalarType "int2")),+> ("conpfeqop", ArrayType (ScalarType "oid")),+> ("conppeqop", ArrayType (ScalarType "oid")),+> ("conffeqop", ArrayType (ScalarType "oid")),+> ("conbin", ScalarType "text"), ("consrc", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_conversion"+> [("conname", ScalarType "name"),+> ("connamespace", ScalarType "oid"), ("conowner", ScalarType "oid"),+> ("conforencoding", ScalarType "int4"),+> ("contoencoding", ScalarType "int4"),+> ("conproc", ScalarType "regproc"),+> ("condefault", ScalarType "bool")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_database"+> [("datname", ScalarType "name"), ("datdba", ScalarType "oid"),+> ("encoding", ScalarType "int4"), ("datcollate", ScalarType "name"),+> ("datctype", ScalarType "name"),+> ("datistemplate", ScalarType "bool"),+> ("datallowconn", ScalarType "bool"),+> ("datconnlimit", ScalarType "int4"),+> ("datlastsysoid", ScalarType "oid"),+> ("datfrozenxid", ScalarType "xid"),+> ("dattablespace", ScalarType "oid"),+> ("datconfig", ArrayType (ScalarType "text")),+> ("datacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_depend"+> [("classid", ScalarType "oid"), ("objid", ScalarType "oid"),+> ("objsubid", ScalarType "int4"), ("refclassid", ScalarType "oid"),+> ("refobjid", ScalarType "oid"), ("refobjsubid", ScalarType "int4"),+> ("deptype", ScalarType "char")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_description"+> [("objoid", ScalarType "oid"), ("classoid", ScalarType "oid"),+> ("objsubid", ScalarType "int4"),+> ("description", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_enum"+> [("enumtypid", ScalarType "oid"), ("enumlabel", ScalarType "name")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_foreign_data_wrapper"+> [("fdwname", ScalarType "name"), ("fdwowner", ScalarType "oid"),+> ("fdwvalidator", ScalarType "oid"),+> ("fdwacl", ArrayType (ScalarType "aclitem")),+> ("fdwoptions", ArrayType (ScalarType "text"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_foreign_server"+> [("srvname", ScalarType "name"), ("srvowner", ScalarType "oid"),+> ("srvfdw", ScalarType "oid"), ("srvtype", ScalarType "text"),+> ("srvversion", ScalarType "text"),+> ("srvacl", ArrayType (ScalarType "aclitem")),+> ("srvoptions", ArrayType (ScalarType "text"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_index"+> [("indexrelid", ScalarType "oid"), ("indrelid", ScalarType "oid"),+> ("indnatts", ScalarType "int2"),+> ("indisunique", ScalarType "bool"),+> ("indisprimary", ScalarType "bool"),+> ("indisclustered", ScalarType "bool"),+> ("indisvalid", ScalarType "bool"),+> ("indcheckxmin", ScalarType "bool"),+> ("indisready", ScalarType "bool"),+> ("indkey", ScalarType "int2vector"),+> ("indclass", ScalarType "oidvector"),+> ("indoption", ScalarType "int2vector"),+> ("indexprs", ScalarType "text"), ("indpred", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_inherits"+> [("inhrelid", ScalarType "oid"), ("inhparent", ScalarType "oid"),+> ("inhseqno", ScalarType "int4")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_language"+> [("lanname", ScalarType "name"), ("lanowner", ScalarType "oid"),+> ("lanispl", ScalarType "bool"),+> ("lanpltrusted", ScalarType "bool"),+> ("lanplcallfoid", ScalarType "oid"),+> ("lanvalidator", ScalarType "oid"),+> ("lanacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_largeobject"+> [("loid", ScalarType "oid"), ("pageno", ScalarType "int4"),+> ("data", ScalarType "bytea")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_listener"+> [("relname", ScalarType "name"),+> ("listenerpid", ScalarType "int4"),+> ("notification", ScalarType "int4")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_namespace"+> [("nspname", ScalarType "name"), ("nspowner", ScalarType "oid"),+> ("nspacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_opclass"+> [("opcmethod", ScalarType "oid"), ("opcname", ScalarType "name"),+> ("opcnamespace", ScalarType "oid"), ("opcowner", ScalarType "oid"),+> ("opcfamily", ScalarType "oid"), ("opcintype", ScalarType "oid"),+> ("opcdefault", ScalarType "bool"),+> ("opckeytype", ScalarType "oid")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_operator"+> [("oprname", ScalarType "name"),+> ("oprnamespace", ScalarType "oid"), ("oprowner", ScalarType "oid"),+> ("oprkind", ScalarType "char"), ("oprcanmerge", ScalarType "bool"),+> ("oprcanhash", ScalarType "bool"), ("oprleft", ScalarType "oid"),+> ("oprright", ScalarType "oid"), ("oprresult", ScalarType "oid"),+> ("oprcom", ScalarType "oid"), ("oprnegate", ScalarType "oid"),+> ("oprcode", ScalarType "regproc"),+> ("oprrest", ScalarType "regproc"),+> ("oprjoin", ScalarType "regproc")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_opfamily"+> [("opfmethod", ScalarType "oid"), ("opfname", ScalarType "name"),+> ("opfnamespace", ScalarType "oid"), ("opfowner", ScalarType "oid")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_pltemplate"+> [("tmplname", ScalarType "name"),+> ("tmpltrusted", ScalarType "bool"),+> ("tmpldbacreate", ScalarType "bool"),+> ("tmplhandler", ScalarType "text"),+> ("tmplvalidator", ScalarType "text"),+> ("tmpllibrary", ScalarType "text"),+> ("tmplacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_proc"+> [("proname", ScalarType "name"),+> ("pronamespace", ScalarType "oid"), ("proowner", ScalarType "oid"),+> ("prolang", ScalarType "oid"), ("procost", ScalarType "float4"),+> ("prorows", ScalarType "float4"),+> ("provariadic", ScalarType "oid"), ("proisagg", ScalarType "bool"),+> ("proiswindow", ScalarType "bool"),+> ("prosecdef", ScalarType "bool"),+> ("proisstrict", ScalarType "bool"),+> ("proretset", ScalarType "bool"),+> ("provolatile", ScalarType "char"),+> ("pronargs", ScalarType "int2"),+> ("pronargdefaults", ScalarType "int2"),+> ("prorettype", ScalarType "oid"),+> ("proargtypes", ScalarType "oidvector"),+> ("proallargtypes", ArrayType (ScalarType "oid")),+> ("proargmodes", ArrayType (ScalarType "char")),+> ("proargnames", ArrayType (ScalarType "text")),+> ("proargdefaults", ScalarType "text"),+> ("prosrc", ScalarType "text"), ("probin", ScalarType "bytea"),+> ("proconfig", ArrayType (ScalarType "text")),+> ("proacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_rewrite"+> [("rulename", ScalarType "name"), ("ev_class", ScalarType "oid"),+> ("ev_attr", ScalarType "int2"), ("ev_type", ScalarType "char"),+> ("ev_enabled", ScalarType "char"),+> ("is_instead", ScalarType "bool"), ("ev_qual", ScalarType "text"),+> ("ev_action", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_shdepend"+> [("dbid", ScalarType "oid"), ("classid", ScalarType "oid"),+> ("objid", ScalarType "oid"), ("objsubid", ScalarType "int4"),+> ("refclassid", ScalarType "oid"), ("refobjid", ScalarType "oid"),+> ("deptype", ScalarType "char")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_shdescription"+> [("objoid", ScalarType "oid"), ("classoid", ScalarType "oid"),+> ("description", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_statistic"+> [("starelid", ScalarType "oid"), ("staattnum", ScalarType "int2"),+> ("stanullfrac", ScalarType "float4"),+> ("stawidth", ScalarType "int4"),+> ("stadistinct", ScalarType "float4"),+> ("stakind1", ScalarType "int2"), ("stakind2", ScalarType "int2"),+> ("stakind3", ScalarType "int2"), ("stakind4", ScalarType "int2"),+> ("staop1", ScalarType "oid"), ("staop2", ScalarType "oid"),+> ("staop3", ScalarType "oid"), ("staop4", ScalarType "oid"),+> ("stanumbers1", ArrayType (ScalarType "float4")),+> ("stanumbers2", ArrayType (ScalarType "float4")),+> ("stanumbers3", ArrayType (ScalarType "float4")),+> ("stanumbers4", ArrayType (ScalarType "float4")),+> ("stavalues1", Pseudo AnyArray), ("stavalues2", Pseudo AnyArray),+> ("stavalues3", Pseudo AnyArray), ("stavalues4", Pseudo AnyArray)]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_tablespace"+> [("spcname", ScalarType "name"), ("spcowner", ScalarType "oid"),+> ("spclocation", ScalarType "text"),+> ("spcacl", ArrayType (ScalarType "aclitem"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_trigger"+> [("tgrelid", ScalarType "oid"), ("tgname", ScalarType "name"),+> ("tgfoid", ScalarType "oid"), ("tgtype", ScalarType "int2"),+> ("tgenabled", ScalarType "char"),+> ("tgisconstraint", ScalarType "bool"),+> ("tgconstrname", ScalarType "name"),+> ("tgconstrrelid", ScalarType "oid"),+> ("tgconstraint", ScalarType "oid"),+> ("tgdeferrable", ScalarType "bool"),+> ("tginitdeferred", ScalarType "bool"),+> ("tgnargs", ScalarType "int2"),+> ("tgattr", ScalarType "int2vector"),+> ("tgargs", ScalarType "bytea")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_ts_config"+> [("cfgname", ScalarType "name"),+> ("cfgnamespace", ScalarType "oid"), ("cfgowner", ScalarType "oid"),+> ("cfgparser", ScalarType "oid")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_ts_config_map"+> [("mapcfg", ScalarType "oid"), ("maptokentype", ScalarType "int4"),+> ("mapseqno", ScalarType "int4"), ("mapdict", ScalarType "oid")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "pg_ts_dict"+> [("dictname", ScalarType "name"),+> ("dictnamespace", ScalarType "oid"),+> ("dictowner", ScalarType "oid"),+> ("dicttemplate", ScalarType "oid"),+> ("dictinitoption", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_ts_parser"+> [("prsname", ScalarType "name"),+> ("prsnamespace", ScalarType "oid"),+> ("prsstart", ScalarType "regproc"),+> ("prstoken", ScalarType "regproc"),+> ("prsend", ScalarType "regproc"),+> ("prsheadline", ScalarType "regproc"),+> ("prslextype", ScalarType "regproc")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_ts_template"+> [("tmplname", ScalarType "name"),+> ("tmplnamespace", ScalarType "oid"),+> ("tmplinit", ScalarType "regproc"),+> ("tmpllexize", ScalarType "regproc")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_type"+> [("typname", ScalarType "name"),+> ("typnamespace", ScalarType "oid"), ("typowner", ScalarType "oid"),+> ("typlen", ScalarType "int2"), ("typbyval", ScalarType "bool"),+> ("typtype", ScalarType "char"), ("typcategory", ScalarType "char"),+> ("typispreferred", ScalarType "bool"),+> ("typisdefined", ScalarType "bool"),+> ("typdelim", ScalarType "char"), ("typrelid", ScalarType "oid"),+> ("typelem", ScalarType "oid"), ("typarray", ScalarType "oid"),+> ("typinput", ScalarType "regproc"),+> ("typoutput", ScalarType "regproc"),+> ("typreceive", ScalarType "regproc"),+> ("typsend", ScalarType "regproc"),+> ("typmodin", ScalarType "regproc"),+> ("typmodout", ScalarType "regproc"),+> ("typanalyze", ScalarType "regproc"),+> ("typalign", ScalarType "char"), ("typstorage", ScalarType "char"),+> ("typnotnull", ScalarType "bool"),+> ("typbasetype", ScalarType "oid"),+> ("typtypmod", ScalarType "int4"), ("typndims", ScalarType "int4"),+> ("typdefaultbin", ScalarType "text"),+> ("typdefault", ScalarType "text")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "pg_user_mapping"+> [("umuser", ScalarType "oid"), ("umserver", ScalarType "oid"),+> ("umoptions", ArrayType (ScalarType "text"))]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("oid", ScalarType "oid"),+> ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_features"+> [("feature_id", DomainType "information_schema.character_data"),+> ("feature_name", DomainType "information_schema.character_data"),+> ("sub_feature_id", DomainType "information_schema.character_data"),+> ("sub_feature_name",+> DomainType "information_schema.character_data"),+> ("is_supported", DomainType "information_schema.character_data"),+> ("is_verified_by", DomainType "information_schema.character_data"),+> ("comments", DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_implementation_info"+> [("implementation_info_id",+> DomainType "information_schema.character_data"),+> ("implementation_info_name",+> DomainType "information_schema.character_data"),+> ("integer_value", DomainType "information_schema.cardinal_number"),+> ("character_value",+> DomainType "information_schema.character_data"),+> ("comments", DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_languages"+> [("sql_language_source",+> DomainType "information_schema.character_data"),+> ("sql_language_year",+> DomainType "information_schema.character_data"),+> ("sql_language_conformance",+> DomainType "information_schema.character_data"),+> ("sql_language_integrity",+> DomainType "information_schema.character_data"),+> ("sql_language_implementation",+> DomainType "information_schema.character_data"),+> ("sql_language_binding_style",+> DomainType "information_schema.character_data"),+> ("sql_language_programming_language",+> DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_packages"+> [("feature_id", DomainType "information_schema.character_data"),+> ("feature_name", DomainType "information_schema.character_data"),+> ("is_supported", DomainType "information_schema.character_data"),+> ("is_verified_by", DomainType "information_schema.character_data"),+> ("comments", DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_parts"+> [("feature_id", DomainType "information_schema.character_data"),+> ("feature_name", DomainType "information_schema.character_data"),+> ("is_supported", DomainType "information_schema.character_data"),+> ("is_verified_by", DomainType "information_schema.character_data"),+> ("comments", DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_sizing"+> [("sizing_id", DomainType "information_schema.cardinal_number"),+> ("sizing_name", DomainType "information_schema.character_data"),+> ("supported_value",+> DomainType "information_schema.cardinal_number"),+> ("comments", DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateTable "information_schema.sql_sizing_profiles"+> [("sizing_id", DomainType "information_schema.cardinal_number"),+> ("sizing_name", DomainType "information_schema.character_data"),+> ("profile_id", DomainType "information_schema.character_data"),+> ("required_value",+> DomainType "information_schema.cardinal_number"),+> ("comments", DomainType "information_schema.character_data")]+> [("tableoid", ScalarType "oid"), ("cmax", ScalarType "cid"),+> ("xmax", ScalarType "xid"), ("cmin", ScalarType "cid"),+> ("xmin", ScalarType "xid"), ("ctid", ScalarType "tid")],+> CatCreateView "information_schema._pg_foreign_data_wrappers"+> [("oid", ScalarType "oid"), ("fdwowner", ScalarType "oid"),+> ("fdwoptions", ArrayType (ScalarType "text")),+> ("foreign_data_wrapper_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_name",+> DomainType "information_schema.sql_identifier"),+> ("authorization_identifier",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_language",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema._pg_foreign_servers"+> [("oid", ScalarType "oid"),+> ("srvoptions", ArrayType (ScalarType "text")),+> ("foreign_server_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_name",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_name",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_type",+> DomainType "information_schema.character_data"),+> ("foreign_server_version",+> DomainType "information_schema.character_data"),+> ("authorization_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema._pg_user_mappings"+> [("oid", ScalarType "oid"),+> ("umoptions", ArrayType (ScalarType "text")),+> ("umuser", ScalarType "oid"),+> ("authorization_identifier",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_name",+> DomainType "information_schema.sql_identifier"),+> ("srvowner", DomainType "information_schema.sql_identifier")],+> CatCreateView+> "information_schema.administrable_role_authorizations"+> [("grantee", DomainType "information_schema.sql_identifier"),+> ("role_name", DomainType "information_schema.sql_identifier"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.applicable_roles"+> [("grantee", DomainType "information_schema.sql_identifier"),+> ("role_name", DomainType "information_schema.sql_identifier"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.attributes"+> [("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("attribute_name", DomainType "information_schema.sql_identifier"),+> ("ordinal_position",+> DomainType "information_schema.cardinal_number"),+> ("attribute_default",+> DomainType "information_schema.character_data"),+> ("is_nullable", DomainType "information_schema.character_data"),+> ("data_type", DomainType "information_schema.character_data"),+> ("character_maximum_length",+> DomainType "information_schema.cardinal_number"),+> ("character_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("collation_name", DomainType "information_schema.sql_identifier"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("interval_type", DomainType "information_schema.character_data"),+> ("interval_precision",+> DomainType "information_schema.character_data"),+> ("attribute_udt_catalog",+> DomainType "information_schema.sql_identifier"),+> ("attribute_udt_schema",+> DomainType "information_schema.sql_identifier"),+> ("attribute_udt_name",+> DomainType "information_schema.sql_identifier"),+> ("scope_catalog", DomainType "information_schema.sql_identifier"),+> ("scope_schema", DomainType "information_schema.sql_identifier"),+> ("scope_name", DomainType "information_schema.sql_identifier"),+> ("maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("dtd_identifier", DomainType "information_schema.sql_identifier"),+> ("is_derived_reference_attribute",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema.check_constraint_routine_usage"+> [("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("specific_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.check_constraints"+> [("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("check_clause", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.column_domain_usage"+> [("domain_catalog",+> DomainType "information_schema.sql_identifier"),+> ("domain_schema", DomainType "information_schema.sql_identifier"),+> ("domain_name", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.column_privileges"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.column_udt_usage"+> [("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.columns"+> [("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier"),+> ("ordinal_position",+> DomainType "information_schema.cardinal_number"),+> ("column_default", DomainType "information_schema.character_data"),+> ("is_nullable", DomainType "information_schema.character_data"),+> ("data_type", DomainType "information_schema.character_data"),+> ("character_maximum_length",+> DomainType "information_schema.cardinal_number"),+> ("character_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("interval_type", DomainType "information_schema.character_data"),+> ("interval_precision",+> DomainType "information_schema.character_data"),+> ("character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("collation_name", DomainType "information_schema.sql_identifier"),+> ("domain_catalog", DomainType "information_schema.sql_identifier"),+> ("domain_schema", DomainType "information_schema.sql_identifier"),+> ("domain_name", DomainType "information_schema.sql_identifier"),+> ("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("scope_catalog", DomainType "information_schema.sql_identifier"),+> ("scope_schema", DomainType "information_schema.sql_identifier"),+> ("scope_name", DomainType "information_schema.sql_identifier"),+> ("maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("dtd_identifier", DomainType "information_schema.sql_identifier"),+> ("is_self_referencing",+> DomainType "information_schema.character_data"),+> ("is_identity", DomainType "information_schema.character_data"),+> ("identity_generation",+> DomainType "information_schema.character_data"),+> ("identity_start", DomainType "information_schema.character_data"),+> ("identity_increment",+> DomainType "information_schema.character_data"),+> ("identity_maximum",+> DomainType "information_schema.character_data"),+> ("identity_minimum",+> DomainType "information_schema.character_data"),+> ("identity_cycle", DomainType "information_schema.character_data"),+> ("is_generated", DomainType "information_schema.character_data"),+> ("generation_expression",+> DomainType "information_schema.character_data"),+> ("is_updatable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.constraint_column_usage"+> [("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier"),+> ("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.constraint_table_usage"+> [("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.data_type_privileges"+> [("object_catalog",+> DomainType "information_schema.sql_identifier"),+> ("object_schema", DomainType "information_schema.sql_identifier"),+> ("object_name", DomainType "information_schema.sql_identifier"),+> ("object_type", DomainType "information_schema.character_data"),+> ("dtd_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.domain_constraints"+> [("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("domain_catalog", DomainType "information_schema.sql_identifier"),+> ("domain_schema", DomainType "information_schema.sql_identifier"),+> ("domain_name", DomainType "information_schema.sql_identifier"),+> ("is_deferrable", DomainType "information_schema.character_data"),+> ("initially_deferred",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema.domain_udt_usage"+> [("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("domain_catalog", DomainType "information_schema.sql_identifier"),+> ("domain_schema", DomainType "information_schema.sql_identifier"),+> ("domain_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.domains"+> [("domain_catalog",+> DomainType "information_schema.sql_identifier"),+> ("domain_schema", DomainType "information_schema.sql_identifier"),+> ("domain_name", DomainType "information_schema.sql_identifier"),+> ("data_type", DomainType "information_schema.character_data"),+> ("character_maximum_length",+> DomainType "information_schema.cardinal_number"),+> ("character_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("collation_name", DomainType "information_schema.sql_identifier"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("interval_type", DomainType "information_schema.character_data"),+> ("interval_precision",+> DomainType "information_schema.character_data"),+> ("domain_default", DomainType "information_schema.character_data"),+> ("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("scope_catalog", DomainType "information_schema.sql_identifier"),+> ("scope_schema", DomainType "information_schema.sql_identifier"),+> ("scope_name", DomainType "information_schema.sql_identifier"),+> ("maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("dtd_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.element_types"+> [("object_catalog",+> DomainType "information_schema.sql_identifier"),+> ("object_schema", DomainType "information_schema.sql_identifier"),+> ("object_name", DomainType "information_schema.sql_identifier"),+> ("object_type", DomainType "information_schema.character_data"),+> ("collection_type_identifier",+> DomainType "information_schema.sql_identifier"),+> ("data_type", DomainType "information_schema.character_data"),+> ("character_maximum_length",+> DomainType "information_schema.cardinal_number"),+> ("character_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("collation_name", DomainType "information_schema.sql_identifier"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("interval_type", DomainType "information_schema.character_data"),+> ("interval_precision",+> DomainType "information_schema.character_data"),+> ("domain_default", DomainType "information_schema.character_data"),+> ("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("scope_catalog", DomainType "information_schema.sql_identifier"),+> ("scope_schema", DomainType "information_schema.sql_identifier"),+> ("scope_name", DomainType "information_schema.sql_identifier"),+> ("maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("dtd_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.enabled_roles"+> [("role_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.foreign_data_wrapper_options"+> [("foreign_data_wrapper_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_name",+> DomainType "information_schema.sql_identifier"),+> ("option_name", DomainType "information_schema.sql_identifier"),+> ("option_value", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.foreign_data_wrappers"+> [("foreign_data_wrapper_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_name",+> DomainType "information_schema.sql_identifier"),+> ("authorization_identifier",+> DomainType "information_schema.sql_identifier"),+> ("library_name", DomainType "information_schema.character_data"),+> ("foreign_data_wrapper_language",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema.foreign_server_options"+> [("foreign_server_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_name",+> DomainType "information_schema.sql_identifier"),+> ("option_name", DomainType "information_schema.sql_identifier"),+> ("option_value", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.foreign_servers"+> [("foreign_server_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_name",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_data_wrapper_name",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_type",+> DomainType "information_schema.character_data"),+> ("foreign_server_version",+> DomainType "information_schema.character_data"),+> ("authorization_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.information_schema_catalog_name"+> [("catalog_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.key_column_usage"+> [("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier"),+> ("ordinal_position",+> DomainType "information_schema.cardinal_number"),+> ("position_in_unique_constraint",+> DomainType "information_schema.cardinal_number")],+> CatCreateView "information_schema.parameters"+> [("specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("specific_name", DomainType "information_schema.sql_identifier"),+> ("ordinal_position",+> DomainType "information_schema.cardinal_number"),+> ("parameter_mode", DomainType "information_schema.character_data"),+> ("is_result", DomainType "information_schema.character_data"),+> ("as_locator", DomainType "information_schema.character_data"),+> ("parameter_name", DomainType "information_schema.sql_identifier"),+> ("data_type", DomainType "information_schema.character_data"),+> ("character_maximum_length",+> DomainType "information_schema.cardinal_number"),+> ("character_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("collation_name", DomainType "information_schema.sql_identifier"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("interval_type", DomainType "information_schema.character_data"),+> ("interval_precision",+> DomainType "information_schema.character_data"),+> ("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("scope_catalog", DomainType "information_schema.sql_identifier"),+> ("scope_schema", DomainType "information_schema.sql_identifier"),+> ("scope_name", DomainType "information_schema.sql_identifier"),+> ("maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("dtd_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "pg_cursors"+> [("name", ScalarType "text"), ("statement", ScalarType "text"),+> ("is_holdable", ScalarType "bool"),+> ("is_binary", ScalarType "bool"),+> ("is_scrollable", ScalarType "bool"),+> ("creation_time", ScalarType "timestamptz")],+> CatCreateView "pg_group"+> [("groname", ScalarType "name"), ("grosysid", ScalarType "oid"),+> ("grolist", ArrayType (ScalarType "oid"))],+> CatCreateView "pg_indexes"+> [("schemaname", ScalarType "name"),+> ("tablename", ScalarType "name"), ("indexname", ScalarType "name"),+> ("tablespace", ScalarType "name"),+> ("indexdef", ScalarType "text")],+> CatCreateView "pg_locks"+> [("locktype", ScalarType "text"), ("database", ScalarType "oid"),+> ("relation", ScalarType "oid"), ("page", ScalarType "int4"),+> ("tuple", ScalarType "int2"), ("virtualxid", ScalarType "text"),+> ("transactionid", ScalarType "xid"), ("classid", ScalarType "oid"),+> ("objid", ScalarType "oid"), ("objsubid", ScalarType "int2"),+> ("virtualtransaction", ScalarType "text"),+> ("pid", ScalarType "int4"), ("mode", ScalarType "text"),+> ("granted", ScalarType "bool")],+> CatCreateView "pg_prepared_statements"+> [("name", ScalarType "text"), ("statement", ScalarType "text"),+> ("prepare_time", ScalarType "timestamptz"),+> ("parameter_types", ArrayType (ScalarType "regtype")),+> ("from_sql", ScalarType "bool")],+> CatCreateView "pg_prepared_xacts"+> [("transaction", ScalarType "xid"), ("gid", ScalarType "text"),+> ("prepared", ScalarType "timestamptz"),+> ("owner", ScalarType "name"), ("database", ScalarType "name")],+> CatCreateView "pg_roles"+> [("rolname", ScalarType "name"), ("rolsuper", ScalarType "bool"),+> ("rolinherit", ScalarType "bool"),+> ("rolcreaterole", ScalarType "bool"),+> ("rolcreatedb", ScalarType "bool"),+> ("rolcatupdate", ScalarType "bool"),+> ("rolcanlogin", ScalarType "bool"),+> ("rolconnlimit", ScalarType "int4"),+> ("rolpassword", ScalarType "text"),+> ("rolvaliduntil", ScalarType "timestamptz"),+> ("rolconfig", ArrayType (ScalarType "text")),+> ("oid", ScalarType "oid")],+> CatCreateView "pg_rules"+> [("schemaname", ScalarType "name"),+> ("tablename", ScalarType "name"), ("rulename", ScalarType "name"),+> ("definition", ScalarType "text")],+> CatCreateView "pg_settings"+> [("name", ScalarType "text"), ("setting", ScalarType "text"),+> ("unit", ScalarType "text"), ("category", ScalarType "text"),+> ("short_desc", ScalarType "text"),+> ("extra_desc", ScalarType "text"), ("context", ScalarType "text"),+> ("vartype", ScalarType "text"), ("source", ScalarType "text"),+> ("min_val", ScalarType "text"), ("max_val", ScalarType "text"),+> ("enumvals", ArrayType (ScalarType "text")),+> ("boot_val", ScalarType "text"), ("reset_val", ScalarType "text"),+> ("sourcefile", ScalarType "text"),+> ("sourceline", ScalarType "int4")],+> CatCreateView "pg_shadow"+> [("usename", ScalarType "name"), ("usesysid", ScalarType "oid"),+> ("usecreatedb", ScalarType "bool"),+> ("usesuper", ScalarType "bool"), ("usecatupd", ScalarType "bool"),+> ("passwd", ScalarType "text"), ("valuntil", ScalarType "abstime"),+> ("useconfig", ArrayType (ScalarType "text"))],+> CatCreateView "pg_stat_activity"+> [("datid", ScalarType "oid"), ("datname", ScalarType "name"),+> ("procpid", ScalarType "int4"), ("usesysid", ScalarType "oid"),+> ("usename", ScalarType "name"),+> ("current_query", ScalarType "text"),+> ("waiting", ScalarType "bool"),+> ("xact_start", ScalarType "timestamptz"),+> ("query_start", ScalarType "timestamptz"),+> ("backend_start", ScalarType "timestamptz"),+> ("client_addr", ScalarType "inet"),+> ("client_port", ScalarType "int4")],+> CatCreateView "pg_stat_all_indexes"+> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),+> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),+> ("indexrelname", ScalarType "name"),+> ("idx_scan", ScalarType "int8"),+> ("idx_tup_read", ScalarType "int8"),+> ("idx_tup_fetch", ScalarType "int8")],+> CatCreateView "pg_stat_all_tables"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"), ("seq_scan", ScalarType "int8"),+> ("seq_tup_read", ScalarType "int8"),+> ("idx_scan", ScalarType "int8"),+> ("idx_tup_fetch", ScalarType "int8"),+> ("n_tup_ins", ScalarType "int8"), ("n_tup_upd", ScalarType "int8"),+> ("n_tup_del", ScalarType "int8"),+> ("n_tup_hot_upd", ScalarType "int8"),+> ("n_live_tup", ScalarType "int8"),+> ("n_dead_tup", ScalarType "int8"),+> ("last_vacuum", ScalarType "timestamptz"),+> ("last_autovacuum", ScalarType "timestamptz"),+> ("last_analyze", ScalarType "timestamptz"),+> ("last_autoanalyze", ScalarType "timestamptz")],+> CatCreateView "pg_stat_bgwriter"+> [("checkpoints_timed", ScalarType "int8"),+> ("checkpoints_req", ScalarType "int8"),+> ("buffers_checkpoint", ScalarType "int8"),+> ("buffers_clean", ScalarType "int8"),+> ("maxwritten_clean", ScalarType "int8"),+> ("buffers_backend", ScalarType "int8"),+> ("buffers_alloc", ScalarType "int8")],+> CatCreateView "pg_stat_database"+> [("datid", ScalarType "oid"), ("datname", ScalarType "name"),+> ("numbackends", ScalarType "int4"),+> ("xact_commit", ScalarType "int8"),+> ("xact_rollback", ScalarType "int8"),+> ("blks_read", ScalarType "int8"), ("blks_hit", ScalarType "int8"),+> ("tup_returned", ScalarType "int8"),+> ("tup_fetched", ScalarType "int8"),+> ("tup_inserted", ScalarType "int8"),+> ("tup_updated", ScalarType "int8"),+> ("tup_deleted", ScalarType "int8")],+> CatCreateView "pg_stat_sys_indexes"+> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),+> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),+> ("indexrelname", ScalarType "name"),+> ("idx_scan", ScalarType "int8"),+> ("idx_tup_read", ScalarType "int8"),+> ("idx_tup_fetch", ScalarType "int8")],+> CatCreateView "pg_stat_sys_tables"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"), ("seq_scan", ScalarType "int8"),+> ("seq_tup_read", ScalarType "int8"),+> ("idx_scan", ScalarType "int8"),+> ("idx_tup_fetch", ScalarType "int8"),+> ("n_tup_ins", ScalarType "int8"), ("n_tup_upd", ScalarType "int8"),+> ("n_tup_del", ScalarType "int8"),+> ("n_tup_hot_upd", ScalarType "int8"),+> ("n_live_tup", ScalarType "int8"),+> ("n_dead_tup", ScalarType "int8"),+> ("last_vacuum", ScalarType "timestamptz"),+> ("last_autovacuum", ScalarType "timestamptz"),+> ("last_analyze", ScalarType "timestamptz"),+> ("last_autoanalyze", ScalarType "timestamptz")],+> CatCreateView "pg_stat_user_functions"+> [("funcid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("funcname", ScalarType "name"), ("calls", ScalarType "int8"),+> ("total_time", ScalarType "int8"),+> ("self_time", ScalarType "int8")],+> CatCreateView "pg_stat_user_indexes"+> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),+> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),+> ("indexrelname", ScalarType "name"),+> ("idx_scan", ScalarType "int8"),+> ("idx_tup_read", ScalarType "int8"),+> ("idx_tup_fetch", ScalarType "int8")],+> CatCreateView "pg_stat_user_tables"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"), ("seq_scan", ScalarType "int8"),+> ("seq_tup_read", ScalarType "int8"),+> ("idx_scan", ScalarType "int8"),+> ("idx_tup_fetch", ScalarType "int8"),+> ("n_tup_ins", ScalarType "int8"), ("n_tup_upd", ScalarType "int8"),+> ("n_tup_del", ScalarType "int8"),+> ("n_tup_hot_upd", ScalarType "int8"),+> ("n_live_tup", ScalarType "int8"),+> ("n_dead_tup", ScalarType "int8"),+> ("last_vacuum", ScalarType "timestamptz"),+> ("last_autovacuum", ScalarType "timestamptz"),+> ("last_analyze", ScalarType "timestamptz"),+> ("last_autoanalyze", ScalarType "timestamptz")],+> CatCreateView "pg_statio_all_indexes"+> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),+> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),+> ("indexrelname", ScalarType "name"),+> ("idx_blks_read", ScalarType "int8"),+> ("idx_blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_all_sequences"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"), ("blks_read", ScalarType "int8"),+> ("blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_all_tables"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"),+> ("heap_blks_read", ScalarType "int8"),+> ("heap_blks_hit", ScalarType "int8"),+> ("idx_blks_read", ScalarType "int8"),+> ("idx_blks_hit", ScalarType "int8"),+> ("toast_blks_read", ScalarType "int8"),+> ("toast_blks_hit", ScalarType "int8"),+> ("tidx_blks_read", ScalarType "int8"),+> ("tidx_blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_sys_indexes"+> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),+> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),+> ("indexrelname", ScalarType "name"),+> ("idx_blks_read", ScalarType "int8"),+> ("idx_blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_sys_sequences"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"), ("blks_read", ScalarType "int8"),+> ("blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_sys_tables"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"),+> ("heap_blks_read", ScalarType "int8"),+> ("heap_blks_hit", ScalarType "int8"),+> ("idx_blks_read", ScalarType "int8"),+> ("idx_blks_hit", ScalarType "int8"),+> ("toast_blks_read", ScalarType "int8"),+> ("toast_blks_hit", ScalarType "int8"),+> ("tidx_blks_read", ScalarType "int8"),+> ("tidx_blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_user_indexes"+> [("relid", ScalarType "oid"), ("indexrelid", ScalarType "oid"),+> ("schemaname", ScalarType "name"), ("relname", ScalarType "name"),+> ("indexrelname", ScalarType "name"),+> ("idx_blks_read", ScalarType "int8"),+> ("idx_blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_user_sequences"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"), ("blks_read", ScalarType "int8"),+> ("blks_hit", ScalarType "int8")],+> CatCreateView "pg_statio_user_tables"+> [("relid", ScalarType "oid"), ("schemaname", ScalarType "name"),+> ("relname", ScalarType "name"),+> ("heap_blks_read", ScalarType "int8"),+> ("heap_blks_hit", ScalarType "int8"),+> ("idx_blks_read", ScalarType "int8"),+> ("idx_blks_hit", ScalarType "int8"),+> ("toast_blks_read", ScalarType "int8"),+> ("toast_blks_hit", ScalarType "int8"),+> ("tidx_blks_read", ScalarType "int8"),+> ("tidx_blks_hit", ScalarType "int8")],+> CatCreateView "pg_stats"+> [("schemaname", ScalarType "name"),+> ("tablename", ScalarType "name"), ("attname", ScalarType "name"),+> ("null_frac", ScalarType "float4"),+> ("avg_width", ScalarType "int4"),+> ("n_distinct", ScalarType "float4"),+> ("most_common_vals", Pseudo AnyArray),+> ("most_common_freqs", ArrayType (ScalarType "float4")),+> ("histogram_bounds", Pseudo AnyArray),+> ("correlation", ScalarType "float4")],+> CatCreateView "pg_tables"+> [("schemaname", ScalarType "name"),+> ("tablename", ScalarType "name"),+> ("tableowner", ScalarType "name"),+> ("tablespace", ScalarType "name"),+> ("hasindexes", ScalarType "bool"), ("hasrules", ScalarType "bool"),+> ("hastriggers", ScalarType "bool")],+> CatCreateView "pg_timezone_abbrevs"+> [("abbrev", ScalarType "text"),+> ("utc_offset", ScalarType "interval"),+> ("is_dst", ScalarType "bool")],+> CatCreateView "pg_timezone_names"+> [("name", ScalarType "text"), ("abbrev", ScalarType "text"),+> ("utc_offset", ScalarType "interval"),+> ("is_dst", ScalarType "bool")],+> CatCreateView "pg_user"+> [("usename", ScalarType "name"), ("usesysid", ScalarType "oid"),+> ("usecreatedb", ScalarType "bool"),+> ("usesuper", ScalarType "bool"), ("usecatupd", ScalarType "bool"),+> ("passwd", ScalarType "text"), ("valuntil", ScalarType "abstime"),+> ("useconfig", ArrayType (ScalarType "text"))],+> CatCreateView "pg_user_mappings"+> [("umid", ScalarType "oid"), ("srvid", ScalarType "oid"),+> ("srvname", ScalarType "name"), ("umuser", ScalarType "oid"),+> ("usename", ScalarType "name"),+> ("umoptions", ArrayType (ScalarType "text"))],+> CatCreateView "pg_views"+> [("schemaname", ScalarType "name"),+> ("viewname", ScalarType "name"), ("viewowner", ScalarType "name"),+> ("definition", ScalarType "text")],+> CatCreateView "information_schema.referential_constraints"+> [("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("unique_constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("unique_constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("unique_constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("match_option", DomainType "information_schema.character_data"),+> ("update_rule", DomainType "information_schema.character_data"),+> ("delete_rule", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.role_column_grants"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.role_routine_grants"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("specific_name", DomainType "information_schema.sql_identifier"),+> ("routine_catalog",+> DomainType "information_schema.sql_identifier"),+> ("routine_schema", DomainType "information_schema.sql_identifier"),+> ("routine_name", DomainType "information_schema.sql_identifier"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.role_table_grants"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data"),+> ("with_hierarchy",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema.role_usage_grants"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("object_catalog", DomainType "information_schema.sql_identifier"),+> ("object_schema", DomainType "information_schema.sql_identifier"),+> ("object_name", DomainType "information_schema.sql_identifier"),+> ("object_type", DomainType "information_schema.character_data"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.routine_privileges"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("specific_name", DomainType "information_schema.sql_identifier"),+> ("routine_catalog",+> DomainType "information_schema.sql_identifier"),+> ("routine_schema", DomainType "information_schema.sql_identifier"),+> ("routine_name", DomainType "information_schema.sql_identifier"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.routines"+> [("specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("specific_name", DomainType "information_schema.sql_identifier"),+> ("routine_catalog",+> DomainType "information_schema.sql_identifier"),+> ("routine_schema", DomainType "information_schema.sql_identifier"),+> ("routine_name", DomainType "information_schema.sql_identifier"),+> ("routine_type", DomainType "information_schema.character_data"),+> ("module_catalog", DomainType "information_schema.sql_identifier"),+> ("module_schema", DomainType "information_schema.sql_identifier"),+> ("module_name", DomainType "information_schema.sql_identifier"),+> ("udt_catalog", DomainType "information_schema.sql_identifier"),+> ("udt_schema", DomainType "information_schema.sql_identifier"),+> ("udt_name", DomainType "information_schema.sql_identifier"),+> ("data_type", DomainType "information_schema.character_data"),+> ("character_maximum_length",+> DomainType "information_schema.cardinal_number"),+> ("character_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("collation_name", DomainType "information_schema.sql_identifier"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("interval_type", DomainType "information_schema.character_data"),+> ("interval_precision",+> DomainType "information_schema.character_data"),+> ("type_udt_catalog",+> DomainType "information_schema.sql_identifier"),+> ("type_udt_schema",+> DomainType "information_schema.sql_identifier"),+> ("type_udt_name", DomainType "information_schema.sql_identifier"),+> ("scope_catalog", DomainType "information_schema.sql_identifier"),+> ("scope_schema", DomainType "information_schema.sql_identifier"),+> ("scope_name", DomainType "information_schema.sql_identifier"),+> ("maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("dtd_identifier", DomainType "information_schema.sql_identifier"),+> ("routine_body", DomainType "information_schema.character_data"),+> ("routine_definition",+> DomainType "information_schema.character_data"),+> ("external_name", DomainType "information_schema.character_data"),+> ("external_language",+> DomainType "information_schema.character_data"),+> ("parameter_style",+> DomainType "information_schema.character_data"),+> ("is_deterministic",+> DomainType "information_schema.character_data"),+> ("sql_data_access",+> DomainType "information_schema.character_data"),+> ("is_null_call", DomainType "information_schema.character_data"),+> ("sql_path", DomainType "information_schema.character_data"),+> ("schema_level_routine",+> DomainType "information_schema.character_data"),+> ("max_dynamic_result_sets",+> DomainType "information_schema.cardinal_number"),+> ("is_user_defined_cast",+> DomainType "information_schema.character_data"),+> ("is_implicitly_invocable",+> DomainType "information_schema.character_data"),+> ("security_type", DomainType "information_schema.character_data"),+> ("to_sql_specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("to_sql_specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("to_sql_specific_name",+> DomainType "information_schema.sql_identifier"),+> ("as_locator", DomainType "information_schema.character_data"),+> ("created", DomainType "information_schema.time_stamp"),+> ("last_altered", DomainType "information_schema.time_stamp"),+> ("new_savepoint_level",+> DomainType "information_schema.character_data"),+> ("is_udt_dependent",+> DomainType "information_schema.character_data"),+> ("result_cast_from_data_type",+> DomainType "information_schema.character_data"),+> ("result_cast_as_locator",+> DomainType "information_schema.character_data"),+> ("result_cast_char_max_length",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_char_octet_length",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_char_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_char_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_collation_catalog",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_collation_schema",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_collation_name",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_numeric_scale",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_datetime_precision",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_interval_type",+> DomainType "information_schema.character_data"),+> ("result_cast_interval_precision",+> DomainType "information_schema.character_data"),+> ("result_cast_type_udt_catalog",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_type_udt_schema",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_type_udt_name",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_scope_catalog",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_scope_schema",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_scope_name",+> DomainType "information_schema.sql_identifier"),+> ("result_cast_maximum_cardinality",+> DomainType "information_schema.cardinal_number"),+> ("result_cast_dtd_identifier",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.schemata"+> [("catalog_name", DomainType "information_schema.sql_identifier"),+> ("schema_name", DomainType "information_schema.sql_identifier"),+> ("schema_owner", DomainType "information_schema.sql_identifier"),+> ("default_character_set_catalog",+> DomainType "information_schema.sql_identifier"),+> ("default_character_set_schema",+> DomainType "information_schema.sql_identifier"),+> ("default_character_set_name",+> DomainType "information_schema.sql_identifier"),+> ("sql_path", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.sequences"+> [("sequence_catalog",+> DomainType "information_schema.sql_identifier"),+> ("sequence_schema",+> DomainType "information_schema.sql_identifier"),+> ("sequence_name", DomainType "information_schema.sql_identifier"),+> ("data_type", DomainType "information_schema.character_data"),+> ("numeric_precision",+> DomainType "information_schema.cardinal_number"),+> ("numeric_precision_radix",+> DomainType "information_schema.cardinal_number"),+> ("numeric_scale", DomainType "information_schema.cardinal_number"),+> ("maximum_value", DomainType "information_schema.cardinal_number"),+> ("minimum_value", DomainType "information_schema.cardinal_number"),+> ("increment", DomainType "information_schema.cardinal_number"),+> ("cycle_option", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.table_constraints"+> [("constraint_catalog",+> DomainType "information_schema.sql_identifier"),+> ("constraint_schema",+> DomainType "information_schema.sql_identifier"),+> ("constraint_name",+> DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("constraint_type",+> DomainType "information_schema.character_data"),+> ("is_deferrable", DomainType "information_schema.character_data"),+> ("initially_deferred",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema.table_privileges"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data"),+> ("with_hierarchy",+> DomainType "information_schema.character_data")],+> CatCreateView "information_schema.tables"+> [("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("table_type", DomainType "information_schema.character_data"),+> ("self_referencing_column_name",+> DomainType "information_schema.sql_identifier"),+> ("reference_generation",+> DomainType "information_schema.character_data"),+> ("user_defined_type_catalog",+> DomainType "information_schema.sql_identifier"),+> ("user_defined_type_schema",+> DomainType "information_schema.sql_identifier"),+> ("user_defined_type_name",+> DomainType "information_schema.sql_identifier"),+> ("is_insertable_into",+> DomainType "information_schema.character_data"),+> ("is_typed", DomainType "information_schema.character_data"),+> ("commit_action", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.triggered_update_columns"+> [("trigger_catalog",+> DomainType "information_schema.sql_identifier"),+> ("trigger_schema", DomainType "information_schema.sql_identifier"),+> ("trigger_name", DomainType "information_schema.sql_identifier"),+> ("event_object_catalog",+> DomainType "information_schema.sql_identifier"),+> ("event_object_schema",+> DomainType "information_schema.sql_identifier"),+> ("event_object_table",+> DomainType "information_schema.sql_identifier"),+> ("event_object_column",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.triggers"+> [("trigger_catalog",+> DomainType "information_schema.sql_identifier"),+> ("trigger_schema", DomainType "information_schema.sql_identifier"),+> ("trigger_name", DomainType "information_schema.sql_identifier"),+> ("event_manipulation",+> DomainType "information_schema.character_data"),+> ("event_object_catalog",+> DomainType "information_schema.sql_identifier"),+> ("event_object_schema",+> DomainType "information_schema.sql_identifier"),+> ("event_object_table",+> DomainType "information_schema.sql_identifier"),+> ("action_order", DomainType "information_schema.cardinal_number"),+> ("action_condition",+> DomainType "information_schema.character_data"),+> ("action_statement",+> DomainType "information_schema.character_data"),+> ("action_orientation",+> DomainType "information_schema.character_data"),+> ("condition_timing",+> DomainType "information_schema.character_data"),+> ("condition_reference_old_table",+> DomainType "information_schema.sql_identifier"),+> ("condition_reference_new_table",+> DomainType "information_schema.sql_identifier"),+> ("condition_reference_old_row",+> DomainType "information_schema.sql_identifier"),+> ("condition_reference_new_row",+> DomainType "information_schema.sql_identifier"),+> ("created", DomainType "information_schema.time_stamp")],+> CatCreateView "information_schema.usage_privileges"+> [("grantor", DomainType "information_schema.sql_identifier"),+> ("grantee", DomainType "information_schema.sql_identifier"),+> ("object_catalog", DomainType "information_schema.sql_identifier"),+> ("object_schema", DomainType "information_schema.sql_identifier"),+> ("object_name", DomainType "information_schema.sql_identifier"),+> ("object_type", DomainType "information_schema.character_data"),+> ("privilege_type", DomainType "information_schema.character_data"),+> ("is_grantable", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.user_mapping_options"+> [("authorization_identifier",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_name",+> DomainType "information_schema.sql_identifier"),+> ("option_name", DomainType "information_schema.sql_identifier"),+> ("option_value", DomainType "information_schema.character_data")],+> CatCreateView "information_schema.user_mappings"+> [("authorization_identifier",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_catalog",+> DomainType "information_schema.sql_identifier"),+> ("foreign_server_name",+> DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.view_column_usage"+> [("view_catalog", DomainType "information_schema.sql_identifier"),+> ("view_schema", DomainType "information_schema.sql_identifier"),+> ("view_name", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("column_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.view_routine_usage"+> [("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("specific_catalog",+> DomainType "information_schema.sql_identifier"),+> ("specific_schema",+> DomainType "information_schema.sql_identifier"),+> ("specific_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.view_table_usage"+> [("view_catalog", DomainType "information_schema.sql_identifier"),+> ("view_schema", DomainType "information_schema.sql_identifier"),+> ("view_name", DomainType "information_schema.sql_identifier"),+> ("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier")],+> CatCreateView "information_schema.views"+> [("table_catalog", DomainType "information_schema.sql_identifier"),+> ("table_schema", DomainType "information_schema.sql_identifier"),+> ("table_name", DomainType "information_schema.sql_identifier"),+> ("view_definition",+> DomainType "information_schema.character_data"),+> ("check_option", DomainType "information_schema.character_data"),+> ("is_updatable", DomainType "information_schema.character_data"),+> ("is_insertable_into",+> DomainType "information_schema.character_data")]]+
+ src/Database/HsSqlPpp/Internals/TypeChecking/ErrorUtils.lhs view
@@ -0,0 +1,30 @@++This file contains a bunch of small low level utilities to help with+type checking.++> module Database.HsSqlPpp.Internals.TypeChecking.ErrorUtils+> where+>+> import Database.HsSqlPpp.Internals.TypeType+> import Debug.Trace++> type E a = Either [TypeError] a+> type Et = E Type+>+> lmt :: Maybe a -> E a+> lmt = maybe (Left []) Right+>+> tes :: E a -> [TypeError]+> tes = either id (const [])+>+> etmt :: E a -> Maybe a+> etmt = either (const Nothing) Just+>++> liftList :: [(a,Maybe b)] -> Maybe [(a,b)]+> liftList is = sequence $ flip map is $ \(a,b) -> case b of+> Just b' -> Just (a,b')+> Nothing -> Nothing++> showIt :: Show a => String -> a -> a+> showIt m a = trace (m ++ " " ++ show a) a
+ src/Database/HsSqlPpp/Internals/TypeChecking/LocalBindings.lhs view
@@ -0,0 +1,20 @@++Forwarder for the interface to LocalBindingsInternal used by the rest+of the system.++> module Database.HsSqlPpp.Internals.TypeChecking.LocalBindings+> (+> LocalBindingsUpdate(..)+> ,LocalBindings+> ,emptyBindings+> ,lbUpdate+> ,lbLookupID+> ,lbLookupIDInType+> ,ppLocalBindings+> ,createLocalBindings+> ,getUnqualifiedBindings+> ,joinBindings+> ,lookupLocalBinding+> ) where+>+> import Database.HsSqlPpp.Internals.TypeChecking.LocalBindingsInternal
+ src/Database/HsSqlPpp/Internals/TypeChecking/LocalBindingsInternal.lhs view
@@ -0,0 +1,740 @@++This module contains the code to manage local identifier bindings+during the type checking process. This is used for e.g. looking up the+types of parameter and variable references in plpgsql functions, and+for looking up the types of identifiers in select expressions.++This module exposes the internals of the localbindings datatype for+testing.++The lookups to support are a single identifier, or to give a star+expansion.+++Some notes on lookups+all lookups are case insensitive+start by searching the head of the lookup update list and working down+the code here handles resolving the types of join columns when they+are not the same, and the update routine returns error if the join columns are not compatible+the code here handles expanding record types so that the components can be looked up++The local bindings is arranged as a stack. To append to this stack,+you use the LocalBindingsUpdate type. This is designed to be as easy as+possible for clients to use, so as much logic as possible is pushed+into the innards of this module, in particular most of the logic for+working with joins is in here.++The basic idea of the stack is at each level, there is a list of+qualified and unqualified names and types, to look up individual+ids. Some of the lookups map to ambiguous identifier errors. Also at+each level is a list of star expansions, one for each correlation name+in scope, and one for an unqualified star.++> {-# LANGUAGE ScopedTypeVariables,TupleSections #-}+>+> module Database.HsSqlPpp.Internals.TypeChecking.LocalBindingsInternal+> (+> LocalBindingsUpdate(..)+> ,LocalBindings(..)+> ,Source+> ,FullId+> ,SimpleId+> ,IDLookup+> -- ,StarExpand+> ,LocalBindingsLookup(..)+> ,emptyBindings+> ,lbUpdate+> -- ,lbExpandStar+> ,lbLookupID+> ,lbLookupIDInType+> --,lbUpdateDot+> ,ppLocalBindings+> ,ppLbls+> ,createLocalBindings+> ,getUnqualifiedBindings+> ,joinBindings+> ,lookupLocalBinding+> ) where+>+> --import Control.Monad as M+> --import Control.Applicative+> --import Debug.Trace+> --import Data.List+> --import Data.Maybe+> --import Data.Char+> --import Data.Either+> --import qualified Data.Map as M+>+> import Database.HsSqlPpp.Internals.TypeType+> --import Database.HsSqlPpp.Utils.Utils+> import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+> --import Database.HsSqlPpp.Internals.TypeChecking.TypeConversion+> import Database.HsSqlPpp.Internals.TypeChecking.ErrorUtils+>++++> data LocalBindings = LocalBindingsError+> | LocalBindings [((String,String),Maybe Type)]++> createLocalBindings :: Maybe [(String,[(String,Maybe Type)])] -> LocalBindings+> createLocalBindings i =+> maybe LocalBindingsError mb i+> where+> mb b = LocalBindings+> $ flip concatMap b $ \(qn,cs) -> flip map cs $ \(c,t) -> ((qn,c), t)++> getUnqualifiedBindings :: LocalBindings -> [(String,Maybe Type)]+> getUnqualifiedBindings (LocalBindings ls) =+> map unwrap ls+> where+> unwrap ((_,n),t) = (n,t)+> getUnqualifiedBindings LocalBindingsError = []++> joinBindings :: LocalBindings -> LocalBindings -> LocalBindings+> joinBindings (LocalBindings a) (LocalBindings b) = LocalBindings $ a ++ b+> joinBindings LocalBindingsError _ = LocalBindingsError+> joinBindings _ LocalBindingsError = LocalBindingsError++> lookupLocalBinding :: LocalBindings -> String -> String -> E (Maybe Type)+> lookupLocalBinding LocalBindingsError _ _ = Right Nothing+> lookupLocalBinding (LocalBindings lb) q i =+> case lookup (q,i) lb of+> Just t -> Right t+> Nothing -> if (q == "") || any (==q) (map (fst . fst) lb)+> then Left [UnrecognisedIdentifier i]+> else Left [UnrecognisedCorrelationName q]+++++++++++++++++++++---------------------------------------------++++The data type to represent a set of local bindings in scope. The list+of updates used to create the local bindings is saved for debugging/+information.++> {-data LocalBindings = LocalBindings [LocalBindingsUpdate]+> [LocalBindingsLookup]+> deriving Show-}++Each layer of the local bindings stack is+a map from (correlation name, id name) to source,correlation name, id+name, type tuple, or a type error, used e.g. to represent ambigious+ids, etc.;+and a map from correlation name to a list of these tuples to handle+star expansions.++Missing correlation names are represented by an empty string for the+correlation name.++> type Source = String+>+> type FullId = (Source,[String],Type) -- source,fully qualified name components,type+> type SimpleId = (String,Type)+> type IDLookup = ([String], E FullId)+> --type StarExpand = E [FullId] --the order of the [FullId] part is important+>+> data LocalBindingsLookup = LocalBindingsLookup [IDLookup]+> deriving (Eq,Show)++This is the local bindings update that users of this module use.++> data LocalBindingsUpdate = LBIds {source :: Source+> ,correlationName :: Maybe String+> ,lbids :: [SimpleId]}+> | LBTref {source :: Source+> ,talias :: String+> ,lbids :: [SimpleId]+> ,lbsysids :: [SimpleId]}+> | LBJoinTref {source :: Source+> ,jtref1 :: LocalBindingsUpdate+> ,jtref2 :: LocalBindingsUpdate+> ,joinIds :: Either () [String] -- left () represents natural join+> -- right [] represents no join ids+> ,jalias :: Maybe String}+> deriving Show+>+> emptyBindings :: LocalBindings+> emptyBindings = LocalBindings [] -- undefined --LocalBindings [] []++================================================================================++> ppLocalBindings :: LocalBindings -> String+> ppLocalBindings = error "ppLocalBindings" -- (LocalBindings lbus lbls) =+> -- "LocalBindings\n" ++ doList show lbus ++ doList ppLbls lbls-}+>+> ppLbls :: LocalBindingsLookup -> String+> ppLbls = error "ppLbls" {- (LocalBindingsLookup is) =+> "LocalBindingsLookup\n" ++ doList show is -}+>+> --doList :: (a -> String) -> [a] -> String+> --doList m l = "[\n" ++ intercalate "\n," (map m l) ++ "\n]\n"++================================================================================++> lbUpdate :: Catalog -> LocalBindingsUpdate -> LocalBindings -> E LocalBindings+> lbUpdate _ _ lb = return lb {- cat u1 (LocalBindings us s) = do+> ids <- updateStuff cat u1+> return $ LocalBindings (u1 : us) (LocalBindingsLookup ids : s)-}++++> --updateStuff :: Catalog -> LocalBindingsUpdate -> E [IDLookup]++> --updateStuff _ _ = error "updateStuff"++LBIds doesn't support any star expansion, and doesn't support+accessing the whole set of ids as a composite via cn++> {-updateStuff _ (LBIds src cn ids) =+> return (unQuals ++ quals)+> where+> unQuals = map (\(n,t) -> ([n], Right (src,maybe [n] (: [n]) cn, t))) ids+> quals = maybe [] (\cn' -> map (\(n,t) -> ([cn',n], Right (src,[cn',n], t))) ids) cn++tref - used for a non join table reference, supports accessing public+fields under the alias name as a composite, and also supports system+id lookups. The star expansions are all the non system ids qualified and unqualified++> updateStuff _ (LBTref src al ids sids) =+> -- comp has to come after unquals because an unqualified reference which could refer+> -- to a column or the composite resolves as the column+> return (unQuals ++ quals ++ [comp])+> -- ,[("",Right pids),(al,Right pids)])+> where+> allIds = ids ++ sids+> unQuals = map (\(n,t) -> ([n], Right (src,[al,n], t))) allIds+> quals = map (\(n,t) -> ([al,n], Right (src,[al,n], t))) allIds+> comp = ([al], Right (src, [al], CompositeType ids))+> pids = map (\(n,t) -> (src,[al,n],t)) ids+++LBJoinTref {source :: Source+ ,jtref1 :: LocalBindingsUpdate+ ,jtref2 :: LocalBindingsUpdate+ ,joinIds :: Either () [String] -- left () represents natural join+ -- right [] represents no join ids+ ,jalias :: Maybe String}++> {-updateStuff cat (LBJoinTref _src u1 u2 jnames' _al) = do++How to get the lbs for a join:++First get the info for the two sub trefs:++> ids1 <- updateStuff cat u1+> ids2 <- updateStuff cat u2++split these apart so we have the unqualified lookups and star expands+separately++> let (uids1,qids1) = splitLkps ids1+> (uids2,qids2) = splitLkps ids2++We need some information: the names and types of the join ids, and the+names of any remaining ambiguous identifiers:++> let jnames :: [String]+> jnames = case jnames' of+> Right ns -> ns+> Left () -> intersect (map fst uids1)+> (map fst uids2)+> --todo: resolve these properly+> let jids = flip map jnames $ \i -> (i,fromJust $ lookup [i] ids1)+++First: get the names of the join ids: this is the explicit list in the+case of a using join, or the commonly named fields in a natural+join. We get the commonly named fields from the unqualified star+expansions so we don't include system attributes in a natural join.++Then check: make sure explicit join id list is in both trefs, and+resolve the types of the join ids.++If there is no alias:++work out the lookups: the qualified lookups stay the same (doesn't+properly deal with the same correlation names coming from 2 trefs at+the moment).++get the list of duplicate ids: uses the same code as getting the+natural join id list, - there will be none if this is a natural+join. Otherwise, get the list of common ids and remove any using ids+from this list. TODO?: system attributes can't be referenced through a+join unqualified?++The unqualified lookups: start with the join ids and types, then add+all the ids from each subtref except the ones which match the+duplicate ids. Add these dups which now lookup to left ambiguous+reference.++work out the star expansion: the qualified star expansions stay the+same++for the unqualified star expansion: similar to lookups. Start with the+join ids, but then add all the non join ids from each table - so we+might have more than one column with the same name.++If there is an alias:++do the same as above for the unqualified ids/starexpand, add these+again under the given alias, and don't pass through qualified lookups+or star expands.+++> {-let plainIds1 = pl ids1+> plainIds2 = pl ids2+> let jnames :: [String]+> jnames = case jids of+> Right ns -> ns+> Left () -> intersect (map fst plainIds1) (map fst plainIds2)+> -- make the lookups+> isJ :: IDLookup -> Bool+> isJ (ii,_) = case ii of+> [i] | i `elem` jnames -> True+> _ -> False+> nj :: [IDLookup] -> [IDLookup]+> nj = filter (not . isJ)+> joinLkps = filter isJ ids1+> nonJoinLkps1 = nj ids1+> nonJoinLkps2 = nj ids2-}+> {-let jids1 :: [(String,E FullId)]+> jids1 = flip map jnames $ \i -> (i,fromJust $ lookup i ids1)+> rj :: [(String,E FullId)] -> [(String,E FullId)]+> rj = filter $ \e -> fst e `notElem` jnames+> ids :: [(String,E FullId)]+> ids = jids1 ++ rj ids1 ++ rj ids2-}+> --make the star expansion+> --se1' <- se1+> --se2' <- se2+> {-let (us1',qs1) = splitSe se1'+> (us2',qs2) = splitSe se2'+> us1 <- us1'+> us2 <- us2'-}+> {- rj1 :: [FullId] -> [FullId]+> rj1 = filter $ \(_,n,_t) -> last n `notElem` jnames+> se = map snd jids1 ++ map return (rj1 se1) ++ map return (rj1 se2)+> return (ids, sequence se)-}+> --let x = joinLkps ++ nonJoinLkps1 ++ nonJoinLkps2+> --trace ("join stuff: " ++ doList show x) $ return ()+> return (ids1 ++ ids1, se1 ++ se2) --(joinLkps ++ nonJoinLkps1 ++ nonJoinLkps2, ("", Right (us1 ++ us2)) : qs1 ++ qs2)+> where+> {-splitSe :: [(String,StarExpand)] -> (StarExpand,[(String,StarExpand)])+> splitSe se = (uq, nuq)+> where+> uq = maybe [] snd $ find isUq se+> nuq = filter (not . isUq) se+> isUq (Right (a,_)) = a == ""-}+> splitLkps :: [([String], E FullId)]+> -> ([(String, E FullId)],[([String], E FullId)])+> splitLkps = partitionEithers . (map $ \x -> case x of+> ([n],t) -> Left (n,t)+> z -> Right z)-} -}++================================================================================++> {-lbExpandStar :: LocalBindings -> String -> E [FullId]+> lbExpandStar (LocalBindings _ (LocalBindingsLookup _ x : _)) c =+> maybe (case c of+> "" -> Left [BadStarExpand]+> y -> Left [UnrecognisedCorrelationName y])+> id $ lookup c x+> lbExpandStar _ _ = Left [BadStarExpand]-}++================================================================================++> lbLookupID :: LocalBindings -> [String] -> E FullId+> lbLookupID = error "lbLookupID" {-(LocalBindings _ lbl) i =+> let ls :: [[([String],E FullId)]]+> ls = map getLbIdl lbl+> in lkp1 ls $ map mtl i+> where+> lkp1 :: [[IDLookup]] -> [String] -> E FullId+> lkp1 (l:ls) i1 = fromMaybe (lkp1 ls i1) (lookup i1 l)+> lkp1 [] _ = if corMatch+> then Left [UnrecognisedIdentifier (intercalate "." i)]+> else Left [UnrecognisedCorrelationName (head i)]+> getLbIdl (LocalBindingsLookup x ) = x+> corMatch = case i of+> [q,_] -> q `elem` cors+> _ -> True+> cors :: [String]+> cors = let ls = map getLbIdl lbl+> in catMaybes $ concatMap (map getQ) ls+> getQ :: ([String], E FullId) -> Maybe String+> getQ ([q,_], _) = Just q+> getQ _ = Nothing -}+++> lbLookupIDInType :: Catalog -> LocalBindings -> Type -> String -> E FullId+> lbLookupIDInType = error "lbLookupIDInType" {-cat _ ty i = do+> t <- lmt $ getNamedCompositeTypes ty+> maybe (Left [UnrecognisedIdentifier i]) (fmap Right ("",[i],)) $ lookup i t+> where+> getNamedCompositeTypes :: Type -> Maybe [(String,Type)]+> getNamedCompositeTypes (NamedCompositeType n) =+> Just $ either (const []) id $ catCompositePublicAttrs cat [] n+> getNamedCompositeTypes (CompositeType t) = Just t+> getNamedCompositeTypes (PgRecord (Just t)) = getNamedCompositeTypes t+> getNamedCompositeTypes _ = Nothing -}++================================================================================++ > lbUpdateDot :: Catalog -> String -> LocalBindings -> E LocalBindings+ > lbUpdateDot cat i lb = do+ > (_,_,c) <- lbLookupID lb i+ > f <- lmt $ expandComposite cat True c+ > lbUpdate cat (LBIds "dot qual" Nothing f) emptyBindings++> {-f <- lmt $ expandComposite cat True c+> let u1 = (LBIds "dot qual" Nothing f)+> (ids,_) <- updateStuff cat u1+> pf <- lmt $ expandComposite cat False c+> let se = Right $ map (\(n,t) -> ("dot qual", [i,n], t)) pf+> return $ LocalBindings [u1] [LocalBindingsLookup ids se]-}++(Source, [String], Type)'+ against inferred type `(String, Type)'++ > expandComposite :: Catalog -> Bool -> Type -> Maybe [(String,Type)]+ > expandComposite cat b (SetOfType t) = expandComposite cat b t+ > expandComposite cat b (PgRecord (Just t)) = expandComposite cat b t+ > expandComposite _ _ (CompositeType fs) = Just fs+ > expandComposite cat b (NamedCompositeType n) = etmt $ (if b+ > then catCompositeAttrs+ > else catCompositePublicAttrs) cat [] n+ > expandComposite _ _ _ = Nothing+++================================================================================++> --mtl :: String -> String+> --mtl = map toLower+++++++------------------------------------------------------------+++++++++++++++++++++++++++++++++wrapper for the proper lookupid function, this is for backwards+compatibility with the old lookup code++> {-lbLookupID :: LocalBindings+> -> String -- identifier name+> -> E Type+> lbLookupID lb ci = let (cor,i) = splitIdentifier ci+> in fmap extractType $ lbLookupID1 lb cor i+> where+> extractType (_,_,_,t) = t+> splitIdentifier s = let (a,b) = span (/= '.') s+> in if b == ""+> then ("", a)+> else (a,tail b)+>+> lbLookupID1 :: LocalBindings+> -> String -- correlation name+> -> String -- identifier name+> -> E FullId -- type error or source, corr, type+> lbLookupID1 (LocalBindings _ lkps) cor' i' =+> --trace ("lookup: " ++ showID cor' i'+> -- ++ "in " ++ concatMap ppLbls lkps) $+> -- hack for triggers+> case cor of+> "new" | isTrigRec -> Right ("", "new", i, UnknownType)+> "old" | isTrigRec -> Right ("", "old", i, UnknownType)+> _ -> lkId lkps+> where+> isTrigRec = case lbLookupID1 (LocalBindings undefined lkps) "" cor of+> Right (_,_,_,Pseudo TriggerRecord) -> True+> _ -> False+> cor = mtl cor'+> i = mtl i'+> lkId ((LocalBindingsLookup idmap _):ls) =+> case lookup (cor,i) idmap of+> Just s -> s+> Nothing -> if cor /= "" && any ((==cor) . fst . fst) idmap+> then Left [UnrecognisedIdentifier $ showID cor i']+> else lkId ls+> lkId [] = if cor' == "" --todo: need to throw unrecognised identifier, if the correlation name isn't "", a id isn't found, and there are other ids with that correlation name+> then Left [UnrecognisedIdentifier $ showID cor i']+> else Left [UnrecognisedCorrelationName cor']++================================================================================++wrapped for the proper expand star routine, for compatibility with the+old implementation of local bindings++> lbExpandStar :: LocalBindings -> String -> E [SimpleId]+> lbExpandStar lb cor =+> fmap stripAll $ lbExpandStar1 lb cor+> where+> strip (_,_,n,t) = (n,t)+> stripAll = map strip+>+> lbExpandStar1 :: LocalBindings -> String -> E [FullId]+> lbExpandStar1 (LocalBindings _ lkps) cor' =+> exSt lkps+> where+> cor = mtl cor'+> exSt ((LocalBindingsLookup _ lst):ls) =+> case lookup cor lst of+> Just s -> s+> Nothing -> exSt ls+> exSt [] = Left [UnrecognisedCorrelationName cor]++================================================================================++This is where constructing the local bindings lookup stacks is done++> lbUpdate :: Catalog -> LocalBindingsUpdate -> LocalBindings -> E LocalBindings+> lbUpdate cat lbu' (LocalBindings lbus lkps) = do+> lbl <- makeStack cat lbu+> lbl1 <- expandComposites cat lbl+> --trace ("update: " ++ ppLbls lbl1) $ return ()+> return $ LocalBindings (lbu':lbus) (lbl1:lkps)+> where+> lbu = lowerise lbu'+> -- make correlation names and id names case insensitive+> -- by making them all lowercase+> lowerise (LBIds src ids) =+> LBIds src (mtll ids)+> lowerise (LBJoinIds t1 t2 ji a) =+> LBJoinIds (lowerise t1) (lowerise t2) (fmap mtll1 ji) (mtl a)+> lowerise (LBParallel lbu1 lbu2) =+> LBParallel (lowerise lbu1) (lowerise lbu2)+> mtll = map (\(n,t) -> (mtl n, t))+> mtll1 = map (\l -> mtl l)+>+> makeStack :: Catalog -> LocalBindingsUpdate -> E LocalBindingsLookup+> makeStack _ (LBIds src ids) =+> Right $ LocalBindingsLookup doIds doStar+> where+> doIds :: [((String,String)+> ,E FullId)]+> doIds = -- add unqualified if cor isn't empty string+> map (makeLookup "")+> (case cor of+> "" -> []+> _ -> map addDetails ids ++ map addDetails iids)+> ++ map (makeLookup cor) (map addDetails ids ++ map addDetails iids)+> where+> makeLookup c1 (s,_,n,t)= ((c1,n), Right (s,cor,n,t))+> doStar :: [(String, E [FullId])]+> doStar = case cor of+> "" -> []+> _ -> [("",Right $ map addDetails ids)]+> ++ [(cor,Right $ map addDetails ids)]+> addDetails (n,t) = (src,cor,n,t)+>+> makeStack cat (LBJoinIds t1 t2 jns a) = do+> --first get the stacks from t1 and t2+> --combine the elements of these filtering out the join ids+> --+> (LocalBindingsLookup i1 s1) <- makeStack cat t1+> (LocalBindingsLookup i2 s2) <- makeStack cat t2+> -- get the names and types of the join columns+> let jns' = case jns of+> Left () -> -- natural join, so we have to work out the names+> -- by looking at the common attributes+> -- we do this by getting the star expansion+> -- with no correlation name, and then finding+> -- the ids which appear in both lists+> -- (so this ignores internal ids)+> let ic1 :: [FullId]+> ic1 = fromRight [] $ maybe (Right []) id $ lookup "" s1+> ic2 = fromRight [] $ maybe (Right []) id $ lookup "" s2+> third (_,_,n,_) = n+> ii1 :: [String]+> ii1 = map third ic1+> ii2 = map third ic2+> in intersect ii1 ii2+> Right x -> x+> -- first prepare for the id lookups+> -- remove the join ids from the id lookups+> isJid ((_,n),_) = (n `elem` jns')+> removeJids = filter (not . isJid)+> i1' = removeJids i1+> i2' = removeJids i2+> jids <- M.sequence $ joinIDTypes i1 i2 jns'+> {-trace ("joinids: " ++ show jids+> ++ "\ni1 " ++ show i1+> ++ "\ni2 " ++ show i2+> ++ "\ni1' " ++ show i1'+> ++ "\ni2' " ++ show i2'+> ) $ return ()-}+> let jidsLk :: [IDLookup]+> jidsLk = if null i1 || null i2+> then [] --error?+> else let (_,Right (sc1,c1,_,_)) = head i1+> (_,Right (sc2,c2,_,_)) = head i2+> in flip concatMap jids $ \(n,t) -> [(("",n), Right (sc1,c1,n,t))+> ,((c1,n), Right (sc1,c1,n,t))+> ,((c2,n), Right (sc2,c2,n,t))+> ]+> --jidsF :: [FullId]+> --jidsF = rights $ map snd jidsLk+> newIdLookups = (jidsLk ++ (combineAddAmbiguousErrors i1' i2'))+> -- now do the star expansions+> -- for each correlation name, remove any ids which match a join id+> -- then prepend the join ids to that list+> se = combineStarExpansions s1 s2 -- don't know if this is quite right+> removeJids1 :: StarLookup -> StarLookup+> removeJids1 (k,ids) = (k, fmap (filter (\(_,_,n,_) -> n `notElem` jns')) ids)+> prependJids :: StarLookup -> StarLookup+> prependJids (c, lkps) = case lkps of+> Left _ -> (c,lkps)+> Right r | null r -> (c,lkps)+> Right r -> let (s,c1,_,_) = head r+> ids = map (\(n,t) -> (s,c1,n,t)) jids+> in (c, fmap (ids++) lkps)+> newStarExpansion = map (prependJids . removeJids1) se+> -- if we have an alias then we just want unqualified ids, then+> -- the same ids with a t3 alias for both ids and star expansion+> -- with all the correlation names replaced with the alias+> if a == ""+> then return $ LocalBindingsLookup newIdLookups newStarExpansion+> else return $ LocalBindingsLookup (aliasIds newIdLookups) (aliasExps newStarExpansion)+> where+> aliasIds :: [IDLookup] -> [IDLookup]+> aliasIds lkps = let trimmed = filter (\((c,_),_) -> c == "") lkps+> aliased = map (\(c,i) -> (c, fmap replaceCName i)) trimmed+> in aliased ++ map (\((_,n),i) -> ((a,n),i)) aliased+> aliasExps :: [StarLookup] -> [StarLookup]+> aliasExps lkps = let is = fromMaybe (error "localbindingsinternal.makestack : fromJust") $+> lookup "" lkps+> aliased = fmap (map replaceCName) is+> in [("",aliased), (a, aliased)]+> replaceCName (s,_,n,t) = (s,a,n,t)+> joinIDTypes :: [IDLookup] -> [IDLookup] -> [String] -> [E (String,Type)]+> joinIDTypes i1 i2 = map (joinIDType i1 i2)+> joinIDType :: [IDLookup] -> [IDLookup] -> String -> E (String,Type)+> joinIDType i1 i2 s = do+> (_,_,_,ty1) <- fromMaybe (Left [MissingJoinAttribute]) $+> lookup ("",s) i1+> (_,_,_,ty2) <- fromMaybe (Left [MissingJoinAttribute]) $+> lookup ("",s) i2+> ty <- resolveResultSetType cat [ty1,ty2]+> return (s,ty)+>+> makeStack cat (LBParallel u1 u2) = do+> -- get the two stacks,+> -- for any keys that appear in both respective lookups, replace with ambigious error+> -- and concatenate the lot+> (LocalBindingsLookup i1 s1) <- makeStack cat u1+> (LocalBindingsLookup i2 s2) <- makeStack cat u2+> return $ LocalBindingsLookup (combineAddAmbiguousErrors i1 i2) $ combineStarExpansions s1 s2+>+> combineStarExpansions :: [StarLookup] -> [StarLookup] -> [StarLookup]+> combineStarExpansions s1 s2 =+> let p :: [(String, [(String, E [FullId])])]+> p = npartition fst (s1 ++ s2)+> in flip map p $ \(a,b) -> (a,concat <$> M.sequence (map snd b))+>+> combineAddAmbiguousErrors :: [IDLookup] -> [IDLookup] -> [IDLookup]+> combineAddAmbiguousErrors i1 i2 =+> let commonIds = intersect (map fst i1) (map fst i2)+> removeCommonIds = filter (\a -> fst a `notElem` commonIds)+> fi1 = removeCommonIds i1+> fi2 = removeCommonIds i2+> errors = map (\(c,n) -> ((c,n),Left [AmbiguousIdentifier $ showID c n])) commonIds+> in fi1 ++ fi2 ++ errors++===============================================================================++> mtl :: String -> String+> mtl = map toLower+>+> showID :: String -> String -> String+> showID cor i = if cor == "" then i else cor ++ "." ++ i++================================================================================++expand composites++slightly dodgy - run through all the unqualified ids in the idlookups, and if any+have a composite type, add each element of that composite under the+correlation name of the idlookup itself, and add a star expansion for+that name also. This pretends that using a correlation name, composite+name and id name as a three part id isn't possible++> expandComposites :: Catalog -> LocalBindingsLookup -> E LocalBindingsLookup+> expandComposites cat (LocalBindingsLookup idlkp stlkp) = do+> let unqids = filter (\((a,_),_) -> a == "") idlkp+> strip = map snd unqids+> getComposites = filter (\(_,_,_,t) -> isCt t) $ rights strip+> comps <- mapM compExp getComposites+> let sts = map toStarLookup comps+> Right (LocalBindingsLookup (idlkp ++ (concat comps)) (stlkp ++ sts))+> where+> isCt (SetOfType t) = isCompositeType t+> isCt t = isCompositeType t+> getCompFields :: Type -> E [(String,Type)]+> getCompFields (SetOfType t) = getCompFields t+> getCompFields (PgRecord Nothing) = Right []+> getCompFields (PgRecord (Just t)) = getCompFields t+> getCompFields (CompositeType f) = return f+> getCompFields (NamedCompositeType s) = catCompositePublicAttrs cat [] s+> getCompFields (AnonymousRecordType _) = Right [] -- ??+> getCompFields _ = Right []+> compExp :: FullId -> E [IDLookup]+> compExp (s,_,n,t) = do+> f <- getCompFields t+> return $ flip map f $ \(n1,t1) -> ((n,n1),Right (s,n,n1,t1))+> toStarLookup :: [IDLookup] -> StarLookup+> toStarLookup ids =+> let fids::[FullId]+> fids = rights $ map snd ids+> (_,c,_,_) = if null fids then (undefined,"ERROR",undefined,undefined) else head fids+> in (c,Right fids)-}
+ src/Database/HsSqlPpp/Internals/TypeChecking/TypeConversion.lhs view
@@ -0,0 +1,668 @@+++This file contains the functions for resolving types and+function/operator resolution. See the pg manual chapter 10:++http://www.postgresql.org/docs/8.4/interactive/typeconv.html++This code is really spaghettified.++findCallMatch - pass in a name and a list of arguments, and it returns+the matching function. (pg manual 10.2,10.3)++resolveResultSetType - pass in a set of types, and it tries to find+the common type they can all be cast to. (pg manual 10.5)++checkAssignmentValid - pass in source type and target type, returns+ typelist[] if ok, otherwise error, pg manual 10.4+ Value Storage++> {-# LANGUAGE PatternGuards #-}+> module Database.HsSqlPpp.Internals.TypeChecking.TypeConversion (+> findCallMatch+> ,resolveResultSetType+> ,checkAssignmentValid+> ,checkAssignmentsValid+> ) where+>+> import Data.Maybe+> import Data.List+> import Data.Either+> --import Debug.Trace+> import Data.Char+>+> import Database.HsSqlPpp.Internals.TypeType+> import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+> import Database.HsSqlPpp.Utils.Utils++ > traceIt :: Show a => String -> a -> a+ > traceIt s t = trace (s ++ ": " ++ show t) t++= findCallMatch++~~~~++findCallMatch - partially implements the type conversion rules for+finding an operator or function match given a name and list of+arguments with partial or fully specified types++TODO:, qualifiers+namespaces+function style casts not in catalog+variadic args+default args+domains -> base type+what about aggregates and window functions?++Algo:++cands = all fns with matching names+ and same number of args++if exact match on types in this list, use it+ (if binary operator being matched, and one arg is typed and one is+ unknown, also match an operator by assuming the unknown is the same+ as the typed arg)++best match part:++filter cands with args which don't exactly match input args, and input+args cannot be converted by an implicit cast. unknowns count as+matching anything+if one left: use it++filter for preferred types:++for each cand, count each arg at each position which needs conversion,+and the cand type is a preferred type at that position.+if there are cands with count>0, keep only cands with the max count,+if one return it+if there are no cands with count>0, keep them all++check unknowns:+if any input args are unknown, and any cand accepts string at that+position, fix that arg's category as string, otherwise if all cands+accept same category at that position, fix that input args as that+category.+if we still have unknowns, then fail++discard cands which don't match the new input arg/category list++for each categorised input arg, if any cand accepts preferred type at+that position, get rid of cands which don't accept preferred type at+that position++if one left: use+else fail++polymorphic matching:+want to create a set of matches to insert into the cast pairs list+so:++find all matches on name, num args and have polymorphic parameters++for each one, check the polymorphic categories - eliminate fns that+have params in wrong category - array, non array, enum.+work out the base types for the polymorphic args at each spot based on+the args passed - so each arg is unchanged except arrays which have+the array part stripped off++now we have a list of types to match against the polymorphic params,+use resolveResultSetType to see if we can produce a match, if so,+create a new prototype which is the same as the polymorphic function+but with this matching arg swapped in, work out the casts and add it+into cand cast pairs, after exact match has been run.+++findCallMatch is a bit of a mess++todos:++rewrite this to try to make it a bit clearer++find some way to draw a data flow diagram of the code easily++add a logging facility so the function can explain what has happened+at each state, so you can provide a detailed explanation e.g. if the+code can't find an operator match to see what it has tried to match+against.++~~~~++> type ProtArgCast = (FunctionPrototype, [ArgCastFlavour])++> {-+> between, greatest and least are treated as syntactic sugar so we+> delegate the function lookups to the <=/>= operators.+> the row comparison should be more general than this, since it supports+> any operator satisfying some properties+> -}+> findCallMatch :: Catalog -> String -> [Type] -> Either [TypeError] FunctionPrototype+> findCallMatch cat fnName' argsType =+> --trace ("typecheckfncall " ++ fnName' ++ show argsType) $+> --dependsOnRTpe argsType $+> case fnName of+> "count" -> -- not quite sure how this is suppose to work,+> -- the counts in the pg catalog accept either+> -- no args, or one arg of type any, but you can call+> -- count with multiple arguments?+> return ("count", argsType, typeBigInt, False)+> "!between" | as@[_,_,_] <- argsType -> do+> -- not sure if this is correct - use the result set resolution+> -- to make the argument types compatible+> -- then just check there is a >=, <= returning a pair+> -- of somethings which can be anded+> t <- resolveResultSetType cat as+> f1 <- lookupReturnType ">=" [t,t]+> f2 <- lookupReturnType "<=" [t,t]+> _ <- lookupFn "!and" [f1,f2]+> return ("!between", [t,t,t], typeBool, False)+> "greatest" -> do+> (_,a,t,x) <- lookupFn fnName argsType+> _ <- lookupFn ">=" [t,t]+> return ("greatest",a,t,x)+> "least" -> do+> (_,a,t,x) <- lookupFn fnName argsType+> _ <- lookupFn "<=" [t,t]+> return ("greatest",a,t,x)+> "!rowctor" -> return ("!rowCtor", argsType, AnonymousRecordType argsType, False)+> -- special case the row comparison ops+> -- this needs to be fixed: we want to match+> -- any implicit casts to functions on composite types+> -- first, then we can use the anonymous record type on+> -- any composite+> "." | [_,b] <- argsType -> Right (".", argsType, b, False)+> _ | fnName `elem` ["=", "<>", "<=", ">=", "<", ">"]+> && length argsType == 2+> && all isCompositeOrSetOfCompositeType argsType,+> Just a1 <- matchCompTypes argsType ->+> -- && compositesCompatible cat (head argsType) (head $ tail argsType) ->+> return (fnName, a1, typeBool, False)+> --checked for all special cases, so run general case now+> s -> lookupFn s argsType+> where+> lookupReturnType :: String -> [Type] -> Either [TypeError] Type+> lookupReturnType s1 args = fmap (\(_,_,r,_) -> r) $ lookupFn s1 args+> lookupFn :: String -> [Type] -> Either [TypeError] FunctionPrototype+> lookupFn s1 = findCallMatch1 cat+> (if s1 == "u-" then "-" else s1)+> fnName = map toLower fnName'+> -- help the type inference for rowCtors. pretty unfinished. If we compare+> -- two compatible row constructors, then replace any unknown types with the+> -- pair type+> matchCompTypes :: [Type] -> Maybe [Type]+> matchCompTypes [a@(AnonymousRecordType as),b@(AnonymousRecordType bs)] =+> if not (compositesCompatible cat a b)+> then Nothing+> else let (nt1,nt2) = unzip $ map (\(t,t1) -> case (t,t1) of+> (UnknownType, u) -> (u,u)+> (u, UnknownType) -> (u,u)+> _ -> (t,t1)) $ zip as bs+> in Just [AnonymousRecordType nt1,AnonymousRecordType nt2]+> matchCompTypes [a,b] =+> if not (compositesCompatible cat a b)+> then Nothing+> else Just [a,b]+> matchCompTypes _ = Nothing+++>+> findCallMatch1 :: Catalog -> String -> [Type] -> Either [TypeError] FunctionPrototype+> findCallMatch1 cat f inArgs =+> returnIfOnne [+> exactMatch+> ,binOp1UnknownMatch+> ,polymorpicExactMatches+> ,reachable+> ,mostExactMatches+> ,filteredForPreferred+> ,unknownMatchesByCat]+> [NoMatchingOperator f inArgs]+> where+> -- basic lists which roughly mirror algo+> -- get the possibly matching candidates+> initialCandList :: [FunctionPrototype]+> initialCandList = filter (\(_,candArgs,_,_) ->+> length candArgs == length inArgs) $+> map expandVariadic $ catLookupFns cat f+>+> expandVariadic fp@(fn,a,r,v) =+> if v+> then case last a of+> ArrayType t -> (fn, na,r,v)+> where na = init a ++ replicate (length inArgs - length a + 1) t+> _ -> fp --should be error+> else fp+>+> -- record what casts are needed for each candidate+> castPairs :: [[ArgCastFlavour]]+> castPairs = map (listCastPairs . getFnArgs) initialCandList+>+> candCastPairs :: [ProtArgCast]+> candCastPairs = {-traceIt "candCastPairs" $-} zip initialCandList castPairs+>+> -- see if we have an exact match+> exactMatch :: [ProtArgCast]+> exactMatch = filterCandCastPairs (all (==ExactMatch)) candCastPairs+>+> -- implement the one known, one unknown resolution for binary operators+> binOp1UnknownMatch :: [ProtArgCast]+> binOp1UnknownMatch = getBinOp1UnknownMatch candCastPairs+>+> --collect possible polymorphic matches+> polymorphicMatches :: [ProtArgCast]+> polymorphicMatches = filterPolymorphics candCastPairs+>+> polymorpicExactMatches :: [ProtArgCast]+> polymorpicExactMatches = filterCandCastPairs (all (==ExactMatch)) polymorphicMatches+>+> -- eliminate candidates for which the inargs cannot be casted to+> reachable :: [ProtArgCast]+> reachable = mergePolys (filterCandCastPairs (none (==CannotCast)) candCastPairs)+> polymorphicMatches+>+> mostExactMatches :: [ProtArgCast]+> mostExactMatches =+> let inArgsBase = map (replaceWithBase cat) inArgs+> exactCounts :: [Int]+> exactCounts =+> map ((length+> . filter (\(a1,a2) -> a1==replaceWithBase cat a2)+> . zip inArgsBase)+> . (\((_,a,_,_),_) -> a)) reachable+> pairs = zip reachable exactCounts+> maxm = maximum exactCounts+> in case () of+> _ | null reachable -> []+> | maxm > 0 -> map fst $ filter (\(_,b) -> b == maxm) pairs+> | otherwise -> []+>+> -- keep the cands with the most casts to preferred types+> preferredTypesCounts = countPreferredTypeCasts reachable+> keepCounts = maximum preferredTypesCounts+> itemCountPairs :: [(ProtArgCast,Int)]+> itemCountPairs = zip reachable preferredTypesCounts+> filteredForPreferred :: [ProtArgCast]+> filteredForPreferred = map fst $ filter (\(_,i) -> i == keepCounts) itemCountPairs+>+> -- collect the inArg type categories to do unknown inArg resolution+> argCats :: [Either () String]+> argCats = getCastCategoriesForUnknowns filteredForPreferred+> unknownMatchesByCat :: [ProtArgCast]+> unknownMatchesByCat = getCandCatMatches filteredForPreferred argCats+>+> -------------+>+> listCastPairs :: [Type] -> [ArgCastFlavour]+> listCastPairs l = listCastPairs' inArgs l+> where+> listCastPairs' :: [Type] -> [Type] -> [ArgCastFlavour]+> listCastPairs' (ia:ias) (ca:cas) =+> (case () of+> _ | ia == ca -> ExactMatch+> | castableFromTo cat ImplicitCastContext ia ca ->+> if forceRight (catPreferredType cat ca)+> then ImplicitToPreferred+> else ImplicitToNonPreferred+> | otherwise -> CannotCast+> ) : listCastPairs' ias cas+> listCastPairs' [] [] = []+> listCastPairs' _ _ = error "internal error: mismatched num args in implicit cast algorithm"+>+>+> getBinOp1UnknownMatch :: [ProtArgCast] -> [ProtArgCast]+> getBinOp1UnknownMatch cands =+> if not (isOperatorName f &&+> length inArgs == 2 &&+> count (==UnknownType) inArgs == 1)+> then []+> else let newInArgs =+> replicate 2 (if head inArgs == UnknownType+> then inArgs !! 1+> else head inArgs)+> in filter (\((_,a,_,_),_) -> a == newInArgs) cands+>+> filterPolymorphics :: [ProtArgCast] -> [ProtArgCast]+> filterPolymorphics cl =+> let ms :: [ProtArgCast]+> ms = filter canMatch polys+> polyTypes :: [Maybe Type]+> polyTypes = map resolvePolyType ms+> polyTypePairs :: [(Maybe Type, ProtArgCast)]+> polyTypePairs = zip polyTypes ms+> keepPolyTypePairs :: [(Type, ProtArgCast)]+> keepPolyTypePairs =+> mapMaybe (\(t,p) -> case t of+> Nothing -> Nothing+> Just t' -> Just (t',p))+> polyTypePairs+> finalRows = map (\(t,p) -> instantiatePolyType p t)+> keepPolyTypePairs+> --create the new cast lists+> cps :: [[ArgCastFlavour]]+> cps = map (listCastPairs . getFnArgs . fst) finalRows+> in zip (map fst finalRows) cps+> where+> polys :: [ProtArgCast]+> polys = filter (\((_,a,_,_),_) -> any (`elem`+> -- bit hacky+> [Pseudo Any+> ,Pseudo AnyArray+> ,Pseudo AnyElement+> ,Pseudo AnyEnum+> ,Pseudo AnyNonArray]) a) cl+> canMatch :: ProtArgCast -> Bool+> canMatch pac =+> let ((_,fnArgs,_,_),_) = pac+> in canMatch' inArgs fnArgs+> where+> canMatch' [] [] = True+> canMatch' (ia:ias) (pa:pas) =+> case pa of+> Pseudo Any -> nextMatch+> Pseudo AnyArray -> isArrayType ia && nextMatch+> Pseudo AnyElement -> nextMatch+> Pseudo AnyEnum -> False+> Pseudo AnyNonArray -> if isArrayType ia+> then False+> else nextMatch+> _ -> True+> where+> nextMatch = canMatch' ias pas+> canMatch' _ _ = error "internal error: mismatched lists in canMatch'"+> resolvePolyType :: ProtArgCast -> Maybe Type+> resolvePolyType ((_,fnArgs,_,_),_) =+> {-trace ("\nresolving " ++ show fnArgs ++ " against " ++ show inArgs ++ "\n") $-}+> let argPairs = zip inArgs fnArgs+> typeList :: [Type]+> typeList = catMaybes $ flip map argPairs+> $ \(ia,fa) -> case fa of+> Pseudo Any -> if isArrayType ia+> then eitherToMaybe $ unwrapArray ia+> else Just ia+> Pseudo AnyArray -> eitherToMaybe $ unwrapArray ia+> Pseudo AnyElement -> if isArrayType ia+> then eitherToMaybe $ unwrapArray ia+> else Just ia+> Pseudo AnyEnum -> Nothing+> Pseudo AnyNonArray -> Just ia+> _ -> Nothing+> in {-trace ("\nresolve types: " ++ show typeList ++ "\n") $-}+> case resolveResultSetType cat typeList of+> Left _ -> Nothing+> Right t -> Just t+> instantiatePolyType :: ProtArgCast -> Type -> ProtArgCast+> instantiatePolyType pac t =+> let ((fn,a,r,v),_) = pac+> instArgs = swapPolys t a+> p1 = (fn, instArgs, swapPoly t r,v)+> in let x = (p1,listCastPairs instArgs)+> in {-trace ("\nfixed:" ++ show x ++ "\n")-} x+> where+> swapPolys :: Type -> [Type] -> [Type]+> swapPolys = map . swapPoly+> swapPoly :: Type -> Type -> Type+> swapPoly pit at =+> case at of+> Pseudo Any -> if isArrayType at+> then ArrayType pit+> else pit+> Pseudo AnyArray -> ArrayType pit+> Pseudo AnyElement -> if isArrayType at+> then ArrayType pit+> else pit+> Pseudo AnyEnum -> pit+> Pseudo AnyNonArray -> pit+> SetOfType (Pseudo AnyElement) -> if isArrayType at+> then SetOfType (ArrayType pit)+> else SetOfType pit+> _ -> at+> --merge in the instantiated poly functions, with a twist:+> -- if we already have the exact same set of args in the non poly list+> -- as a poly, then don't include that poly+> mergePolys :: [ProtArgCast] -> [ProtArgCast] -> [ProtArgCast]+> mergePolys orig polys =+> let origArgs = map (\((_,a,_,_),_) -> a) orig+> filteredPolys = filter (\((_,a,_,_),_) -> a `notElem` origArgs) polys+> in orig ++ filteredPolys+>+> countPreferredTypeCasts :: [ProtArgCast] -> [Int]+> countPreferredTypeCasts =+> map (\(_,cp) -> count (==ImplicitToPreferred) cp)+>+> -- Left () is used for inArgs which aren't unknown,+> -- and for unknowns which we don't have a+> -- unique category+> -- Right s -> s is the single letter category at+> -- that position+> getCastCategoriesForUnknowns :: [ProtArgCast] -> [Either () String]+> getCastCategoriesForUnknowns cands =+> filterArgN 0+> where+> candArgLists :: [[Type]]+> candArgLists = map (\((_,a,_,_), _) -> a) cands+> filterArgN :: Int -> [Either () String]+> filterArgN n =+> if n == length inArgs+> then []+> else let targType = inArgs !! n+> in ((if targType /= UnknownType+> then Left ()+> else getCandsCatAt n) : filterArgN (n+1))+> where+> getCandsCatAt :: Int -> Either () String+> getCandsCatAt n' =+> let typesAtN = map (!!n') candArgLists+> catsAtN = map (forceRight . catTypeCategory cat) typesAtN+> in case () of+> --if any are string choose string+> _ | any (== "S") catsAtN -> Right "S"+> -- if all are same cat choose that+> | all (== head catsAtN) catsAtN -> Right $ head catsAtN+> -- otherwise no match, this will be+> -- picked up as complete failure to match+> -- later on+> | otherwise -> Left ()+>+> getCandCatMatches :: [ProtArgCast] -> [Either () String] -> [ProtArgCast]+> getCandCatMatches candsA cats = getMatches candsA 0+> where+> getMatches :: [ProtArgCast] -> Int -> [ProtArgCast]+> getMatches cands n =+> case () of+> _ | n == length inArgs -> cands+> | (inArgs !! n) /= UnknownType -> getMatches cands (n + 1)+> | otherwise ->+> let catMatches :: [ProtArgCast]+> catMatches = filter (\c -> Right (getCatForArgN n c) ==+> (cats !! n)) cands+> prefMatches :: [ProtArgCast]+> prefMatches = filter (forceRight . catPreferredType cat .+> getTypeForArgN n) catMatches+> keepMatches :: [ProtArgCast]+> keepMatches = if length prefMatches > 0+> then prefMatches+> else catMatches+> in getMatches keepMatches (n + 1)+> getTypeForArgN :: Int -> ProtArgCast -> Type+> getTypeForArgN n ((_,a,_,_),_) = a !! n+> getCatForArgN :: Int -> ProtArgCast -> String+> getCatForArgN n = forceRight . catTypeCategory cat . getTypeForArgN n+>+> -- utils+> -- filter a candidate/cast flavours pair by a predicate on each+> -- individual cast flavour+> filterCandCastPairs :: ([ArgCastFlavour] -> Bool)+> -> [ProtArgCast]+> -> [ProtArgCast]+> filterCandCastPairs predi = filter (\(_,cp) -> predi cp)+>+> getFnArgs :: FunctionPrototype -> [Type]+> getFnArgs (_,a,_,_) = a+> returnIfOnne [] e = Left e+> returnIfOnne (l:ls) e = if length l == 1+> then Right $ getHeadFn l+> else returnIfOnne ls e+>+> getHeadFn :: [ProtArgCast] -> FunctionPrototype+> getHeadFn l = let ((hdFn, _):_) = l+> in hdFn+> none p = not . any p+> count p = length . filter p+>+> data ArgCastFlavour = ExactMatch+> | CannotCast+> | ImplicitToPreferred+> | ImplicitToNonPreferred+> deriving (Eq,Show)+>++~~~~+resolveResultSetType -+partially implement the typing of results sets where the types aren't+all the same and not unknown+used in union,except,intersect columns, case, array ctor, values, greatest and least++algo:+if all inputs are same and not unknown -> that type+replace domains with base types+if all inputs are unknown then text+if the non unknown types aren't all in same category then fail+choose first input type that is a preferred type if there is one+choose last non unknown type that has implicit casts from all preceding inputs+check all can convert to selected type else fail++code is not as much of a mess as findCallMatch+~~~~++> resolveResultSetType :: Catalog -> [Type] -> Either [TypeError] Type+> resolveResultSetType cat inArgs = do+> errorWhen (null inArgs) [TypelessEmptyArray]+> returnWhen allSameType (head inArgs) $ do+> returnWhen allSameBaseType (head inArgsBase) $ do+> --returnWhen allUnknown (UnknownType) $ do+> errorWhen (not allSameCat) [IncompatibleTypeSet inArgs]+> returnWhen (isJust targetType &&+> allConvertibleToFrom (fromMaybe (error "TypeConversion.resolveresultsettype 1: fromJust") targetType) inArgs)+> (fromMaybe (error "TypeConversion.resolveresultsettype 2: fromJust") targetType) $ do+> Left [IncompatibleTypeSet inArgs]+> where+> allSameType = all (== head inArgs) inArgs -- &&+> --head inArgs /= UnknownType+> allSameBaseType = all (== head inArgsBase) inArgsBase &&+> head inArgsBase /= UnknownType+> inArgsBase = map (replaceWithBase cat) inArgs+> --allUnknown = all (==UnknownType) inArgsBase+> allSameCat = let firstCat = catTypeCategory cat (head knownTypes)+> in all (\t -> catTypeCategory cat t == firstCat)+> knownTypes+> targetType = case catMaybes [firstPreferred, lastAllConvertibleTo] of+> [] -> Nothing+> (x:_) -> Just x+> firstPreferred = find (forceRight . catPreferredType cat) knownTypes+> lastAllConvertibleTo = firstAllConvertibleTo (reverse knownTypes)+> firstAllConvertibleTo (x:xs) = if allConvertibleToFrom x xs+> then Just x+> else firstAllConvertibleTo xs+> firstAllConvertibleTo [] = Nothing+> knownTypes = filter (/=UnknownType) inArgsBase+> allConvertibleToFrom = all . flip (castableFromTo cat ImplicitCastContext)++todo:+cast empty array, where else can an empty array work?++================================================================================++= checkAssignmentValue++> checkAssignmentValid :: Catalog -> Type -> Type -> Either [TypeError] ()+> checkAssignmentValid cat from to =+> if castableFromTo cat AssignmentCastContext from to+> then Right ()+> else Left [IncompatibleTypes to from]+>+> compositesCompatible :: Catalog -> Type -> Type -> Bool+> compositesCompatible cat =+> castableFromTo cat ImplicitCastContext++> checkAssignmentsValid :: Catalog -> [Type] -> [Type] -> Either [TypeError] ()+> checkAssignmentsValid cat from to = do+> -- special case for assigning to composite+> let f = case to of+> [t] | isCompositeType t -> [AnonymousRecordType from]+> _ -> from+> errorWhen (length f /= length to)+> [WrongNumberOfColumns]+> let ls = concat $ lefts $ zipWith (checkAssignmentValid cat) f to+> errorWhen (not (null ls)) ls+++================================================================================++= castable function++wrapper around the catalog to add a bunch of extra valid casts++> castableFromTo :: Catalog -> CastContext -> Type -> Type -> Bool+> castableFromTo cat cc from to =+> --trace ("check cast " ++ show from ++ "->" ++ show to) $+> -- put this here to avoid having to write it everywhere else+> from == to+> -- unknown can be implicitly cast to anything (is this completely true?)+> || from == UnknownType+> --hack?+> || to == UnknownType+> -- check base types of domains+> || ((isDomainType from || isDomainType to)+> && castableFromTo cat cc (replaceWithBase cat from)+> (replaceWithBase cat to))+> -- check the casts listed in the catalog+> || forceRight (catCast cat cc from to)+> -- implicitcast => assignment cast+> || (cc == AssignmentCastContext+> && forceRight (catCast cat ImplicitCastContext from to))+> -- can assign composite to record+> || (cc == AssignmentCastContext+> && isCompOrSetoOfComp from+> && case to of+> PgRecord _ -> True+> _ -> False)+> -- check unboxing: wrapped single attribute+> || recurseTransFrom (unboxedSingleType from)+> || recurseTransTo (unboxedSingleType to)+> -- check unboxing: wrapped composite+> || recurseTransFrom (unboxedSetOfType from)+> || recurseTransTo (unboxedSetOfType to)+> -- check composites compatible by comparing attribute types+> || case (getCompositeTypes from+> ,getCompositeTypes to) of+> -- zip almost does the right thing here, needs a bit of tweaking+> (Just ft, Just tt) | length ft == length tt -> all (uncurry $ castableFromTo cat cc) $ zip ft tt+> _ -> False+> where+>+> getCompositeTypes (NamedCompositeType n) =+> Just $ map snd $ fromRight [] $ catCompositePublicAttrs cat [] n+> getCompositeTypes (CompositeType t) = Just $ map snd t+> getCompositeTypes (AnonymousRecordType t) = Just t+> getCompositeTypes (PgRecord Nothing) = Nothing+> getCompositeTypes (PgRecord (Just t)) = getCompositeTypes t+> getCompositeTypes _ = Nothing+>+> isCompOrSetoOfComp (SetOfType c) = isCompositeType c+> isCompOrSetoOfComp c = isCompositeType c+>+> unboxedSingleType (SetOfType (CompositeType [(_,t)])) = Just t+> unboxedSingleType (PgRecord (Just t)) = unboxedSingleType t+> unboxedSingleType _ = Nothing+>+> unboxedSetOfType (SetOfType a) = Just a+> unboxedSetOfType (PgRecord (Just t)) = unboxedSetOfType t+> unboxedSetOfType _ = Nothing+>+> recurseTransFrom = maybe False (flip (castableFromTo cat cc) to)+> recurseTransTo = maybe False (castableFromTo cat cc from)+>+> replaceWithBase :: Catalog -> Type -> Type+> replaceWithBase cat t@(DomainType _) = forceRight $ catDomainBaseType cat t+> replaceWithBase _ t = t
+ src/Database/HsSqlPpp/Internals/TypeChecking/Utils.lhs view
@@ -0,0 +1,127 @@++For extra utility functions to help with asts++> module Database.HsSqlPpp.Internals.TypeChecking.Utils+> (addExplicitCasts+> ,canonicalizeTypeNames) where++> import Data.Data+> import Database.HsSqlPpp.Internals.AstInternal+> import Data.Generics.Uniplate.Data+> import Database.HsSqlPpp.Internals.AstAnnotation+> import Database.HsSqlPpp.Internals.TypeType+> import Control.Monad++++> -- | Run through a typechecked tree and add in explicit casts where+> -- implicit casts are used to typecheck. Does function and operator+> -- calls, case result expressions, and string, integer and float+> -- literals at the moment, todo: union, array, greatest, least+> addExplicitCasts :: Data a => a -> a+> addExplicitCasts =+> refix . tr . canonicalizeTypeNames+> where+> tr = transformBi $ \x -> case x of+> FunCall a f as | Just p <- getProtoATys a+> , Just ats <- getTys as+> , p /= ats+> -> FunCall a f $ zipWith3 addCastIfNeeded p ats as+> Case a cs els | (Just f) <- doCase a cs els -> f+> CaseSimple a v cs els | (Just f) <- doCaseSimple a v cs els -> f+> i@(NumberLit a _) | Just t <- infType a -> castToT t i+> i@(StringLit a _) | Just t <- infType a -> castToT t i+> x1 -> x1+> -- need to put the type annotation in the created cast to allow+> -- adding explicit casts to continue up the tree+> castToT t e = Cast ea {atype = Just t,infType = Just t} e $ typeName 1 t+> getProtoATys :: Annotation -> Maybe [Type]+> getProtoATys a = let p = fnProt a+> in flip fmap p $ \(_,t,_,_) -> t+> getTys :: [ScalarExpr] -> Maybe [Type]+> getTys = mapM $ atype . getAnnotation+> addCastIfNeeded :: Type -> Type -> ScalarExpr -> ScalarExpr+> addCastIfNeeded nt ot e =+> if ot == nt+> then e+> else Cast ea e $ typeName 2 nt+> -- not sure how to avoid inserting a cast for a literal which is+> -- already being cast when using transformBi, so run through and+> -- remove the suplerfluous casts in a second sweep+> -- spot them when there is a cast of a cast of a literal+> -- and the type of the inner cast is the same as the type of the literal+> -- not sure if this pass can cause other problems+> refix = transformBi $ \x -> case x of+> Cast ca (Cast _ l t) t1 | isLiteral l+> , Just lt <- infType $ getAnnotation l+> , t == typeName 3 lt+> -> Cast ca l t1+> x1 -> x1+> isLiteral (NumberLit _ _) = True+> isLiteral (StringLit _ _) = True+> isLiteral _ = False+++> typeName :: Int -> Type -> TypeName+> typeName _ (ScalarType t) = SimpleTypeName ea t+> typeName i e = error $ "don't know how to convert " ++ show e ++ " to typename " ++ show i++> ea :: Annotation+> ea = emptyAnnotation++> doCase :: Annotation -> [([ScalarExpr],ScalarExpr)] -> Maybe ScalarExpr -> Maybe ScalarExpr+> doCase a whths els = do+> (whths',els') <- doCaseStuff a whths els+> return $ Case a whths' els'++> doCaseSimple :: Annotation -> ScalarExpr -> [([ScalarExpr],ScalarExpr)] -> Maybe ScalarExpr -> Maybe ScalarExpr+> doCaseSimple a v whths els = do+> (whths',els') <- doCaseStuff a whths els+> return $ CaseSimple a v whths' els'++> doCaseStuff :: Annotation -> [([ScalarExpr],ScalarExpr)] -> Maybe ScalarExpr -> Maybe ([([ScalarExpr],ScalarExpr)],Maybe ScalarExpr)+> doCaseStuff a whths els = do+> --trace (show $ atype a) $ return ()+> expectedType <- atype a+> --trace (show $ map (atype . getAnnotation . snd) whths) $ return ()+> thenTypes <- mapM (atype . getAnnotation . snd) whths+> --trace (show els) $ return ()+> thenAndElseTypes <- case els of+> Nothing -> return thenTypes+> Just els' -> fmap (:thenTypes) $ atype $ getAnnotation els'+> --trace ("checking cast: " ++ show expectedType ++ " " ++ show thenAndElseTypes)+> when (all (==expectedType) thenAndElseTypes) Nothing+> return (map (fixWhTh expectedType) whths+> ,castElse expectedType)+> where+> castElse et = case els of+> Nothing -> Nothing+> Just els' | Just t' <- atype $ getAnnotation els+> , t' /= et+> -> Just (Cast ea els' $ typeName 4 et)+> | otherwise -> els+> fixWhTh :: Type -> ([ScalarExpr],ScalarExpr) -> ([ScalarExpr],ScalarExpr)+> fixWhTh et (whs,th) | Just t' <- atype $ getAnnotation th+> , t' /= et = (whs, Cast ea th $ typeName 5 et)+> | otherwise = (whs,th)++> -- bit crap, this function is called canonicalizeTypeNames+> -- and it uses a function called canonicalizeTypeName++> -- | Convert all the typenames in the ast to canonical form+> -- e.g. int -> int4+> canonicalizeTypeNames :: Data a => a -> a+> canonicalizeTypeNames = fixTypes . fixTypeNames+> where+> fixTypes =+> transformBi $ \x -> case x of+> ScalarType t -> ScalarType $ ct t+> x1 -> x1+> fixTypeNames =+> transformBi $ \x -> case x of+> SimpleTypeName a t -> SimpleTypeName a $ ct t+> PrecTypeName a t i -> PrecTypeName a (ct t) i+> Prec2TypeName a t i0 i1 -> Prec2TypeName a (ct t) i0 i1+> x1 -> x1+> ct = canonicalizeTypeName+
+ src/Database/HsSqlPpp/Internals/TypeType.lhs view
@@ -0,0 +1,421 @@++This file contains the data type Type. It is kept separate so we can+compile the types and function information from the database+separately to AstInternal.ag.++Types overview:++Regular types: scalarType, arrayType, composite type, domaintype+we can use these anywhere.++~~~~+semi first class types: row, unknownstringlit (called unknown in pg) -+these can be used in some places, but not others, in particular an+expression can have this type or select can have a row with these+type, but a view can't have a column with this type (so a select can+be valid on it's own but not as a view. Not sure if Row types can be+variables, unknownstringlit definitely can't. (Update, seems a view+can have a column with type unknown.)++pseudo types - mirror pg pseudo types+Internal, LanguageHandler, Opaque probably won't ever be properly supported+Not sure exactly what Any is, can't use it in functions like the other any types?+ - update: seems that Any is like AnyElement, but multiple Anys don't+ have to have the same type.+AnyElement, AnyArray, AnyEnum, AnyNonArray - used to implement polymorphic functions,+ can only be used in these functions as params, return type (and local vars?).+Cstring - treated as variant of text?+record -dynamically typed, depends where it is used, i think is used+for type inference in function return types (so you don't have to+write the correct type, the compiler fills it in), and as a dynamically+typed variable in functions, where it can take any composite typed+value.+void is used for functions which return nothing+trigger is a tag to say a function is used in triggers, used as a+return type only+typecheckfailed is used to represent the type of anything which the code+is currently unable to type check, this usage should disappear at some+point, and then it will only represent code which doesn't type check+because of a mistake.++The Type type identifies the type of a node, but doesn't necessarily+describe the type.++Typing relational valued expressions:+use SetOfType combined with composite type for now, see if it works+out. If not, will have to add another type.+~~~~++> {-# LANGUAGE FlexibleInstances,DeriveDataTypeable #-}+>+> module Database.HsSqlPpp.Internals.TypeType where+>+> import Control.Monad.Trans.Error+> --import Control.Monad.Error+>+> import Data.Data+> import Data.Generics.Uniplate.Data+> import Data.Char++> data Type = ScalarType String+> | ArrayType Type+> | SetOfType Type+> --three variations, choose better name for rowctor+> --refer to composite type in catalog+> | NamedCompositeType String+> --refer to composite type either in catalog or one generated on fly+> | CompositeType [(String,Type)]+> --refer to anonymous composite type: the fields have no names+> --these three types are equality and assign compatible if the fields+> --are ignoring the names, so the fields have to be in the same order.+> | AnonymousRecordType [Type] -- was rowctor+> | PgRecord (Maybe Type) -- can only hold namedcomposite, composite or anonymousrecord+> | DomainType String+> | EnumType String+> | Pseudo PseudoType+> | UnknownType -- represents a string literal+> -- token whose type isn't yet+> -- determined+> deriving (Eq,Show,Ord,Typeable,Data)+>+> data PseudoType = Any+> | AnyArray+> | AnyElement+> | AnyEnum+> | AnyNonArray+> | Cstring+> | Record+> | TriggerRecord+> | Trigger+> | Void+> | Internal+> | LanguageHandler+> | Opaque+> deriving (Eq,Show,Ord,Typeable,Data)++this list will need reviewing, probably refactor to a completely+different set of infos, also will want to add more information to+these, and to provide a way of converting into a user friendly+string. It is intended for this code to produce highly useful errors+later on down the line.++> -- mostly expected,got+> data TypeError = WrongTypes Type [Type]+> | UnknownTypeError Type+> | UnknownTypeName String+> | NoMatchingOperator String [Type]+> | TypelessEmptyArray+> | IncompatibleTypeSet [Type]+> | IncompatibleTypes Type Type+> | ValuesListsMustBeSameLength+> | NoRowsGivenForValues+> | UnrecognisedIdentifier String+> | UnrecognisedRelation String+> | UnrecognisedCorrelationName String+> | BadStarExpand+> | AmbiguousIdentifier String+> | ContextError String+> | MissingJoinAttribute+> | ExpressionMustBeBool+> | WrongNumberOfColumns+> | ExpectedDomainType Type+> | DomainDefNotFound Type+> | BadCatalogUpdate String+> | TypeAlreadyExists Type+> | AnyAllError String+> | InternalError String+> | FromToTypesNotSame Type Type+> | WrongNumberOfAliasCols Int Int+> --shoved in to humour the Either Monad+> | MiscError String+> deriving (Eq,Show,Ord,Typeable,Data)+>++ > instance Error ([TypeError]) where+ > noMsg = [MiscError "Unknown error"]+ > strMsg str = [MiscError str]++> instance ErrorList TypeError where+> listMsg s = [MiscError s]+++=== canonical type name support++Introduce some aliases to protect client code if/when the ast+canonical names are changed:++> typeSmallInt,typeBigInt,typeInt,typeNumeric,typeFloat4,+> typeFloat8,typeVarChar,typeChar,typeBool,typeDate,+> typeInterval :: Type+> typeSmallInt = ScalarType "int2"+> typeBigInt = ScalarType "int8"+> typeInt = ScalarType "int4"+> typeNumeric = ScalarType "numeric"+> typeFloat4 = ScalarType "float4"+> typeFloat8 = ScalarType "float8"+> typeVarChar = ScalarType "varchar"+> typeChar = ScalarType "char"+> typeBool = ScalarType "bool"+> typeDate = ScalarType "date"+> typeInterval = ScalarType "interval"++this converts the name of a type to its canonical name:+try to follow the names that pg uses in a dump+this converts the name of a type to its canonical name:+try to follow the names that pg uses in a dump++> canonicalizeTypeName :: String -> String+> canonicalizeTypeName s' =+> case () of+> _ | s `elem` smallIntNames -> "int2"+> | s `elem` intNames -> "int4"+> | s `elem` bigIntNames -> "int8"+> | s `elem` numericNames -> "numeric"+> | s `elem` float4Names -> "float4"+> | s `elem` float8Names -> "float8"+> | s `elem` varcharNames -> "varchar"+> | s `elem` charNames -> "char"+> | s `elem` boolNames -> "bool"+> | otherwise -> s+> where+> smallIntNames = ["int2", "smallint"]+> intNames = ["int4", "integer", "int", "serial"]+> bigIntNames = ["int8", "bigint"]+> numericNames = ["numeric", "decimal"]+> float4Names = ["real", "float4"]+> float8Names = ["double precision", "float"]+> varcharNames = ["character varying", "varchar"]+> charNames = ["character", "char"]+> boolNames = ["boolean", "bool"]+> s = map toLower s'+>+> canonicalizeTypes :: Data a => a -> a+> canonicalizeTypes =+> transformBi $ \x ->+> case x of+> ScalarType s -> ScalarType $ canonicalizeTypeName s+> x1 -> x1++random notes on pg types:++~~~~++== domains:+the point of domains is you can't put constraints on types, but you+can wrap a type up in a domain and put a constraint on it there.++== literals/selectors++source strings are parsed as unknown type: they can be implicitly cast+to almost any type in the right context.++rows ctors can also be implicitly cast to any composite type matching+the elements (now sure how exactly are they matched? - number of+elements, type compatibility of elements, just by context?).++string literals are not checked for valid syntax currently, but this+will probably change so we can type check string literals statically.+Postgres defers all checking to runtime, because it has to cope with+custom data types. This code will allow adding a grammar checker for+each type so you can optionally check the string lits statically.++== notes on type checking types++=== basic type checking+Currently can lookup type names against a default template1 list of+types, or against the current list in a database (which is read before+processing and sql code).++todo: collect type names from current source file to check against+A lot of the infrastructure to do this is already in place. We also+need to do this for all other definitions, etc.++=== Type aliases++Some types in postgresql have multiple names. I think this is+hardcoded in the pg parser.++For the canonical name in this code, we use the name given in the+postgresql pg_type catalog relvar.++TODO: Change the ast canonical names: where there is a choice, prefer+the sql standard name, where there are multiple sql standard names,+choose the most concise or common one, so the ast will use different+canonical names to postgresql.++planned ast canonical names:+numbers:+int2, int4/integer, int8 -> smallint, int, bigint+numeric, decimal -> numeric+float(1) to float(24), real -> float(24)+float, float(25) to float(53), double precision -> float+serial, serial4 -> int+bigserial, serial8 -> bigint+character varying(n), varchar(n)-> varchar(n)+character(n), char(n) -> char(n)++TODO:++what about PrecTypeName? - need to fix the ast and parser (found out+these are called type modifiers in pg)++also, what can setof be applied to - don't know if it can apply to an+array or setof type++array types have to match an exact array type in the catalog, so we+can't create an arbitrary array of any type. Not sure if this is+handled quite correctly in this code.++~~~~++--------------------------------------------------------------------------------++utilities for working with Types++These may indicate that the haskell type system isn't being used very well.++> isArrayType :: Type -> Bool+> isArrayType (ArrayType _) = True+> isArrayType _ = False+>+> isDomainType :: Type -> Bool+> isDomainType (DomainType _) = True+> isDomainType _ = False+>+> isCompositeType :: Type -> Bool+> isCompositeType (CompositeType _) = True+> isCompositeType (NamedCompositeType _) = True+> isCompositeType (AnonymousRecordType _) = True+> isCompositeType (PgRecord _) = True+> isCompositeType _ = False+>+> isCompositeOrSetOfCompositeType :: Type -> Bool+> isCompositeOrSetOfCompositeType (SetOfType a) = isCompositeType a+> isCompositeOrSetOfCompositeType a = isCompositeType a+>+> unwrapArray :: Type -> Either [TypeError] Type+> unwrapArray (ArrayType t) = Right t+> unwrapArray x = Left [InternalError $ "can't get types from non array " ++ show x]+>+> unwrapSetOfWhenComposite :: Type -> Either [TypeError] Type+> unwrapSetOfWhenComposite (SetOfType a@(CompositeType _)) = Right a+> unwrapSetOfWhenComposite x = Left [InternalError $ "tried to unwrapSetOfWhenComposite on " ++ show x]+>+> unwrapSetOfComposite :: Type -> Either [TypeError] [(String,Type)]+> unwrapSetOfComposite (SetOfType (CompositeType a)) = Right a+> unwrapSetOfComposite x = Left [InternalError $ "tried to unwrapSetOfComposite on " ++ show x]+>+> unwrapSetOf :: Type -> Either [TypeError] Type+> unwrapSetOf (SetOfType a) = Right a+> unwrapSetOf x = Left [InternalError $ "tried to unwrapSetOf on " ++ show x]+>+> unwrapComposite :: Type -> Either [TypeError] [(String,Type)]+> unwrapComposite (CompositeType a) = Right a+> unwrapComposite x = Left [InternalError $ "cannot unwrapComposite on " ++ show x]+>+> consComposite :: (String,Type) -> Type -> Either [TypeError] Type+> consComposite l (CompositeType a) = Right $ CompositeType (l:a)+> consComposite a b = Left [InternalError $ "called consComposite on " ++ show (a,b)]+>+> unwrapRowCtor :: Type -> Either [TypeError] [Type]+> unwrapRowCtor (AnonymousRecordType a) = Right a+> unwrapRowCtor x = Left [InternalError $ "cannot unwrapRowCtor on " ++ show x]++--------------------------------------------------------------------------------++~~~~+new plan for types:++The type annotations attached to nodes will be either typecheckfailed 'type'+this will allow chaining type check failed more robustly. Type errors don't change.++the sql type type will be changed so we can track the different+contexts where different sql types can be used, split to use different+sets of types so we can use the haskell type system to enforce these+contexts.++rename type to sqltype, too confusing otherwise+new set of sqltypes: (these aren't in one haskell type anymore)+scalar type - corresponds to sqltypes in pg which aren't one of the+ other types (no easy way to define this)+array type+setof type : can be applied to scalar, domain, ... but not all types+composite types are changed:+namedcomposite string+composite [(string,type)] -> what types can appear in the attribute list?+anonymousrecord [type] -> what types can appear here? -> this+represents a row expression type, which can be returned in select+expressions (but not as a column in a view), and is used in other places+domaintype : what types are allowable as the base type?+pseudo types: these are used for arguments and return values for function prototypes only+any*, record - just means pg infers the return type which will be a composite type (namedcomposite, composite or anonymousrecord), trigger: just a tag, void: just a tag, any*: polymorphic functions, ignore cstring, internal, language handler and opaque.+issue: a variable declaration can be a polymorphic type in a polymorphic function, but we can't use the other pseudo types so need to split these+a variable declared as type record IS NOT the same thing as the pseudo record type, I've finally worked out.+so our plpgsqlrecordtype is plpgsqlrecordtype (Nothing|one of the three composite types)++typechecking polymorphic functions: will have to relax the type+checking to some degree. want to check against each usage of the+polymorphic function in the source, so substitute in the actual types+and check the function.++contexts:+function prototypes: args and return type+function calls: args and return+variable declaration in plpgsql+attribute in a select expression+attribute in a view (less permissive than a select expression), also create table as?+attribute in a table, type (is this the same list as for composite and anonymous records? - can nest anonymous records)+base type for domain+cast expression+insert: targetatts are same set of types as attributes in a table+update: targets can be attr types or anonymous records of attr types for rowset style assign (x,y) = selectexp+assignment statement: type on left same set as type in a for, types in select into, etc?+return statement+return query statement+expressions in a raise statement+expressions in execute, anything else?+types used inside select expression checking:+ selectlist, trefs, groupby, orderby, limit, offset, where, having+expressions:+what can an identifiers type be?+what can the type of an Expression node be?+ scalar: integerlit,floatlit+ stringlit: what can an unknown resolve to (not quite everything)+ booleanlit: scalar+ nulllit: same as stringlit?+ positionalarg: any type that a function arg can have+ cast: any type you can cast to+ identifier: ?+ case, casesimple: any type in the rhs expressions, what are these?+ exists: scalar+ funcall: any type a function return type can have+ inpredicate: scalar+ windowfn: ?+ liftoperator: booleans only?++problem: can't get types using gettypeannotation function and support+different valid combinations of types+++new notes+type contexts - these all have different possible types+function return type+function parameter type+OLD & NEW+declared variable+attribute in create table+attribute create type+column in select expression+column in view+column in insert+item in set in update: includes row type with contained types restricted+placeholder+id lookups in local bindings+typenames??++create list of each type for each context+create wrapper types which convert from other types to either+ typeerror type for bad type for context++~~~~+
src/Database/HsSqlPpp/Parsing/ParserInternal.lhs view
@@ -2,8 +2,7 @@ The main file for parsing sql, uses parsec. Not sure if parsec is the right choice, but it seems to do the job pretty well at the moment. -> {-# LANGUAGE RankNTypes,FlexibleContexts #-}->+> {-# LANGUAGE FlexibleContexts #-} > -- | Functions to parse SQL. > module Database.HsSqlPpp.Parsing.ParserInternal > (-- * Main@@ -42,12 +41,12 @@ > import Data.Maybe > import Data.Char >-> import Data.Generics.PlateData+> import Data.Generics.Uniplate.Data > import Data.Data hiding (Prefix,Infix) > > import Database.HsSqlPpp.Parsing.Lexer > import Database.HsSqlPpp.Parsing.ParseErrors-> import Database.HsSqlPpp.AstInternals.AstAnti+> import Database.HsSqlPpp.Internals.AstAnti > --import Database.HsSqlPpp.Ast > import qualified Database.HsSqlPpp.Ast as A > import Database.HsSqlPpp.Annotation as A@@ -201,7 +200,7 @@ > p = expr <* eof > ps = Just (l,c) >-> --utility function to do error handling in one place+> -- utility function to do error handling in one place > parseIt :: forall t s u b.(Stream s Identity t, Data b) => > Either ParseErrorExtra s > -> Parsec s u b@@ -1403,13 +1402,6 @@ > where > digChars = concatMap show [(0::Int)..9] - > integerLit :: SParser ScalarExpr- > integerLit = do- > p <- pos- > (IntegerLit p) <$> integer-- IntegerLit <$> pos <*> integer- > > caseScalarExpr :: SParser ScalarExpr > caseScalarExpr = do@@ -1446,8 +1438,8 @@ > > arraySubSuffix :: ScalarExpr -> SParser ScalarExpr > arraySubSuffix e = case e of-> Identifier _ "array" -> fail "can't use array as \-> \identifier name"+> Identifier _ "array" -> fail "can't use array \+> \as identifier name" > _ -> FunCall <$> pos > <*> return "!arraysub" > <*> ((e:) <$> squares (commaSep1 expr))@@ -1503,15 +1495,10 @@ > betweenSuffix a = do > p <- pos > keyword "between"-> b <- b_expr --dodgyParseElement+> b <- b_expr > keyword "and"-> c <- b_expr -- dodgyParseElement+> c <- b_expr > return $ FunCall p "!between" [a,b,c]-> --can't use the full expression parser at this time-> --because of a conflict between the operator 'and' and-> --the 'and' part of a between-> --where-> -- dodgyParseElement = factor > functionCallSuffix :: ScalarExpr -> SParser ScalarExpr@@ -1634,7 +1621,7 @@ > p <- pos > symbol "." > i1 <- idString-> return $ QIdentifier p i i1 --FunCall p "." [i,i1]+> return $ QIdentifier p i i1 > ,return i] > dqi :: SParser SQIdentifier@@ -1700,11 +1687,6 @@ > SymbolTok s | c==s -> Just () > _ -> Nothing) >-> {-integer :: SParser Integer-> integer = mytoken (\tok -> case tok of-> IntegerTok n -> Just n-> _ -> Nothing)-}-> > liftPositionalArgTok :: SParser Integer > liftPositionalArgTok = > mytoken (\tok -> case tok of@@ -1954,8 +1936,7 @@ > "any" -> LiftAny > "some" -> LiftAny > "all" -> LiftAll-> z -> error $ "internal error in parsing \-> \lift transform: " ++ z+> z -> error $ "internal error in parsing lift transform: " ++ z > x1 -> x1 --------------------------------------------------------------------------------
src/Database/HsSqlPpp/Pretty.lhs view
@@ -740,8 +740,7 @@ > ho = not (null order) > convFrm = case frm of > FrameUnboundedPreceding -> text "range unbounded preceding"-> FrameUnboundedFull -> text "range between unbounded \-> \preceding and unbounded following"+> FrameUnboundedFull -> text "range between unbounded preceding and unbounded following" > FrameRowsUnboundedPreceding -> text "rows unbounded preceding" > > convExp nice (Case _ whens els) =
+ src/Database/HsSqlPpp/Quote.lhs view
@@ -0,0 +1,280 @@++> {- | A quasiquoter for SQL. Antiquoting is a bit inconsistent. The+> splice variable names must be all lower case because of a limitation+> in the parser.+>+> Example:+>+> >+> > {-# LANGUAGE QuasiQuotes #-}+> > import Database.HsSqlPpp.Ast+> > import Database.HsSqlPpp.Quote+> > import Database.HsSqlPpp.Annotation+> >+> > test :: Statement+> > test = [$sqlStmt|+> >+> > create table $(tablename) (+> > $(varname) $(typename)+> > );+> >+> > |]+> > where+> > tablename = "my_table"+> > varname = "my_field"+> > typename = "text"+> >+>+> See <http://jakewheat.github.com/hssqlppp/QuasiQuoteTests.html>+> for more simple examples+> -}++, and+<http://jakewheat.github.com/hssqlppp/source/examples/Database/HsSqlPpp/Examples/Extensions/>+for some example files which use quasiquotation to do ast+transformations which implement syntax extensions to sql++>+> {-# LANGUAGE ScopedTypeVariables #-}+>+> module Database.HsSqlPpp.Quote+> (sqlStmts,sqlStmt,pgsqlStmts,pgsqlStmt,sqlExpr) where++> import Language.Haskell.TH.Quote+> import Language.Haskell.TH+> import Data.Generics+> import Data.List+>+> import Database.HsSqlPpp.Parsing.ParserInternal+> import Database.HsSqlPpp.Annotation+> import Database.HsSqlPpp.Internals.AstAnti+>++public api: the quasiquote functions++> -- | quotes Statements+> sqlStmts :: QuasiQuoter+> sqlStmts = makeQQ parseAntiSql+>+> -- | quotes a single Statement+> sqlStmt :: QuasiQuoter+> sqlStmt = makeQQ parseOneAntiSql+>+> -- | quotes plpgsql Statements+> pgsqlStmts :: QuasiQuoter+> pgsqlStmts = makeQQ parseAntiPlpgsql+>+> -- | quotes a plpgsql Statement+> pgsqlStmt :: QuasiQuoter+> pgsqlStmt = makeQQ parseOneAntiPlpgsql++> -- | quotes a ScalarExpr+> sqlExpr :: QuasiQuoter+> sqlExpr = makeQQ parseAntiScalarExpr++boilerplate utils to hook everything together++> type Parser e a = (String+> -> Int+> -> Int+> -> String+> -> Either e a)+>+> makeQQ :: (Show e, Data a) =>+> Parser e a -> QuasiQuoter+> makeQQ p = QuasiQuoter {quoteExp = (parseExprExp p)+> ,quotePat = (parseExprPat p)+> ,quoteType = undefined+> ,quoteDec = undefined}++these return asts of from the module+Database.HsSqlPpp.Internals.AstAnti, but when you expect the result+of a quasiquote to be from the module Database.HsSqlPpp.Ast, it+magically converts from one to the other ...++> parseExprExp :: (Show e, Data a) =>+> Parser e a -> String -> Q Exp+> parseExprExp p s = parseSql' p s+> >>= dataToExpQ (const Nothing+> `extQ` antiExpE+> `extQ` antiStrE+> `extQ` antiTriggerEventE+> `extQ` antiStatementE)+>+> parseExprPat :: (Show e, Data a) =>+> Parser e a -> String -> Q Pat+> parseExprPat p s = parseSql' p s+> >>= dataToPatQ (const Nothing+> `extQ` antiExprP+> `extQ` antiStrP+> `extQ` annotToWildCard+> --`extQ` antiTriggerEventE+> --`extQ` antiStatementE+> )+>++wrapper for all the different parsers which sets the source location+and converts left to fail++> parseSql' :: (Data a, Show e) => Parser e a -> String -> Q a+> parseSql' p s = do+> Loc fn _ _ (l,c) _ <- location+> either (fail . show) return (p fn l c s)++wrappers - the Parser module doesn't expose methods which parse+exactly one statement++> parseOneAntiPlpgsql :: Parser String Statement+> parseOneAntiPlpgsql f l c s =+> case parseAntiPlpgsql f l c s of+> Right [st] -> Right st+> Right _ -> Left "got multiple statements"+> Left e -> Left $ show e+>+> parseOneAntiSql :: Parser String Statement+> parseOneAntiSql f l c s =+> case parseAntiSql f l c s of+> Right [st] -> Right st+> Right _ -> Left "got multiple statements"+> Left e -> Left $ show e++hack: replace the annotations in asts produced by parsing with+wildcards, if we don't do this then pattern matches generally don't+work since the source position annotations from the parser don't match+up. The source position annotations are still available so that e.g. a+function can pattern match against a statement then get the source+position from the matched statements.++> annotToWildCard :: Annotation -> Maybe PatQ+> annotToWildCard _ = Just $ return WildP++= individual antinode lookup functions++> antiExpE :: ScalarExpr -> Maybe ExpQ+> antiExpE v = fmap varE (antiExp v)+>+> antiExprP :: ScalarExpr -> Maybe PatQ+> antiExprP v = fmap varP $ antiExp v+>+> antiExp :: ScalarExpr -> Maybe Name+> antiExp (AntiScalarExpr v) = Just $ mkName v+> antiExp _ = Nothing++antistatements not working ...+trying to replace a single antistatement node with multiple statement+nodes and my generics skills aren't up to the task.++> antiStatementE :: [Statement] -> Maybe ExpQ+> antiStatementE (AntiStatement v : tl) =+> Just (listE (vref : conArgs))+> where+> conArgs = gmapQ (dataToExpQ (const Nothing+> `extQ` antiExpE+> `extQ` antiStrE+> `extQ` antiTriggerEventE+> `extQ` antiStatementE)) tl+> vref :: ExpQ+> vref = varE $ mkName v+> antiStatementE _ = Nothing++> antiStrE :: String -> Maybe ExpQ+> antiStrE v = fmap varE $ antiStr v++> antiStrP :: String -> Maybe PatQ+> antiStrP v = fmap varP $ antiStr v++> antiStr :: String -> Maybe Name+> antiStr v =+> fmap mkName $ getSpliceName v+> where+> getSpliceName s | isPrefixOf "$(" s && last s == ')' =+> Just $ drop 2 $ take (length s - 1) s+> | isPrefixOf "$s(" s && last s == ')' =+> Just $ drop 3 $ take (length s - 1) s+> | isPrefixOf "$i(" s && last s == ')' =+> Just $ drop 3 $ take (length s - 1) s+> | otherwise = Nothing++>+> antiTriggerEventE :: TriggerEvent -> Maybe ExpQ+> antiTriggerEventE (AntiTriggerEvent v) = Just $ varE $ mkName v+> antiTriggerEventE _ = Nothing++~~~~++ > antiExpP :: Expression -> Maybe PatQ+ > antiExpP (AntiExpression v ) = Just $ varP $ mkName v+ > antiExpP _ = Nothing++to add support for a new splice location, add the type name to the+list at the top of MakeAntiNodes, adjust the parser to parse splices+at that point, and add a new antiQ function in this file+++new idea - to support antiquotation as much as possible, have more+than one splice syntax:++[$sqlExpr| $(x) |] - want to do a splice like this, sometimes it+should be++where x= "str" gives+Identifier [] "str" <- need $(x) to parse as an antiidentifier++and sometimes++where x = FunCall [] "fn" []+gives+FunCall [] "fn" [] <- need $(x) to parse as an antiexpression++need context which we don't have to make this decision (and would+probably be really hard even if the context was available)++so - use two different splice syntaxes.++to avoid doing string splices using [$sqlExpr| '$(sp)' |] which is+ugly and wrong (?), add another splice for strings?++...++work on tests to try to get some sort of design - want to minimise the+number of splice syntaxes at the same time not make it difficult to+work out which syntax to use in which spot.++++what needs to be done to support _ in pattern quasiquotes? -> I think+it's just adding a wildcard ctor to the appropriate ast types using+makeantinodes, and adding in lexing and parsing support - actually+using wildcards is now working with the annotation approach above++~~~~++Some ideas about moving forward++after working on a number of extensions, it seems clear that the quasi+quotation is a bit limited, specifically the number of splice points+is too limiting and a lot of ast transforms end up using a lot of ast+types directly rather than via quotes which is crap.++some possible resolutions:++live with it++add lots more splice points, will need lots of different splice+syntaxes e.g. to cope with splicing a trigger event list or a single+trigger event. Will also need to have a load more quote functions to+parse sql fragments for different contexts.++try and use e.g. a haskell or lisp like syntax for sql, to reduce the+number of ast types drastically - this will allow much more regular+use of splice points, quotes, etc.++variant on this idea is instead to move to a tutorial d like syntax,+which is vastly more regular than sql syntax and should allow for a+much smaller range of quoters and splice syntaxes also.++maybe might as well switch to haskelldb? the haskell or lisp like+version of sql syntax keeps us writing the databases in sql, whereas+tutorial d. haskelldb mean sql really disappears into the+plumbing. These approaches might solve some problems with custom+syntax also.
src/Database/HsSqlPpp/TypeChecker.lhs view
@@ -39,7 +39,7 @@ > ,getStatementAnnotations > ) where >-> import Database.HsSqlPpp.AstInternals.AstInternal-> import Database.HsSqlPpp.AstInternals.TypeChecking.Utils-> --import Database.HsSqlPpp.AstInternals.AstAnnotation-> import Database.HsSqlPpp.AstInternals.AnnotationUtils+> import Database.HsSqlPpp.Internals.AstInternal+> import Database.HsSqlPpp.Internals.TypeChecking.Utils+> --import Database.HsSqlPpp.Internals.AstAnnotation+> import Database.HsSqlPpp.Internals.AnnotationUtils
src/Database/HsSqlPpp/Types.lhs view
@@ -22,4 +22,4 @@ > ,TypeError (..) > ) where >-> import Database.HsSqlPpp.AstInternals.TypeType+> import Database.HsSqlPpp.Internals.TypeType
src/Database/HsSqlPpp/Utils/Utils.lhs view
@@ -2,7 +2,6 @@ This file contains some generic utility stuff > {-# LANGUAGE FlexibleContexts #-}-> > module Database.HsSqlPpp.Utils.Utils where > > import Data.List@@ -123,7 +122,7 @@ > np [] l > where > np acc =-> foldl (\ acc p -> insertWith (++) (keyf p) [p] acc) acc+> foldl (\ acc' p -> insertWith (++) (keyf p) [p] acc') acc > > insertWith :: Eq k => (a -> a -> a) -> k -> a -> [(k,a)] -> [(k,a)] > insertWith ac k v m =