úÎ!ĘôĀĀĒ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠNone "#%047;<X_6 tmp-postgresN is the low level configuration necessary for creating a database starting postgres@ and creating a database. There is no validation done on the E. It is recommend that one use the higher level functions such as . which will generate plans that are valid. ^s are used internally but are exposed if the higher level plan generation is not sufficent. tmp-postgresThe output of calling %.  tmp-postgresConnection options  tmp-postgrespostgres process handle  tmp-postgresPostgresPlan is used be % to start the postgres& and then attempt to connect to it. tmp-postgresThe process config for postgres tmp-postgres(Connection options. Used to verify that postgres is ready. tmp-postgresc contains the configuration necessary for starting a process. It is essentially a stripped down Ē. tmp-postgresEnvironment variables tmp-postgresCommand line arguements tmp-postgresThe Ģ for standard input tmp-postgresThe Ģ for standard output tmp-postgresThe Ģ for standard error tmp-postgresA way to log internal s tmp-postgres’A list of failures that can occur when starting. This is not and exhaustive list but covers the errors that the system catches for the user. tmp-postgrespostgresZ failed before a connection succeeded. Most likely this is due to invalid configuration tmp-postgresinitdbV failed. This can be from invalid configuration or using a non-empty data directory tmp-postgrescreatedbW failed. This can be from invalid configuration or the database might already exist. tmp-postgresThe ! was missing info and a complete  could not be created. tmp-postgresInternal events for debugging  tmp-postgrespostgres< is not ready until we are able to successfully connect.  ^ attempts to connect over and over again and returns after the first successful connection.! tmp-postgres-Start a process interactively and return the Ŧ" tmp-postgres7Start a process and block until it finishes return the ­.# tmp-postgresForce all connections to the database to close. Can be useful in some testing situations. Called during shutdown as well.$ tmp-postgres Stop the postgres> process after attempting to terminate all the connections.% tmp-postgres Start the postgresq process and block until a successful connection occurs. A separate thread we continously check to see if the postgres process has& tmp-postgresA simple helper to throw ­s when they are Ž.' tmp-postgres' optionally calls initdb, optionally calls createdb and unconditionally calls postgresQ. Additionally it writes a "postgresql.conf" and does not return until the postgres process is ready. See % for more details.( tmp-postgres Stop the postgres process. See $ for more details.! tmp-postgres Process name tmp-postgresProcess config" tmp-postgres Process name tmp-postgresProcess config)  !"#$%&'() !"  #$%&'(None "#%047;<X_‡ū20 tmp-postgres7The high level options for overriding default behavior.2 tmp-postgresEExtend or replace any of the configuration used to create a final 3 tmp-postgresOverride the default J by setting this.4 tmp-postgresROverride the default temporary data directory by passing in 'Permanent DIRECTORY'5 tmp-postgres_A monoid for using an existing port (via 'Just PORT_NUMBER') or requesting a free port (via a ¯)6 tmp-postgres6[ holds a description of the temporary folders (if there are any) and includes the final  that can be used with ' . See n# for an example of how to create a 6.8 tmp-postgresFinal . See ' for information on s9 tmp-postgresThe JL. Used to track if a temporary directory was made as the socket location.: tmp-postgresDThe data directory. Used to track if a temporary directory was used.; tmp-postgresThe monoidial version of B. Used to combine overrides with defaults when creating a plan.C tmp-postgresPartialPostgresPlanE tmp-postgresMonoid for the postgres ProcessConfig.F tmp-postgresMonoid for the postgres client connection options.G tmp-postgresThe monoidial version of J=. Used to combine overrides with defaults when creating a J8. The monoid instance treats 'PUnixSocket mempty' as ° and combines theH tmp-postgres1The monoid for combining IP address configurationI tmp-postgres2The monoid for combining UNIX socket configurationJ tmp-postgres4A type for configuring the listening address of the postgres process. postgres¤ can listen on several types of sockets simulatanously but we don't support that behavior. One can either listen on a IP based socket or a UNIX domain socket.K tmp-postgresIP socket type. The ąG is either an IP address or a host that will resolve to an IP address.L tmp-postgresUNIX domain socketM tmp-postgresThe monoidial version of P=. Used to combine overrides with defaults when creating a P . The monoid instance treats O as ° and takes the last N value.N tmp-postgres.A permanent file that should not be generated.O tmp-postgres)A temporary file that needs to generated.P tmp-postgresGA type to track whether a file is temporary and needs to be cleaned up.S tmp-postgresThe monoidial version of =. Used to combine overrides with defaults when creating a .U tmp-postgres<A monoid for combine environment variables or replacing themV tmp-postgres=A monoid for combine command line arguments or replacing themW tmp-postgres,A monoid for configuring the standard input ĢX tmp-postgres-A monoid for configuring the standard output ĢY tmp-postgres,A monoid for configuring the standard error ĢZ tmp-postgresZ5 is helper for overriding configuration values. It's ˛' instance let's one either combine the a of two Zs using ŗ via the \O constructor or one can wholly replace the value with the last value using the [ constructor. Roughly u x <> Replace y = Replace y Replace x <> Mappend y = Replace (x <> y) Mappend x <> Mappend y = Mappend (x <> y) ] tmp-postgresGet the value of a Z regardless if it is a [ or a \.^ tmp-postgresThe ^ sets the handles to ´, ĩ and ļD and inherits the environment variables from the calling process._ tmp-postgres4A helper to add more info to all the error messages.` tmp-postgres$A helper for creating an error if a ˇ is not defined.a tmp-postgresTurn a S into a %. Fails if any values are missing.b tmp-postgresGet the file path of a P, regardless if it is a Q or R type.c tmp-postgresEither create aR directory or do nothing to a Q one.d tmp-postgres1Either create a temporary directory or do nothinge tmp-postgresEither remove a R directory or do nothing to a Q one.f tmp-postgres9Create the extra config lines for listening based on the Jg tmp-postgresFMany processes require a "host" flag. We can generate one from the J.h tmp-postgresFGet the IP address, host name or UNIX domain socket directory as a ąi tmp-postgresTurn a G to a J . If the H is ¯% default to "127.0.0.1". If the is a ID optionally create a temporary directory if configured to do so.j tmp-postgres?Cleanup the UNIX socket temporary directory if one was created.k tmp-postgresTurn a C into a  %. Fails if any values are missing.l tmp-postgresTurn a ; into a ". Fails if any values are missing.m tmp-postgres Create a ;9 that sets the command line options of all processes (initdb, postgres and createdb ) using an tmp-postgres*Create all the temporary resources from a 0. This also combines the ; from m with the  extraConfig passed in.o tmp-postgres(Free the temporary resources created by np tmp-postgres"Attempt to create a config from a ¸. This is useful if want to create a database owned by a specific user you will also log in as among other use cases. It is possible some ¸S are not supported so don't hesitate to open an issue on github if you find one.m tmp-postgresport tmp-postgres7Whether to listen on a IP address or UNIX domain socket tmp-postgresThe postgres data directoryn tmp-postgres extraConfig to š after the default configE01543267:98;<BA@?>=CDFEGIHJLKMONPRQSTYXWVUZ\[]^_`abcdefghijklmnopqrstEZ\[]STYXWVU^_`aPRQbMONcdeJLKfghGIHijCDFEk;<BA@?>=l67:98015432mnopqrstNone "#%047;<X_ŧö˜ tmp-postgres,Handle for holding temporary resources, the postgres< process handle and postgres connection information. The ˜ also includes the final  that was used to start initdb, createdb and postgres.š tmp-postgres"Temporary resources and the final .› tmp-postgrespostgres+ process handle and the connection options.œ tmp-postgres Convert a ˜= to a connection string. Alternatively one can access the ¸ using /postgresProcessClientConfig . dbPostgresProcess tmp-postgresDefault postgres optionsž tmp-postgres˙The default configuration. This will create a database called "test" and create a temporary directory for the data and a temporary directory for a unix socket on a random port. If you would like to customize this behavior you can start with the ž% and overwrite fields or combine the 0 with another config using ŗ (š>). If you would like complete control over the behavior of initdb, postgres and createdb$ you can call the internal function '3 directly although this should not be necessary.Ÿ tmp-postgresŸ makes a default config with ^D. It is used by default but can be overriden by the extra config.  tmp-postgres2Create temporary resources and use them to make a 0. The generated 0 is combined with the passed in extraConfiguration to create a 2 that is used to create a database. The output ˜‰ includes references to the temporary resources for cleanup and the final plan that was used to generate the database and processesĄ tmp-postgres.Default start behavior. Equivalent to calling   with the žĸ tmp-postgres Stop the postgresO process and cleanup any temporary directories that might have been created.Ŗ tmp-postgresOnly stop the postgresu process but leave any temporary resources. Useful for testing backup strategies when used in conjunction with ¤ or ¨.¤ tmp-postgres Restart the postgres using the  from the ˜ (e.g. resourcesPlan . dbResources)Ĩ tmp-postgres>Reload the configuration file without shutting down. Calls pg_reload_conf().Ļ tmp-postgres1Exception safe default database create. Takes an action" continuation which is given a ˜" it can use to connect to (see œ or  q). All of the database resources are automatically cleaned up on completion even in the face of exceptions.§ tmp-postgres2Default expectation safe interface. Equivalent to Ļ the ž¨ tmp-postgresException safe version of ¤Š tmp-postgres"Attempt to create a config from a ¸. This is useful if want to create a database owned by a specific user you will also log in as among other use cases. It is possible some ¸  are not supported so don't hesitate to open an issue on github if you find one. This function works around a difficulty with appending options to the createdb plan by mappending to ž/ and optionally replacing the database name.  tmp-postgresextraConfiguration that is šed to the generated 0. The extra config is šed second, e.g. %generatedConfig <> extraConfigurationĻ tmp-postgresextraConfiguration. Combined with the generated 0. See   for more info tmp-postgresaction continuation§ tmp-postgresaction continuation.˜™›šœžŸ ĄĸŖ¤Ĩϧ¨Š˜™›šœžŸ ĄĸŖ¤Ĩϧ¨ŠNone "#%047;<X_žT 012345;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\˜™š›œž ĄĸŖ¤Ĩϧ¨ŠT˜™š›§ĻĄ ĸž¤Ŗ¨Ĩœ012345Z[\PQRMNOJKLGHISTUVWXYCDEF  ;<=>?@ABŠē      !"#$%&'()*+,-./012344567899:;<=>?@ABCCDEFGHIJKLMNOPQRRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•––—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢϧŦŠ­ŽŠ­¯Š°ąŠ˛ŗŠ˛´Š˛ĩŠ˛ļŠˇ¸ŠˇšŠˇēŠģŧŊžŋОĀÁ+tmp-postgres-1.0.1.0-CUC5RZIZGY812CXBinFJCj$Database.Postgres.Temp.Internal.Core'Database.Postgres.Temp.Internal.PartialDatabase.Postgres.Temp.InternalDatabase.Postgres.TempstartDatabase.Postgres.Temp.Partial PartialPlanPlan planLogger planInitDb planCreateDb planPostgres planConfigplanDataDirectoryPostgresProcesspostgresProcessClientConfigpostgresProcessHandle PostgresPlanpostgresPlanProcessConfigpostgresPlanClientConfig ProcessConfigprocessConfigEnvVarsprocessConfigCmdLineprocessConfigStdInprocessConfigStdOutprocessConfigStdErrLogger StartErrorStartPostgresFailed InitDbFailedCreateDbFailedCompletePlanFailedEvent StartPostgres WaitForDB waitForDB startProcessexecuteProcessterminateConnectionsstopPostgresProcessstartPostgresProcessthrowIfNotSuccessinitPlan shutdownPlan$fExceptionStartError $fShowEvent $fEqEvent $fOrdEvent$fShowStartError$fEqStartError$fOrdStartErrorConfig configPlan configSocket configDataDir configPort Resources resourcesPlanresourcesSocketresourcesDataDirpartialPlanLoggerpartialPlanInitDbpartialPlanCreateDbpartialPlanPostgrespartialPlanConfigpartialPlanDataDirectoryPartialPostgresPlan partialPostgresPlanProcessConfigpartialPostgresPlanClientConfigPartialSocketClass PIpSocket PUnixSocket SocketClassIpSocket UnixSocketPartialDirectoryType PPermanent PTemporary DirectoryType Permanent TemporaryPartialProcessConfigpartialProcessConfigEnvVarspartialProcessConfigCmdLinepartialProcessConfigStdInpartialProcessConfigStdOutpartialProcessConfigStdErrLastoidReplaceMappend getLastoidstandardProcessConfigaddErrorContext getOptioncompleteProcessConfig toFilePathinitDirectoryTypermDirIgnoreErrorsshutdownDirectoryTypesocketClassToConfigsocketClassToHostFlagsocketClassToHostinitPartialSocketClassshutdownSocketConfigcompletePostgresPlan completePlantoPlan initConfigshutdownResourcesoptionsToConfig optionsToPlan userToPlan dbnameToPlanhostToSocketClass$fMonoidLastoid$fSemigroupLastoid$fMonoidPartialDirectoryType$fSemigroupPartialDirectoryType$fMonoidPartialSocketClass$fSemigroupPartialSocketClass $fShowLastoid $fEqLastoid$fFunctorLastoid$fGenericPartialProcessConfig$fSemigroupPartialProcessConfig$fMonoidPartialProcessConfig$fShowDirectoryType$fEqDirectoryType$fOrdDirectoryType$fShowPartialDirectoryType$fEqPartialDirectoryType$fOrdPartialDirectoryType$fShowSocketClass$fEqSocketClass$fOrdSocketClass$fGenericSocketClass$fShowPartialSocketClass$fEqPartialSocketClass$fOrdPartialSocketClass$fGenericPartialSocketClass$fGenericPartialPostgresPlan$fSemigroupPartialPostgresPlan$fMonoidPartialPostgresPlan$fGenericPartialPlan$fSemigroupPartialPlan$fMonoidPartialPlan$fGenericConfig$fSemigroupConfig$fMonoidConfigDB dbResourcesdbPostgresProcesstoConnectionStringdefaultPostgresConfig defaultConfigstandardConfig startWithstop stopPostgresrestart reloadConfigwithPlanwith withRestartoptionsToDefaultConfigprocess-1.6.3.0System.Process.Common CreateProcessbaseGHC.IO.Handle.TypesHandle ProcessHandleGHC.IO.ExceptionExitCode ExitFailure GHC.MaybeNothingGHC.BasememptyString Semigroup<>GHC.IO.Handle.FDstdinstdoutstderr Data.MonoidLast/postgres-options-0.2.0.0-FEfVRHnVs2pG3RBcj4OWRP"Database.PostgreSQL.Simple.OptionsOptionsmappend