mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-18 13:02:11 +03:00
04d8f068b6
### Description As part of the cache building process, we create / update / migrate the catalog that each DB uses as a place to store event trigger information. The function that decides how this should be done was doing an explicit `case ... of` on the backend tag, instead of delegating to one of the backend classes. The downsides of this is that: - it adds a "friction point" where the backend matters in the core of the engine, which is otherwise written to be almost entirely backend-agnostic - it creates imports from deep in the engine to the `Backends`, which we try to restrict to a very small set of clearly identified files (the `Instances` files) - it is currently implemented using a "catch all" default case, which might not always be correct for new backends This PR makes the catalog updating process a part of `BackendMetadata`, and cleans the corresponding schema cache code. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4457 GitOrigin-RevId: 592f0eaa97a7c38f4e6d4400e1d2353aab12c97e
22 lines
1.2 KiB
Haskell
22 lines
1.2 KiB
Haskell
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
|
|
|
module Hasura.Backends.MySQL.Instances.Metadata () where
|
|
|
|
import Hasura.Backends.MySQL.Connection qualified as MySQL
|
|
import Hasura.Prelude
|
|
import Hasura.RQL.Types.EventTrigger (RecreateEventTriggers (RETDoNothing))
|
|
import Hasura.RQL.Types.Metadata.Backend
|
|
import Hasura.SQL.Backend
|
|
|
|
instance BackendMetadata 'MySQL where
|
|
prepareCatalog = const $ pure RETDoNothing
|
|
buildComputedFieldInfo = error "buildComputedFieldInfo: MySQL backend does not support this operation yet."
|
|
fetchAndValidateEnumValues = error "fetchAndValidateEnumValues: MySQL backend does not support this operation yet."
|
|
resolveSourceConfig = MySQL.resolveSourceConfig
|
|
resolveDatabaseMetadata _ = MySQL.resolveDatabaseMetadata
|
|
parseBoolExpOperations = error "parseBoolExpOperations: MySQL backend does not support this operation yet."
|
|
buildFunctionInfo = error "buildFunctionInfo: MySQL backend does not support this operation yet."
|
|
updateColumnInEventTrigger = error "updateColumnInEventTrigger: MySQL backend does not support this operation yet."
|
|
parseCollectableType = error "parseCollectableType: MySQL backend does not support this operation yet."
|
|
postDropSourceHook = MySQL.postDropSourceHook
|