Q18     None$%&*,0:DORT@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 on 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  <http://www.postgresql.org/docs/9.1/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 be already been released.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 Since 2.1.3Same as O, but instead of opening a pool of connections, only one connection is opened."Gets the PostgreSQL server versionChoose 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.  Generate a   from a !"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 integer&?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 'C with the difference that an actualy database isn't needed for it.R()*+,-./0123456789:;<=>?@A"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.B CDE"FGHIJKL table nameMNOP#$QR%S&TUVWX YZ[\ ]^_`abcdefghijklmnopqrstuvwx'yz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  <()*+,-./0 123456789:;<=>?@AB CDE"FGHIJKLMNOP#$QR%S&TUVWX YZ[\       !"#$%#&'()*+,-./00123/456789:;<=>?@@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^]_`a`b`cdedfdgdhdidjdklmlnlolplqlrlsltlulv+w+x+y+z+{+|+}+~     dddddd !"#$%&'()*+,-./0/1/2/3/4/5/6/7/8/9/:/;/</=/>/?/@/A/B/C/D/E/F/G/H/H/I/J/K/L/M/N/O/P/Q/R/S/S/T/U/V/W/X/Y/Z/Z/[/\]^]_]`]a]b]bcdcecfcgchcicjckclcmcncocpcqcrcrcsctcucvcwcxcyczc{c|c}c~c~cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccRccccccccccccG1persistent-postgresql-2.6.1-EYX7y4ZV8h2gZAA6h6bajDatabase.Persist.Postgresql PostgresConf pgConnStr pgPoolSizeConnectionStringwithPostgresqlPoolcreatePostgresqlPoolcreatePostgresqlPoolModifiedwithPostgresqlConnopenSimpleConn tableName fieldName mockMigration$fPersistConfigPostgresConf$fFromJSONPostgresConf$fToFieldUnknown$fFromFieldUnknown $fToFieldP%$fExceptionPostgresServerVersionError $fShowPostgresServerVersionError $fEqUnknown $fShowUnknown $fReadUnknown $fOrdUnknown$fShowPostgresConf$fReadPostgresConf$fDataPostgresConfPPostgresServerVersionError'persistent-2.6.1-8JqlSKkO0KCLUc4UZbe7JrDatabase.Persist.Sql.TypesConnectionPoolgetServerVersionupsertFunction Connection0postgresql-simple-0.5.2.1-54Fb5ShdZsC1NveKq9BzHF#Database.PostgreSQL.Simple.InternalinsertManySql' getColumns safeToRemove sqlTypeEqgetAddReferenceDatabase.Persist.Sql.MigrationprintMigrationAlterDBAddTable AlterColumn AlterTableAddUniqueConstraintDropConstraint AlterColumn'TypeIsNullNotNullAdd'DropDefault NoDefaultUpdate' AddReference DropReference SafeToRemoveGetterUnknown unUnknownopen'prepare' insertSql' upsertSql'execute' withStmt' convertPVbuiltinGetters getGetterunBinarydoesTableExistmigrate'addTable maySerial mayDefault getAlters getColumn findAlters showColumn showSqlType showAlterDbshowAlterTable showAlterescaperefNameudToPair mockMigrateDatabase.Persist.SqltransactionUndotransactionSave(Database.Persist.Sql.Orphan.PersistQuerydecorateSQLWithLimitOffsetupdateWhereCountdeleteWhereCount(Database.Persist.Sql.Orphan.PersistStore fieldDBName getFieldName tableDBName getTableName fromSqlKeytoSqlKey withRawQueryDatabase.Persist.Sql.Runclose' withSqlConn askLogFunc createSqlPool withSqlPoolliftSqlPersistMPoolrunSqlPersistMPoolrunSqlPersistM runSqlConn runSqlPoolmigraterunMigrationUnsaferunMigrationSilent runMigration getMigration showMigrationparseMigration'parseMigrationDatabase.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#Database.Persist.Sql.Types.Internal readToUnknown readToWritewriteToUnknownLogFuncInsertSqlResult ISRSingle ISRInsertGet ISRManyKeys Statement stmtFinalize stmtReset stmtExecute stmtQuery SqlBackend connPrepare connInsertSqlconnInsertManySql connUpsertSql 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.PersistConfig PersistConfigPersistConfigBackendPersistConfigPool loadConfigapplyEnvcreatePoolConfigrunPool$Database.Persist.Class.PersistUnique checkUnique replaceUnique getByValue onlyUniqueinsertByPersistUniqueReadgetByPersistUniqueWritedeleteBy insertUniqueupsertupsertBy#Database.Persist.Class.PersistQueryselectKeysList selectList selectKeys selectSourcePersistQueryReadcountselectSourceRes selectFirst selectKeysResPersistQueryWrite updateWhere deleteWhere#Database.Persist.Class.PersistStore insertRecord getEntity insertEntity belongsToJust belongsTo getJustEntitygetJust liftPersistHasPersistBackend BaseBackendpersistBackendIsPersistBackendPersistRecordBackend ToBackendKey toBackendKeyfromBackendKeySqlWriteBackendKeySqlReadBackendKey SqlBackendKeyunSqlWriteBackendKeyunSqlReadBackendKeyunSqlBackendKey PersistCore BackendKeyPersistStoreReadgetPersistStoreWritedeleteinsertupdateinsert_ insertMany insertMany_insertEntityMany insertKeyrepsertreplace 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