x$      !"#None%&'+-1<FQTVA@Information required to connect to a PostgreSQL database using  persistentE's generic facilities. These values are the same that are given to .The connection string.;How many connections should be held in the connection pool.$Avoid orphan instances.%}PostgresServerVersionError exception. This is thrown when persistent is unable to find the version of the postgreSQL server.A 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.Create 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.Same as withPostgresPoola, but takes a callback for obtaining the server version (to work around an Amazon Redshift bug).Create a PostgreSQL connection pool. Note that it's your responsibility to properly close the connection pool when unneeded. Use $ for an automatic resource control. Same 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 Same 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). Same as O, but instead of opening a pool of connections, only one connection is opened. Same as  a, but takes a callback for obtaining the server version (to work around an Amazon Redshift bug).'"Gets the PostgreSQL server version(Choose 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)  Generate a ) from a *.+eCreate the backend given a logging function, server version, mutable statement cell, and connection.,ISQL for inserting multiple rows at once and returning their primary keys.-HReturns all of the columns in the given table currently in the database..MCheck if a column name is listed as the "safe to remove" in the entity list./PIntelligent comparison of SQL types, to account for SqlInt32 vs SqlOther integer0?Get the references to be added to a table for the given column.]Get the SQL string for the table that a PeristEntity represents. Useful for raw SQL queries.]Get the SQL string for the field that an EntityField represents. Useful for raw SQL queries.jMock 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.!Enable a Postgres extension. See  ;https://www.postgresql.org/docs/current/static/contrib.html for a list."Connection string to the database.3Number of connections to be kept open in the pool.5Action to be executed that uses the connection pool.,Action to perform to get the server version."Connection string to the database.3Number of connections to be kept open in the pool.5Action to be executed that uses the connection pool."Connection string to the database.3Number of connections to be kept open in the pool. .Action to perform after connection is created."Connection string to the database.2Number of connections to be kept open in the pool. ,Action to perform to get the server version..Action to perform after connection is created."Connection string to the database.2Number of connections to be kept open in the pool.2 table name3456789:1;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&)      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     $%Nonex rThis 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 !Same 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.6Haskell type, should match Haskell name exactly, e.g. Int64ODatabase type(s), should appear different from Haskell name, e.g. "integer" or INT, not Int.Incorrect value Error message6Haskell type, should match Haskell name exactly, e.g. Int64Received valueAdditional error Error message ! ! 4!4      !"#$%&'()*+,-.*/0123456789*:;<*=>*=?*:@*:A*:B*:C*:D*:E*:F*:G*HI*HJ*HK*LM*LN*OP*OQ*OR*OS*OT*OU*OV*WX*WY*WZ*W[*W\*W]*W^*W_*W`*Wa*bc*bd*be*bf*bg*bh*ij*ik*il*im*in*io*pq*pr*ps*pt*pu*pv*pw*px*py*pz*p{*p|*p}*p~*p*p*p*p***+3*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/0*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/***************************************************O*O*O*O*O*O************* * * * * ****************** *!*"*#*$*%*&*'*(*(*)***+*,*-*.*/*0*1*2*3*3*4*5*6*7*8*9*:*:*;*<*=>*=?*=@*=A*=B*=B*CD*CE*CF*CG*CH*CI*CJ*CK*CL*CM*CN*CO*CP*CQ*CR*CR*CS*CT*CU*CV*CW*CX*CY*CZ*C[*C\*C]*C^*C^*C_*C`*C`*Ca*Cb*Cc*Cd*Ce*Cf*Cg*Cg*Ch*Ci*Cj*Ck*Cl*Cm*Cn*Co*Cp*Cq*Cr*Cs*Ct*Cu*Cu*Cv*Cw*Cx*Cx*Cy*Cz*C{*C|*C|*C}*C~*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C2*C*C*C*C*C*C*C*C*C*C*C*C'*******()4persistent-postgresql-2.8.2.0-JA9L6gli9O2HzDNd2lsH4A Database.Persist.Postgresql.JSONDatabase.Persist.Postgresql$aeson-1.2.4.0-18yGL0aLZDxCNpigNRqRjtData.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.8.1-7AunhJBNwOqE2UPHjsyiNVDatabase.Persist.Sql.TypesConnectionPoolgetServerVersionupsertFunction#Database.Persist.Sql.Types.Internal SqlBackend0postgresql-simple-0.5.3.0-4pmMy91cDPuHoOsKi4700d#Database.PostgreSQL.Simple.Internal Connection createBackendinsertManySql' getColumns safeToRemove sqlTypeEqgetAddReferenceDatabase.Persist.Sql.MigrationprintMigrationdoesTableExistDatabase.Persist.SqltransactionUndotransactionSavemigraterunMigrationUnsaferunMigrationSilent runMigration getMigration showMigrationparseMigration'parseMigration(Database.Persist.Sql.Orphan.PersistQuerydecorateSQLWithLimitOffsetupdateWhereCountdeleteWhereCountDatabase.Persist.Sql.Raw.QQ executeQQsqlQQ(Database.Persist.Sql.Orphan.PersistStore fieldDBName getFieldName tableDBName getTableName fromSqlKeytoSqlKey withRawQueryDatabase.Persist.Sql.Runclose' withSqlConn askLogFunc createSqlPool withSqlPoolliftSqlPersistMPoolrunSqlPersistMPoolrunSqlPersistM runSqlConn 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 stmtQuery connPrepare connInsertSqlconnInsertManySql connUpsertSqlconnPutManySql connStmtMap connCloseconnMigrateSql connBegin connCommit connRollbackconnEscapeName connNoLimit connRDBMSconnLimitOffset connLogFunc connMaxParamsSqlReadBackendunSqlReadBackendSqlWriteBackendunSqlWriteBackendSqlBackendCanReadSqlBackendCanWriteSqlReadT 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 toBackendKeyfromBackendKey SqlBackendKeySqlReadBackendKeySqlWriteBackendKeyunSqlBackendKeyunSqlReadBackendKeyunSqlWriteBackendKey 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 loadConfigapplyEnvcreatePoolConfigrunPoolAlterDBAddTable AlterColumn AlterTableAddUniqueConstraintDropConstraint ChangeTypeIsNullNotNullAdd'DropDefault NoDefaultUpdate' AddReference DropReferenceUnknown unUnknownfromPersistValueErrorfromPersistValueParseError