diff --git a/server/src-lib/Data/Text/Extended.hs b/server/src-lib/Data/Text/Extended.hs index 408be891a1b1e..9497620c8984a 100644 --- a/server/src-lib/Data/Text/Extended.hs +++ b/server/src-lib/Data/Text/Extended.hs @@ -38,6 +38,9 @@ instance ToTxt G.Name where deriving instance ToTxt G.EnumValue +instance ToTxt () where + toTxt = tshow + instance ToTxt Void where toTxt = absurd diff --git a/server/src-lib/Hasura/Backends/BigQuery/DDL.hs b/server/src-lib/Hasura/Backends/BigQuery/DDL.hs index 68c27aa954ecf..0fc6bfd9da797 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/DDL.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/DDL.hs @@ -14,15 +14,14 @@ where import Hasura.Prelude -import qualified Data.Environment as Env +import qualified Data.Environment as Env import Data.Aeson -import qualified Hasura.Backends.BigQuery.Types as BigQuery +import qualified Hasura.Backends.BigQuery.Types as BigQuery import Hasura.Backends.BigQuery.DDL.BoolExp -import Hasura.Backends.BigQuery.DDL.Source as M -import Hasura.Backends.BigQuery.Instances.Types () +import Hasura.Backends.BigQuery.DDL.Source as M import Hasura.Base.Error import Hasura.RQL.IR.BoolExp import Hasura.RQL.Types.Backend diff --git a/server/src-lib/Hasura/Backends/BigQuery/DDL/BoolExp.hs b/server/src-lib/Hasura/Backends/BigQuery/DDL/BoolExp.hs index 26e04a762cbb0..69f0425880ae4 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/DDL/BoolExp.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/DDL/BoolExp.hs @@ -2,10 +2,9 @@ module Hasura.Backends.BigQuery.DDL.BoolExp where import Hasura.Prelude -import qualified Data.Aeson as J -import qualified Data.HashMap.Strict as Map +import qualified Data.Aeson as J +import qualified Data.HashMap.Strict as Map -import Hasura.Backends.BigQuery.Instances.Types () import Hasura.Backends.BigQuery.Types import Hasura.Base.Error import Hasura.RQL.IR.BoolExp diff --git a/server/src-lib/Hasura/Backends/BigQuery/DDL/Source.hs b/server/src-lib/Hasura/Backends/BigQuery/DDL/Source.hs index 4a602c7941aa8..dacab49cb1168 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/DDL/Source.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/DDL/Source.hs @@ -9,15 +9,14 @@ where import Hasura.Prelude -import qualified Data.Environment as Env -import qualified Data.HashMap.Strict as HM -import qualified Data.Text as T +import qualified Data.Environment as Env +import qualified Data.HashMap.Strict as HM +import qualified Data.Text as T -import Control.Concurrent.MVar (newMVar) +import Control.Concurrent.MVar (newMVar) import Data.Time.Clock.System import Hasura.Backends.BigQuery.Connection -import Hasura.Backends.BigQuery.Instances.Types () import Hasura.Backends.BigQuery.Meta import Hasura.Backends.BigQuery.Source import Hasura.Backends.BigQuery.Types diff --git a/server/src-lib/Hasura/Backends/BigQuery/Instances/Transport.hs b/server/src-lib/Hasura/Backends/BigQuery/Instances/Transport.hs index f2264e511d824..f839f351b6f0c 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/Instances/Transport.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/Instances/Transport.hs @@ -11,7 +11,6 @@ import qualified Hasura.Logging as L import qualified Hasura.Tracing as Tracing import Hasura.Backends.BigQuery.Instances.Execute () -import Hasura.Backends.MSSQL.Instances.Execute () import Hasura.Base.Error import Hasura.EncJSON import Hasura.GraphQL.Execute.Backend diff --git a/server/src-lib/Hasura/Backends/BigQuery/Instances/Types.hs b/server/src-lib/Hasura/Backends/BigQuery/Instances/Types.hs index 2331adf1ba0c9..58c864c403435 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/Instances/Types.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/Instances/Types.hs @@ -5,25 +5,19 @@ module Hasura.Backends.BigQuery.Instances.Types where import Hasura.Prelude import qualified Language.GraphQL.Draft.Syntax as G -import qualified Text.Builder as TB import Data.Aeson import Data.Functor.Const -import Hasura.SQL.Types import qualified Hasura.Backends.BigQuery.Source as BigQuery -import qualified Hasura.Backends.BigQuery.ToQuery as BigQuery (fromExpression, toTextPretty) import qualified Hasura.Backends.BigQuery.Types as BigQuery +import Hasura.Backends.BigQuery.ToQuery () import Hasura.Base.Error -import Hasura.RQL.DDL.Headers () import Hasura.RQL.Types.Backend import Hasura.SQL.Backend -instance ToSQL BigQuery.Expression where - toSQL = TB.text . BigQuery.toTextPretty . BigQuery.fromExpression - instance Backend 'BigQuery where type SourceConfig 'BigQuery = BigQuery.BigQuerySourceConfig type SourceConnConfiguration 'BigQuery = BigQuery.BigQueryConnSourceConfig diff --git a/server/src-lib/Hasura/Backends/BigQuery/ToQuery.hs b/server/src-lib/Hasura/Backends/BigQuery/ToQuery.hs index b2fba3e473369..a5ce2b77528bd 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/ToQuery.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/ToQuery.hs @@ -1,3 +1,5 @@ +{-# OPTIONS_GHC -fno-warn-orphans #-} + -- | Convert the simple BigQuery AST to an SQL query, ready to be passed -- to the odbc package's query/exec functions. @@ -15,23 +17,25 @@ module Hasura.Backends.BigQuery.ToQuery , paramName ) where -import Control.Monad.State.Strict -import Data.Bifunctor -import Data.Containers.ListUtils -import Data.Foldable +import Hasura.Prelude hiding (second) + import qualified Data.HashMap.Strict.InsOrd as OMap -import Data.List (intersperse) import qualified Data.List.NonEmpty as NE -import Data.Maybe -import Data.String import qualified Data.Text as T import qualified Data.Text.Lazy as LT -import Data.Text.Lazy.Builder (Builder) import qualified Data.Text.Lazy.Builder as LT -import Data.Tuple import qualified Data.Vector as V + +import Data.Aeson (ToJSON (..)) +import Data.Bifunctor +import Data.Containers.ListUtils +import Data.List (intersperse) +import Data.String +import Data.Text.Lazy.Builder (Builder) +import Data.Tuple + import Hasura.Backends.BigQuery.Types -import Hasura.Prelude hiding (second) + -------------------------------------------------------------------------------- -- Types @@ -51,6 +55,16 @@ instance IsString Printer where (<+>) :: Printer -> Printer -> Printer (<+>) x y = SeqPrinter [x,y] + +-------------------------------------------------------------------------------- +-- Instances + +-- This is a debug instance, only here because it avoids a circular +-- dependency between this module and Types.hs. +instance ToJSON Expression where + toJSON = toJSON . toTextPretty . fromExpression + + -------------------------------------------------------------------------------- -- Printer generators @@ -460,6 +474,7 @@ fromValue = ValuePrinter parens :: Printer -> Printer parens x = "(" <+> IndentPrinter 1 x <+> ")" + -------------------------------------------------------------------------------- -- Quick and easy query printer @@ -475,6 +490,7 @@ toTextPretty = LT.toStrict . LT.toLazyText . toBuilderPretty toTextFlat :: Printer -> Text toTextFlat = LT.toStrict . LT.toLazyText . toBuilderFlat + -------------------------------------------------------------------------------- -- Printer ready for consumption @@ -490,6 +506,7 @@ renderBuilderPretty = second (OMap.fromList . map swap . OMap.toList) . flip runState mempty . runBuilderPretty + -------------------------------------------------------------------------------- -- Real printer engines @@ -511,11 +528,10 @@ runBuilderFlat = go 0 ValuePrinter (ArrayValue x) | V.null x -> pure "[]" ValuePrinter v -> do themap <- get - next <- case OMap.lookup v themap of - Just next -> pure next - Nothing -> do next <- gets OMap.size - modify (OMap.insert v next) - pure next + next <- OMap.lookup v themap `onNothing` do + next <- gets OMap.size + modify (OMap.insert v next) + pure next pure ("@" <> paramName next) notEmpty = (/= mempty) @@ -535,13 +551,10 @@ runBuilderPretty = go 0 | V.null x -> pure "[]" ValuePrinter v -> do themap <- get - next <- - case OMap.lookup v themap of - Just next -> pure next - Nothing -> do - next <- gets OMap.size - modify (OMap.insert v next) - pure next + next <- OMap.lookup v themap `onNothing` do + next <- gets OMap.size + modify (OMap.insert v next) + pure next pure ("@" <> paramName next) indentation n = LT.fromText (T.replicate n " ") notEmpty = (/= mempty) diff --git a/server/src-lib/Hasura/Backends/BigQuery/Types.hs b/server/src-lib/Hasura/Backends/BigQuery/Types.hs index 2d1dfff1a4ec2..c1939773a6d3a 100644 --- a/server/src-lib/Hasura/Backends/BigQuery/Types.hs +++ b/server/src-lib/Hasura/Backends/BigQuery/Types.hs @@ -18,7 +18,6 @@ import qualified Language.GraphQL.Draft.Syntax as G import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey) import Data.ByteString (ByteString) import Data.Coerce -import Data.Hashable.Time () import Data.Scientific import Data.Text.Extended import Data.Time @@ -50,7 +49,6 @@ data Select = Select instance FromJSON Select instance Hashable Select instance Cacheable Select -instance ToJSON Select instance NFData Select data ArrayAgg = ArrayAgg @@ -61,7 +59,6 @@ data ArrayAgg = ArrayAgg instance FromJSON ArrayAgg instance Hashable ArrayAgg instance Cacheable ArrayAgg -instance ToJSON ArrayAgg instance NFData ArrayAgg data Reselect = Reselect @@ -71,7 +68,6 @@ data Reselect = Reselect instance FromJSON Reselect instance Hashable Reselect instance Cacheable Reselect -instance ToJSON Reselect instance NFData Reselect data OrderBy = OrderBy @@ -111,7 +107,6 @@ data FieldOrigin | AggregateOrigin [Aliased Aggregate] deriving (Eq, Ord, Show, Generic, Data, Lift) instance FromJSON FieldOrigin -instance ToJSON FieldOrigin instance Hashable FieldOrigin instance Cacheable FieldOrigin instance NFData FieldOrigin @@ -136,7 +131,6 @@ data Projection instance FromJSON Projection instance Hashable Projection instance Cacheable Projection -instance ToJSON Projection instance NFData Projection data WindowFunction = @@ -161,7 +155,6 @@ data Join = Join instance FromJSON Join instance Hashable Join instance Cacheable Join -instance ToJSON Join instance NFData Join data JoinProvenance @@ -174,7 +167,6 @@ data JoinProvenance instance FromJSON JoinProvenance instance Hashable JoinProvenance instance Cacheable JoinProvenance -instance ToJSON JoinProvenance instance NFData JoinProvenance data JoinSource @@ -186,12 +178,11 @@ data JoinSource instance FromJSON JoinSource instance Hashable JoinSource instance Cacheable JoinSource -instance ToJSON JoinSource instance NFData JoinSource newtype Where = Where [Expression] - deriving (NFData, Eq, Ord, Show, Generic, Data, Lift, FromJSON, ToJSON, Hashable, Cacheable) + deriving (NFData, Eq, Ord, Show, Generic, Data, Lift, FromJSON, Hashable, Cacheable) instance Monoid Where where mempty = Where mempty @@ -266,7 +257,6 @@ data Expression instance FromJSON Expression instance Hashable Expression instance Cacheable Expression -instance ToJSON Expression instance NFData Expression data JsonPath @@ -289,7 +279,6 @@ data Aggregate instance FromJSON Aggregate instance Hashable Aggregate instance Cacheable Aggregate -instance ToJSON Aggregate instance NFData Aggregate data Countable fieldname @@ -310,7 +299,6 @@ data From instance FromJSON From instance Hashable From instance Cacheable From -instance ToJSON From instance NFData From data OpenJson = OpenJson @@ -320,7 +308,6 @@ data OpenJson = OpenJson instance FromJSON OpenJson instance Hashable OpenJson instance Cacheable OpenJson -instance ToJSON OpenJson instance NFData OpenJson data JsonFieldSpec @@ -365,7 +352,7 @@ instance ToJSONKey TableName instance NFData TableName instance Arbitrary TableName where arbitrary = genericArbitrary -instance ToTxt TableName where toTxt = T.pack . show +instance ToTxt TableName where toTxt = tshow data FieldName = FieldName { fieldName :: Text @@ -486,7 +473,7 @@ instance FromJSON Int64 where parseJSON = liberalInt64Parser Int64 instance ToJSON Int64 where toJSON = liberalIntegralPrinter intToInt64 :: Int -> Int64 -intToInt64 = Int64 . T.pack . show +intToInt64 = Int64 . tshow -- | BigQuery's conception of a fixed precision decimal. newtype Decimal = Decimal Text @@ -553,7 +540,7 @@ instance ToJSON ScalarType instance ToJSONKey ScalarType instance NFData ScalarType instance Hashable ScalarType -instance ToTxt ScalarType where toTxt = T.pack . show +instance ToTxt ScalarType where toTxt = tshow -------------------------------------------------------------------------------- -- Unified table metadata @@ -703,7 +690,7 @@ liberalInt64Parser fromText json = viaText <|> viaNumber _ -> fail ("String containing integral number is invalid: " ++ show text) viaNumber = do int <- J.parseJSON json - pure (fromText (T.pack (show (int :: Int)))) + pure (fromText (tshow (int :: Int))) -- | Parse either a JSON native double number, or a text string -- containing something vaguely in scientific notation. In either @@ -723,7 +710,7 @@ liberalDecimalParser fromText json = viaText <|> viaNumber -- Converting a scientific to an unbounded number is unsafe, but -- to a double is bounded and therefore OK. JSON only supports -- doubles, so that's fine. - pure (fromText (T.pack (show (d :: Double)))) + pure (fromText (tshow (d :: Double))) projectionAlias :: Projection -> Maybe Text projectionAlias = diff --git a/server/src-lib/Hasura/Backends/MSSQL/DDL/BoolExp.hs b/server/src-lib/Hasura/Backends/MSSQL/DDL/BoolExp.hs index 698be0d215e08..072ce9ca7facc 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/DDL/BoolExp.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/DDL/BoolExp.hs @@ -2,14 +2,13 @@ module Hasura.Backends.MSSQL.DDL.BoolExp where import Hasura.Prelude -import qualified Data.Aeson as J -import qualified Data.HashMap.Strict as Map -import qualified Data.Text as T +import qualified Data.Aeson as J +import qualified Data.HashMap.Strict as Map +import qualified Data.Text as T -import Data.Text.Extended (dquote, (<<>)) +import Data.Text.Extended (dquote, (<<>)) -import Hasura.Backends.MSSQL.Instances.Types () -import Hasura.Backends.MSSQL.Types hiding (ColumnType) +import Hasura.Backends.MSSQL.Types hiding (ColumnType) import Hasura.Base.Error import Hasura.RQL.IR.BoolExp import Hasura.RQL.Types.Column diff --git a/server/src-lib/Hasura/Backends/MSSQL/FromIr.hs b/server/src-lib/Hasura/Backends/MSSQL/FromIr.hs index 59f0c79d58ea2..fc4e0b3ea5838 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/FromIr.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/FromIr.hs @@ -20,7 +20,6 @@ import qualified Data.Map.Strict as M import qualified Data.Text as T import qualified Database.ODBC.SQLServer as ODBC ---import Control.Monad.Trans.State.Strict as S import Control.Monad.Validate import Data.Map.Strict (Map) import Data.Proxy diff --git a/server/src-lib/Hasura/Backends/MSSQL/Instances/Types.hs b/server/src-lib/Hasura/Backends/MSSQL/Instances/Types.hs index af4c135ff2126..b250fda23cfd7 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/Instances/Types.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/Instances/Types.hs @@ -14,7 +14,6 @@ import qualified Hasura.Backends.MSSQL.Types as MSSQL import Hasura.Backends.MSSQL.ToQuery () import Hasura.Base.Error -import Hasura.RQL.DDL.Headers () import Hasura.RQL.Types.Backend import Hasura.SQL.Backend diff --git a/server/src-lib/Hasura/Backends/MSSQL/Meta.hs b/server/src-lib/Hasura/Backends/MSSQL/Meta.hs index df9c594e10d37..0055363a535a6 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/Meta.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/Meta.hs @@ -25,6 +25,7 @@ import Hasura.RQL.Types.Common (OID (..)) import Hasura.RQL.Types.Table import Hasura.SQL.Backend + -------------------------------------------------------------------------------- -- Loader diff --git a/server/src-lib/Hasura/Backends/MSSQL/SQL/Value.hs b/server/src-lib/Hasura/Backends/MSSQL/SQL/Value.hs index 90c4be5c97fcf..3e2a28afd2e92 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/SQL/Value.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/SQL/Value.hs @@ -3,21 +3,23 @@ module Hasura.Backends.MSSQL.SQL.Value (txtEncodedColVal) where import Hasura.Prelude import qualified Database.ODBC.SQLServer as ODBC -import Hasura.GraphQL.Execute.LiveQuery.Plan () -import qualified Hasura.RQL.Types.Column as RQL import Data.Text.Encoding (decodeUtf8) +import Data.Text.Extended + +import qualified Hasura.RQL.Types.Column as RQL -import Hasura.Backends.MSSQL.Types.Internal (Expression (..), Value) +import Hasura.Backends.MSSQL.Types.Internal (Value) +import Hasura.GraphQL.Execute.LiveQuery.Plan () import Hasura.SQL.Backend -import Hasura.SQL.Types (toSQLTxt) import Hasura.SQL.Value (TxtEncodedVal (..)) + txtEncodedVal :: Value -> TxtEncodedVal txtEncodedVal ODBC.NullValue = TENull txtEncodedVal (ODBC.ByteStringValue b) = TELit $ decodeUtf8 b txtEncodedVal (ODBC.TextValue t) = TELit t -txtEncodedVal val = TELit $ toSQLTxt $ ValueExpression val +txtEncodedVal val = TELit $ toTxt $ ODBC.toSql val txtEncodedColVal :: RQL.ColumnValue 'MSSQL -> TxtEncodedVal txtEncodedColVal = txtEncodedVal . RQL.cvValue diff --git a/server/src-lib/Hasura/Backends/MSSQL/ToQuery.hs b/server/src-lib/Hasura/Backends/MSSQL/ToQuery.hs index 0640e199d3f94..63406f0623bfd 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/ToQuery.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/ToQuery.hs @@ -19,8 +19,8 @@ import qualified Data.Text as T import qualified Data.Text.Extended as T import qualified Data.Text.Lazy as L import qualified Data.Text.Lazy.Builder as L -import qualified Text.Builder as TB +import Data.Aeson (ToJSON (..)) import Data.List (intersperse) import Data.String import Database.ODBC.SQLServer @@ -54,8 +54,10 @@ instance IsString Printer where -------------------------------------------------------------------------------- -- Instances -instance ToSQL Expression where - toSQL = TB.text . T.toTxt . toQueryFlat . fromExpression +-- This is a debug instance, only here because it avoids a circular +-- dependency between this module and Types/Instances. +instance ToJSON Expression where + toJSON = toJSON . T.toTxt . toQueryFlat . fromExpression -------------------------------------------------------------------------------- diff --git a/server/src-lib/Hasura/Backends/MSSQL/Types/Instances.hs b/server/src-lib/Hasura/Backends/MSSQL/Types/Instances.hs index bc433df6f5fba..3c9611bf4be25 100644 --- a/server/src-lib/Hasura/Backends/MSSQL/Types/Instances.hs +++ b/server/src-lib/Hasura/Backends/MSSQL/Types/Instances.hs @@ -155,9 +155,6 @@ instance Arbitrary ColumnName where instance Arbitrary TableName where arbitrary = genericArbitrary -instance ToTxt () where - toTxt = tshow - -------------------------------------------------------------------------------- -- Manual instances diff --git a/server/src-lib/Hasura/Backends/Postgres/Connection.hs b/server/src-lib/Hasura/Backends/Postgres/Connection.hs index 3b149c32fe28b..57b4d5b3435d6 100644 --- a/server/src-lib/Hasura/Backends/Postgres/Connection.hs +++ b/server/src-lib/Hasura/Backends/Postgres/Connection.hs @@ -63,6 +63,7 @@ import Data.Bifoldable import Data.Bifunctor import Data.Bitraversable import Data.Char (toLower) +import Data.Hashable.Time () import Data.Semigroup (Max (..)) import Data.Text (unpack) import Data.Time @@ -76,6 +77,7 @@ import qualified Hasura.Tracing as Tracing import Hasura.Backends.Postgres.Execute.Types as ET import Hasura.Backends.Postgres.SQL.Types import Hasura.Base.Error +import Hasura.Base.Instances () import Hasura.EncJSON import Hasura.Incremental (Cacheable (..)) import Hasura.RQL.Types.Common (UrlConf (..)) @@ -83,6 +85,7 @@ import Hasura.SQL.Types import Hasura.Server.Utils (parseConnLifeTime, readIsoLevel) import Hasura.Session + class (MonadError QErr m) => MonadTx m where liftTx :: Q.TxE QErr a -> m a diff --git a/server/src-lib/Hasura/Backends/Postgres/Execute/Mutation.hs b/server/src-lib/Hasura/Backends/Postgres/Execute/Mutation.hs index 7c06582a8ae40..5346d3e5c8433 100644 --- a/server/src-lib/Hasura/Backends/Postgres/Execute/Mutation.hs +++ b/server/src-lib/Hasura/Backends/Postgres/Execute/Mutation.hs @@ -31,7 +31,6 @@ import Hasura.Backends.Postgres.Translate.Returning import Hasura.Backends.Postgres.Translate.Select import Hasura.Backends.Postgres.Translate.Update import Hasura.Base.Error -import Hasura.Base.Instances () import Hasura.EncJSON import Hasura.RQL.DML.Internal import Hasura.RQL.IR.Delete diff --git a/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs b/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs index 1165a4dab9908..4195358a5591e 100644 --- a/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs +++ b/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs @@ -7,12 +7,11 @@ module Hasura.Backends.Postgres.Translate.BoolExp import Hasura.Prelude -import qualified Data.HashMap.Strict as M +import qualified Data.HashMap.Strict as M -import qualified Hasura.Backends.Postgres.SQL.DML as S +import qualified Hasura.Backends.Postgres.SQL.DML as S -import Hasura.Backends.Postgres.Instances.Types () -import Hasura.Backends.Postgres.SQL.Types hiding (TableName) +import Hasura.Backends.Postgres.SQL.Types hiding (TableName) import Hasura.Backends.Postgres.Types.BoolExp import Hasura.Base.Error import Hasura.RQL.Types diff --git a/server/src-lib/Hasura/Backends/Postgres/Translate/Mutation.hs b/server/src-lib/Hasura/Backends/Postgres/Translate/Mutation.hs index 3f7dc7a9f27c0..45a0f1f24101f 100644 --- a/server/src-lib/Hasura/Backends/Postgres/Translate/Mutation.hs +++ b/server/src-lib/Hasura/Backends/Postgres/Translate/Mutation.hs @@ -14,7 +14,6 @@ import Hasura.Backends.Postgres.SQL.Types import Hasura.Backends.Postgres.SQL.Value import Hasura.Backends.Postgres.Types.Column import Hasura.Base.Error -import Hasura.Base.Instances () import Hasura.RQL.Types import Hasura.SQL.Types diff --git a/server/src-lib/Hasura/Backends/Postgres/Types/Column.hs b/server/src-lib/Hasura/Backends/Postgres/Types/Column.hs index e1766124e1d7e..cfef23e7110bb 100644 --- a/server/src-lib/Hasura/Backends/Postgres/Types/Column.hs +++ b/server/src-lib/Hasura/Backends/Postgres/Types/Column.hs @@ -2,7 +2,6 @@ module Hasura.Backends.Postgres.Types.Column where import Hasura.Backends.Postgres.Instances.Types () import Hasura.Backends.Postgres.SQL.Types -import Hasura.Base.Instances () import Hasura.RQL.Types.Column import Hasura.SQL.Backend diff --git a/server/src-lib/Hasura/GraphQL/Transport/HTTP/Protocol.hs b/server/src-lib/Hasura/GraphQL/Transport/HTTP/Protocol.hs index 9b2867c4b1295..21d07d81576d9 100644 --- a/server/src-lib/Hasura/GraphQL/Transport/HTTP/Protocol.hs +++ b/server/src-lib/Hasura/GraphQL/Transport/HTTP/Protocol.hs @@ -35,8 +35,8 @@ import Data.Either (isLeft) import Language.Haskell.TH.Syntax (Lift) import Hasura.Base.Error +import Hasura.Base.Instances () import Hasura.EncJSON -import Hasura.RQL.Types () -- TODO: why not just `G.ExecutableDocument G.Name`? diff --git a/server/src-lib/Hasura/RQL/DDL/Headers.hs b/server/src-lib/Hasura/RQL/DDL/Headers.hs index 186a0d15f1365..9c4a4a2be55c0 100644 --- a/server/src-lib/Hasura/RQL/DDL/Headers.hs +++ b/server/src-lib/Hasura/RQL/DDL/Headers.hs @@ -1,9 +1,5 @@ module Hasura.RQL.DDL.Headers where -import Data.Aeson -import Hasura.Base.Error -import Hasura.Base.Instances () -import Hasura.Incremental (Cacheable) import Hasura.Prelude import qualified Data.CaseInsensitive as CI @@ -11,6 +7,12 @@ import qualified Data.Environment as Env import qualified Data.Text as T import qualified Network.HTTP.Types as HTTP +import Data.Aeson + +import Hasura.Base.Error +import Hasura.Base.Instances () +import Hasura.Incremental (Cacheable) + data HeaderConf = HeaderConf HeaderName HeaderValue deriving (Show, Eq, Generic) diff --git a/server/src-lib/Hasura/RQL/DDL/Schema.hs b/server/src-lib/Hasura/RQL/DDL/Schema.hs index 81af0a65ef019..a34f5de08e491 100644 --- a/server/src-lib/Hasura/RQL/DDL/Schema.hs +++ b/server/src-lib/Hasura/RQL/DDL/Schema.hs @@ -35,7 +35,6 @@ import qualified Database.PostgreSQL.LibPQ as PQ import Data.Aeson import Data.Aeson.TH -import Hasura.Base.Instances () import Hasura.RQL.DDL.Schema.Cache as M import Hasura.RQL.DDL.Schema.Catalog as M import Hasura.RQL.DDL.Schema.Function as M diff --git a/server/src-lib/Hasura/RQL/DDL/Schema/Cache/Permission.hs b/server/src-lib/Hasura/RQL/DDL/Schema/Cache/Permission.hs index 4e2d90d55eefa..0f42bf408a59d 100644 --- a/server/src-lib/Hasura/RQL/DDL/Schema/Cache/Permission.hs +++ b/server/src-lib/Hasura/RQL/DDL/Schema/Cache/Permission.hs @@ -9,23 +9,22 @@ module Hasura.RQL.DDL.Schema.Cache.Permission import Hasura.Prelude -import qualified Data.HashMap.Strict as M -import qualified Data.HashMap.Strict.Extended as M -import qualified Data.HashMap.Strict.InsOrd as OMap -import qualified Data.HashSet as Set -import qualified Data.List.NonEmpty as NE -import qualified Data.Sequence as Seq +import qualified Data.HashMap.Strict as M +import qualified Data.HashMap.Strict.Extended as M +import qualified Data.HashMap.Strict.InsOrd as OMap +import qualified Data.HashSet as Set +import qualified Data.List.NonEmpty as NE +import qualified Data.Sequence as Seq import Control.Arrow.Extended import Data.Aeson import Data.Proxy import Data.Text.Extended -import qualified Hasura.Incremental as Inc -import qualified Hasura.SQL.AnyBackend as AB +import qualified Hasura.Incremental as Inc +import qualified Hasura.SQL.AnyBackend as AB import Hasura.Base.Error -import Hasura.Incremental.Internal.Dependency () import Hasura.RQL.DDL.Permission import Hasura.RQL.DDL.Schema.Cache.Common import Hasura.RQL.Types diff --git a/server/src-lib/Hasura/RQL/DML/Types.hs b/server/src-lib/Hasura/RQL/DML/Types.hs index f393a8fbdb08f..6d10056a6b65e 100644 --- a/server/src-lib/Hasura/RQL/DML/Types.hs +++ b/server/src-lib/Hasura/RQL/DML/Types.hs @@ -45,7 +45,6 @@ import qualified Hasura.Backends.Postgres.SQL.DML as PG import Hasura.Backends.Postgres.Instances.Types () import Hasura.Backends.Postgres.SQL.Types -import Hasura.Base.Instances () import Hasura.RQL.IR.BoolExp import Hasura.RQL.IR.OrderBy import Hasura.RQL.Types.Column diff --git a/server/src-lib/Hasura/RQL/IR/BoolExp.hs b/server/src-lib/Hasura/RQL/IR/BoolExp.hs index eaf4ab6cacfa4..f0db632f8ea3d 100644 --- a/server/src-lib/Hasura/RQL/IR/BoolExp.hs +++ b/server/src-lib/Hasura/RQL/IR/BoolExp.hs @@ -61,7 +61,6 @@ import Hasura.RQL.Types.Column import Hasura.RQL.Types.Common import Hasura.RQL.Types.Relationship import Hasura.SQL.Backend -import Hasura.SQL.Types import Hasura.Session @@ -199,7 +198,7 @@ instance (Backend b, Hashable (BooleanOperators b (PartialSQLExp b))) => Cachea instance Backend b => ToJSON (PartialSQLExp b) where toJSON = \case PSESessVar colTy sessVar -> toJSON (colTy, sessVar) - PSESQLExp e -> toJSON $ toSQLTxt e + PSESQLExp e -> toJSON e isStaticValue :: PartialSQLExp backend -> Bool isStaticValue = \case diff --git a/server/src-lib/Hasura/RQL/IR/OrderBy.hs b/server/src-lib/Hasura/RQL/IR/OrderBy.hs index e2039f8a8deee..52b6d97b86554 100644 --- a/server/src-lib/Hasura/RQL/IR/OrderBy.hs +++ b/server/src-lib/Hasura/RQL/IR/OrderBy.hs @@ -12,7 +12,6 @@ import qualified Data.Text as T import Data.Aeson -import Hasura.Base.Instances () import Hasura.RQL.Types.Backend import Hasura.RQL.Types.Common import Hasura.SQL.Backend diff --git a/server/src-lib/Hasura/RQL/Types/Backend.hs b/server/src-lib/Hasura/RQL/Types/Backend.hs index 4b1ebd5d44254..de35d5d1ca7e2 100644 --- a/server/src-lib/Hasura/RQL/Types/Backend.hs +++ b/server/src-lib/Hasura/RQL/Types/Backend.hs @@ -11,7 +11,6 @@ import Data.Typeable (Typeable) import Hasura.Base.Error import Hasura.Incremental (Cacheable) -import Hasura.RQL.DDL.Headers () import Hasura.SQL.Backend import Hasura.SQL.Tag import Hasura.SQL.Types @@ -71,7 +70,6 @@ class , Data (ScalarType b) , Traversable (BooleanOperators b) , Data (SQLExpression b) - , ToSQL (SQLExpression b) , FromJSON (BasicOrderType b) , FromJSON (Column b) , FromJSON (ConstraintName b) @@ -94,6 +92,7 @@ class , ToJSON (TableName b) , ToJSON (SourceConnConfiguration b) , ToJSON (ExtraTableMetadata b) + , ToJSON (SQLExpression b) , ToJSONKey (Column b) , ToJSONKey (FunctionName b) , ToJSONKey (ScalarType b) diff --git a/server/src-lib/Hasura/RQL/Types/Column.hs b/server/src-lib/Hasura/RQL/Types/Column.hs index 39593d133ff4d..6769480ee652a 100644 --- a/server/src-lib/Hasura/RQL/Types/Column.hs +++ b/server/src-lib/Hasura/RQL/Types/Column.hs @@ -38,7 +38,6 @@ import Data.Aeson.TH import Data.Text.Extended import Hasura.Base.Error -import Hasura.Base.Instances () import Hasura.Incremental (Cacheable) import Hasura.RQL.Types.Backend import Hasura.RQL.Types.Common diff --git a/server/src-lib/Hasura/RQL/Types/Common.hs b/server/src-lib/Hasura/RQL/Types/Common.hs index 5320d16f574af..87916016be77b 100644 --- a/server/src-lib/Hasura/RQL/Types/Common.hs +++ b/server/src-lib/Hasura/RQL/Types/Common.hs @@ -66,13 +66,11 @@ import Data.Aeson import Data.Aeson.Casing import Data.Aeson.TH import Data.Bifunctor (bimap) -import Data.Hashable.Time () import Data.Scientific (toBoundedInteger) import Data.Text.Extended import Data.Text.NonEmpty import Data.URL.Template - import qualified Hasura.Backends.Postgres.SQL.Types as PG import Hasura.Base.Error @@ -81,6 +79,7 @@ import Hasura.Incremental (Cacheable) import Hasura.RQL.DDL.Headers () import Hasura.SQL.Types + newtype RelName = RelName { getRelTxt :: NonEmptyText } deriving (Show, Eq, Ord, Hashable, FromJSON, ToJSON, ToJSONKey diff --git a/server/src-lib/Hasura/RQL/Types/Endpoint.hs b/server/src-lib/Hasura/RQL/Types/Endpoint.hs index d2acee25f9bbd..ecb977a3d2bf1 100644 --- a/server/src-lib/Hasura/RQL/Types/Endpoint.hs +++ b/server/src-lib/Hasura/RQL/Types/Endpoint.hs @@ -25,20 +25,20 @@ module Hasura.RQL.Types.Endpoint import Hasura.Prelude +import qualified Data.Text as T import qualified Database.PG.Query as Q import Control.Lens import Data.Aeson import Data.Aeson.Casing import Data.Aeson.TH -import qualified Data.Text as T import Data.Text.Extended import Data.Text.NonEmpty +import Web.HttpApiData (FromHttpApiData (..)) -import Hasura.Base.Instances () import Hasura.RQL.Types.Endpoint.Trie as Trie import Hasura.RQL.Types.QueryCollection (CollectionName, QueryName) -import Web.HttpApiData (FromHttpApiData (..)) + newtype EndpointMethod = EndpointMethod { unEndpointMethod :: Text } deriving diff --git a/server/src-lib/Hasura/RQL/Types/QueryCollection.hs b/server/src-lib/Hasura/RQL/Types/QueryCollection.hs index 30fc70ef5adea..48de8e3573614 100644 --- a/server/src-lib/Hasura/RQL/Types/QueryCollection.hs +++ b/server/src-lib/Hasura/RQL/Types/QueryCollection.hs @@ -31,11 +31,9 @@ import Data.Aeson.TH import Data.Text.Extended import Data.Text.NonEmpty -import Hasura.Base.Instances () import Hasura.Incremental (Cacheable) - newtype CollectionName = CollectionName {unCollectionName :: NonEmptyText} deriving ( Show, Eq, Ord, Hashable, ToJSON, ToJSONKey diff --git a/server/src-lib/Hasura/Server/Auth/JWT/Logging.hs b/server/src-lib/Hasura/Server/Auth/JWT/Logging.hs index 766d28c640f52..5316646dc7f11 100644 --- a/server/src-lib/Hasura/Server/Auth/JWT/Logging.hs +++ b/server/src-lib/Hasura/Server/Auth/JWT/Logging.hs @@ -4,17 +4,18 @@ module Hasura.Server.Auth.JWT.Logging ) where +import Hasura.Prelude + +import qualified Data.ByteString.Lazy as BL +import qualified Network.HTTP.Types as HTTP + import Data.Aeson +import Network.URI (URI) + import Hasura.HTTP -import Hasura.Logging (EngineLogType (..), Hasura, InternalLogTypes (..), - LogLevel (..), ToEngineLog (..)) -import Hasura.Prelude -import Hasura.Server.Logging () -import Network.URI (URI) +import Hasura.Logging (EngineLogType (..), Hasura, InternalLogTypes (..), + LogLevel (..), ToEngineLog (..)) -import qualified Data.ByteString.Lazy as BL -import qualified Data.Text as T -import qualified Network.HTTP.Types as HTTP -- | Possible errors during fetching and parsing JWK -- (the 'Text' type at the end is a friendly error message) @@ -36,8 +37,8 @@ instance ToJSON JwkFetchError where JFEHttpError url status body _ -> object [ "status_code" .= HTTP.statusCode status - , "url" .= T.pack (show url) - , "response" .= bsToTxt (BL.toStrict body) + , "url" .= tshow url + , "response" .= bsToTxt (BL.toStrict body) ] JFEJwkParseError e msg -> diff --git a/server/src-lib/Hasura/Server/Version.hs b/server/src-lib/Hasura/Server/Version.hs index 8f2cdcd947d1b..7a008088ec358 100644 --- a/server/src-lib/Hasura/Server/Version.hs +++ b/server/src-lib/Hasura/Server/Version.hs @@ -23,9 +23,9 @@ import Data.FileEmbed (makeRelativeToProject) import Data.Text.Conversions (FromText (..), ToText (..)) import Text.Regex.TDFA ((=~~)) -import Hasura.Base.Instances () import Hasura.Server.Utils (getValFromEnvOrScript) + data Version = VersionDev !Text | VersionRelease !V.Version