persistent-sqlite
Backend for the persistent library using sqlite3.
http://www.yesodweb.com/book/persistent
LTS Haskell 23.1: | 2.13.3.0 |
Stackage Nightly 2024-12-27: | 2.13.3.0 |
Latest on Hackage: | 2.13.3.0 |
MIT licensed and maintained by Michael Snoyman
This version can be pinned in stack with:
persistent-sqlite-2.13.3.0@sha256:04caa8dba2a310a4dcf06295fbb4be7eed2ca9c2da92076bac3dd1a66b946062,5155
Module documentation for 2.13.3.0
- Database
- Database.Persist
- Database.Sqlite
Depends on 17 packages(full list with versions):
Used by 3 packages in nightly-2024-09-15(full list with versions):
This package includes a thin sqlite3 wrapper based on the direct-sqlite package, as well as the entire C library, so there are no system dependencies.
Changes
Changelog for persistent-sqlite
2.13.3.0 (unreleased)
- #1524
- Add Database.Persist.Sqlite.createSqlitePoolWithConfig to create a SQLite connection pool with a connection string and ConnectionPoolConfig. Using ConnectionPoolConfig, it is possible to set the connection idle timeout.
- #1486
- Add Database.Sqlite.open’ which takes a ByteString
- #1522
- Update the sqlite amalgamation to 3.43.1
2.13.2.0
- #1488
- Add
openRawSqliteConn
for creatingRawSqlite SqlBackend
connections that aren’t automatically cleaned-up.
- Add
2.13.1.1
- #1459
- Make use of
CautiousMigration
type alias for clarity.
- Make use of
2.13.1.0
- #1341
- Add
SqlBackendHooks
to allow for instrumentation of queries.
- Add
- #1327
- Update backend to support new
StatementCache
interface
- Update backend to support new
2.13.0.4
aeson-2.0
support #1351
2.13.0.3
- Somehow failed to properly release the safe-to-remove changes.
2.13.0.2
- #1275
- Fix SafeToRemove
2.13.0.1
- #1265
- Support GHC 9
2.13.0.0
- #1225
- Support
persistent-2.13
changes for SqlBackend being made internal.
- Support
2.12.0.0
- Decomposed
HaskellName
intoConstraintNameHS
,EntityNameHS
,FieldNameHS
. DecomposedDBName
intoConstraintNameDB
,EntityNameDB
,FieldNameDB
respectively. #1174
2.11.1.0
- Add
checkForeignKeys
operation to verify no foreign key constraints are violated by the database contents. - Fix the migration for primary keys that was broken in 2.11.0.0 #1184
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
- It is now supported to have cascade options for simple/single-field Foreign Keys
- #1060
- The QuasiQuoter now supports
OnDelete
andOnUpdate
cascade options.
- The QuasiQuoter now supports
- #1131
- Provide
exists
function as required byPersistQueryRead
type class.
- Provide
- Remove unnecessary deriving of Typeable #1114
- #1134
- Update the SQLite amalgamation to 3.33.0
2.10.6.2
- Move template haskell splices to be correct (and GHC 8.10 compatible) #1034
2.10.6.1
- Missing
includes
andinstall-includes
cabal fields added, to allow packages depending on persistent-sqlite access to the header files.
2.10.6
- Bump SQLite amalgamation to version 3.30.1 #991
- Add
createRawSqlitePoolFromInfo
,createRawSqlitePoolFromInfo_
,withRawSqlitePoolInfo
, andwithRawSqlitePoolInfo_
to match the existing pool functions for regularSqlBackend
. #983
2.10.5.2
- Compatibility with latest persistent-template for test suite #1002
2.10.5.1
- a fix for template-haskell 2.16, GHC 8.10 alpha #993 @simonmichael
2.10.5
- Foreign keys table constraints are correctly generated #945 @kderme
2.10.4
- Fix bug with 2.10.3 and 2.10.2 that caused the
RawSqlite
loop. #934 @merijn
2.10.3
- Unique constraints are correctly generated. #922 @kderme
2.10.2
- Add a new
RawSqlite
type andwithRawSqliteConnInfo
function that allow access to the underlying SqliteConnection
type. #772 - Expose the internals of
Connection
in an Internal module, allowing the user to call SQLite functions via the C FFI. #772 - Add a flag for SQLITE_STAT4 and enable it by default, allowing for better query optimisation when using ANALYZE. This breaks the query planner stability guarantee, but the required flag for that isn’t enabled or exposed by persistent. Only affects the vendored SQLite library, has no effect when using system SQLite.
- Add support for migrating entities with composite primary keys. Fixes #669
- Fix a bug when using the
Filter
datatype directly. See #915 for more details.
2.10.1
- Add support for reading text values with null characters from the database. Fixes #921
2.10.0
- Updated for
persistent-2.10.0
compatibility.
2.9.3
- Add retry-on-busy support, automatically retrying when sqlite returns a busy
error on enabling WAL mode, and providing helper
retryOnBusy
andwaitForDatabase
identifiers.
2.9.2
- Add enableExtendedResultCodes and disableExtendedResultCodes functions
2.9.1
- Bump vendored SQLite library to 3.26.0 to address RCE bug:
magellan
.
2.9.0
- Added support for SQL isolation levels to via SqlBackend. [#812] SQLite technically only supports Serializable.
- Update the vendored SQLite C library from 3.22.0 to 3.25.2. See the SQLite changelog for details.
- Fix 832:
repsertMany
now matchesmapM_ (uncurry repsert)
and is atomic.
2.8.2
- Add the
extraPragmas
setting
2.8.1.2
- Add flag to enable full-text search extensions (enabled by default)
- Add flag to enable URI filename support (enabled by default)
- Add flag to enable using usleep (enabled by default)
- Enabling usleep allows sqlite to use a finer granularity when sleeping (reduces time between locks)
- Add flag to enable json1 extension (enabled by default)
2.8.1.1
- Update the vendored SQLite C library from 3.19.3 to 3.22.0. See the SQLite changelog for details.
2.8.1
- Updated
SqlBackend
definition to setconnPutManySql
. #770
2.8.0
- Switch from
MonadBaseControl
toMonadUnliftIO
2.6.4
- Adds a new function
stepConn
, which uses an additional parameter to give more detailed error messages #750 - Restores the previous function signature of
step
, which was accidentally changed in 2.6.3.2
2.6.3.2
- This release accidentally broke API, and is deprecated on Hackage.
- Provide more detailed error messages when using the
step
function #730
2.6.3.1
- Fix migration to avoid creating foreign-key constraints in temporary tables #736
2.6.3
- Add ‘use-pkgconfig’ flag to use pkg-config to find system SQLite library.
2.6.2.1
- Update the vendored SQLite C library from 3.12.1 to 3.19.3. See the SQLite changelog for details.
2.6.2
- Turned on foreign key constraints #646
- Added new
SqliteConnectionInfo
-based API
2.6.1
- Added functions to monitor (status) and control (softHeapLimit) process-wide SQLite memory usage.
2.6.0.1
- Ensure connection is closed if wrapConnectionWal fails
2.6
Compatibility for backend-specific upsert functionality. A lucky contributor could try to add upsert to the sqlite backend now. It would definitely be tricky though because sqlite does not really have this feature. http://stackoverflow.com/questions/418898/sqlite-upsert-not-insert-or-replace/4330694#4330694
2.5.0.2
- Fix lstat workaround for https://ghc.haskell.org/trac/ghc/ticket/7072 on Mac OS X #564
2.5.0.1
- Reapply workaround for https://ghc.haskell.org/trac/ghc/ticket/7072 #561
2.5
- changes for read/write typeclass split
2.2.2
- Upgrade to SQLite 3.12.1 #551
2.2.1
- Upgrade to SQLite 3.8.11.1 #444
2.2
Update to persistent 2.2
2.1.4.1
- Add missing source files #382
2.1.4
- Add log support to persistent-sqlite #381
2.1.3
- Added a
Show
instance forSqliteConf
. - Use
SqliteException
instead of callingfail
#364
2.1.2
- Turn on write-ahead log #363
- Prepending
WAL=off
to your connection string will recover the previous behavior.
- Prepending
2.1.1.1
Fix rendering of UTCTime
to match SQLite requirements (see issue
#328).
2.1.1
Provide a FromJSON
instance for SqliteConf
.