!P$      !"#None%&'+-1<FQTVOpersistent-postgresql@Information required to connect to a PostgreSQL database using  persistentE's generic facilities. These values are the same that are given to .persistent-postgresqlThe connection string.persistent-postgresql;How many connections should be held in the connection pool.$persistent-postgresqlAvoid orphan instances.%persistent-postgresql}PostgresServerVersionError exception. This is thrown when persistent is unable to find the version of the postgreSQL server.persistent-postgresqlA libpqE connection string. A simple example of connection string would be ?"host=localhost port=5432 user=test dbname=test password=test"*. Please read libpq's documentation at  Ahttps://www.postgresql.org/docs/current/static/libpq-connect.html1 for more details on how to create such strings.persistent-postgresqlCreate a PostgreSQL connection pool and run the given action. The pool is properly released after the action finishes using it. Note that you should not use the given &= outside the action since it may already have been released.persistent-postgresqlSame as withPostgresPoola, but takes a callback for obtaining the server version (to work around an Amazon Redshift bug).persistent-postgresqlCreate a PostgreSQL connection pool. Note that it's your responsibility to properly close the connection pool when unneeded. Use $ for an automatic resource control. persistent-postgresqlSame as , but additionally takes a callback function for some connection-specific tweaking to be performed after connection creation. This could be used, for example, to change the schema. For more information, see: Ahttps://groups.google.com/d/msg/yesodweb/qUXrEN_swEo/O0pFwqwQIdcJ persistent-postgresqlSame as other similarly-named functions in this module, but takes callbacks for obtaining the server version (to work around an Amazon Redshift bug) and connection-specific tweaking (to change the schema). persistent-postgresqlSame as O, but instead of opening a pool of connections, only one connection is opened. persistent-postgresqlSame as  a, but takes a callback for obtaining the server version (to work around an Amazon Redshift bug).'persistent-postgresql"Gets the PostgreSQL server version(persistent-postgresqlChoose upsert sql generation function based on postgresql version. PostgreSQL version >= 9.5 supports native upsert feature, so depending upon that we have to choose how the sql query is generated. upsertFunction :: Double -> Maybe (EntityDef -> Text -> Text) persistent-postgresql Generate a ) from a *.+persistent-postgresqleCreate the backend given a logging function, server version, mutable statement cell, and connection.,persistent-postgresqlISQL for inserting multiple rows at once and returning their primary keys.-persistent-postgresqlHReturns all of the columns in the given table currently in the database..persistent-postgresqlMCheck if a column name is listed as the "safe to remove" in the entity list./persistent-postgresqlPIntelligent comparison of SQL types, to account for SqlInt32 vs SqlOther integer0persistent-postgresql?Get the references to be added to a table for the given column.persistent-postgresql]Get the SQL string for the table that a PeristEntity represents. Useful for raw SQL queries.persistent-postgresql]Get the SQL string for the field that an EntityField represents. Useful for raw SQL queries.persistent-postgresqljMock a migration even when the database is not present. This function performs the same functionality of 1< with the difference that an actual database is not needed.persistent-postgresql!Enable a Postgres extension. See  ;https://www.postgresql.org/docs/current/static/contrib.html for a list.persistent-postgresql"Connection string to the database.persistent-postgresql3Number of connections to be kept open in the pool.persistent-postgresql5Action to be executed that uses the connection pool.persistent-postgresql,Action to perform to get the server version.persistent-postgresql"Connection string to the database.persistent-postgresql3Number of connections to be kept open in the pool.persistent-postgresql5Action to be executed that uses the connection pool.persistent-postgresql"Connection string to the database.persistent-postgresql3Number of connections to be kept open in the pool. persistent-postgresql.Action to perform after connection is created.persistent-postgresql"Connection string to the database.persistent-postgresql2Number of connections to be kept open in the pool. persistent-postgresql,Action to perform to get the server version.persistent-postgresql.Action to perform after connection is created.persistent-postgresql"Connection string to the database.persistent-postgresql2Number of connections to be kept open in the pool.2persistent-postgresql table name3456789:;<1=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&)      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    None persistent-postgresqlrThis operator checks inclusion of the JSON value on the right hand side in the JSON value on the left hand side.Objects"An empty Object matches any object @{} @> {} == True {"a":1,"b":false} @> {} == True 'Any key-value will be matched top-level {"a":1,"b":{"c":true"}} @> {"a":1} == True {"a":1,"b":{"c":true"}} @> {"b":1} == False {"a":1,"b":{"c":true"}} @> {"b":{}} == True {"a":1,"b":{"c":true"}} @> {"c":true} == False {"a":1,"b":{"c":true"}} @> {"b":{c":true}} == True Arrays An empty Array matches any array H[] @> [] == True [1,2,"hi",false,null] @> [] == True _Any array has to be a sub-set. Any object or array will also be compared as being a subset of. )[1,2,"hi",false,null] @> [1] == True [1,2,"hi",false,null] @> [null,"hi"] == True [1,2,"hi",false,null] @> ["hi",true] == False [1,2,"hi",false,null] @> ["hi",2,null,false,1] == True [1,2,"hi",false,null] @> [1,2,"hi",false,null,{}] == False ]Arrays and objects inside arrays match the same way they'd be matched as being on their own. d[1,"hi",[false,3],{"a":[null]}] @> [{}] == True [1,"hi",[false,3],{"a":[null]}] @> [{"a":[]}] == True [1,"hi",[false,3],{"a":[null]}] @> [{"b":[null]}] == False [1,"hi",[false,3],{"a":[null]}] @> [[]] == True [1,"hi",[false,3],{"a":[null]}] @> [[3]] == True [1,"hi",[false,3],{"a":[null]}] @> [[true,3]] == False "A regular value has to be a member [1,2,"hi",false,null] @> 1 == True [1,2,"hi",false,null] @> 5 == False [1,2,"hi",false,null] @> "hi" == True [1,2,"hi",false,null] @> false == True [1,2,"hi",false,null] @> "2" == False (An object will never match with an array p[1,2,"hi",[false,3],{"a":null}] @> {} == False [1,2,"hi",[false,3],{"a":null}] @> {"a":null} == False  Other valuesWFor any other JSON values the `(@>.)` operator functions like an equivalence operator. b"hello" @> "hello" == True "hello" @> "Hello" == False "hello" @> "h" == False "hello" @> {"hello":1} == False "hello" @> ["hello"] == False 5 @> 5 == True 5 @> 5.00 == True 5 @> 1 == False 5 @> 7 == False 12345 @> 1234 == False 12345 @> 2345 == False 12345 @> "12345" == False 12345 @> [1,2,3,4,5] == False true @> true == True true @> false == False false @> true == False true @> "true" == False null @> null == True null @> 23 == False null @> "null" == False null @> {} == False !persistent-postgresqlSame as   except the inclusion check is reversed. i.e. is the JSON value on the left hand side included in the JSON value of the right hand side.persistent-postgresql6Haskell type, should match Haskell name exactly, e.g. Int64persistent-postgresqlODatabase type(s), should appear different from Haskell name, e.g. "integer" or INT, not Int.persistent-postgresqlIncorrect valuepersistent-postgresql Error messagepersistent-postgresql6Haskell type, should match Haskell name exactly, e.g. Int64persistent-postgresqlReceived valuepersistent-postgresqlAdditional errorpersistent-postgresql Error message ! ! 4!4      !"#$%&'()*+,-.*/0123456789*:;<*=>*=?*=@*=A*:B*:C*:D*:E*:F*:G*:H*:I*JK*JL*JM*NO*NP*NQ*NR*NS*NT*NU*VW*VX*VY*VZ*V[*V\*V]*V^*V_*V`*Va*Vb*cd*ce*cf*cg*ch*ci*jk*jl*jm*jn*jo*jp*qr*qs*qt*qu*qv*qw*qx*qy*qz*q{*q|*q}*q~*q*q*q*q*q***+3*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/0*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/***************************************************N*N*N*N*N*N****** * * * * ****************** *!*"*#*$*%*&*'*(*)***+*,*-*.*/*/*0*1*2*3*4*5*6*7*8*9*:*:*;*<*=*>*?*@*A*A*B*C*DE*DF*DG*DH*DI*DI*JK*JL*JM*JN*JO*JP*JQ*JR*JS*JT*JU*JV*JW*JX*JY*JY*JZ*J[*J\*J]*J^*J_*J`*Ja*Jb*Jc*Jd*Je*Je*Jf*Jg*Jg*Jh*Ji*Jj*Jk*Jl*Jm*Jn*Jn*Jo*Jp*Jq*Jr*Js*Jt*Ju*Jv*Jw*Jx*Jy*Jz*J{*J|*J|*J}*J~*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J*J9*J*J*J*J*J*J*J*J*J*J*J*J.*******2persistent-postgresql-2.9.0-5lLkFioIDRRJBExskVqMz7 Database.Persist.Postgresql.JSONDatabase.Persist.Postgresql$aeson-1.4.1.0-JaiCPnIg80cGqC9EfqkML4Data.Aeson.Types.InternalValue PostgresConf pgConnStr pgPoolSizeConnectionStringwithPostgresqlPoolwithPostgresqlPoolWithVersioncreatePostgresqlPoolcreatePostgresqlPoolModified'createPostgresqlPoolModifiedWithVersionwithPostgresqlConnwithPostgresqlConnWithVersionopenSimpleConn tableName fieldName mockMigrationmigrateEnableExtension%$fExceptionPostgresServerVersionError $fShowPostgresServerVersionError$fToFieldUnknown$fFromFieldUnknown $fToFieldP$fPersistConfigPostgresConf$fFromJSONPostgresConf $fEqUnknown $fShowUnknown $fReadUnknown $fOrdUnknown$fShowPostgresConf$fReadPostgresConf$fDataPostgresConf@>.<@.$fPersistFieldSqlValue$fPersistFieldValuePPostgresServerVersionError'persistent-2.9.0-IG71hmdjKut6Bg7wMGN6MCDatabase.Persist.Sql.TypesConnectionPoolgetServerVersionupsertFunction#Database.Persist.Sql.Types.Internal SqlBackend0postgresql-simple-0.5.4.0-GhvwG2fhJYkD4dllx5Qw3L#Database.PostgreSQL.Simple.Internal Connection createBackendinsertManySql' getColumns safeToRemove sqlTypeEqgetAddReferenceDatabase.Persist.Sql.MigrationprintMigrationdoesTableExistDatabase.Persist.SqltransactionUndoWithIsolationtransactionUndotransactionSaveWithIsolationtransactionSavemigraterunMigrationUnsaferunMigrationSilent runMigration getMigration showMigrationparseMigration'parseMigration(Database.Persist.Sql.Orphan.PersistQuerydecorateSQLWithLimitOffsetupdateWhereCountdeleteWhereCount(Database.Persist.Sql.Orphan.PersistStore fieldDBName getFieldName tableDBName getTableName fromSqlKeytoSqlKey withRawQueryDatabase.Persist.Sql.Runclose' withSqlConn askLogFunc createSqlPool withSqlPoolliftSqlPersistMPoolrunSqlPersistMPoolrunSqlPersistMrunSqlConnWithIsolation runSqlConnrunSqlPoolWithIsolation runSqlPoolDatabase.Persist.Sql.RawrawSql getStmtConnrawExecuteCount rawExecute rawQueryResrawQueryDatabase.Persist.Sql.ClassRawSql rawSqlColsrawSqlColCountReasonrawSqlProcessRowPersistFieldSqlsqlTypeDatabase.PersistlimitOffsetOrder toJsonText mapToJSON listToJSON||./<-.<-.>=.>.<=.<.!=.==./=.*=.-=.+=.=.Database.Persist.Sql.Internal mkColumnsdefaultAttributeColumncNamecNullcSqlTypecDefaultcDefaultConstraintNamecMaxLen cReferencePersistentSqlExceptionStatementAlreadyFinalizedCouldn'tGetSQLConnection SqlPersistT SqlPersist SqlPersistMSqlCautiousMigration MigrationSingleunSingle readToUnknown readToWritewriteToUnknownLogFuncInsertSqlResult ISRSingle ISRInsertGet ISRManyKeys Statement stmtFinalize stmtReset stmtExecute stmtQueryIsolationLevelReadUncommitted ReadCommittedRepeatableRead Serializable connPrepare connInsertSqlconnInsertManySql connUpsertSqlconnPutManySql connStmtMap connCloseconnMigrateSql connBegin connCommit connRollbackconnEscapeName connNoLimit connRDBMSconnLimitOffset connLogFunc connMaxParamsconnRepsertManySqlSqlReadBackendunSqlReadBackendSqlWriteBackendunSqlWriteBackendSqlBackendCanReadSqlBackendCanWriteSqlReadT SqlWriteT IsSqlBackendDatabase.Persist.Class PersistUnique PersistQuery PersistStore$Database.Persist.Class.DeleteCascadedeleteCascadeWhere DeleteCascade deleteCascade#Database.Persist.Class.PersistQueryselectKeysList selectList selectKeys selectSourcePersistQueryReadcountselectSourceRes selectFirst selectKeysResPersistQueryWrite updateWhere deleteWhere$Database.Persist.Class.PersistUnique checkUnique replaceUnique getByValue onlyUniqueinsertUniqueEntityinsertByPersistUniqueReadgetByPersistUniqueWritedeleteBy insertUniqueupsertupsertByputMany#Database.Persist.Class.PersistStore insertRecord getEntity insertEntity belongsToJust belongsTo getJustEntitygetJust liftPersistHasPersistBackend BaseBackendpersistBackendIsPersistBackendBackendCompatibleprojectBackendPersistRecordBackend ToBackendKey toBackendKeyfromBackendKeySqlWriteBackendKeySqlReadBackendKey SqlBackendKeyunSqlWriteBackendKeyunSqlReadBackendKeyunSqlBackendKey PersistCore BackendKeyPersistStoreReadgetgetManyPersistStoreWritedeleteinsertupdateinsert_ insertMany insertMany_insertEntityMany insertKeyrepsert repsertManyreplace updateGet$Database.Persist.Class.PersistEntityfromPersistValueJSONtoPersistValueJSONentityIdFromJSONentityIdToJSONkeyValueEntityFromJSONkeyValueEntityToJSON entityValues PersistEntityKeyUniquePersistEntityBackend EntityField keyToValues keyFromValuespersistIdField entityDefpersistFieldDeftoPersistFieldsfromPersistValuespersistUniqueKeyspersistUniqueToFieldNamespersistUniqueToValues fieldLensBackendSpecificUpdateUpdate BackendUpdate updateField updateValue updateUpdate SelectOptAscDescOffsetByLimitToBackendSpecificFilterFilter FilterAndFilterOr BackendFilter filterField filterValue filterFilterEntity entityKey entityVal#Database.Persist.Class.PersistField getPersistMap PersistFieldtoPersistValuefromPersistValueSomePersistFieldDatabase.Persist.Types.BasefromPersistValueTexttoEmbedEntityDefkeyAndEntityFieldsentityKeyFields entityPrimary CheckmarkActiveInactive IsNullableNullable NotNullable WhyNullable ByMaybeAttrByNullableAttr EntityDef entityHaskellentityDBentityId entityAttrs entityFields entityUniquesentityForeigns entityDerives entityExtra entitySum ExtraLine HaskellName unHaskellNameDBNameunDBNameAttr FieldType FTTypeConFTAppFTListFieldDef fieldHaskellfieldDB fieldType fieldSqlType fieldAttrs fieldStrictfieldReference ReferenceDef NoReference ForeignRefEmbedRef CompositeRef SelfReferenceEmbedEntityDefembeddedHaskellembeddedFields EmbedFieldDef emFieldDB emFieldEmbed emFieldCycle UniqueDef uniqueHaskell uniqueDBName uniqueFields uniqueAttrs CompositeDefcompositeFieldscompositeAttrsForeignFieldDef ForeignDefforeignRefTableHaskellforeignRefTableDBNameforeignConstraintNameHaskellforeignConstraintNameDBName foreignFields foreignAttrsforeignNullablePersistException PersistErrorPersistMarshalErrorPersistInvalidFieldPersistForeignConstraintUnmetPersistMongoDBErrorPersistMongoDBUnsupported PersistValue PersistTextPersistByteString PersistInt64 PersistDoublePersistRational PersistBool PersistDayPersistTimeOfDayPersistUTCTime PersistNull PersistList PersistMapPersistObjectIdPersistDbSpecificSqlType SqlStringSqlInt32SqlInt64SqlReal SqlNumericSqlBoolSqlDaySqlTime SqlDayTimeSqlBlobSqlOther PersistFilterEqNeGtLtGeLeInNotInUpdateException KeyNotFound UpsertErrorOnlyUniqueException PersistUpdateAssignAddSubtractMultiplyDivide$Database.Persist.Class.PersistConfig PersistConfigPersistConfigBackendPersistConfigPool loadConfigapplyEnvcreatePoolConfigrunPoolfromPersistValueErrorfromPersistValueParseError