Îõ³h*vdcö      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu2.13.6.2 Safe-Inferred"(õ persistent-postgresql1Represent Postgres interval using NominalDiffTime persistent-postgresql+Newtype used to avoid orphan instances for postgresql-simple classes. persistent-postgresql0Get the field parser corresponding to the given v.For example, pass in the v of wÖ, and you will get back a field parser which parses boolean values in the table into xs.ypersistent-postgresql6Haskell type, should match Haskell name exactly, e.g. Int64persistent-postgresqlÏDatabase type(s), should appear different from Haskell name, e.g. "integer" or INT, not Int.persistent-postgresqlIncorrect valuepersistent-postgresql Error message Safe-Inferred"%&'()*67ÀÁÂÃÄÅÆÍÒÕÚÛÝä>‘: persistent-postgresqlÁWrapper for persistent SqlBackends that carry the corresponding . persistent-postgresqlThe persistent backend persistent-postgresqlThe underlying z  persistent-postgresqlÃThis type is used to determine how to update rows using Postgres' !INSERT ... ON CONFLICT KEY UPDATE functionality, exposed via E and F in this library.{persistent-postgresql(Copy the field directly from the record.|persistent-postgresql=Only copy the field if it is not equal to the provided value.! persistent-postgresql?Hooks for configuring the Persistent/its connection to Postgres# persistent-postgresql'Function to get the version of PostgresÛThe default implementation queries the server with "show server_version". Some variants of Postgres, such as Redshift, don't support showing the version. It's recommended you return a hardcoded version in those cases.$ persistent-postgresql0Action to perform after a connection is created.ñTypical uses of this are modifying the connection (e.g. to set the schema) or logging a connection being created.(The default implementation does nothing.%persistent-postgresqlÀInformation required to connect to a PostgreSQL database using  persistentÅ's generic facilities. These values are the same that are given to ,.'persistent-postgresqlThe connection string.(persistent-postgresql.How many stripes to divide the pool into. See  Data.Pool for details. @since 2.11.0.0)persistent-postgresqlÛHow long connections can remain idle before being disposed of, in seconds. @since 2.11.0.0*persistent-postgresql;How many connections should be held in the connection pool.}persistent-postgresqlýPostgresServerVersionError exception. This is thrown when persistent is unable to find the version of the postgreSQL server.+persistent-postgresqlA libpqÅ 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  Áhttps://www.postgresql.org/docs/current/static/libpq-connect.html1 for more details on how to create such strings.,persistent-postgresqlª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 already have been released. The provided action should use  and *not* €Ð because the former brackets the database action with transaction begin/commit.-persistent-postgresqlSame as withPostgresPoolá, but takes a callback for obtaining the server version (to work around an Amazon Redshift bug).. persistent-postgresqlSame as ,, but can be configured with % and !./ persistent-postgresqlSame as ,, but with the 2 feature.0 persistent-postgresqlSame as ,, but with the 3 feature.1persistent-postgresql…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.2persistent-postgresqlSame as 1Ò, 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: Áhttps://groups.google.com/d/msg/yesodweb/qUXrEN_swEo/O0pFwqwQIdcJ3persistent-postgresqlÏSame 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).4 persistent-postgresqlSame as 33, but takes a custom connection-creation function.The only time you should reach for this function is if you need to write custom logic for creating a connection to the database.5 persistent-postgresqlSame as 1, but can be configured with % and !.6persistent-postgresqlSame as ,ð, but instead of opening a pool of connections, only one connection is opened. The provided action should use  and *not* €Ð because the former brackets the database action with transaction begin/commit.7persistent-postgresqlSame as 6á, but takes a callback for obtaining the server version (to work around an Amazon Redshift bug).8 persistent-postgresql"Gets the PostgreSQL server versionpersistent-postgresql†Choose 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ÆIf the user doesn't supply a Postgres version, we assume this version.ÆThis is currently below any version-specific features Persistent uses.9persistent-postgresql Generate a ƒ from a z.: persistent-postgresql Generate a ƒ from a z9, but takes a callback for obtaining the server version.; persistent-postgresql(Access underlying connection, returning „ if the ƒ- provided isn't backed by postgresql-simple.< persistent-postgresqlåCreate the backend given a logging function, server version, mutable statement cell, and connection.…persistent-postgresqlÉSQL for inserting multiple rows at once and returning their primary keys.†persistent-postgresqlÈReturns all of the columns in the given table currently in the database.‡persistent-postgresqlÍCheck if a column name is listed as the "safe to remove" in the entity list.ˆpersistent-postgresqlÐIntelligent comparison of SQL types, to account for SqlInt32 vs SqlOther integer‰persistent-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 PersistEntity 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-postgresqlDefault settings for !. See the individual fields of ! for the default values.Špersistent-postgresqlœPostgres' default maximum identifier length in bytes (You can re-compile Postgres with a new limit, but I'm assuming that virtually noone does this). See Ñhttps://www.postgresql.org/docs/11/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS@persistent-postgresqlêMock a migration even when the database is not present. This function performs the same functionality of ‹< with the difference that an actual database is not needed.Apersistent-postgresql×Copy the field into the database only if the value in the corresponding record is non-NULL.@since 2.12.1.0Bpersistent-postgresqlCopy the field into the database only if the value in the corresponding record is non-empty, where "empty" means the Monoid definition for Œ . Useful for , , Ž, etc.The resulting   type is useful for the F function.@since 2.12.1.0Cpersistent-postgresqlžCopy the field into the database only if the field is not equal to the provided value. This is useful to avoid copying weird nullary data into the database.The resulting   type is useful for the  upsertMany function.@since 2.12.1.0D persistent-postgresql(Copy the field directly from the record.E persistent-postgresqlPostgres specific E·. This method does the following: It will insert a record if no matching unique key exists. If a unique key exists, it will update the relevant field with a user-supplied value, however, it will only do this update on a user-supplied condition. For example, here's how this method could be called like such: ÇupsertWhere record [recordField =. newValue] [recordField /= newValue] ŸCalled thusly, this method will insert a new record (if none exists) OR update a recordField with a new value assuming the condition in the last block is met.F persistent-postgresqlPostgres specific F·. This method does the following: It will insert a record if no matching unique key exists. If a unique key exists, it will update the relevant field with a user-supplied value, however, it will only do this update on a user-supplied condition. For example, here's how this method could be called like such:ÍupsertManyWhere [record] [recordField =. newValue] [recordField !=. newValue]ŸCalled thusly, this method will insert a new record (if none exists) OR update a recordField with a new value assuming the condition in the last block is met.G persistent-postgresqlÎExclude any record field if it doesn't match the filter record. Used only in E and F0TODO: we could probably make a sum type for the  record that's passed into the E and FÅ methods that has similar behavior to the HandleCollisionUpdate type.persistent-postgresqlThis creates the query for F®. If you provide an empty list of updates to perform, then it will generate a dummy/no-op update using the first field of the record. This avoids duplicate key exceptions.Hpersistent-postgresql!Enable a Postgres extension. See  ;https://www.postgresql.org/docs/current/static/contrib.html for a list.I persistent-postgresqlãCreate a PostgreSQL connection pool which also exposes the raw connection. The raw counterpart to 1.J persistent-postgresqlThe raw counterpart to 2.K persistent-postgresqlThe raw counterpart to 3.L persistent-postgresqlThe raw counterpart to 5.,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(Configuration for connecting to Postgrespersistent-postgresqlRecord of callback functionspersistent-postgresql5Action to be executed that uses the connection 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.0persistent-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.1persistent-postgresql"Connection string to the database.persistent-postgresql3Number of connections to be kept open in the pool.2persistent-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,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.4persistent-postgresqlÙAction that creates a postgresql connection (please see documentation on the un-exported open' function in this same module.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.5persistent-postgresql(Configuration for connecting to Postgrespersistent-postgresqlRecord of callback functions‘persistent-postgresqlÏHow to construct the actual backend type desired. For most uses, this is just ’$, since the desired backend type is ƒ. But some callers want a  ƒ, and will pass in “.”persistent-postgresql?The list of all entity definitions that persistent is aware of.persistent-postgresql;The entity definition for the entity that we're working on.persistent-postgresql>The column that we're searching for potential alterations for.Fpersistent-postgresql3A list of the records you want to insert, or updatepersistent-postgresql+A list of the fields you want to copy over.persistent-postgresqlÓA list of the updates to apply that aren't dependent on the record being inserted.persistent-postgresql9A filter condition that dictates the scope of the updatespersistent-postgresql3A list of the records you want to insert, or updatepersistent-postgresql+A list of the fields you want to copy over.persistent-postgresqlÒA list of the updates to apply that aren't dependent on the record being inserted.persistent-postgresql9A filter condition that dictates the scope of the updatespersistent-postgresql¦The specific uniqueness constraint to use on the record. Postgres rquires that we use exactly one relevant constraint, and it can't do a catch-all. How frustrating!Ipersistent-postgresql"Connection string to the database.persistent-postgresql3Number of connections to be kept open in the pool.Jpersistent-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.Kpersistent-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.Lpersistent-postgresql(Configuration for connecting to Postgrespersistent-postgresqlRecord of callback functionsÆ,-./06712345•–—˜™š›œžŸ ¡¢£¤¥¦–—§¨©ª«¬­®¯°±²³´µ¶·¸¹ºµ¶»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרxÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›˜™œžŸ ¡¢£¤¥¦§¨©ª«¬­­®¯°±²³´µ¶·¸¹º»¼½¼ƒ¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèé~êëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰‹Š‹ŒŽ‘’“”•–—˜+ DABCG%&'()*EF9:8;=>@H!"#$?IJKL<4,-./06712345+ DABCG%&'()*EF9:8;=>@H!"#$?IJKL< Safe-Inferred"bênpersistent-postgresqlòThis 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 È[] @> [] == 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. ä[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 ð[1,2,"hi",[false,3],{"a":null}] @> {} == False [1,2,"hi",[false,3],{"a":null}] @> {"a":null} == False  Other valuesFor any other JSON values the (\@>.)2 operator functions like an equivalence operator. â"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 opersistent-postgresqlSame as nŠ 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.p persistent-postgresqlÖThis operator takes a column and a string to find a top-level key/field in an object. column ?. stringòN.B. This operator might have some unexpected interactions with non-object values. Please reference the examples.Objects Ž{"a":null} ? "a" == True {"test":false,"a":500} ? "a" == True {"b":{"a":[]}} ? "a" == False {} ? "a" == False {} ? "{}" == False {} ? "" == False {"":9001} ? "" == True ArraysíThis operator will match an array if the string to be matched is an element of that array, but nothing else. ²["a"] ? "a" == True [["a"]] ? "a" == False [9,false,"1",null] ? "1" == True [] ? "[]" == False [{"a":true}] ? "a" == False  Other valuesæThis operator functions like an equivalence operator on strings only. Any other value does not match. Ÿ"a" ? "a" == True "1" ? "1" == True "ab" ? "a" == False 1 ? "1" == False null ? "null" == False true ? "true" == False 1.5 ? "1.5" == False q persistent-postgresql‡This operator takes a column and a list of strings to test whether ANY of the elements of the list are top level fields in an object. column ?|. listN.B. An empty list will never match anything . Also, this 5operator might have some unexpected interactions with 1non-object values. Please reference the examples.Objects ‡{"a":null} ?| ["a","b","c"] == True {"test":false,"a":500} ?| ["a","b","c"] == True {} ?| ["a","{}"] == False {"b":{"a":[]}} ?| ["a","c"] == False {"b":{"a":[]},"test":null} ?| [] == False Arrays%This operator will match an array if anyÈ of the elements of the list are matching string elements of the array. ¹["a"] ?| ["a","b","c"] == True [["a"]] ?| ["a","b","c"] == False [9,false,"1",null] ?| ["a","false"] == False [] ?| ["a","b","c"] == False [] ?| [] == False [{"a":true}] ?| ["a","b","c"] == False [null,4,"b",[]] ?| ["a","b","c"] == True  Other valuesåThis operator functions much like an equivalence operator on strings only. If a string matches with anyË element of the given list, the comparison matches. No other values match. ×"a" ?| ["a","b","c"] == True "1" ?| ["a","b","1"] == True "ab" ?| ["a","b","c"] == False 1 ?| ["a","1"] == False null ?| ["a","null"] == False true ?| ["a","true"] == False "a" ?| [] == False r persistent-postgresql‡This operator takes a column and a list of strings to test whether ALL of the elements of the list are top level fields in an object. column ?&. listN.B. An empty list will match anything . Also, this 5operator might have some unexpected interactions with 1non-object values. Please reference the examples.Objects Œ{"a":null} ?& ["a"] == True {"a":null} ?& ["a","a"] == True {"test":false,"a":500} ?& ["a"] == True {"test":false,"a":500} ?& ["a","b"] == False {} ?& ["{}"] == False {"b":{"a":[]}} ?& ["a"] == False {"b":{"a":[]},"c":false} ?& ["a","c"] == False {"a":1,"b":2,"c":3,"d":4} ?& ["b","d"] == True {} ?& [] == True {"b":{"a":[]},"test":null} ?& [] == True Arrays%This operator will match an array if allÈ of the elements of the list are matching string elements of the array. î["a"] ?& ["a"] == True ["a"] ?& ["a","a"] == True [["a"]] ?& ["a"] == False ["a","b","c"] ?& ["a","b","d"] == False [9,"false","1",null] ?& ["1","false"] == True [] ?& ["a","b"] == False [{"a":true}] ?& ["a"] == False ["a","b","c","d"] ?& ["b","c","d"] == True [null,4,{"test":false}] ?& [] == True [] ?& [] == True  Other valuesThis operator functions much like an equivalence operator on strings only. If a string matches with all elements of the given list, the comparison matches. “"a" ?& ["a"] == True "1" ?& ["a","1"] == False "b" ?& ["b","b"] == True "ab" ?& ["a","b"] == False 1 ?& ["1"] == False null ?& ["null"] == False true ?& ["true"] == False 31337 ?& [] == True true ?& [] == True null ?& [] == True ™persistent-postgresql6Haskell type, should match Haskell name exactly, e.g. Int64persistent-postgresqlÏDatabase type(s), should appear different from Haskell name, e.g. "integer" or INT, not Int.persistent-postgresqlIncorrect valuepersistent-postgresql Error messagešpersistent-postgresql6Haskell type, should match Haskell name exactly, e.g. Int64persistent-postgresqlReceived valuepersistent-postgresqlAdditional errorpersistent-postgresql Error messagenopqrnopqrn4o4p4q4r4›        !"##$%&''()**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ}„…†‡€ˆ‰€Š‹ŒŽ€‘’“”•–—˜™š›€œ“žŸ ¡¢£¤¥€¦§¨©“žª«¬€¦­€¦®€¦¯€¦°€¦±€¦²€¦³€¦´€¦µ€¦¶€¦·€¦¸€¦¹€¦º€¦»€¦¼€¦½€¦¾€ˆ¿€ˆ¿€ˆÀ€ˆÁ€ˆÁ€ˆÂ€ˆÃ€ˆÄ€ˆÅ€ˆÆ€ˆÇ€ˆÈ€ˆÉ€ÊË€ÊÌ€ÊÍ€Ê΀ÊÏ€ÊЀÊÑ€ÒÓ€ÒÓ€ÒÔ€ÒÕ€ÒÕ€ÒÖ€Ò×€Ò×€ÒØ€ÒÙ€ÒÙ€ÒÚ€ÒÛ€ÒÛ€ÒÜ€ÒÝ€ÒÝ€ÒÞ€Ò߀Òà€á€â€ã€ä€å€æ€ç€è€é€ê€ë€ì€í€î€ï€ð€ñ€ò€ó€ô€õ€ö€÷ø€÷ù€÷ú€÷û€÷ü€ýþ€ýþ€ýÿ€ý€€ý€ý‚€ýƒ€ý„€ý…€ý†€ý‡€ýˆ€ý‰€ýŠ€ý‹€ýŒ€ý€ýŽ€ý€ý€¦€ý‘€ý’€ý“€ý”€ý•€ý–€ý—€ý˜€ý™€ýš€ý›€ýœ€ý€¦€ýž€ýŸ€ý €ý¡€ý¢€ý£€ý¤€ý¥€ý¦€ý§€ý¨€ý©€ýª€ý«€ý¬€ý­€ý®€ý¯€ý°€ý±€ý²€ý³€ý´€ýµ€ý¶€ý¶€ý·€ý¸€ý¹€ý¹€ýº€ý»€ý¼€ý½€ý¾€ý¿€ýÀ€ýÁ€ý€ýÀýÄ€ýÄ€ýÅ€ýÆ€ýÇ€ýÇ€ýÈ€ýÉ€ýÊ€ýË€ýÌ€ýÌ€ýÍ€ý΀ýÏ€ýÏ€ýЀýÑ€ýÒ€ýÓ€ýÔ€ýÕ€ýÖ€ý×€ýØ€ýÙ€ýÚ€ýÛ€ýÜ€ýÝ€ýÞ€ý߀ýà€ýá€ýâ€ýã€ýä€ýå€ýæ€ýç€ýè€ýé€ýê€ýë€ýì€ýí€ýî€ýï€ýð€ýñ€ýò€ýó€ýô€ýõ€ýö€ý÷€ýø€ùú€ùú€ùû€ùü€ùý€ùþ€ÿ€€ÿ€ÿ‚€ÿƒ€„…€†‡€†‡€†ˆ€†‰€†Š€†‹€¦Œ€¦€¦Ž€¦€¦€¦€¦‘€¦’€¦’€¦“€¦”€¦§€¦•€¦–€¦—€¦˜€¦™€¦š€¦›€¦œ€¦€¦ž€¦Ÿ€¦ €¦ €¦¡€¦¢€¦£€¦¤€¥¦€¥§€¥¨€¥©€¥ª€¥«€¥¬€¥­€¥®€¥¯€¥°€¥±€¥²€¥³€¥´€¥µ€¥¶€¥·€¸¹€¸º€¸»€¸¼€¸½€¸¾€¥¿€¥À€¥Á€¥Â€¥Ã€¥Ä€¥Å€¥Æ€¥Ç€¥È€ÉÊ€ÉË€ÉÌ€ÉÍ€É΀ÉÏ€ÉЀÉÑ€ÉÒ€ÉÓ€ÉÔ€ÉÕ€ÉÖ€É׀ɨ€ÉÙ€ÚÛ€ÚÜ€ÚÝ€ÚÞ€Ú߀Úà€Úá€Úâ€Úã€äå€äæ€äç€èé€èê€èë€èì€èí€èî€èî€èï€èð€èð€èñ€ˆò€ˆò€ˆó€ˆô€ˆõ€ˆö€ˆ÷€ˆø€ˆù€ˆú€ˆû€ˆû€ˆü€ˆý€ˆþ€ÿ€€‚€ƒ€„€„€…€†€‡€ˆ€‰€Š‹€ŠŒ€Š€œŽ€œŽ€œ€œ€œ‘€É’€œ“€œ”€Š•€–—€˜™€˜š€›€ýœ€ý€ýž€ýŸ€ý €ý¡€ý¢€ý£€ý¤€ý¥€¦§€¦¨€¦©€¦ª€¦«€¬­€¬®€¬¯€¬°€¬±€¬²€¬³€¬´€¬µ€¬¶€¬·€¬¸€¬¹€¬º€¬»€¬¼€¬½€†¾€¦¿€¦À€¦Á€¦Â€¦Ã€¦Ä€¦Å€¦Æ€¥Ç€¥È€¥É€¥Ê€¥Ë€¥Ì€¥Í€¥Î€¥Ï€¥Ð€ÉÑ€ÉÒ€ÉÓ€ÉÔ€ÉÕ€ÉÖ€É×€ÚØ€ÚÙ€ÚÚ€ÚÛ€èÜ€èÝ€èÞ€ˆß€ÿà€ÿá€ÿâ€ÿã€ÿ䀘倘怘瀘耘逘ꀘ뀘쀘퀘ð€˜ñ€˜ò€˜ó€˜ô€õ€–ö€–÷€–ø€–ù€–ú€Šû€Šü€Šý€Šþ€Šÿ€Š€€Š€Š‚€Šƒ€Š„€Š…€Š†€Š‡€Šˆ€Š‰€ŠŠ€¸‹€¸Œ€¸€¸Ž€¸€¸€¸‘€Š’€Š“€Š”€Š•€Š–€Š—€œ˜€œ™€œš€œ›€œœ€œ€œž€œŸ€œ €œ¡€œ¢€œ£€œ¤€¥¦€¥§€¥¨€¥©ƒª«4persistent-postgresql-2.13.6.2-DXmJhBVyIbWOwurxrmW6h Database.Persist.Postgresql.JSON$Database.Persist.Postgresql.InternalDatabase.Persist.Postgresqlpersistent-postgresql Postgresql Connection$aeson-2.2.3.0-G9Z2Jit3h8hFb5zDbTBNRhData.Aeson.Types.InternalValue PgInterval getPgIntervalPunP getGetter $fFromFieldP$fToFieldUnknown$fFromFieldUnknown$fToFieldUnknownLiteral$fFromFieldUnknownLiteral $fToFieldP$fPersistFieldSqlPgInterval$fPersistFieldPgInterval$fFromFieldPgInterval$fToFieldPgInterval$fEqPgInterval$fShowPgInterval$fEqUnknownLiteral$fShowUnknownLiteral$fReadUnknownLiteral$fOrdUnknownLiteral $fEqUnknown $fShowUnknown $fReadUnknown $fOrdUnknown RawPostgresqlpersistentBackendrawPostgresqlConnectionHandleUpdateCollisionPostgresConfHookspgConfHooksGetServerVersionpgConfHooksAfterCreate PostgresConf pgConnStr pgPoolStripespgPoolIdleTimeout pgPoolSizeConnectionStringwithPostgresqlPoolwithPostgresqlPoolWithVersionwithPostgresqlPoolWithConfwithPostgresqlPoolModified%withPostgresqlPoolModifiedWithVersioncreatePostgresqlPoolcreatePostgresqlPoolModified'createPostgresqlPoolModifiedWithVersioncreatePostgresqlPoolTailoredcreatePostgresqlPoolWithConfwithPostgresqlConnwithPostgresqlConnWithVersiongetServerVersionopenSimpleConnopenSimpleConnWithVersion getSimpleConn createBackend tableName fieldNamedefaultPostgresConfHooks mockMigrationcopyUnlessNullcopyUnlessEmpty copyUnlessEq copyField upsertWhereupsertManyWhereexcludeNotEqualToOriginalmigrateEnableExtensioncreateRawPostgresqlPoolcreateRawPostgresqlPoolModified*createRawPostgresqlPoolModifiedWithVersioncreateRawPostgresqlPoolWithConf%$fExceptionPostgresServerVersionError $fShowPostgresServerVersionError$fPersistConfigPostgresConf$fFromJSONPostgresConf$fPersistCoreRawPostgresql!$fBackendCompatiblebRawPostgresql-$fBackendCompatibleRawPostgresqlRawPostgresql$fShowPostgresConf$fReadPostgresConf$fDataPostgresConf $fShowAlterDB$fShowAlterTable$fShowAlterColumn$fFromJSONBackendKey$fToJSONBackendKey$fBoundedBackendKey$fEnumBackendKey$fRealBackendKey$fPersistFieldSqlBackendKey$fPersistFieldBackendKey$fIntegralBackendKey$fNumBackendKey$fOrdBackendKey$fEqBackendKey$fReadBackendKey$fShowBackendKey!$fPersistUniqueWriteRawPostgresql $fPersistQueryWriteRawPostgresql $fPersistStoreWriteRawPostgresql $fPersistUniqueReadRawPostgresql$fPersistQueryReadRawPostgresql$fPersistStoreReadRawPostgresql $fHasPersistBackendRawPostgresql@>.<@.?.?|.?&.$fPersistFieldSqlValue$fPersistFieldValue$fPersistFieldPostgresArray0postgresql-libpq-0.10.1.0-7CXXOXnHN15EgEaQkZYUtKDatabase.PostgreSQL.LibPQ.OidOid0postgresql-simple-0.7.0.0-GpDGJ1JkZ68B8Xxuf3Yxyr*Database.PostgreSQL.Simple.TypeInfo.Staticbool*persistent-2.14.6.2-Gt9jDxVBkjwLmFYC3OcuwSDatabase.Persist.PersistValue PersistBoolfromPersistValueError#Database.PostgreSQL.Simple.Internal CopyField CopyUnlessEqPostgresServerVersionErrorDatabase.Persist.Sql.TypesConnectionPoolDatabase.Persist.Sql.Run runSqlConntransformers-0.6.1.0Control.Monad.Trans.Reader runReaderTupsertFunctionminimumPostgresVersion$Database.Persist.SqlBackend.Internal SqlBackendbase GHC.MaybeNothinginsertManySql' getColumns safeToRemove sqlTypeEqgetAddReferencemaximumIdentifierLengthDatabase.Persist.Sql.MigrationprintMigrationGHC.Basemempty text-2.0.2Data.Text.InternalTextbytestring-0.11.5.2Data.ByteString.Internal.Type ByteString$Database.Persist.Class.PersistEntityFiltermkBulkUpsertQueryopen'idwithRawConnection findAlters PersistEntityKeyUniquePersistEntityBackend EntityField keyToValues keyFromValuespersistIdField entityDefpersistFieldDeftoPersistFieldsfromPersistValuestabulateEntityApersistUniqueKeyspersistUniqueToFieldNamespersistUniqueToValues fieldLenskeyFromRecordMSingleunSingleColumncNamecNullcSqlTypecDefault cGeneratedcDefaultConstraintNamecMaxLen cReference$Database.Persist.Class.PersistConfig PersistConfigPersistConfigBackendPersistConfigPool loadConfigapplyEnvcreatePoolConfigrunPoolDatabase.Persist.NamesConstraintNameHSunConstraintNameHSConstraintNameDBunConstraintNameDB EntityNameDBunEntityNameDB EntityNameHSunEntityNameHS FieldNameHS unFieldNameHS FieldNameDB unFieldNameDB DatabaseName escapeWith LiteralTypeEscaped Unescaped DbSpecific PersistValue PersistTextPersistByteString PersistInt64 PersistDoublePersistRational PersistDayPersistTimeOfDayPersistUTCTime PersistNull PersistList PersistMapPersistObjectId PersistArrayPersistLiteral_PersistLiteralPersistLiteralEscapedPersistDbSpecific3Database.Persist.SqlBackend.Internal.IsolationLevelIsolationLevelReadUncommitted ReadCommittedRepeatableRead SerializableDatabase.Persist.Types.BaseFieldDef fieldHaskellfieldDB fieldType fieldSqlType fieldAttrs fieldStrictfieldReference fieldCascade fieldCommentsfieldGeneratedfieldIsImplicitIdColumn PersistUpdateAssignAddSubtractMultiplyDivideBackendSpecificUpdateUpdateException KeyNotFound UpsertError PersistFilterEqInNeGtLtGeLeNotInBackendSpecificFilterSqlType SqlStringSqlInt32SqlInt64SqlReal SqlNumericSqlBoolSqlDaySqlTime SqlDayTimeSqlBlobSqlOtherPersistException PersistErrorPersistMarshalErrorPersistInvalidFieldPersistForeignConstraintUnmetPersistMongoDBErrorPersistMongoDBUnsupported CascadeActionCascadeRestrictSetNull SetDefault FieldCascade fcOnUpdate fcOnDelete ForeignDefforeignRefTableHaskellforeignRefTableDBNameforeignConstraintNameHaskellforeignConstraintNameDBNameforeignFieldCascade foreignFields foreignAttrsforeignNullableforeignToPrimaryForeignFieldDef CompositeDefcompositeFieldscompositeAttrs UniqueDef uniqueHaskell uniqueDBName uniqueFields uniqueAttrs EmbedFieldDef emFieldDB emFieldEmbedEmbedEntityDefembeddedHaskellembeddedFields ReferenceDef NoReference ForeignRefEmbedRef SelfReference FieldType FTTypeConFTLitFTTypePromotedFTAppFTList FieldAttrFieldAttrMaybeFieldAttrNullableFieldAttrMigrationOnlyFieldAttrSafeToRemoveFieldAttrNoreferenceFieldAttrReferenceFieldAttrConstraintFieldAttrDefaultFieldAttrSqltypeFieldAttrMaxlen FieldAttrSqlFieldAttrOtherAttr ExtraLine EntityIdDef EntityIdFieldEntityIdNaturalKey EntityDef WhyNullable ByMaybeAttrByNullableAttr IsNullableNullable NotNullable CheckmarkActiveInactive.Database.Persist.SqlBackend.Internal.Statement Statement stmtFinalize stmtReset stmtExecute stmtQuery4Database.Persist.SqlBackend.Internal.InsertSqlResultInsertSqlResult ISRSingle ISRInsertGet ISRManyKeys1Database.Persist.SqlBackend.Internal.MkSqlBackendLogFunc#Database.Persist.Class.PersistFieldOverflowNaturalunOverflowNatural PersistFieldtoPersistValuefromPersistValue SafeToInsert SymbolToField symbolToFieldEntity entityKey entityVal FilterValue FilterValues UnsafeValue FilterAndFilterOr BackendFilter filterField filterValue filterFilter SelectOptAscDescOffsetByLimitToUpdate BackendUpdate updateField updateValue updateUpdate#Database.Persist.Class.PersistStorePersistStoreWritedeleteinsertupdateinsert_ insertMany insertMany_insertEntityMany insertKeyrepsert repsertManyreplace updateGetPersistStoreReadgetgetMany PersistCore BackendKey(Database.Persist.Sql.Orphan.PersistStoreSqlWriteBackendKeySqlReadBackendKey SqlBackendKeyunSqlWriteBackendKeyunSqlReadBackendKeyunSqlBackendKey ToBackendKey toBackendKeyfromBackendKeyPersistRecordBackendBackendCompatibleprojectBackendIsPersistBackendHasPersistBackend BaseBackendpersistBackend$Database.Persist.Class.PersistUniqueAtLeastOneUniqueKeyrequireUniquesPMultipleUniqueKeysErrorNoUniqueKeysErrorOnlyOneUniqueKey onlyUniquePPersistUniqueWritedeleteBy insertUnique insertUnique_upsertupsertByputManyPersistUniqueReadgetByexistsBy#Database.Persist.Class.PersistQueryPersistQueryWrite updateWhere deleteWherePersistQueryReadcountselectSourceRes selectFirst selectKeysResexistsDatabase.Persist.Class PersistStore PersistQuery PersistUnique#Database.Persist.Sql.Types.Internal IsSqlBackend SqlWriteTSqlReadTSqlBackendCanWriteSqlBackendCanReadSqlWriteBackend&$sel:unSqlWriteBackend:SqlWriteBackendSqlReadBackend$$sel:unSqlReadBackend:SqlReadBackendConnectionPoolConfigconnectionPoolConfigStripesconnectionPoolConfigIdleTimeoutconnectionPoolConfigSize SqlPersistM SqlPersistTPersistentSqlExceptionStatementAlreadyFinalizedCouldn'tGetSQLConnectionColumnReference crTableNamecrConstraintNamecrFieldCascadeDatabase.Persist.Sql.InternalBackendSpecificOverridesDatabase.Persist.Sql.ClassPersistFieldSqlsqlTypeEntityWithPrefixunEntityWithPrefixRawSql rawSqlColsrawSqlColCountReasonrawSqlProcessRow(Database.Persist.Sql.Orphan.PersistQueryFilterTablePrefixPrefixTableNamePrefixExcludedPersistUnsafeMigrationException MigrationCautiousMigrationSqlinsertBy reportErrormigrateclose'Database.Persist.Sql.RawrawSqlDatabase.Persist>=.<=.fromPersistValueTextfieldAttrsContainsNullableentitiesPrimary entityPrimarykeyAndEntityFieldsparseFieldAttrsisFieldNotGeneratedisHaskellField noCascaderenderFieldCascaderenderCascadeActionDatabase.Persist.FieldDef setFieldAttrsoverFieldAttrs addFieldAttrisFieldNullable isFieldMaybeDatabase.Persist.EntityDefgetEntityUniquesNoPrimaryKeygetEntityUniquesgetEntityHaskellNamegetEntityDBNamegetEntityExtrasetEntityDBNamegetEntityCommentsgetEntityForeignDefsgetEntityFieldsgetEntityFieldsDatabase isEntitySum getEntityIdgetEntityIdField setEntityIdsetEntityIdDefgetEntityKeyFieldsoverEntityFields getPersistMaptabulateEntity entityValueskeyValueEntityToJSONkeyValueEntityFromJSONentityIdToJSONentityIdFromJSONtoPersistValueJSONfromPersistValueJSONwithBaseBackendwithCompatibleBackend liftPersistgetJust getJustEntity belongsTo belongsToJust insertEntity getEntity insertRecordonlyOneUniqueDefinsertUniqueEntity onlyUnique getByValue replaceUnique checkUniquecheckUniqueUpdateable selectSource selectKeys selectListselectKeysListwriteToUnknown readToWrite readToUnknowndefaultConnectionPoolConfig getBackendSpecificForeignKeyName setBackendSpecificForeignKeyNameemptyBackendSpecificOverridesdefaultAttribute mkColumns=.+=.-=.*=./=.==.!=.<.>.<-./<-.||. listToJSON mapToJSON toJsonTextlimitOffsetOrderunPrefixrawQuery rawQueryRes rawExecuterawExecuteCount getStmtConn runSqlPoolrunSqlPoolWithIsolationrunSqlPoolNoTransactionrunSqlPoolWithHooksrunSqlPoolWithExtensibleHooksacquireSqlConnacquireSqlConnWithIsolationrunSqlConnWithIsolationrunSqlPersistMrunSqlPersistMPoolliftSqlPersistMPool withSqlPoolwithSqlPoolWithConfig createSqlPoolcreateSqlPoolWithConfig withSqlConn withRawQuerytoSqlKey fromSqlKey getTableName tableDBName getFieldName fieldDBNamedeleteWhereCountupdateWhereCount filterClausefilterClauseWithVals orderClausedecorateSQLWithLimitOffsetparseMigrationparseMigration' showMigration getMigration runMigrationrunMigrationQuietrunMigrationSilentrunMigrationUnsaferunMigrationUnsafeQuiet reportErrors addMigration addMigrations runSqlCommandDatabase.Persist.SqltransactionSavetransactionSaveWithIsolationtransactionUndotransactionUndoWithIsolationfromPersistValueParseError