iP#      !"None %&*:DR(!This wraps values of an Entity's #G, making them have the same type. This allows them to be put in lists.;Information required to connect to a MySQL database using  persistentE's generic facilities. These values are the same that are given to .The connection information.;How many connections should be held on the connection pool.$*Extra column information from MySQL schema%See the definition of the &+ function to see how these fields are used.'Getter aA is a function that converts an incoming value into a data type a.(newtype around ) that supports the * type class.Create a MySQL 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 MySQL connection pool. Note that it's your responsibility to properly close the connection pool when unneeded. Use  for automatic resource control.Same as O, but instead of opening a pool of connections, only one connection is opened.,?Internal function that opens a connection to the MySQL server.-jPrepare a query. We don't support prepared statements, but we'll do some client-side preprocessing here..1SQL code to be executed when inserting an entity./5Execute an statement that doesn't return any results.0lExecute an statement that does return results. The results are fetched all at once and stored into memory.1Helper to construct 's using 2.3Get the corresponding ' )& depending on the type of the column.4(Create the migration plan for the given 5 val.6Find out the type of a column.70Find out the maxlen of a column (default to 200)8Find out the maxlen of a field9 Helper for %; that finds out the which primary key columns to reference.:Returns all of the ;s/ in the given table currently in the database.<.Get the information about a column in a table.=1Parse the type of column as returned by MySQL's INFORMATION_SCHEMA tables.>!getAlters allDefs tblName new old* finds out what needs to be changed from old to become new.?findAlters newColumn oldColumns4 finds out what needs to be changed in the columns  oldColumns for  newColumn to be supported.@Prints the part of a  CREATE TABLE! statement about a given column.A Renders an B in MySQL's format.C3Render an action that must be done on the database.D.Render an action that must be done on a table.&/Render an action that must be done on a column.E1Escape a database name to be included on a query.Mock a migration even when the database is not present. This function will mock the migration for a database even when the actual database isn't already present in the system.MySQL specific F8. This will prevent multiple queries, when one will do.Do a bulk insert on the given records in the first parameter. In the event that a key conflicts with a record currently in the database, the second and third parameters determine what will happen.The second parameter is a list of fields to copy from the original value. This allows you to specify that, when a collision occurs, you'll just update the value in the database with the field values that you inserted.The third parameter is a list of updates to perform that are independent of the value that is provided. You can use this to increment a counter value. These updates only occur if the original record is present in the database.GThis creates the query for bulkInsertOnDuplicateKeyUpdatej. It will give garbage results if you don't provide a list of either fields to copy or fields to update.HVendored from  persistent.I Gets the J for an K. Vendored from  persistent.I$LMNOPQRSTUVWXYZ[\]^_%`'(aConnection information.2Number of connections to be kept open in the pool.4Action to be executed that uses the connection pool.Connection information.2Number of connections to be kept open in the pool.Connection information./Action to be executed that uses the connection.,-./0134b6789c:<=>?@A maxlen"include character set information?CD&dEe3A list of the records you want to insert, or update+A list of the fields you want to copy over.RA list of the updates to apply that aren't dependent on the record being inserted.G3A list of the records you want to insert, or update+A list of the fields you want to copy over.RA list of the updates to apply that aren't dependent on the record being inserted.HfgI !  hijklmnopqrstuvwxyz{|}~;+F      !"#$%&'()*+,-./0123455678#9:;<=>?@ABCDKEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~J)B  2$LMNOPQRSTUVWXYZ[\]^_%`'(a,-./0134b6789c:<=>?@ACD&dEeGHfgI !      !"#$%&'()*#+,-./#01234567-89:;#$<=>?@A#0BCDEFGH#+IJKL#MNOPQ#+R#$S&TUVWXYZ[[\]^Z_`abcde*fghijk#lm#ln#op#oq#or#st#su#sv#sw#sx#sy#sz#{|#{}#{~#{#{#{#{#{#{#{##########################################0#0B#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#######################################################M#M#M#M#M#M#M#M#M#M#M #  #  #  # # # # # # # # # ######### #!#"###$#%#&#'#s(#s)#s*#s+#s,#s-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#$>#$?#$@#$A#$B#$C#$D#$E#$F#$G#$H#$I#$J#$K#$L#$M#$N#$O#$P#$Q#$R#$S#$S#$T#$U#$V#$W#$X#$Y#$Z#$[#$\#$]#$^#$^#$_#$`#$a#$b#$c#$d#$e#$e#$f#$g#hi#hj#hk#hl#hm#hm#+n#+o#+p#+q#+r#+s#+t#+u#+v#+w#+x#+y#+z#+{#+|#+|#+}#+~#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+R#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+]#+#+#+#+#+#+#+#+#+#+#+#+S-persistent-mysql-2.6.1-9uwma9KdiqDLQTi3s3aK1nDatabase.Persist.MySQL"mysql-0.1.4-4CBKXlxlkwFIHujCJjJN93Database.MySQL.BasedefaultSSLInfodefaultConnectInfo connectSSL connectPathconnectOptionsconnectDatabaseconnectPassword connectUser connectPort connectHost ConnectInfo sslCiphers sslCAPathsslCAsslCertsslKeySSLInfo SomeField MySQLConf myConnInfo myPoolSize withMySQLPoolcreateMySQLPool withMySQLConn mockMigrationinsertOnDuplicateKeyUpdateinsertManyOnDuplicateKeyUpdate$fPersistConfigMySQLConf$fFromJSONMySQLConf$fParamP$fShowMySQLConf'persistent-2.7.0-InhMu9oRKV3LgGm6Qpgc5m$Database.Persist.Class.PersistEntity EntityField ColumnInfo AddReference showAlterGetterPDatabase.Persist.Types.Base PersistValue+mysql-simple-0.4.0.1-L2aY9YMTTLGHUtTRz0ZNCDDatabase.MySQL.Simple.ParamParamDatabase.Persist.Sql.TypesConnectionPoolopen'prepare' insertSql'execute' withStmt' convertPVDatabase.MySQL.Simple.ResultResult getGettermigrate' PersistEntityfindTypeOfColumnfindMaxLenOfColumnfindMaxLenOfField addReference getColumnsColumn getColumnparseColumnType getAlters findAlters showColumn showSqlTypeSqlType showAlterDbshowAlterTable escapeDBName$Database.Persist.Class.PersistUniqueupsertmkBulkInsertQuery mkUpdateTextupdateFieldDefFieldDefUpdate ciColumnType ciMaxLengthciNumericPrecisionciNumericScaleAlterDBAddTable AlterColumn AlterTableAddUniqueConstraintDropUniqueConstraint AlterColumn'ChangeAdd'DropDefault NoDefaultUpdate' DropReferenceaddTableudToPairrefName mockMigratecommaSeparated parenWrappedDatabase.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 runSqlPoolDatabase.Persist.Sql.MigrationmigraterunMigrationUnsaferunMigrationSilent runMigration getMigration showMigrationprintMigrationparseMigration'parseMigrationDatabase.Persist.Sql.RawrawSql getStmtConnrawExecuteCount rawExecute rawQueryResrawQueryDatabase.Persist.Sql.ClassRawSql rawSqlColsrawSqlColCountReasonrawSqlProcessRowPersistFieldSqlsqlTypeDatabase.PersistlimitOffsetOrder toJsonText mapToJSON listToJSON||./<-.<-.>=.>.<=.<.!=.==./=.*=.-=.+=.=.Database.Persist.Sql.Internal mkColumnsdefaultAttribute ConnectioncNamecNullcSqlTypecDefaultcDefaultConstraintNamecMaxLen cReferencePersistentSqlExceptionStatementAlreadyFinalizedCouldn'tGetSQLConnection SqlPersistT SqlPersist SqlPersistMSqlCautiousMigration MigrationSingleunSingle#Database.Persist.Sql.Types.Internal readToUnknown readToWritewriteToUnknownLogFuncInsertSqlResult ISRSingle ISRInsertGet ISRManyKeys Statement stmtFinalize stmtReset stmtExecute stmtQuery SqlBackend connClose connPrepare connInsertSqlconnInsertManySql connUpsertSql connStmtMapconnMigrateSql 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 checkUnique replaceUnique getByValue onlyUniqueinsertByPersistUniqueReadgetByPersistUniqueWritedeleteBy insertUniqueupsertBy#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 updateGetfromPersistValueJSONtoPersistValueJSONentityIdFromJSONentityIdToJSONkeyValueEntityFromJSONkeyValueEntityToJSON entityValuesUniqueKeyPersistEntityBackend keyToValues keyFromValuespersistIdField entityDefpersistFieldDeftoPersistFieldsfromPersistValuespersistUniqueKeyspersistUniqueToFieldNamespersistUniqueToValues fieldLensBackendSpecificUpdate BackendUpdate updateField updateValue updateUpdate SelectOptAscDescOffsetByLimitToBackendSpecificFilterFilter FilterAndFilterOr BackendFilter filterField filterValue filterFilterEntity entityKey entityVal#Database.Persist.Class.PersistField getPersistMap PersistFieldtoPersistValuefromPersistValueSomePersistFieldfromPersistValueTexttoEmbedEntityDefkeyAndEntityFieldsentityKeyFields entityPrimary CheckmarkActiveInactive IsNullableNullable NotNullable WhyNullable ByMaybeAttrByNullableAttr EntityDef entityHaskellentityDBentityId entityAttrs entityFields entityUniquesentityForeigns entityDerives entityExtra entitySum ExtraLine HaskellName unHaskellNameDBNameunDBNameAttr FieldType FTTypeConFTAppFTListfieldDB fieldType fieldHaskell fieldSqlType fieldAttrs fieldStrictfieldReference ReferenceDef NoReference ForeignRefEmbedRef CompositeRef SelfReferenceEmbedEntityDefembeddedHaskellembeddedFields EmbedFieldDef emFieldDB emFieldEmbed emFieldCycle UniqueDef uniqueHaskell uniqueDBName uniqueFields uniqueAttrs CompositeDefcompositeFieldscompositeAttrsForeignFieldDef ForeignDefforeignRefTableHaskellforeignRefTableDBNameforeignConstraintNameHaskellforeignConstraintNameDBName foreignFields foreignAttrsforeignNullablePersistException PersistErrorPersistMarshalErrorPersistInvalidFieldPersistForeignConstraintUnmetPersistMongoDBErrorPersistMongoDBUnsupported PersistTextPersistByteString PersistInt64 PersistDoublePersistRational PersistBool PersistDayPersistTimeOfDayPersistUTCTime PersistNull PersistList PersistMapPersistObjectIdPersistDbSpecific SqlStringSqlInt32SqlInt64SqlReal SqlNumericSqlBoolSqlDaySqlTime SqlDayTimeSqlBlobSqlOther PersistFilterEqInNeGtLtGeLeNotInUpdateException KeyNotFound UpsertErrorOnlyUniqueException PersistUpdateAssignAddSubtractMultiplyDivide