persistent-postgresql

Backend for the persistent library using postgresql.

http://www.yesodweb.com/book/persistent

Version on this page:2.13.6.1
LTS Haskell 23.0:2.13.6.2@rev:1
Stackage Nightly 2024-12-13:2.13.6.2@rev:1
Latest on Hackage:2.13.6.2@rev:1

See all snapshots persistent-postgresql appears in

MIT licensed by Felipe Lessa, Michael Snoyman
Maintained by Michael Snoyman
This version can be pinned in stack with:persistent-postgresql-2.13.6.1@sha256:e72a2be447c8bf6f0e78c375df5dfe247855685b0cc6f31ac9888961636568ff,3686

Module documentation for 2.13.6.1

Based on the postgresql-simple package

Changes

Changelog for persistent-postgresql

2.13.6.1

  • #1518
    • Normalize postgres type aliases to prevent noop migrations

2.13.6

  • #1511
    • Add the createPostgresqlPoolTailored function to support creating connection pools with a custom connection creation function.
    • Expose getServerVersion and createBackend for user’s convenience.
  • #1516
    • Support postgresql-simple 0.7 and postgresql-libpq 0.10

2.13.5.2

  • #1471
    • Explicitly import Control.Monad.Trans.lift to support mtl-2.3.

2.13.5.1

  • #1459
    • Make use of CautiousMigration type alias for clarity.

2.13.5.0

  • #1362
    • Define withPostgresqlPoolModifiedWithVersion

2.13.4.1

2.13.4.0

  • #1341
    • Add SqlBackendHooks to allow for instrumentation of queries.
  • #1327
    • Update backend to support new StatementCache interface

2.13.3.0

  • #1349
    • Add BackendCompatible (RawPostgresql b) (RawPostgresql b) instance.

2.13.2.2

  • #1351
    • Support aeson-2.0 in test suite.

2.13.2.1

  • #1331
    • Fixes a bug where upsertWhere would fail on a database table with MigrationOnly fields.

2.13.2.0

  • #1316
    • Expose some internals in the new Database.Persist.Postgresql.Internal module. This gives access to the P newtype, which is used for de-serializing PersistValues from postgresql-simple code.

2.13.1.0

  • #1305
    • Add RawPostgresql wrapper, which exposes the underlying Postgres connection used to construct a SqlBackend.

2.13.0.3

  • #1290
    • Fix the code path for adding references to previously defined columns.

2.13.0.2

  • Actually release the SafeTORemove fix

2.13.0.1

2.13.0.0

  • #1225
    • Support persistent-2.13.0.0 making SQlBackend internal

2.12.1.1

  • #1235
    • upsertWhere and upsertManyWhere only worked in cases where a Primary key was defined on a record, and no other uniqueness constraints. They have been fixed to only work with records that have a single Uniqueness constraint defined.

2.12.1.0

  • Added upsertWhere and upsertManyWhere to persistent-postgresql. #1222.

2.12.0.0

  • Decomposed HaskellName into ConstraintNameHS, EntityNameHS, FieldNameHS. Decomposed DBName into ConstraintNameDB, EntityNameDB, FieldNameDB respectively. #1174
  • Fix XML conversion #1192

2.11.0.1

2.11.0.0

  • Foreign Key improvements [#1121] https://github.com/yesodweb/persistent/pull/1121
    • It is now supported to refer to a table with an auto generated Primary Kay
    • It is now supported to refer to non-primary fields, using the keyword References
  • Implement interval support. #1053
  • #1060
    • The QuasiQuoter now supports OnDelete and OnUpdate cascade options.
  • Handle foreign key constraint names over 63 characters. See #996 for details.
  • Fix a bug in upsertSql query which had not been discovered previously because the query wasn’t actually used. #856
  • #1072 Refactored test/JSONTest.hs to use hspec
    • added runConn_ to run a db connection and return result
    • Renamed db to runConnAssert in test/PgInit.hs for clarity
    • Ran test/ArrayAggTest.hs (which was previously written but not being run)
  • Remove unnecessary deriving of Typeable #1114
  • Add support for configuring the number of stripes and idle timeout for connection pools #1098
    • PostgresConf has two new fields to configure these values.
      • Its FromJSON instance will default stripes to 1 and idle timeout to 600 seconds
      • If you’re constructing a PostgresConf manually, this is a breaking change
    • Add createPostgresqlPoolWithConf and withPostgresqlPoolWithConf, which take a PostgresConf for the new configuration.

2.10.1.2

  • Fix issue with multiple foreign keys on single column. #1010

2.10.1.1

  • Compatibility with latest persistent-template for test suite #1002

2.10.1

  • Added support for the constraint= attribute to the Postgresql backend. #979

2.10.0

  • Added question mark operators ((?.), (?|.), (?&.)) to Database.Persist.Postgresql.JSON #863
  • Changes to certain types:
    • PersistValue: added PersistArray data constructor
    • Filter: Changed the filterValue :: Either a [a] to filterValue :: FilterValue

2.9.1

  • Add openSimpleConnWithVersion function. #883

2.9.0

  • Added support for SQL isolation levels to via SqlBackend. [#812]
  • Fix 832: repsertMany now matches mapM_ (uncurry repsert) and is atomic.

2.8.2

Added module Database.Persist.Postgresql.JSON #793

  • PersistField and PersistFieldSql instances for Data.Aeson.Value
  • Filter operators (@>.) and (<@.) to filter on JSON values

2.8.1.1

  • Added a more detailed error message when a numeric column’s scale and precision can’t be parsed. #781

2.8.1

  • Implemented connPutManySql to utilize batched putMany. #770

2.8.0

  • Switch from MonadBaseControl to MonadUnliftIO

2.6.3

  • Added new function migrateEnableExtension, to enable Postgres extensions in migrations.

2.6.2.2

  • Because text and varchar are synonyms in Postgresql, don’t attempt to migrate between them. #762

2.6.2.1

  • Fix bug where, if a custom column width was set, the field would be migrated every time #742

2.6.2

  • Expose new functions: withPostgresqlPoolWithVersion, withPostgresqlConnWithVersion and createPostgresqlPoolModifiedWithVersion.

2.6.1

  • Match changes in persistent
  • Clean up warnings

2.6

  • Atomic upsert support for postgreSQL backend

2.5

  • changes for read/write typeclass split

2.2.2

  • Postgresql primary key is Int4, not Int8 #519

2.2.1.2

  • Allow postgresql-simple 0.5

2.2.1.1

Query pg_catalog instead of information_schema for metadata. This helps with permission issues as reported in issue #501

2.2.1

  • Fix treatment of NULLs inside arrays. For example, now you can use array_agg on a nullable column.

  • New derived instances for PostgresConf: Read, Data and Typeable.

  • New mockMigration function. Works like printMigration but doesn’t need a database connection.

  • Fix typo on error message of the FromJSON instance of PostgresConf.

2.2

  • Optimize the insertMany function to insert all rows and retrieve their keys in one SQL query. #407

2.1.6

  • Postgresql exceptions #353

2.1.5.3

Migrations for custom primary keys

2.1.5.2

Support foreign key references to composite primary keys #389

2.1.5

  • Allow timestamp value in database to be serialized (presumes UTC timezone) Yesod #391

2.1.4

  • Treat unknown extension types as PersistDbSpecific values #385

2.1.3

2.1.2.1

Documentation typo fix

2.1.1

Added FromJSON instance for PostgresConf.