h$% m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                      Safe-Inferred  #$'(8O Safe-Inferred  #$'(8None  #$'(8postgresql-replicantConsume the rest of the Get a input as a ByteString Safe-Inferred  #$'(8postgresql-replicantControls how frequently the primaryKeepAlive thread updates PostgresSQL in ms    Types and parsers for LSNs(c) James King, 2020, 2021BSD3james@agentultra.com experimentalPOSIXNone  #$'(8postgresql-replicantFilepartpostgresql-replicantOffsetpostgresql-replicant"Convert an LSN to a 64-bit integerpostgresql-replicant"Convert a 64-bit integer to an LSNpostgresql-replicantNote that as of bytestring ~0.10.12.0 we don't have upper-case hex encoders but the patch to add them has been merged and when available we should switch to thempostgresql-replicantAdd a number of bytes to an LSNpostgresql-replicant&Subtract a number of bytes from an LSNpostgresql-replicantSubtract two LSN's to calculate the difference of bytes between them.  !Internal replication stream state(c) James King, 2020, 2021BSD3james@agentultra.com experimentalPOSIXNone  #$'(8 L%&'(+*),'(+*)%&,#Streaming replication message types(c) James King, 2020, 2021BSD3james@agentultra.com experimentalPOSIXNone  #$'(81postgresql-replicantReturn this LSN in your callback to update the stream state in replicant2postgresql-replicant0The list of WAL log changes in this transaction.8postgresql-replicantOccasionally the server may also send these for informational purposes and can be ignored. May be used internally.=postgresql-replicantRepresents a single delete query in the logical replication formatBpostgresql-replicantRepresents a single update query in the logical replication format.Gpostgresql-replicantRepresents a single insert query in the logical replication format.Npostgresql-replicant7Represents a single table column. We only support the wal2json logical decoder plugin and make no attempt to parse anything but JSON-like primitives.Spostgresql-replicantWraps Postgres values. Since this library currently supports only the wal2json logical decoder plugin we have the JSON values much like Aeson does.Xpostgresql-replicantThis structure wraps the two messages sent by the server so that we get a Serialize instance for both.[postgresql-replicant7Not used yet but enables streaming in hot-standby mode.`postgresql-replicant/Carries WAL segments in the streaming protocol.fpostgresql-replicantSent by the client. Can be sent periodically or in response to a PrimaryKeepAlive message from the server. Gives the server information about the client stream state.mpostgresql-replicantThe Postgres WAL sender thread may periodically send these messages. When the server expects the client to respond it updates its internal state of the client based on the response. Failure to respond results in the dreaded "WAL timeout" error.See StandbyStatusUpdate for the message the client should respond with.rpostgresql-replicantIndicates whether the server or the client should respond to the message.upostgresql-replicantSome WAL output plugins encode column values in three, equal length, heterogeneous lists./0213765489<;:=>A@?BCFEDGHKJILMNORQPSWVUTXZY[\_^]`aedcbfglkjihmnqportsuvwrtsmnqpofglkjih`aedcb[\_^]XZYSWVUTNORQPLMuvwGHKJIBCFED=>A@?89<;:37654/021 Safe-Inferred  #$'(8 None  #$'(8postgresql-replicant4Connect to the PostgreSQL server in replication modepostgresql-replicantUnsafe function for wrapping regular libpq Connection. This is unsafe because the Connection needs to be set up to send replication commands. Improperly constructed connections can lead to runtime exceptions. Replication slot query commands(c) James King, 2020, 2021BSD3james@agentultra.com experimentalPOSIXNone  #$'(8postgresql-replicantGet information about an existing replication slot. Returns Nothing) when the requested slot cannot be found.2May throw an exception if the command query fails.postgresql-replicant5Create replication slot or retrieve an existing slot.Can throw exceptions from getReplicationSlotSync or createReplicationSlotSync. Streaming replication protocol(c) James King, 2020, 2021BSD3james@agentultra.com experimentalPOSIXNone  #$'(8postgresql-replicant The information returned by the IDENTIFY_SYSTEM command establishes the stream's log start, position, and information about the database.postgresql-replicantSynchronously execute the IDENTIFY SYSTEM command which returns some basic system information about the server.postgresql-replicant Create a START_REPLICATION_SLOT6 query, escaping the slot name passed in by the user.postgresql-replicantThis handles the COPY OUT mode messages. PostgreSQL uses this mode to copy the data from a WAL log file to the socket in the streaming replication protocol.postgresql-replicant7Used to re-throw an exception received from the server.postgresql-replicantInitiate the streaming replication protocol handler. This will race the  keep-alive and  copy data handler threads. It will catch and rethrow exceptions from either thread if any fails or returns.postgresql-replicant This listens on the channel for primary keep-alive messages0 from the server and responds to them with the  update status message using the current WAL stream state. It will attempt to buffer prior update messages when the socket is blocked. *A PostgreSQL streaming replication library(c) James King, 2020, 2021BSD3james@agentultra.com experimentalPOSIXNone  #$'(8postgresql-replicantConnect to a PostgreSQL database as a user with the replication attribute and start receiving changes using the logical replication protocol. Logical replication happens at the query level so the changes you get represent the set of queries in a transaction: insert, update, and delete.This function will create the replication slot, if it doesn't exist, or reconnect to it otherwise and restart the stream from where the replication slot left off.&This function can throw exceptions in IO0 and shut-down the socket in case of any error.0 /0123456789:;<=>?@ABCDEFGHIJKNOPQR0/012NOPQR=>?@AGHIJK89:;< BCDEF34567  Safe-Inferred  #$'(8 X !"#$%&'()*+,-./0011234567889:;<=>?@@ABCDDEFGHHIJKLLMNOPQRRSTUVWXYZ[\]^^_`abbcdefgghijklmmnopqrstuvwxyz{|}~                                                             3postgresql-replicant-0.2.0.0-8EhsvkP2ynUCo4pWTu8JBk'Database.PostgreSQL.Replicant.Exception+Database.PostgreSQL.Replicant.PostgresUtils'Database.PostgreSQL.Replicant.Serialize&Database.PostgreSQL.Replicant.Settings'Database.PostgreSQL.Replicant.Types.Lsn#Database.PostgreSQL.Replicant.State%Database.PostgreSQL.Replicant.Message"Database.PostgreSQL.Replicant.Util(Database.PostgreSQL.Replicant.Connection-Database.PostgreSQL.Replicant.ReplicationSlot&Database.PostgreSQL.Replicant.ProtocolDatabase.PostgreSQL.ReplicantPaths_postgresql_replicantReplicantException$fExceptionReplicantException$fShowReplicantException postgresEpoch mkUTCTimeconsumeByteStringToEnd PgSettingspgUser pgPasswordpgDbNamepgHostpgPort pgSlotName pgUpdateDelaypgConnectionString$fEqPgSettings$fShowPgSettingsLSNfilepartoffsettoInt64 fromInt64 lsnParserfromByteString toByteStringaddsubsubLsn $fFromJSONLSN $fToJSONLSN$fSerializeLSN$fOrdLSN $fShowLSN$fEqLSNWalProgressState WalProgresswalProgressReceivedwalProgressFlushedwalProgressAppliedupdateWalProgress$fEqWalProgress$fShowWalProgressChange changeNextLSN changeDeltas WalLogDataWInsertWUpdateWDeleteWMessageMessagemessageTransactional messagePrefixmessageContentDelete deleteSchema deleteTable deleteColumnsUpdate updateSchema updateTable updateColumnsInsert insertSchema insertTable insertColumnsColumnParseErrorColumnLengthMatchErrorColumn columnName columnType columnValueWalValue WalString WalNumberWalBoolWalNull WalCopyData XLogDataM KeepAliveMHotStandbyFeedback hotStandbyFeedbackClientSendTimehotStandbyFeedbackCurrentXminhotStandbyFeedbackCurrentEpochXLogDataxLogDataWalStartxLogDataWalEndxLogDataSendTimexLogDataWalDataStandbyStatusUpdate%standbyStatuUpdateLastWalByteReceived%standbyStatusUpdateLastWalByteFlushed%standbyStatusUpdateLastWalByteAppliedstandbyStatusUpdateSendTime&standbyStatusUpdateResponseExpectationPrimaryKeepAliveprimaryKeepAliveWalEndprimaryKeepAliveSendTime#primaryKeepAliveResponseExpectationResponseExpectation ShouldRespond DoNotRespondcolumns fromColumn fromColumns$fSerializeResponseExpectation$fSerializePrimaryKeepAlive$fSerializeStandbyStatusUpdate$fSerializeXLogData$fSerializeHotStandbyFeedback$fSerializeWalCopyData$fToJSONWalValue$fFromJSONWalValue$fToJSONInsert$fFromJSONInsert$fToJSONUpdate$fFromJSONUpdate$fToJSONDelete$fFromJSONDelete$fToJSONMessage$fFromJSONMessage$fFromJSONWalLogData$fToJSONWalLogData$fFromJSONChange$fToJSONChange $fEqChange$fGenericChange $fShowChange$fEqWalLogData$fGenericWalLogData$fShowWalLogData $fEqMessage $fShowMessage $fEqDelete $fShowDelete $fEqUpdate $fShowUpdate $fEqInsert $fShowInsert$fEqColumnParseError$fShowColumnParseError $fEqColumn $fShowColumn $fEqWalValue$fGenericWalValue$fShowWalValue$fEqWalCopyData$fGenericWalCopyData$fShowWalCopyData$fEqHotStandbyFeedback$fGenericHotStandbyFeedback$fShowHotStandbyFeedback $fEqXLogData$fGenericXLogData$fShowXLogData$fEqStandbyStatusUpdate$fGenericStandbyStatusUpdate$fShowStandbyStatusUpdate$fEqPrimaryKeepAlive$fGenericPrimaryKeepAlive$fShowPrimaryKeepAlive$fEqResponseExpectation$fGenericResponseExpectation$fShowResponseExpectationmkInt64 maybeThrowReplicantConnection getConnectionconnectunsafeCreateConnection$fEqConnectResult$fShowConnectResult$fEqReplicantConnectionReplicationSlotActiveActiveInactiveReplicationSlotTypeLogicalPhysicalUnknownSlotTypeReplicationSlotInfoslotName slotPluginslotType slotActive slotRestart parseSlotTypeparseSlotActivecreateReplicationSlotCommandcreateReplicationSlotSyncgetReplicationSlotInfoCommandgetReplicationSlotSyncsetupReplicationSlot$fEqReplicationSlotInfo$fShowReplicationSlotInfo$fEqReplicationSlotActive$fShowReplicationSlotActive$fEqReplicationSlotType$fShowReplicationSlotTypeIdentifySystemidentifySystemSytemIdidentifySystemTimelineidentifySystemLogPosidentifySystemDbNameidentifySystemCommandidentifySystemSyncstartReplicationCommandhandleCopyOutDatahandleReplicationRowhandleReplicationErrorhandleReplicationNoopstartReplicationStreamkeepAliveHandlersendStatusUpdate$fEqIdentifySystem$fShowIdentifySystemwithLogicalStreamversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName