úÎY‘Loª      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³     a  !"#$name, type, attribs %name, columns &'(ACreate a new record in the database, returning the newly created  identifier. )AReplace the record in the database with the given key. Result is , undefined if such a record does not exist. */Update individual fields on a specific record. +EUpdate individual fields on any record matching the given criterion. ,DDelete a specific record by identifier. Does nothing if record does  not exist. -BDelete a specific record by unique key. Does nothing if no record  matches. .1Delete all records matching the given criterion. /*Get a record by identifier, if available. 0GGet a record by unique key, if available. Returns also the identifier. 1EGet all records matching the given criterion in the specified order.  Returns also the identifiers. limit offset 2Get the 7/s of all records matching the given criterion. 3<The total number of records fulfilling the given criterion. 456HA single database entity. For example, if writing a blog application, a L blog entry would be an entry, containing fields such as title and content. 7wThe unique identifier associated with this entity. In general, backends also define a type synonym for this, such that "type MyEntityId = Key MyEntity". 8&Fields which can be updated using the * and +  functions. 9 Filters which are available for 1, + and  .4. Each filter constructor specifies the field being G filtered on, the type of comparison applied (equals, not equals, etc) & and the argument for the comparison. :"How you can sort the results of a 1. ;)Unique keys in existence on this entity. <=>?@ABCDEFGHIJKLMN.A value which can be marshalled to and from a ]. OPQRSCA SQL data type. Naming attempts to reflect the underlying Haskell L datatypes, eg SqlString instead of SqlVarchar. Different SQL databases may . have different translations for these types. TUVWXYZ+8-byte integer; should be renamed SqlInt64 [\]HA raw value which can be stored in any backend and can be marshalled to  and from a N. ^_`abcdefgJInsert a value, checking for conflicts with any unique constraints. If a 5 duplicate exists in the database, it is returned as ´. Otherwise, the  new 7 is returned as µ. hKCheck whether there are any conflicts for unique keys with this entity and $ existing entities in the database. Returns ¶9 if the entity would be unique, and could thus safely be  ( ed; returns · on a conflict. iCall 1" but return the result as a list. limit offset ja  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghija]fedcba`_^S\[ZYXWVUTNOPQR6789:;<=>?@ABCDEFGHIJKLM !"#$%&'()*+,-./0123  45ighja   !"#$%&!"#$%&' ()*+,-./0123()*+,-./01234556789:;<=>?@ABCDEFGHIJKLM789:;<=>?@ABCDEFGHIJKLMNOPQROPQRS \[ZYXWVUTTUVWXYZ[\] fedcba`_^^_`abcdefghij0¸¹º»¼½k"Create data types and appropriate 6 instances for the given  ! -s. Works well with the persist quasi-quoter. ¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßlmnàoAutomatically creates a valid N instance for any datatype  that has valid á and â' instances. Can be very convenient for  ã types. äåklmnoklmnoklmno pHConverts a quasi-quoted syntax into a list of entity definitions, to be D used as input to the template haskell generation code (mkPersist). æçèéêëìíîïppp'qrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽð‘1Create the list of columns for the given entity. ’ñ“”•%qrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•%‚ƒ„…†‡ˆ‰Š‹Œ|}~€Ž‘uvwxyz{t’“”•qrs%qrsrstuvwxyz{vwxyz{|}~€}~€‚ ƒ„…†‡ˆ‰Š‹Œƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œ–—˜™š›œ™š–—˜œ›–—˜—˜™š›œòóžôõŸ ö÷øùúûüýþ¡¢£¤¥¦Same as ¥2, but returns a list of the SQL commands executed % instead of printing them to stderr. ÿ is silent? §¨©ECreates a single function to perform all migrations for the entities N defined here. One thing to be aware of is dependencies: if you have entities I with foreign references, make sure to place those definitions after the  entities they reference. |‚–—˜žŸ ¡¢£¤¥¦§¨©–—˜‚ž| Ÿ¡¢£¤¥¦§¨© žŸ ¡¢£¤¥¦§¨©/'()*+,-./01236789:;<=>?@ABCDEFGHIJKLMNOPQRghikp/NOPQR6789:;<=>?@ABCDEFGHIJKLM'()*+,-./0123kpigh       !"#$%&'(()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvwxyyz{|}~€‚ƒ„„…†‡ˆ‰Š‹ŒŽ‘’“”•–——˜ƒ‚™š›œžŸ ¡¢£¤¥¦§¨¨ ©ª«¬¬­®¯°±¯°²³´µ³´¶··¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞ¯ßà¯áâ¯ãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿpersistent-0.3.1Database.Persist.PoolDatabase.Persist.BaseDatabase.Persist.THDatabase.Persist.Quasi$Database.Persist.GenericSql.InternalDatabase.Persist.GenericSql.RawDatabase.Persist.GenericSqlDatabase.Persist PoolStats poolStatsMaxpoolStatsAvailablepoolStatsCreatedPool poolStats createPool withPool'withPool PersistUpdateDivideMultiplySubtractAddUpdatePersistExceptionPersistMarshalException DeleteCascade deleteCascade PersistOrderDescAsc PersistFilterNotInInLeGeLtGtNeEq EntityDef entityName entityAttribs entityColumns entityUniques entityDerivesPersistBackendinsertreplaceupdate updateWheredeletedeleteBy deleteWheregetgetByselect selectKeyscountSomePersistField PersistEntityKeyFilterOrderUnique entityDeftoPersistFieldsfromPersistValues halfDefined toPersistKeyfromPersistKeyshowPersistKeypersistFilterToFieldNamepersistFilterToFilterpersistFilterToValuepersistOrderToFieldNamepersistOrderToOrderpersistUpdateToFieldNamepersistUpdateToUpdatepersistUpdateToValuepersistUniqueToFieldNamespersistUniqueToValuespersistUniqueKeys PersistFieldtoPersistValuefromPersistValuesqlType isNullableSqlTypeSqlBlob SqlDayTimeSqlTimeSqlDaySqlBoolSqlReal SqlIntegerSqlInt32 SqlString PersistValue PersistNullPersistUTCTimePersistTimeOfDay PersistDay PersistBool PersistDouble PersistInt64PersistByteString PersistStringinsertBy checkUnique selectListdeleteCascadeWhere mkPersistshare2mkSavemkDeleteCascadederivePersistFieldpersistRawName unRawName UniqueDefColumncNamecNullcTypecDefault cReference StatementfinalizeresetexecutewithStmt Connectionprepare insertSqlstmtMapclose migrateSqlbegincommitrollback escapeNamenoLimit RowPopper withSqlPool withSqlConn mkColumnsrefName tableColumns rawFieldName rawTableName SqlPersist unSqlPersistgetStmtgetStmt' MigrationConnectionPool runSqlPool runSqlConnparseMigrationparseMigration'printMigration getMigration runMigrationrunMigrationSilentrunMigrationUnsafemigrate mkMigratePoolExhaustedExceptionpoolMaxpoolDatapoolMakePoolData poolAvail poolCreatedbase Data.EitherLeftRightghc-primGHC.BoolTrueFalseDep depTargetdepSourceTabledepSourceField depSourceNullrecName lowerFirst upperFirst dataTypeDec keyTypeDec filterTypeDec entityFiltersreadMay isFilterListmkFilter updateTypeDec entityUpdatesmkUpdate orderTypeDec entityOrdersmkOrder uniqueTypeDecmkUnique pairToTypedegenmkToPersistFieldsmkToFieldNames mkToUpdatemkUniqueToValues mkToFieldName mkToOrder mkToFilter mkToValue mkToFiltValue mkHalfDefinedapEmkFromPersistValuesmkEntity updateConName mkUniqueKeysGHC.ShowShowGHC.ReadReadGHC.EnumEnumnullable deprecateparse_removeLeadingSpaces killCarriagewords'words''nestparse'takeCols takeUniqs takeDerivesclose' getSqlValueCautiousMigrationSql withStmt'execute'dummyFromUnique getFieldName tableColumn dummyFromKey filterClausedummyFromFiltsallSql unsafeSqlsafeSql runMigration'executeMigrategetFiltsValues