}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                      ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$ Safe0579:;  Safe0579:;* !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH* !"#$%&'()*+,-./01234567:89;<=>?@ABCDEFGH*<=>789:;?@AB23456C*+,-./01DE&'()F#$%G !"H !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHNone0579:;ZJoins two Maybe lists[$Takes the right value, if Just thereOPQRSTUVWXYZ[\]^_`abc#OPQRSTUVWXYZ[\]^_`abcOPQRSTUVWXYZ[\]^_`abcOPQRSTUVWXYZ[\]^_`abcNone %&0579:; defghijklm&  defghijkl)fghijkldem   defghijklmNone %&/0579:;SqlIdIdable7opqrstuvwxyz{|}~opqrstuvwxyz{|}~7~}yz{|wxuvstqrop+opqrstuvwxyz{|}~!None0579:;g  OPQRSTUVWXYZ[\]^_`abcdefghijklopqrstuvwxyz{|}~None0579:; None0579:;None0579:;BDomains are aliases of an existing SQL types, possibly with checks None0579:; )description what the function is good forBreturn type of the function, TABLE is special (see return_columns)parameters the function takes)list of templates, used for this function/loaded templates, not designed for use via YamlTODO: move to xfunctionInternalGif return is TABLE, gives the columns that are returned (see parameter)9variables that are defined (ignored if language is given)3Role that has the privilege to execute the functionIf true, the function is executed with the privileges of the owner! | Owner has to be given, if this is true (not implemented yet!)owner of the functionlanguage in which the body is written if not defined, pgsql is assumed an variables must be defined via variables if pgsql is given explicitly, variables are your problem...the code of the function (body)##  None0579:;    None0579:;"#$%&'()*+,-./0 "#$%&'()*+,-$%&'()*+,-0/"#."#$ %&'()*+,-./0 None0579:;H6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|};6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopH`abcdefghijklmno}|^_{RSTUVWXYZ[\]zyFGHIJKLMNOPQxwDEvp@ABCut89:;<=>?sr67q6789:;<=>?@ABCDEF GHIJKLMNOPQR STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} None0579:;  None %&0579:;#"#$%&'()*+,-6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop "None0579:;opqrstuvwxyz{|}~"#$%&'()*+,-6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopNone %&0579:;0More like always perform unfiltered after deleteA     :  A     )     None 0579:;T !"#$% !"#$% !"#$%  !"#$%None %&0579:;)#Template handling and applyTemplate+Setup"'()*+,-./0123456789:;<=>?@ABCDEFGH'()*+,-./0123456789:;<=>?@ABC"9:;5678H34+,-./012GF<)*'(ED=>?@ABC'()*+,-./0123456789:;<=>?@ABCDEFGHNone0579:;P List SEQUENCEQ List TABLERList TABLE COLUMNS List TYPET List ROLE MNOPQRSTUV MNOPQRSTUV MNOPQRSTUV MNOPQRSTUVNone0579:;WXWXWXWX#None0579:;o !"#$%&'()*+,-./01234567:89;<=>?@ABCDEFGHOPQRSTUVWXYZ[\]^_`abcopqrstuvwxyz{|}~"#$%&'()*+,-6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop  '()*+,-./0123456789:;<=>?@ABCWXNone0579:;YZ[YZYZ[YZ[None0579:;\]\]\]\]None0579:;^_`^_^_`^_`None0579:;abcababcabcNone0579:;deddedeNone0579:;fAssuming that CASCADE will only cause other constraints to be deleted. | Required since foreign keys may depend on other keys.fghifgfgfghiNone0579:;jjjNone0579:;kkkNone0579:;tcreate databaseuSetup lmnopqrstuvwx lmnopqrstuv pqnoxlmwrstuv lmnopqrstuvwxNone0579:;}~}~}~}~None 0579:;T)Statements that still need to be executed,Statements that have failed during executionstatmentSQL ids that should become a  SqlStmtId type to useStatement ids to remove0install statements and the stmt type of interestdeployed (existing) elementsdrop statment generator.install statements, representing desired stateNone 0579:;$None0579:; !"#$%&'()*+,-./01234567:89;<=>?@ABCDEFGHOPQRSTUVWXYZ[\]^_`abc   !"#$%lmnopqrstuv}~None0579:;%&'%()%(*%+,-./01201301401506706806906:06;06<%&=%&>%&?%&@%&A%&B%&C%&D%&E%&F%&G%&H%&I%&J%(K%(LMMNOPPQRRSTUUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'() * * + + , - . / 0 1 2 3 4 5 6 7 8 9 : : ; ; < = > ? @ A B C D E F G H I J K L L M M N O P Q R S T T U V W W X X Y Z [ \ ] ^ _ ` a b c c d e f g h i j k l m n n o o p q r s t u v w x y z { | } ~                                                                                  1                    !"#$%&'()*+,-./001123456789::;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab^cd^e^fg^h^^iijjklmnopqrstuvwxyz{|}~             %%%%%%%%%%%%  %hamsql-0.8.0.0-3odSe2l79FgLCGfN2lHmnuDatabase.YamSql.ParserDatabase.HamSql.Internal.UtilsDatabase.HamSql.Internal.OptionDatabase.YamSql.Internal.SqlId Database.YamSql.Internal.Commons"Database.YamSql.Internal.Obj.Check#Database.YamSql.Internal.Obj.Domain%Database.YamSql.Internal.Obj.Function!Database.YamSql.Internal.Obj.Role%Database.YamSql.Internal.Obj.Sequence"Database.YamSql.Internal.Obj.Table!Database.YamSql.Internal.Obj.Type#Database.YamSql.Internal.Obj.SchemaDatabase.HamSql.Internal.Stmt Database.HamSql.Internal.DbUtilsDatabase.HamSql.Setup(Database.HamSql.Internal.InquireDeployed%Database.HamSql.Internal.Stmt.Commons$Database.HamSql.Internal.Stmt.Domain"Database.HamSql.Internal.Stmt.Drop&Database.HamSql.Internal.Stmt.Function"Database.HamSql.Internal.Stmt.Role&Database.HamSql.Internal.Stmt.Sequence#Database.HamSql.Internal.Stmt.Table$Database.HamSql.Internal.Stmt.Schema"Database.HamSql.Internal.Stmt.Type$Database.HamSql.Internal.Stmt.CreateDatabase.HamSql.Internal.Load$Database.HamSql.Internal.PostgresCon&Database.HamSql.Internal.DocumentationDatabase.HamSql.Cli Paths_hamsqlDatabase.YamSql.Internal.BasicDatabase.YamSql#Database.HamSql.Internal.Stmt.BasicDatabase.HamSqlbase Data.DataData GHC.GenericsGenericRep Data.Monoid<>#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText$aeson-1.0.1.0-3tMWhptxUFZKFOuFribGIxData.Aeson.Types.FromJSONgenericParseJSON parseJSONList parseJSONFromJSONData.Aeson.Types.ToJSON genericToJSONtoEncodingList toJSONList toEncodingtoJSONToJSONgmapMogmapMpgmapMgmapQigmapQgmapQrgmapQlgmapT dataCast2 dataCast1 dataTypeOftoConstrgunfoldgfoldltofromOptDoc optOutputDir optTemplate OptNoCommand optVersion OptInstalloptDeleteExistingDatabaseoptDeleteResidualRoles OptCommonDb optEmulateoptPrint optConnectionoptPermitDataDeletion optSqlLogoptSqlLogHideRollbacks OptCommonoptSetup optVerboseoptDebugCommandInstallUpgradeDoc NoCommandboolFlagvalparserInfoHamsql parserCommandparserCmdInstallparserCmdUpgrade parserCmdDocparserOptCommonjustStrparserOptCommonDbparserOptInstallparserOptNoCommand parserOptDoc$fShowOptCommon$fShowOptCommonDb$fShowOptInstall$fShowOptNoCommand $fShowOptDoc $fShowCommandjoinerrwarnwarn'msgmsg'infodebugremoveDuplicatesmaybeMap maybePrefix maybeJoin maybeRightfromJustReasonselectUniqueReasontshowshowCodetrisIn<-><\>YamsqlExceptionremoveFirstPartsnakeifymyOptoutJson forceToJson parseYamSql toYamSqlJson$fExceptionYamsqlException$fShowYamsqlExceptionSqlTypeSqlNameSqlIdentifierConcat// ToSqlName toSqlName ToSqlCode toSqlCodeSqlObj sqlObjTypesqlObjId SqlObjType SqlContextSqlId SqlIdContentToSqlIdsqlId sqlIdCode sqlIdShowType sqlIdTypeCodeunsafePlainName<.> expSqlName contSqlName toSqlCode'$fToJSONSqlType$fFromJSONSqlType$fToJSONSqlName$fFromJSONSqlName$fMonoidSqlName$fSqlIdentifierConcatSqlType$fToSqlCodeSqlType$fSqlIdentifierConcatSqlName$fToSqlCodeSqlName $fEqSqlName$fToSqlCode(,,)$fSqlIdContent(,,)$fToSqlCode(,)$fSqlIdContent(,)$fToSqlCode(,)0$fSqlIdContent(,)0$fSqlIdContentSqlName$fToSqlCodeSqlObj $fEqSqlObj$fToSqlIdSqlObj$fShowSqlContext$fToSqlCodeSqlId$fToSqlIdSqlId $fOrdSqlId $fEqSqlId$fGenericSqlName $fOrdSqlName $fShowSqlName $fDataSqlName$fGenericSqlType $fShowSqlType $fEqSqlType $fDataSqlType $fShowSqlObj $fShowSqlId Parameter parameterNameparameterDescription parameterTypeVariable variableNamevariableDescription variableTypevariableDefault$fToJSONParameter$fFromJSONParameter$fToJSONVariable$fFromJSONVariable$fGenericVariable$fShowVariable$fDataVariable$fGenericParameter$fShowParameter$fDataParameterCheck checkNamecheckDescription checkCheck $fToJSONCheck$fFromJSONCheck$fGenericCheck $fShowCheck $fDataCheckSQL_DOMAIN_CONSTRAINT SQL_DOMAINDomain domainNamedomainDescription domainType domainDefault domainChecks $fToSqlCodeSQL_DOMAIN_CONSTRAINT$fToSqlCodeSQL_DOMAIN$fToJSONDomain$fFromJSONDomain$fGenericDomain $fShowDomain $fDataDomain$fSqlObjTypeSQL_DOMAIN$fShowSQL_DOMAIN!$fSqlObjTypeSQL_DOMAIN_CONSTRAINT$fShowSQL_DOMAIN_CONSTRAINT FunctionTplfunctiontplTemplatefunctiontplDescriptionfunctiontplLanguagefunctiontplParametersfunctiontplVariablesfunctiontplPrivExecutefunctiontplSecurityDefinerfunctiontplOwnerfunctiontplBodyPreludefunctiontplBodyPostlude SQL_FUNCTIONFunction functionNamefunctionDescriptionfunctionReturnsfunctionParametersfunctionTemplatesfunctionTemplateDatafunctionReturnsColumnsfunctionVariablesfunctionPrivExecutefunctionSecurityDefiner functionOwnerfunctionLanguage functionBodyapplyFunctionTpl$fToJSONFunctionTpl$fFromJSONFunctionTpl$fToSqlCodeSQL_FUNCTION$fToJSONFunction$fFromJSONFunction$fSqlObjTypeSQL_FUNCTION$fShowSQL_FUNCTION$fGenericFunctionTpl$fShowFunctionTpl$fDataFunctionTpl$fGenericFunction$fShowFunction$fDataFunctionSQL_ROLERoleroleNameroleDescription roleLogin rolePassword roleMemberIn$fToSqlIdSqlContext$fToSqlCodeSQL_ROLE $fToJSONRole$fFromJSONRole $fGenericRole $fShowRole $fDataRole$fSqlObjTypeSQL_ROLE$fShowSQL_ROLE SQL_SEQUENCESequence sequenceNamesequenceIncrementsequenceMinValuesequenceMaxValuesequenceStartValue sequenceCache sequenceCyclesequenceOwnedByColumn$fToSqlCodeSQL_SEQUENCE$fToJSONSequence$fFromJSONSequence$fGenericSequence$fShowSequence$fDataSequence$fSqlObjTypeSQL_SEQUENCE$fShowSQL_SEQUENCESQL_TABLE_CONSTRAINT ForeignKeyforeignkeyNameforeignkeyColumnsforeignkeyRefTableforeignkeyRefColumnsforeignkeyOnDeleteforeignkeyOnUpdate UniqueKey uniquekeyNameuniquekeyColumns SQL_COLUMNColumn columnName columnTypecolumnDescription columnDefault columnNullcolumnReferencescolumnOnRefDeletecolumnOnRefUpdate columnUnique columnChecksTableTpltabletplTemplatetabletplDescriptiontabletplForeignKeystabletplInheritstabletplColumnstabletplCheckstabletplPrivSelecttabletplPrivInserttabletplPrivUpdatetabletplPrivDelete SQL_TABLETable tableNametableDescription tableColumnstablePrimaryKey tableUniquetableForeignKeys tableChecks tableInheritstablePrivSelecttablePrivInserttablePrivUpdatetablePrivDeletetableTemplatestableTemplateData applyTableTpl$fToSqlCodeSQL_TABLE_CONSTRAINT$fToJSONForeignKey$fFromJSONForeignKey$fToJSONUniqueKey$fFromJSONUniqueKey$fToSqlCodeSQL_COLUMN$fToJSONColumn$fFromJSONColumn$fToJSONTableTpl$fFromJSONTableTpl$fToSqlCodeSQL_TABLE $fToJSONTable$fFromJSONTable$fSqlObjTypeSQL_TABLE$fShowSQL_TABLE$fGenericColumn $fShowColumn $fDataColumn$fSqlObjTypeSQL_COLUMN$fShowSQL_COLUMN$fGenericUniqueKey$fShowUniqueKey$fDataUniqueKey$fGenericForeignKey$fShowForeignKey$fDataForeignKey$fGenericTableTpl$fShowTableTpl$fDataTableTpl $fDataTable$fGenericTable $fShowTable $fSqlObjTypeSQL_TABLE_CONSTRAINT$fShowSQL_TABLE_CONSTRAINTSQL_TYPE TypeElementtypeelementNametypeelementTypeTypetypeNametypeDescription typeElements$fToSqlCodeSQL_TYPE$fToJSONTypeElement$fFromJSONTypeElement $fToJSONType$fFromJSONType$fGenericTypeElement$fShowTypeElement$fDataTypeElement $fGenericType $fShowType $fDataType$fSqlObjTypeSQL_TYPE$fShowSQL_TYPESchema schemaNameschemaDescriptionschemaDependenciesschemaFunctionsschemaFunctionTemplates schemaTablesschemaTableTemplates schemaRolesschemaSequencesschemaPrivUsageschemaPrivSelectAllschemaPrivInsertAllschemaPrivUpdateAllschemaPrivDeleteAllschemaPrivSequenceAllschemaPrivExecuteAllschemaPrivAllAll schemaDomains schemaTypesschemaExecPostInstallschemaExecPostInstallAndUpgrade$fToSqlIdSqlContext0$fToSqlIdSqlContext1$fToSqlIdSqlContext2$fToSqlIdSqlContext3$fToSqlIdSqlContext4$fToSqlIdSqlContext5$fToSqlCodeSQL_SCHEMA$fToJSONSchema$fFromJSONSchema$fGenericSchema $fShowSchema $fDataSchema$fSqlObjTypeSQL_SCHEMA$fShowSQL_SCHEMA SqlStmtTypeSqlDropDatabaseSqlCreateDatabaseSqlPre SqlPreInstallSqlRevokePrivilege SqlDropRole SqlCreateRole SqlAlterRoleSqlRoleMembershipSqlCreateSchemaSqlCreateDomain SqlCreateTypeSqlDropTableConstrSqlDropDomainConstrSqlDropSequenceSqlDropTableColumn SqlDropTableSqlDropFunctionSqlCreateSequenceSqlCreateTable SqlAddColumn SqlAlterTableSqlDropColumnDefaultSqlAlterColumnSqlAlterSequence SqlDropDomain SqlDropTypeSqlCreateFunction SqlInheritSqlAddTableConstrSqlCreatePrimaryKeyConstrSqlCreateUniqueConstrSqlCreateForeignKeyConstrSqlCreateCheckConstr SqlAddDefaultSqlCreateTriggerSqlPriv SqlCommentSqlUnclassifiedSqlPostInstallAndUpgradeSqlPostInstallSqlStmt SqlStmtIdstmtType stmtSqlIdstmtIdstmtBody stmtIdTypestmtDesc newSqlStmtId newSqlStmt sqlPrinterallowInUpgradestmtRequiresPermitDeletiontoSqlCodeString$fToSqlCodeSqlStmt$fFromFieldSqlName$fFromFieldSqlType$fToSqlIdSqlStmt $fOrdSqlStmt $fEqSqlStmt$fShowSqlStmtId$fEqSqlStmtType$fOrdSqlStmtType$fShowSqlStmtType $fEqSqlStmtId$fOrdSqlStmtId $fShowSqlStmtStatusInitChanged Unchanged PgSqlModePgSqlWithoutTransactionPgSqlWithTransactiontoQrylogStmt getConUrl pgsqlExecStmtpgsqlExecStmtHandledpgsqlConnectUrlpgsqlHandleErr $fEqPgSqlModeWithNamename WithSchemaSetup setupSchemassetupSchemaDirssetupRolePrefix setupPreCode setupPostCodesetupSchemaData ToSqlStmts toSqlStmts SetupElement setupElementsetupElementSource SetupContextsetupContextSetupsetupRolePrefix' withoutSchemaselectTemplatesselectTemplatesetupAllSchemassetupAllFunctionTemplatessetupAllTableTemplatesapplyTpl$fWithNameWithSchema$fWithNameWithSchema0 $fToJSONSetup$fFromJSONSetup$fToSqlStmtsSetupElement$fGenericSetup $fShowSetup $fDataSetup$fShowWithSchemasqlManageSchemaJoindeployedTableConstrIdsdeployedDomainConstrIdsdeployedSequenceIdsdeployedTableIdsdeployedTableColumnIdsdeployedTypeIdsdeployedRoleIdsdeployedDomainIdsdeployedFunctionIds stmtCommentOn prefixedRolestmtsDropDomainstmtsDropDomainConstr$fToSqlStmtsSqlContextstmtsDropTable stmtsDropTypestmtsDropFunction'stmtsDropFunction stmtsDropRolestmtsDropAllPrivilegesstmtsDropSequencestmtsDropTableConstrstmtsDropTableColumn$fToSqlStmtsSqlContext0 SQL_DATABASE SQL_OTHERfafb emptyNamesqlAddTransactsqlCreateDatabasegetSetupStatementsgetSchemaStatements$fToSqlCodeSQL_DATABASE$fToSqlCodeSQL_OTHER$fSqlObjTypeSQL_OTHER$fShowSQL_OTHER$fSqlObjTypeSQL_DATABASE$fShowSQL_DATABASE loadSetuploadSetupSchemas loadSchemasfindSchemaPath catchErrorsisConfigDirFile getFilesInDirselectFilesInDir errorCheck readSchemareadObjectFromFile readObjectreadFunctionFromFilereadYamSqlFilesqlErrInvalidFunctionDefinitionpgsqlGetFullStatementspgsqlDeleteAllStmtpgsqlUpdateFragilerevokeAllPrivilegespgsqlDropAllRoleStmtspgsqlExecWithoutTransact pgsqlExecpgsqlExecAndRollbackpgsqlExecStmtListpgsqlExecInternaddSqlStmtTypefilterSqlStmtTyperemoveStmtsMatchingIdsremoveSqlIdBySqlStmtscorrectStatementsaddDropResidualtemplateFromFiletemplateCompiledocWritedocWriteSchematemplateDefaultSchema parseArgv parseThisArgvruncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameGHC.BaseMaybeNothingJust Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybe SQL_SCHEMAconstrId stmtCheck parserPrefs useSqlStmts