diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,14 @@
 # Revision history for hiedb
 
+## 0.4.3.0 -- 2023-03-13
+
+* Support GHC 9.6
+* Set sqlite pragma busy_timeout to 500ms to mitigate frequent failures on concurrent access
+
 ## 0.4.2.0 -- 2022-09-12
 
 * Support GHC 9.4
+* Add upper bounds for base and algebraic graphs
 
 ## 0.4.1.0 -- 2021-06-29
 
diff --git a/hiedb.cabal b/hiedb.cabal
--- a/hiedb.cabal
+++ b/hiedb.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                hiedb
-version:             0.4.2.0
+version:             0.4.3.0
 synopsis:            Generates a references DB from .hie files
 description:         Tool and library to index and query a collection of `.hie` files
 bug-reports:         https://github.com/wz1000/HieDb/issues
diff --git a/src/HieDb/Compat.hs b/src/HieDb/Compat.hs
--- a/src/HieDb/Compat.hs
+++ b/src/HieDb/Compat.hs
@@ -79,6 +79,7 @@
     -- * IFace
     , IfaceType
     , IfaceTyCon(..)
+    , field_label
 ) where
 
 import Compat.HieTypes
@@ -95,7 +96,13 @@
 import GHC.Types.Name.Cache
 import GHC.Types.Unique.Supply
 import GHC.Unit.Types
+#if __GLASGOW_HASKELL__ >= 905
+import Language.Haskell.Syntax.Module.Name
+import GHC.CmmToLlvm.Config
+import Language.Haskell.Syntax.Basic
+#else
 import GHC.Unit.Module.Name
+#endif
 import GHC.Utils.Fingerprint
 #if __GLASGOW_HASKELL__ >= 902
 import GHC.Driver.Ppr (showSDoc)
@@ -201,3 +208,10 @@
 #if __GLASGOW_HASKELL__ >= 903
 type NameCacheUpdater = NameCache
 #endif
+
+#if __GLASGOW_HASKELL__ < 905
+field_label :: a -> a
+field_label = id
+#endif
+
+
diff --git a/src/HieDb/Create.hs b/src/HieDb/Create.hs
--- a/src/HieDb/Create.hs
+++ b/src/HieDb/Create.hs
@@ -45,6 +45,8 @@
 -}
 checkVersion :: (HieDb -> IO a) -> HieDb -> IO a
 checkVersion k db@(getConn -> conn) = do
+  execute_ conn "PRAGMA busy_timeout = 500;"
+  execute_ conn "PRAGMA journal_mode = WAL;"
   [Only ver] <- query_ conn "PRAGMA user_version"
   if ver == 0 then do
     execute_ conn $ fromString $ "PRAGMA user_version = " ++ show dB_VERSION
@@ -71,6 +73,7 @@
 -}
 initConn :: HieDb -> IO ()
 initConn (getConn -> conn) = do
+  execute_ conn "PRAGMA busy_timeout = 500;"
   execute_ conn "PRAGMA journal_mode = WAL;"
   execute_ conn "PRAGMA foreign_keys = ON;"
   execute_ conn "PRAGMA defer_foreign_keys = ON;"
diff --git a/src/HieDb/Utils.hs b/src/HieDb/Utils.hs
--- a/src/HieDb/Utils.hs
+++ b/src/HieDb/Utils.hs
@@ -148,7 +148,9 @@
 #else
                     (Just libdir)
 #endif
-#if __GLASGOW_HASKELL__ >= 810
+#if __GLASGOW_HASKELL__ >= 905
+  return $ defaultDynFlags systemSettings
+#elif __GLASGOW_HASKELL__ >= 810
   return $ defaultDynFlags systemSettings $ LlvmConfig [] []
 #else
   return $ defaultDynFlags systemSettings ([], [])
@@ -268,7 +270,7 @@
         , exportIsDatacon = False
         }]
       where
-        (n, m, u) = (mkVarOccFS $ flLabel fl
+        (n, m, u) = (mkVarOccFS $ field_label $ flLabel fl
                     -- For fields, the module details come from the parent
                     ,moduleName $ nameModule $ flSelector fl
                     ,moduleUnit $ nameModule $ flSelector fl
@@ -299,7 +301,7 @@
                         ))
                       (drop 1 pieces)
                <> map (\s ->
-                        (mkVarOccFS $ flLabel s
+                        (mkVarOccFS $ field_label $ flLabel s
                         -- For fields, the module details come from the parent
                         ,moduleName $ nameModule name
                         ,moduleUnit $ nameModule name
