hpqtypes-extras 1.17.0.0 → 1.17.0.1
raw patch · 4 files changed
+32/−14 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +3/−0
- hpqtypes-extras.cabal +4/−1
- src/Database/PostgreSQL/PQTypes/Checks.hs +4/−3
- test/Main.hs +21/−10
CHANGELOG.md view
@@ -1,3 +1,6 @@+# hpqtypes-extras-1.17.0.1 (2025-03-27)+* Fix validation of NOT NULL domains with PostgreSQL >= 17.+ # hpqtypes-extras-1.17.0.0 (2025-03-12) * Grouped some parameters of `migrateDatabase` and `checkDatabase` into a `DatabaseDefinitions` record type.
hpqtypes-extras.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: hpqtypes-extras-version: 1.17.0.0+version: 1.17.0.1 synopsis: Extra utilities for hpqtypes library description: The following extras for hpqtypes library: .@@ -47,6 +47,9 @@ , UndecidableInstances , ViewPatterns ghc-options: -Werror=prepositive-qualified-module++ if impl(ghc >= 9.8)+ ghc-options: -Wno-x-partial library import: common-stanza
src/Database/PostgreSQL/PQTypes/Checks.hs view
@@ -312,15 +312,16 @@ sqlResult "t1.typdefault" -- default value sqlResult "ARRAY(SELECT c.conname::text FROM pg_catalog.pg_constraint c \- \WHERE c.contypid = t1.oid ORDER by c.oid)" -- constraint names+ \WHERE c.contype = 'c' AND c.contypid = t1.oid \+ \ORDER by c.oid)" -- constraint names sqlResult "ARRAY(SELECT regexp_replace(pg_get_constraintdef(c.oid, true), '\ \CHECK \\((.*)\\)', '\\1') FROM pg_catalog.pg_constraint c \- \WHERE c.contypid = t1.oid \+ \WHERE c.contype = 'c' AND c.contypid = t1.oid \ \ORDER by c.oid)" -- constraint definitions sqlResult "ARRAY(SELECT c.convalidated FROM pg_catalog.pg_constraint c \- \WHERE c.contypid = t1.oid \+ \WHERE c.contype = 'c' AND c.contypid = t1.oid \ \ORDER by c.oid)" -- are constraints validated? sqlWhereEq "t1.typname" $ unRawSQL $ domName def mdom <- fetchMaybe $
test/Main.hs view
@@ -16,15 +16,7 @@ import Data.Monoid.Utils import Database.PostgreSQL.PQTypes import Database.PostgreSQL.PQTypes.Checks-import Database.PostgreSQL.PQTypes.Model.ColumnType-import Database.PostgreSQL.PQTypes.Model.CompositeType-import Database.PostgreSQL.PQTypes.Model.EnumType-import Database.PostgreSQL.PQTypes.Model.ForeignKey-import Database.PostgreSQL.PQTypes.Model.Index-import Database.PostgreSQL.PQTypes.Model.Migration-import Database.PostgreSQL.PQTypes.Model.PrimaryKey-import Database.PostgreSQL.PQTypes.Model.Table-import Database.PostgreSQL.PQTypes.Model.Trigger+import Database.PostgreSQL.PQTypes.Model import Database.PostgreSQL.PQTypes.SQL.Builder import Log import Log.Backend.StandardOutput@@ -2406,7 +2398,26 @@ tableDefsWithPgCrypto :: [Table] -> DatabaseDefinitions tableDefsWithPgCrypto tables =- emptyDbDefinitions {dbTables = tables, dbExtensions = ["pgcrypto"]}+ emptyDbDefinitions+ { dbTables = tables+ , dbExtensions = ["pgcrypto"]+ , dbDomains = [testDomainColor]+ }+ where+ testDomainColor =+ Domain+ { domName = "test_domain_color"+ , domType = TextT+ , domNullable = False+ , domDefault = Nothing+ , domChecks =+ mkChecks+ [ tblCheck+ { chkName = "test_domain_color"+ , chkCondition = "VALUE ~ '^#[0-9a-f]{6}$'::text"+ }+ ]+ } main :: IO () main = do