{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Athena.Types.QueryExecutionStatistics
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Athena.Types.QueryExecutionStatistics where

import Amazonka.Athena.Types.ResultReuseInformation
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | The amount of data scanned during the query execution and the amount of
-- time that it took to execute, and the type of statement that was run.
--
-- /See:/ 'newQueryExecutionStatistics' smart constructor.
data QueryExecutionStatistics = QueryExecutionStatistics'
  { -- | The location and file name of a data manifest file. The manifest file is
    -- saved to the Athena query results location in Amazon S3. The manifest
    -- file tracks files that the query wrote to Amazon S3. If the query fails,
    -- the manifest file also tracks files that the query intended to write.
    -- The manifest is useful for identifying orphaned files resulting from a
    -- failed query. For more information, see
    -- <https://docs.aws.amazon.com/athena/latest/ug/querying.html Working with Query Results, Output Files, and Query History>
    -- in the /Amazon Athena User Guide/.
    QueryExecutionStatistics -> Maybe Text
dataManifestLocation :: Prelude.Maybe Prelude.Text,
    -- | The number of bytes in the data that was queried.
    QueryExecutionStatistics -> Maybe Integer
dataScannedInBytes :: Prelude.Maybe Prelude.Integer,
    -- | The number of milliseconds that the query took to execute.
    QueryExecutionStatistics -> Maybe Integer
engineExecutionTimeInMillis :: Prelude.Maybe Prelude.Integer,
    -- | The number of milliseconds that Athena took to plan the query processing
    -- flow. This includes the time spent retrieving table partitions from the
    -- data source. Note that because the query engine performs the query
    -- planning, query planning time is a subset of engine processing time.
    QueryExecutionStatistics -> Maybe Integer
queryPlanningTimeInMillis :: Prelude.Maybe Prelude.Integer,
    -- | The number of milliseconds that the query was in your query queue
    -- waiting for resources. Note that if transient errors occur, Athena might
    -- automatically add the query back to the queue.
    QueryExecutionStatistics -> Maybe Integer
queryQueueTimeInMillis :: Prelude.Maybe Prelude.Integer,
    -- | Contains information about whether previous query results were reused
    -- for the query.
    QueryExecutionStatistics -> Maybe ResultReuseInformation
resultReuseInformation :: Prelude.Maybe ResultReuseInformation,
    -- | The number of milliseconds that Athena took to finalize and publish the
    -- query results after the query engine finished running the query.
    QueryExecutionStatistics -> Maybe Integer
serviceProcessingTimeInMillis :: Prelude.Maybe Prelude.Integer,
    -- | The number of milliseconds that Athena took to run the query.
    QueryExecutionStatistics -> Maybe Integer
totalExecutionTimeInMillis :: Prelude.Maybe Prelude.Integer
  }
  deriving (QueryExecutionStatistics -> QueryExecutionStatistics -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: QueryExecutionStatistics -> QueryExecutionStatistics -> Bool
$c/= :: QueryExecutionStatistics -> QueryExecutionStatistics -> Bool
== :: QueryExecutionStatistics -> QueryExecutionStatistics -> Bool
$c== :: QueryExecutionStatistics -> QueryExecutionStatistics -> Bool
Prelude.Eq, ReadPrec [QueryExecutionStatistics]
ReadPrec QueryExecutionStatistics
Int -> ReadS QueryExecutionStatistics
ReadS [QueryExecutionStatistics]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [QueryExecutionStatistics]
$creadListPrec :: ReadPrec [QueryExecutionStatistics]
readPrec :: ReadPrec QueryExecutionStatistics
$creadPrec :: ReadPrec QueryExecutionStatistics
readList :: ReadS [QueryExecutionStatistics]
$creadList :: ReadS [QueryExecutionStatistics]
readsPrec :: Int -> ReadS QueryExecutionStatistics
$creadsPrec :: Int -> ReadS QueryExecutionStatistics
Prelude.Read, Int -> QueryExecutionStatistics -> ShowS
[QueryExecutionStatistics] -> ShowS
QueryExecutionStatistics -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [QueryExecutionStatistics] -> ShowS
$cshowList :: [QueryExecutionStatistics] -> ShowS
show :: QueryExecutionStatistics -> String
$cshow :: QueryExecutionStatistics -> String
showsPrec :: Int -> QueryExecutionStatistics -> ShowS
$cshowsPrec :: Int -> QueryExecutionStatistics -> ShowS
Prelude.Show, forall x.
Rep QueryExecutionStatistics x -> QueryExecutionStatistics
forall x.
QueryExecutionStatistics -> Rep QueryExecutionStatistics x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep QueryExecutionStatistics x -> QueryExecutionStatistics
$cfrom :: forall x.
QueryExecutionStatistics -> Rep QueryExecutionStatistics x
Prelude.Generic)

-- |
-- Create a value of 'QueryExecutionStatistics' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'dataManifestLocation', 'queryExecutionStatistics_dataManifestLocation' - The location and file name of a data manifest file. The manifest file is
-- saved to the Athena query results location in Amazon S3. The manifest
-- file tracks files that the query wrote to Amazon S3. If the query fails,
-- the manifest file also tracks files that the query intended to write.
-- The manifest is useful for identifying orphaned files resulting from a
-- failed query. For more information, see
-- <https://docs.aws.amazon.com/athena/latest/ug/querying.html Working with Query Results, Output Files, and Query History>
-- in the /Amazon Athena User Guide/.
--
-- 'dataScannedInBytes', 'queryExecutionStatistics_dataScannedInBytes' - The number of bytes in the data that was queried.
--
-- 'engineExecutionTimeInMillis', 'queryExecutionStatistics_engineExecutionTimeInMillis' - The number of milliseconds that the query took to execute.
--
-- 'queryPlanningTimeInMillis', 'queryExecutionStatistics_queryPlanningTimeInMillis' - The number of milliseconds that Athena took to plan the query processing
-- flow. This includes the time spent retrieving table partitions from the
-- data source. Note that because the query engine performs the query
-- planning, query planning time is a subset of engine processing time.
--
-- 'queryQueueTimeInMillis', 'queryExecutionStatistics_queryQueueTimeInMillis' - The number of milliseconds that the query was in your query queue
-- waiting for resources. Note that if transient errors occur, Athena might
-- automatically add the query back to the queue.
--
-- 'resultReuseInformation', 'queryExecutionStatistics_resultReuseInformation' - Contains information about whether previous query results were reused
-- for the query.
--
-- 'serviceProcessingTimeInMillis', 'queryExecutionStatistics_serviceProcessingTimeInMillis' - The number of milliseconds that Athena took to finalize and publish the
-- query results after the query engine finished running the query.
--
-- 'totalExecutionTimeInMillis', 'queryExecutionStatistics_totalExecutionTimeInMillis' - The number of milliseconds that Athena took to run the query.
newQueryExecutionStatistics ::
  QueryExecutionStatistics
newQueryExecutionStatistics :: QueryExecutionStatistics
newQueryExecutionStatistics =
  QueryExecutionStatistics'
    { $sel:dataManifestLocation:QueryExecutionStatistics' :: Maybe Text
dataManifestLocation =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dataScannedInBytes:QueryExecutionStatistics' :: Maybe Integer
dataScannedInBytes = forall a. Maybe a
Prelude.Nothing,
      $sel:engineExecutionTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
engineExecutionTimeInMillis = forall a. Maybe a
Prelude.Nothing,
      $sel:queryPlanningTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
queryPlanningTimeInMillis = forall a. Maybe a
Prelude.Nothing,
      $sel:queryQueueTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
queryQueueTimeInMillis = forall a. Maybe a
Prelude.Nothing,
      $sel:resultReuseInformation:QueryExecutionStatistics' :: Maybe ResultReuseInformation
resultReuseInformation = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceProcessingTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
serviceProcessingTimeInMillis = forall a. Maybe a
Prelude.Nothing,
      $sel:totalExecutionTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
totalExecutionTimeInMillis = forall a. Maybe a
Prelude.Nothing
    }

-- | The location and file name of a data manifest file. The manifest file is
-- saved to the Athena query results location in Amazon S3. The manifest
-- file tracks files that the query wrote to Amazon S3. If the query fails,
-- the manifest file also tracks files that the query intended to write.
-- The manifest is useful for identifying orphaned files resulting from a
-- failed query. For more information, see
-- <https://docs.aws.amazon.com/athena/latest/ug/querying.html Working with Query Results, Output Files, and Query History>
-- in the /Amazon Athena User Guide/.
queryExecutionStatistics_dataManifestLocation :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Text)
queryExecutionStatistics_dataManifestLocation :: Lens' QueryExecutionStatistics (Maybe Text)
queryExecutionStatistics_dataManifestLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Text
dataManifestLocation :: Maybe Text
$sel:dataManifestLocation:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Text
dataManifestLocation} -> Maybe Text
dataManifestLocation) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Text
a -> QueryExecutionStatistics
s {$sel:dataManifestLocation:QueryExecutionStatistics' :: Maybe Text
dataManifestLocation = Maybe Text
a} :: QueryExecutionStatistics)

-- | The number of bytes in the data that was queried.
queryExecutionStatistics_dataScannedInBytes :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Integer)
queryExecutionStatistics_dataScannedInBytes :: Lens' QueryExecutionStatistics (Maybe Integer)
queryExecutionStatistics_dataScannedInBytes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Integer
dataScannedInBytes :: Maybe Integer
$sel:dataScannedInBytes:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
dataScannedInBytes} -> Maybe Integer
dataScannedInBytes) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Integer
a -> QueryExecutionStatistics
s {$sel:dataScannedInBytes:QueryExecutionStatistics' :: Maybe Integer
dataScannedInBytes = Maybe Integer
a} :: QueryExecutionStatistics)

-- | The number of milliseconds that the query took to execute.
queryExecutionStatistics_engineExecutionTimeInMillis :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Integer)
queryExecutionStatistics_engineExecutionTimeInMillis :: Lens' QueryExecutionStatistics (Maybe Integer)
queryExecutionStatistics_engineExecutionTimeInMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Integer
engineExecutionTimeInMillis :: Maybe Integer
$sel:engineExecutionTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
engineExecutionTimeInMillis} -> Maybe Integer
engineExecutionTimeInMillis) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Integer
a -> QueryExecutionStatistics
s {$sel:engineExecutionTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
engineExecutionTimeInMillis = Maybe Integer
a} :: QueryExecutionStatistics)

-- | The number of milliseconds that Athena took to plan the query processing
-- flow. This includes the time spent retrieving table partitions from the
-- data source. Note that because the query engine performs the query
-- planning, query planning time is a subset of engine processing time.
queryExecutionStatistics_queryPlanningTimeInMillis :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Integer)
queryExecutionStatistics_queryPlanningTimeInMillis :: Lens' QueryExecutionStatistics (Maybe Integer)
queryExecutionStatistics_queryPlanningTimeInMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Integer
queryPlanningTimeInMillis :: Maybe Integer
$sel:queryPlanningTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
queryPlanningTimeInMillis} -> Maybe Integer
queryPlanningTimeInMillis) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Integer
a -> QueryExecutionStatistics
s {$sel:queryPlanningTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
queryPlanningTimeInMillis = Maybe Integer
a} :: QueryExecutionStatistics)

-- | The number of milliseconds that the query was in your query queue
-- waiting for resources. Note that if transient errors occur, Athena might
-- automatically add the query back to the queue.
queryExecutionStatistics_queryQueueTimeInMillis :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Integer)
queryExecutionStatistics_queryQueueTimeInMillis :: Lens' QueryExecutionStatistics (Maybe Integer)
queryExecutionStatistics_queryQueueTimeInMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Integer
queryQueueTimeInMillis :: Maybe Integer
$sel:queryQueueTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
queryQueueTimeInMillis} -> Maybe Integer
queryQueueTimeInMillis) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Integer
a -> QueryExecutionStatistics
s {$sel:queryQueueTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
queryQueueTimeInMillis = Maybe Integer
a} :: QueryExecutionStatistics)

-- | Contains information about whether previous query results were reused
-- for the query.
queryExecutionStatistics_resultReuseInformation :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe ResultReuseInformation)
queryExecutionStatistics_resultReuseInformation :: Lens' QueryExecutionStatistics (Maybe ResultReuseInformation)
queryExecutionStatistics_resultReuseInformation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe ResultReuseInformation
resultReuseInformation :: Maybe ResultReuseInformation
$sel:resultReuseInformation:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe ResultReuseInformation
resultReuseInformation} -> Maybe ResultReuseInformation
resultReuseInformation) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe ResultReuseInformation
a -> QueryExecutionStatistics
s {$sel:resultReuseInformation:QueryExecutionStatistics' :: Maybe ResultReuseInformation
resultReuseInformation = Maybe ResultReuseInformation
a} :: QueryExecutionStatistics)

-- | The number of milliseconds that Athena took to finalize and publish the
-- query results after the query engine finished running the query.
queryExecutionStatistics_serviceProcessingTimeInMillis :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Integer)
queryExecutionStatistics_serviceProcessingTimeInMillis :: Lens' QueryExecutionStatistics (Maybe Integer)
queryExecutionStatistics_serviceProcessingTimeInMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Integer
serviceProcessingTimeInMillis :: Maybe Integer
$sel:serviceProcessingTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
serviceProcessingTimeInMillis} -> Maybe Integer
serviceProcessingTimeInMillis) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Integer
a -> QueryExecutionStatistics
s {$sel:serviceProcessingTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
serviceProcessingTimeInMillis = Maybe Integer
a} :: QueryExecutionStatistics)

-- | The number of milliseconds that Athena took to run the query.
queryExecutionStatistics_totalExecutionTimeInMillis :: Lens.Lens' QueryExecutionStatistics (Prelude.Maybe Prelude.Integer)
queryExecutionStatistics_totalExecutionTimeInMillis :: Lens' QueryExecutionStatistics (Maybe Integer)
queryExecutionStatistics_totalExecutionTimeInMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\QueryExecutionStatistics' {Maybe Integer
totalExecutionTimeInMillis :: Maybe Integer
$sel:totalExecutionTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
totalExecutionTimeInMillis} -> Maybe Integer
totalExecutionTimeInMillis) (\s :: QueryExecutionStatistics
s@QueryExecutionStatistics' {} Maybe Integer
a -> QueryExecutionStatistics
s {$sel:totalExecutionTimeInMillis:QueryExecutionStatistics' :: Maybe Integer
totalExecutionTimeInMillis = Maybe Integer
a} :: QueryExecutionStatistics)

instance Data.FromJSON QueryExecutionStatistics where
  parseJSON :: Value -> Parser QueryExecutionStatistics
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"QueryExecutionStatistics"
      ( \Object
x ->
          Maybe Text
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe ResultReuseInformation
-> Maybe Integer
-> Maybe Integer
-> QueryExecutionStatistics
QueryExecutionStatistics'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataManifestLocation")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataScannedInBytes")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EngineExecutionTimeInMillis")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"QueryPlanningTimeInMillis")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"QueryQueueTimeInMillis")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ResultReuseInformation")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ServiceProcessingTimeInMillis")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TotalExecutionTimeInMillis")
      )

instance Prelude.Hashable QueryExecutionStatistics where
  hashWithSalt :: Int -> QueryExecutionStatistics -> Int
hashWithSalt Int
_salt QueryExecutionStatistics' {Maybe Integer
Maybe Text
Maybe ResultReuseInformation
totalExecutionTimeInMillis :: Maybe Integer
serviceProcessingTimeInMillis :: Maybe Integer
resultReuseInformation :: Maybe ResultReuseInformation
queryQueueTimeInMillis :: Maybe Integer
queryPlanningTimeInMillis :: Maybe Integer
engineExecutionTimeInMillis :: Maybe Integer
dataScannedInBytes :: Maybe Integer
dataManifestLocation :: Maybe Text
$sel:totalExecutionTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:serviceProcessingTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:resultReuseInformation:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe ResultReuseInformation
$sel:queryQueueTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:queryPlanningTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:engineExecutionTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:dataScannedInBytes:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:dataManifestLocation:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dataManifestLocation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
dataScannedInBytes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
engineExecutionTimeInMillis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
queryPlanningTimeInMillis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
queryQueueTimeInMillis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResultReuseInformation
resultReuseInformation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
serviceProcessingTimeInMillis
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
totalExecutionTimeInMillis

instance Prelude.NFData QueryExecutionStatistics where
  rnf :: QueryExecutionStatistics -> ()
rnf QueryExecutionStatistics' {Maybe Integer
Maybe Text
Maybe ResultReuseInformation
totalExecutionTimeInMillis :: Maybe Integer
serviceProcessingTimeInMillis :: Maybe Integer
resultReuseInformation :: Maybe ResultReuseInformation
queryQueueTimeInMillis :: Maybe Integer
queryPlanningTimeInMillis :: Maybe Integer
engineExecutionTimeInMillis :: Maybe Integer
dataScannedInBytes :: Maybe Integer
dataManifestLocation :: Maybe Text
$sel:totalExecutionTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:serviceProcessingTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:resultReuseInformation:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe ResultReuseInformation
$sel:queryQueueTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:queryPlanningTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:engineExecutionTimeInMillis:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:dataScannedInBytes:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Integer
$sel:dataManifestLocation:QueryExecutionStatistics' :: QueryExecutionStatistics -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataManifestLocation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
dataScannedInBytes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
engineExecutionTimeInMillis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
queryPlanningTimeInMillis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
queryQueueTimeInMillis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResultReuseInformation
resultReuseInformation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
serviceProcessingTimeInMillis
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
totalExecutionTimeInMillis