L@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Y 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. $GGet a record by unique key, if available. Returns also the identifier. %EGet all records matching the given criterion in the specified order.  Returns also the identifiers. limit offset &Get the +/s of all records matching the given criterion. '<The total number of records fulfilling the given criterion. ()*HA 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. +wThe unique identifier associated with this entity. In general, backends also define a type synonym for this, such that "type MyEntityId = Key MyEntity". ,&Fields which can be updated using the  and   functions. - Filters which are available for %,  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 %. /)Unique keys in existence on this entity. 0123456789:;<=>?@A.A value which can be marshalled to and from a O. BCDEFCA 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. GHIJKLMNOHA raw value which can be stored in any backend and can be marshalled to  and from a A. PQRSTUVWXYGTry to insert the given entity; if another entity exists with the same M unique key, return that entity; otherwise, return the newly created entity. ZKCheck 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. [Call %" but return the result as a list. limit offset \Y  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\YOXWVUTSRQPFNMLKJIHGABCDE*+,-./0123456789:;<=>?@ !"#$%&'   ()[YZ\Y    !"#$%&' !"#$%&'())*+,-./0123456789:;<=>?@+,-./0123456789:;<=>?@ABCDEBCDEFNMLKJIHGGHIJKLMNO XWVUTSRQPPQRSTUVWXYZ[\*]"Create data types and appropriate * instances for the given  -s. Works well with the persist quasi-quoter. ^_`]^_`]^_`]^_` aHConverts a quasi-quoted syntax into a list of entity definitions, to be D used as input to the template haskell generation code (mkPersist). aaa'bcdefghijklmnopqrstuvwxyz{|}~1Create the list of columns for the given entity. %bcdefghijklmnopqrstuvwxyz{|}~%stuvwxyz{|}~mnopqrfghijklebcd%bcdcdefghijklghijklmnopqrnopqrs tuvwxyz{|}~tuvwxyz{|}~mssm . !"#$%&'*+,-./0123456789:;<=>?@ABCDEYZ[]a.ABCDE*+,-./0123456789:;<=>?@ !"#$%&']a[YZ      !"#$%&'()*+,-./00123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiijkllmnopqrrstuvwwxyz{|}~vu persistent-0.2.0Database.Persist.PoolDatabase.Persist.BaseDatabase.Persist.THDatabase.Persist.Quasi$Database.Persist.GenericSql.InternalDatabase.Persist.GenericSql.RawDatabase.Persist.GenericSqlDatabase.PersistPool createPool withPool'withPoolPersistExceptionPersistMarshalException DeleteCascade deleteCascade PersistOrderDescAsc PersistFilterNotInInLeGeLtGtNeEq EntityDef entityName entityAttribs entityColumns entityUniques entityDerivesPersistBackendinsertreplaceupdate updateWheredeletedeleteBy deleteWheregetgetByselect selectKeyscountSomePersistField PersistEntityKeyUpdateFilterOrderUnique entityDeftoPersistFieldsfromPersistValues halfDefined toPersistKeyfromPersistKeyshowPersistKeypersistFilterToFieldNamepersistFilterToFilterpersistFilterToValuepersistOrderToFieldNamepersistOrderToOrderpersistUpdateToFieldNamepersistUpdateToValuepersistUniqueToFieldNamespersistUniqueToValuespersistUniqueKeys PersistFieldtoPersistValuefromPersistValuesqlType isNullableSqlTypeSqlBlob SqlDayTimeSqlTimeSqlDaySqlBoolSqlReal SqlInteger SqlString PersistValue PersistNullPersistUTCTimePersistTimeOfDay PersistDay PersistBool PersistDouble PersistInt64PersistByteString PersistStringinsertBy checkUnique selectListdeleteCascadeWhere mkPersistshare2mkSavemkDeleteCascadepersistRawName unRawName UniqueDefColumncNamecNullcTypecDefault cReference StatementfinalizeresetexecutewithStmt Connectionprepare insertSqlstmtMapclose migrateSqlbegincommitrollback escapeNamenoLimit RowPopper withSqlPool withSqlConn mkColumnsrefName tableColumns rawFieldName rawTableName SqlPersistgetStmtgetStmt' MigrationConnectionPool runSqlPool runSqlConnparseMigrationparseMigration'printMigration getMigration runMigrationrunMigrationUnsafemigratePoolExhaustedExceptionpoolMaxpoolDatapoolMakePoolData poolAvail poolCreated modifyMVar modifyMVar_ghc-primGHC.BoolTrueFalseDep depTargetdepSourceTabledepSourceField depSourceNullrecName lowerFirst upperFirst dataTypeDec keyTypeDec filterTypeDec entityFilters isFilterListmkFilter updateTypeDec entityUpdatesmkUpdate orderTypeDec entityOrdersmkOrder uniqueTypeDecmkUnique pairToTypedegenmkToPersistFieldsmkToFieldNamesmkUniqueToValues mkToFieldName mkToOrder mkToFilter mkToValue mkToFiltValue mkHalfDefinedapEmkFromPersistValuesmkEntity mkUniqueKeysparse_ killCarriagewords'words''nestparse'takeCols takeUniqs takeDerivesclose' getSqlValueCautiousMigrationSql withStmt'execute'dummyFromUnique getFieldName tableColumn dummyFromKey filterClausedummyFromFiltsallSql unsafeSqlsafeSqlexecuteMigrategetFiltsValues