!.%      !"#$None%&',.2>HSVXQLpersistent-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-postgresql Generate a * from a +9, but takes a callback for obtaining the server version.,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.0persistent-postgresqlPIntelligent comparison of SQL types, to account for SqlInt32 vs SqlOther integer1persistent-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 2< 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.3persistent-postgresql table name456789:;<=>?@A2BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`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+;J+;K+;L+;M+;N+OP+OQ+OR+ST+SU+SV+SW+SX+SY+SZ+[\+[]+[^+[_+[`+[a+[b+[c+[d+[e+[f+[g+hi+hj+hk+hl+hm+hn+op+oq+or+os+ot+ou+vw+vx+vy+vz+v{+v|+v}+v~+v+v+v+v+v+v+v+v+v+v+++,4+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+01+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+++++++++++++++++++++++++++++++++++++++++++++++++++S+S+S+S+S+S+ + + + + ++++++++++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+4+5+6+7+8+9+:+;+<+=+>+?+?+@+A+B+C+D+E+F+F+G+H+IJ+IK+IL+IM+IN+IN+OP+OQ+OR+OS+OT+OU+OV+OW+OX+OY+OZ+O[+O\+O]+O^+O^+O_+O`+Oa+Ob+Oc+Od+Oe+Of+Og+Oh+Oi+Oj+Oj+Ok+Ol+Ol+Om+On+Oo+Op+Oq+Or+Os+Os+Ot+Ou+Ov+Ow+Ox+Oy+Oz+O{+O|+O}+O~+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O>+O+O+O+O+O+O+O+O+O+O+O+O3+++++++2persistent-postgresql-2.9.1-1mmwuhbsHV0CuJhJ90S8t3 Database.Persist.Postgresql.JSONDatabase.Persist.Postgresql$aeson-1.4.2.0-2sEqtSBEUwWKm1fS4E2xoyData.Aeson.Types.InternalValue PostgresConf pgConnStr pgPoolSizeConnectionStringwithPostgresqlPoolwithPostgresqlPoolWithVersioncreatePostgresqlPoolcreatePostgresqlPoolModified'createPostgresqlPoolModifiedWithVersionwithPostgresqlConnwithPostgresqlConnWithVersionopenSimpleConnopenSimpleConnWithVersion tableName fieldName mockMigrationmigrateEnableExtension%$fExceptionPostgresServerVersionError $fShowPostgresServerVersionError$fToFieldUnknown$fFromFieldUnknown $fToFieldP$fPersistConfigPostgresConf$fFromJSONPostgresConf $fEqUnknown $fShowUnknown $fReadUnknown $fOrdUnknown$fShowPostgresConf$fReadPostgresConf$fDataPostgresConf@>.<@.$fPersistFieldSqlValue$fPersistFieldValuePPostgresServerVersionError'persistent-2.9.2-2aYYxAhzp2HJQ4oSGJIEK7Database.Persist.Sql.TypesConnectionPoolgetServerVersionupsertFunction#Database.Persist.Sql.Types.Internal SqlBackend.postgresql-simple-0.6.1-54LjCPvnAPiDsu968iB80k#Database.PostgreSQL.Simple.Internal Connection createBackendinsertManySql' getColumns safeToRemove sqlTypeEqgetAddReferenceDatabase.Persist.Sql.MigrationprintMigrationdoesTableExistDatabase.Persist.SqltransactionUndoWithIsolationtransactionUndotransactionSaveWithIsolationtransactionSave addMigrations addMigration reportErrors reportErrormigraterunMigrationUnsaferunMigrationSilent 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 PersistEntityUniqueKeyPersistEntityBackend 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