?yB"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./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[\]^_`abcd$/0123456789:OPQRSTUVWXYZ[\]^_`abcdOPQRSTUVWXYZ[\]^_`abcdOPQRSTUVWXYZ[\]^_`abcdNone %&0579:; efghijklmn&   efghijklm)ghijklmefn    efghijklmnNone %&/0579:;SqlIdIdable7pqrstuvwxyz{|}~pqrstuvwxyz{|}~7~z{|}xyvwturspq+pqrstuvwxyz{|}~None0579:;h/01   23456789:OPQRSTUVWXYZ[\]^_`abcdefghijklmpqrstuvwxyz{|}~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)#ABCDE ABCDENone0579:;FGHIJ FGHIJNone0579:;  KLM      KLMNone0579:;H    !"#$%&'()*+,-./0123456789:;<=>?@ABCDENOPQRSTUVWXYZ;    !"#$%&'()*+,-./0123456789:;<=>?@ABCDE     !"#$%&' ()*+,-./0123456789:;<=>?@ABCDENOPQRSTUVWXYZNone0579:;FGHIJKLMNOP[\]^_ FGHIJKLMNOPFGHIJKLMNOP[\]^_None %&0579:;#QRSTUVWXYZ[\]^_`abcdefghi`abcdefghi      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi QRSTUVWXYZ[\]^_`abcdefghi`abcdefghiNone0579:;pqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiSTUVWXYZ[\]^_`abcdefghiQR  56789:;<=>?@ABCD34'()*+,-./012 !"#$%&E   LMNOPHIJKFGNone %&0579:;0More like always perform unfiltered after deleteBjklmnopqrstuvwxyz{|}~;jnk|{lmopqrstuvwxyz}~Bjklmnopqrstuvwxyz{|}~j*klmnopqrstuvwxyz{|}~None %&0579:;#Template handling and applyTemplateSetup!!None0579:;jkjkjkNone0579:;t/0123456789: !"#$%&'()*+,-./01234567:89;<=>?@ABCDEFGHOPQRSTUVWXYZ[\]^_`abcdpqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijnk|{lmopqrstuvwxyz}~jkNone0579:;lcreate databasemnlomnlmnloNone0579:;pqrpqpqrNone0579:;stuststuNone0579:;vwxyvwxvwxy None0579:;zz!None0579:;{|{{|"None0579:;}Assuming that CASCADE will only cause other constraints to be deleted. | Required since foreign keys may depend on other keys.}~}~}~#None0579:;$None0579:;Setup  None0579:; None 0579:; None 0579:;T  None0579:; List SCHEMA List SEQUENCE List TABLEList TABLE COLUMN  List TYPE  List ROLE  List DOMAIN                     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 remove#stmts to be considered by stmt type!stmts that have the forbidden ids0install statements and the stmt type of interestdeployed (existing) elementsdrop statment generator.install statements, representing desired state None0579:;/0123456789: !"#$%&'()*+,-./01234567:89;<=>?@ABCDEFGHOPQRSTUVWXYZ[\]^_`abcdjnk|{lmopqrstuvwxyz}~None0579:; ! !!  !%&'%()%(*%+,-./01201301401501601708908:08;08<%&=%&>%&?%&@%&A%&B%&C%&D%&E%&F%&G%&H%&I%&J%(K%(LMMNOPPQRRSTUUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !!"#$%&'(()*++,,-./01234567789:;<=>?@ABBCCDEFGHIJKLMNOPQRSSTTUVWWXYZ[[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~$$$$$$$$                                                !"#$%&'()*+,-./%01%02%03%45%46%47%48%49%4:%4;%4<%4=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abJcdefghijklmnoopqrstusvwxs s!y!s"z"{"|"}"~"s"##s$%hamsql-0.9.0.0-Awb9FWiLMC5A5FEzDLLpRcDatabase.YamSql.ParserDatabase.HamSql.Internal.UtilsDatabase.HamSql.Internal.OptionDatabase.YamSql.Internal.SqlId Database.YamSql.Internal.CommonsDatabase.YamSqlDatabase.HamSql.Internal.StmtDatabase.HamSql.SetupDatabase.HamSqlDatabase.HamSql.Internal.Load&Database.HamSql.Internal.Documentation Database.HamSql.Internal.DbUtils(Database.HamSql.Internal.InquireDeployed$Database.HamSql.Internal.PostgresConDatabase.HamSql.Cli Paths_hamsqlDatabase.YamSql.Internal.Basic"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.Schema%Database.HamSql.Internal.Stmt.Commons#Database.HamSql.Internal.Stmt.Basic&Database.HamSql.Internal.Stmt.Database$Database.HamSql.Internal.Stmt.Domain&Database.HamSql.Internal.Stmt.Function"Database.HamSql.Internal.Stmt.Role$Database.HamSql.Internal.Stmt.Schema&Database.HamSql.Internal.Stmt.Sequence#Database.HamSql.Internal.Stmt.Table"Database.HamSql.Internal.Stmt.Type$Database.HamSql.Internal.Stmt.Createbase Data.DataData GHC.GenericsGenericRep Data.Monoid<>#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText$aeson-1.0.2.1-JhZNpAmlJ04FJVjHHUBYQAData.Aeson.Types.ToJSON genericToJSONtoEncodingList toJSONList toEncodingtoJSONToJSONData.Aeson.Types.FromJSONgenericParseJSON parseJSONList parseJSONFromJSONgmapMogmapMpgmapMgmapQigmapQgmapQrgmapQlgmapT 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 maybeRightfromJustReasonselectUniqueReasontshowshowCode maybeHeadtrisIn<-><\>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 checkCheckSQL_DOMAIN_CONSTRAINT SQL_DOMAINDomain domainNamedomainDescription domainType domainDefault domainChecks FunctionTplfunctiontplTemplatefunctiontplDescriptionfunctiontplLanguagefunctiontplParametersfunctiontplVariablesfunctiontplPrivExecutefunctiontplSecurityDefinerfunctiontplOwnerfunctiontplBodyPreludefunctiontplBodyPostlude SQL_FUNCTIONFunction functionNamefunctionDescriptionfunctionReturnsfunctionParametersfunctionTemplatesfunctionTemplateDatafunctionReturnsColumnsfunctionVariablesfunctionPrivExecutefunctionSecurityDefiner functionOwnerfunctionLanguage functionBodyapplyFunctionTplSQL_ROLE_MEMBERSHIPSQL_ROLERoleroleNameroleDescription roleLogin rolePassword roleMemberIn SQL_SEQUENCESequence sequenceNamesequenceIncrementsequenceMinValuesequenceMaxValuesequenceStartValue sequenceCache sequenceCyclesequenceOwnedByColumnSQL_TABLE_CONSTRAINT ForeignKeyforeignkeyNameforeignkeyColumnsforeignkeyRefTableforeignkeyRefColumnsforeignkeyOnDeleteforeignkeyOnUpdate UniqueKey uniquekeyNameuniquekeyColumns SQL_COLUMNColumn columnName columnTypecolumnDescription columnDefault columnNullcolumnReferencescolumnOnRefDeletecolumnOnRefUpdate columnUnique columnChecksTableTpltabletplTemplatetabletplDescriptiontabletplForeignKeystabletplInheritstabletplColumnstabletplCheckstabletplPrivSelecttabletplPrivInserttabletplPrivUpdatetabletplPrivDelete SQL_TABLETable tableNametableDescription tableColumnstablePrimaryKey tableUniquetableForeignKeys tableChecks tableInheritstablePrivSelecttablePrivInserttablePrivUpdatetablePrivDeletetableTemplatestableTemplateData applyTableTplSQL_TYPE TypeElementtypeelementNametypeelementTypeTypetypeNametypeDescription typeElements SQL_SCHEMASchema schemaNameschemaDescriptionschemaDependenciesschemaFunctionsschemaFunctionTemplates schemaTablesschemaTableTemplates schemaRolesschemaSequencesschemaPrivUsageschemaPrivSelectAllschemaPrivInsertAllschemaPrivUpdateAllschemaPrivDeleteAllschemaPrivSequenceAllschemaPrivExecuteAllschemaPrivAllAll schemaDomains schemaTypesschemaExecPostInstallschemaExecPostInstallAndUpgrade SqlStmtTypeSqlDropDatabaseSqlCreateDatabaseSqlPre SqlPreInstallSqlRevokePrivilegeSqlRevokeMembership SqlDropRole SqlCreateRole SqlAlterRoleSqlGrantMembershipSqlCreateSchemaSqlCreateDomain 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 $fShowSqlStmtWithNamename WithSchemaSetup setupSchemassetupSchemaDirssetupRolePrefix setupPreCode setupPostCodesetupSchemaData ToSqlStmts toSqlStmts SetupElement setupElement SetupContextsetupContextSetupsetupRolePrefix' withoutSchemaselectTemplatesselectTemplatesetupAllSchemassetupAllFunctionTemplatessetupAllTableTemplatesapplyTpl$fWithNameWithSchema$fWithNameWithSchema0 $fToJSONSetup$fFromJSONSetup$fToSqlStmtsSetupElement$fGenericSetup $fShowSetup $fDataSetup$fShowWithSchema SQL_OTHERallSchemaElementselementsToStmts emptyNamesqlAddTransactgetSetupStatementsgetSchemaStatements loadSetuploadSetupSchemas loadSchemasfindSchemaPath catchErrorsisConfigDirFile getFilesInDirselectFilesInDir errorCheck readSchemareadObjectFromFile readObjectreadFunctionFromFilereadYamSqlFiletemplateFromFiletemplateCompiledocWritedocWriteSchematemplateDefaultSchemaStatusInitChanged Unchanged PgSqlModePgSqlWithoutTransactionPgSqlWithTransactionsqlErrObjectInUsetoQrylogStmt getConUrl pgsqlExecStmtpgsqlExecStmtHandledpgsqlConnectUrlpgsqlHandleErr $fEqPgSqlModesqlManageSchemaJoindeployedTableConstrIdsdeployedDomainConstrIdsdeployedSchemaIdsdeployedSequenceIdsdeployedTableIdsdeployedTableColumnIdsdeployedTypeIdsdeployedRoleIdsdeployedRoleMemberIdsdeployedDomainIdsdeployedFunctionIdssqlErrInvalidFunctionDefinitionpgsqlGetFullStatementspgsqlDeleteAllStmtpgsqlUpdateFragilerevokeAllPrivilegespgsqlDropAllRoleStmtspgsqlExecWithoutTransact pgsqlExecpgsqlExecAndRollbackpgsqlExecStmtListpgsqlExecInternaddSqlStmtTypefilterSqlStmtTypefilterStmtsMatchingIdsfilterSqlIdBySqlStmtscorrectStatementsaddDropResidual parseArgv parseThisArgvruncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameGHC.BaseMaybeNothingJust Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybe $fToJSONCheck$fFromJSONCheck $fToSqlCodeSQL_DOMAIN_CONSTRAINT$fToSqlCodeSQL_DOMAIN$fToJSONDomain$fFromJSONDomain$fToJSONFunctionTpl$fFromJSONFunctionTpl$fToSqlCodeSQL_FUNCTION$fToJSONFunction$fFromJSONFunction$fToSqlCodeSQL_ROLE_MEMBERSHIP$fToSqlIdSqlContext$fToSqlCodeSQL_ROLE $fToJSONRole$fFromJSONRole$fToSqlCodeSQL_SEQUENCE$fToJSONSequence$fFromJSONSequence$fToSqlCodeSQL_TABLE_CONSTRAINT$fToJSONForeignKey$fFromJSONForeignKey$fToJSONUniqueKey$fFromJSONUniqueKey$fToSqlCodeSQL_COLUMN$fToJSONColumn$fFromJSONColumn$fToJSONTableTpl$fFromJSONTableTpl$fToSqlCodeSQL_TABLE $fToJSONTable$fFromJSONTable$fToSqlCodeSQL_TYPE$fToJSONTypeElement$fFromJSONTypeElement $fToJSONType$fFromJSONType$fToSqlIdSqlContext0$fToSqlIdSqlContext1$fToSqlIdSqlContext2$fToSqlIdSqlContext3$fToSqlIdSqlContext4$fToSqlIdSqlContext5$fToSqlCodeSQL_SCHEMA$fToJSONSchema$fFromJSONSchema stmtCommentOn prefixedRolestmtsCreateDatabase SQL_DATABASE$fToSqlCodeSQL_DATABASEstmtsDropDomainstmtsDropDomainConstr$fToSqlStmtsSqlContextstmtsDropFunction'stmtsDropFunction stmtsDropRolestmtsDropAllPrivilegesstmtRevokeMembershipstmtsDropSequencestmtsDropTableConstrstmtsDropTablestmtsDropTableColumnconstrId stmtCheck$fToSqlStmtsSqlContext0 stmtsDropType$fToSqlCodeSQL_OTHER parserPrefs useSqlStmts