Skip to content

Commit 7fa6d96

Browse files
committed
update tests for txout variants and running txout migrations
1 parent 421611f commit 7fa6d96

File tree

33 files changed

+348
-585
lines changed

33 files changed

+348
-585
lines changed

cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit/Alonzo/Plutus.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ simpleScript =
110110
, V.txOutValue txout
111111
, V.txOutDataHash txout
112112
)
113-
Nothing -> error "AlonzosimpleScript: expected an address"
113+
Nothing -> error "AlonzoSimpleScript: expected an address"
114114
expectedFields =
115115
( renderAddress alwaysSucceedsScriptAddr
116116
, True

cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit/Conway/Config/MigrateConsumedPruneTxOut.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ basicPrune = do
112112

113113
pruneWithSimpleRollback :: IOManager -> [(Text, Text)] -> Assertion
114114
pruneWithSimpleRollback =
115-
withCustomConfig cmdLineArgs Nothing conwayConfigDir testLabel $ \interpreter mockServer dbSync -> do
115+
withCustomConfigAndLogs cmdLineArgs Nothing conwayConfigDir testLabel $ \interpreter mockServer dbSync -> do
116116
let txOutTableType = txOutTableTypeFromConfig dbSync
117117
-- Forge some blocks
118118
blk0 <- forgeNext interpreter mockBlock0

cardano-db-sync/src/Cardano/DbSync/Api.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ initPruneConsumeMigration :: Bool -> Bool -> Bool -> Bool -> DB.PruneConsumeMigr
168168
initPruneConsumeMigration consumed pruneTxOut bootstrap forceTxIn' =
169169
DB.PruneConsumeMigration
170170
{ DB.pcmPruneTxOut = pruneTxOut || bootstrap
171+
, DB.pcmConsumedTxOut = consumed
171172
, DB.pcmConsumeOrPruneTxOut = consumed || pruneTxOut || bootstrap
172173
, DB.pcmSkipTxIn = not forceTxIn' && (consumed || pruneTxOut || bootstrap)
173174
}

cardano-db-sync/src/Cardano/DbSync/Config/Types.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,7 @@ optionsToList SyncInsertOptions {..} =
470470
, toJsonIfSet "offchain_pool_data" sioOffchainPoolData
471471
, toJsonIfSet "pool_stats" sioPoolStats
472472
, toJsonIfSet "json_type" sioJsonType
473+
, toJsonIfSet "remove_jsonb_from_schema" sioRemoveJsonbFromSchema
473474
]
474475

475476
toJsonIfSet :: ToJSON a => Text -> a -> Maybe Pair
@@ -562,8 +563,8 @@ instance ToJSON TxOutConfig where
562563
instance FromJSON TxOutConfig where
563564
parseJSON = Aeson.withObject "tx_out" $ \obj -> do
564565
val <- obj .: "value"
565-
useAddress' <- obj .: "use_address_table" .!= UseTxOutAddress False
566566
forceTxIn' <- obj .:? "force_tx_in" .!= ForceTxIn False
567+
useAddress' <- obj .:? "use_address_table" .!= UseTxOutAddress False
567568

568569
case val :: Text of
569570
"enable" -> pure (TxOutEnable useAddress')

cardano-db-sync/src/Cardano/DbSync/Era/Shelley/Query.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module Cardano.DbSync.Era.Shelley.Query (
1212
) where
1313

1414
import Cardano.Db
15-
import qualified Cardano.DbSync.Api as Db
15+
import Cardano.DbSync.Api (getTxOutTableType)
1616
import Cardano.DbSync.Api.Types (SyncEnv)
1717
import qualified Cardano.DbSync.Era.Shelley.Generic as Generic
1818
import Cardano.DbSync.Util
@@ -28,16 +28,16 @@ resolveStakeAddress addr = queryStakeAddress addr renderByteArray
2828

2929
resolveInputTxOutId :: MonadIO m => SyncEnv -> Generic.TxIn -> ReaderT SqlBackend m (Either LookupFail (TxId, TxOutIdW))
3030
resolveInputTxOutId syncEnv txIn =
31-
queryTxOutId (Db.getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
31+
queryTxOutId (getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
3232

3333
resolveInputValue :: MonadIO m => SyncEnv -> Generic.TxIn -> ReaderT SqlBackend m (Either LookupFail (TxId, DbLovelace))
3434
resolveInputValue syncEnv txIn =
35-
queryTxOutValue (Db.getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
35+
queryTxOutValue (getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
3636

3737
resolveInputTxOutIdValue :: MonadIO m => SyncEnv -> Generic.TxIn -> ReaderT SqlBackend m (Either LookupFail (TxId, TxOutIdW, DbLovelace))
3838
resolveInputTxOutIdValue syncEnv txIn =
39-
queryTxOutIdValue (Db.getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
39+
queryTxOutIdValue (getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
4040

4141
queryResolveInputCredentials :: MonadIO m => SyncEnv -> Generic.TxIn -> ReaderT SqlBackend m (Either LookupFail (Maybe ByteString, Bool))
4242
queryResolveInputCredentials syncEnv txIn = do
43-
queryTxOutCredentials (Db.getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))
43+
queryTxOutCredentials (getTxOutTableType syncEnv) (Generic.toTxHash txIn, fromIntegral (Generic.txInIndex txIn))

cardano-db-sync/src/Cardano/DbSync/Fix/ConsumedBy.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import qualified Cardano.Chain.Block as Byron hiding (blockHash)
77
import qualified Cardano.Chain.UTxO as Byron
88
import qualified Cardano.Crypto as Crypto (serializeCborHash)
99
import qualified Cardano.Db as DB
10+
import Cardano.DbSync.Api (getTrace, getTxOutTableType)
11+
import Cardano.DbSync.Api.Types (SyncEnv)
1012
import Cardano.DbSync.Era.Byron.Insert
1113
import Cardano.DbSync.Era.Byron.Util (blockPayload, unTxHash)
1214
import Cardano.DbSync.Era.Util
@@ -16,8 +18,6 @@ import Cardano.Prelude hiding (length, (.))
1618
import Database.Persist.SqlBackend.Internal
1719
import Ouroboros.Consensus.Byron.Ledger (ByronBlock (..))
1820
import Ouroboros.Consensus.Cardano.Block (HardForkBlock (..))
19-
import Cardano.DbSync.Api.Types (SyncEnv)
20-
import Cardano.DbSync.Api (getTxOutTableType, getTrace)
2121

2222
type FixEntry = (DB.TxOutIdW, DB.TxId)
2323

cardano-db-sync/test/Cardano/DbSync/Config/TypesTest.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ tests =
3232
prop_syncInsertConfigFromJSON :: Property
3333
prop_syncInsertConfigFromJSON = property $ do
3434
json <- forAll genDefaultJson
35-
3635
Aeson.fromJSON json === Aeson.Success (def :: SyncInsertConfig)
3736

3837
prop_syncInsertConfigRoundtrip :: Property
@@ -118,7 +117,9 @@ genDefaultJson =
118117
[ [aesonQQ|
119118
{
120119
"tx_out": {
121-
"value": "enable"
120+
"value": "enable",
121+
"use_address_table": false,
122+
"force_tx_in": false
122123
},
123124
"ledger": "enable",
124125
"shelley": {
@@ -148,7 +149,8 @@ genDefaultJson =
148149
, [aesonQQ|
149150
{
150151
"tx_out": {
151-
"value": "enable"
152+
"value": "enable",
153+
"use_address_table": false
152154
},
153155
"ledger": "enable",
154156
"shelley": {

cardano-db-tool/app/cardano-db-tool.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ runCommand cmd =
6464
void $
6565
runMigrations pgConfig False mdir mldir Fix
6666
CmdTxOutMigration txOutTableType -> do
67-
runWithConnectionNoLogging PGPassDefaultEnv $ migrateTxOut Nothing txOutTableType
67+
runWithConnectionNoLogging PGPassDefaultEnv $ migrateTxOutTests txOutTableType
6868
CmdUtxoSetAtBlock blkid txOutAddressType -> utxoSetAtSlot txOutAddressType blkid
6969
CmdPrepareSnapshot pargs -> runPrepareSnapshot pargs
7070
CmdValidateDb txOutAddressType -> runDbValidation txOutAddressType

cardano-db-tool/src/Cardano/DbTool/Validate/BlockTxs.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ validateBlockCount (blockNo, txCountExpected) = do
7979
then Right ()
8080
else Left $ ValidateError blockNo txCountActual txCountExpected
8181

82-
-- This queries by BlockNo, the one in Cardano.Db.Operations.Core.Query queries by BlockId.
82+
-- This queries by BlockNo, the one in Cardano.Db.Operations.Query queries by BlockId.
8383
queryBlockTxCount :: MonadIO m => Word64 -> ReaderT SqlBackend m Word64
8484
queryBlockTxCount blockNo = do
8585
res <- select $ do

cardano-db/app/gen-schema-docs.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ docHeader branchName =
6060
, "** which may not accurately reflect the version number)"
6161
]
6262
, "\n"
63-
, "**Note:** This file is auto-generated from the documentation in cardano-db/src/Cardano/Db/Schema.hs\
63+
, "**Note:** This file is auto-generated from the documentation in cardano-db/src/Cardano/Db/Schema/BaseSchema.hs\
6464
\ by the command `cabal run -- gen-schema-docs doc/schema.md`. This document should only be updated\
6565
\ during the release process and updated on the release branch."
6666
, "\n"

cardano-db/cardano-db.cabal

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,18 @@ library
4040
Cardano.Db.Migration
4141
Cardano.Db.Migration.Haskell
4242
Cardano.Db.Migration.Version
43-
Cardano.Db.Operations.Core.AlterTable
44-
Cardano.Db.Operations.Core.Delete
45-
Cardano.Db.Operations.Core.Insert
46-
Cardano.Db.Operations.Core.MinId
47-
Cardano.Db.Operations.Core.Query
48-
Cardano.Db.Operations.Core.QueryHelper
43+
Cardano.Db.Operations.AlterTable
44+
Cardano.Db.Operations.Delete
45+
Cardano.Db.Operations.Insert
46+
Cardano.Db.Operations.Other.MinId
47+
Cardano.Db.Operations.Query
48+
Cardano.Db.Operations.QueryHelper
4949
Cardano.Db.Operations.Types
50-
Cardano.Db.Operations.Variant.ConsumedTxOut
51-
Cardano.Db.Operations.Variant.JsonbQuery
52-
Cardano.Db.Operations.Variant.TxOutDelete
53-
Cardano.Db.Operations.Variant.TxOutInsert
54-
Cardano.Db.Operations.Variant.TxOutQuery
50+
Cardano.Db.Operations.Other.ConsumedTxOut
51+
Cardano.Db.Operations.Other.JsonbQuery
52+
Cardano.Db.Operations.TxOut.TxOutDelete
53+
Cardano.Db.Operations.TxOut.TxOutInsert
54+
Cardano.Db.Operations.TxOut.TxOutQuery
5555
Cardano.Db.PGConfig
5656
Cardano.Db.Run
5757
Cardano.Db.Schema.BaseSchema

cardano-db/src/Cardano/Db.hs

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,24 @@ module Cardano.Db (
66
Tx (..),
77
TxIn (..),
88
gitRev,
9-
-- CTX.migrateTxOut,
10-
-- CTX.runExtraMigrations,
11-
-- CTX.queryTxConsumedColumnExists,
12-
-- CTX.queryTxOutConsumedNullCount,
13-
-- CTX.queryTxOutConsumedCount,
14-
-- CTX.querySetNullTxOut,
159
) where
1610

1711
import Cardano.Db.Error as X
1812
import Cardano.Db.Git.Version (gitRev)
1913
import Cardano.Db.Migration as X
2014
import Cardano.Db.Migration.Version as X
21-
import Cardano.Db.Operations.Core.AlterTable as X
22-
import Cardano.Db.Operations.Core.Delete as X
23-
import Cardano.Db.Operations.Core.Insert as X
24-
import Cardano.Db.Operations.Core.MinId as X
25-
import Cardano.Db.Operations.Core.Query as X
26-
import Cardano.Db.Operations.Core.QueryHelper as X
15+
import Cardano.Db.Operations.AlterTable as X
16+
import Cardano.Db.Operations.Delete as X
17+
import Cardano.Db.Operations.Insert as X
18+
import Cardano.Db.Operations.Other.ConsumedTxOut as X
19+
import Cardano.Db.Operations.Other.JsonbQuery as X
20+
import Cardano.Db.Operations.Other.MinId as X
21+
import Cardano.Db.Operations.Query as X
22+
import Cardano.Db.Operations.QueryHelper as X
23+
import Cardano.Db.Operations.TxOut.TxOutDelete as X
24+
import Cardano.Db.Operations.TxOut.TxOutInsert as X
25+
import Cardano.Db.Operations.TxOut.TxOutQuery as X
2726
import Cardano.Db.Operations.Types as X
28-
29-
-- import qualified Cardano.Db.Operations.Variant.ConsumedTxOut as CTX
30-
import Cardano.Db.Operations.Variant.ConsumedTxOut as X
31-
32-
-- (migrateTxOut, queryTxConsumedColumnExists, queryTxOutConsumedCount, queryTxOutConsumedNullCount, runExtraMigrations, querySetNullTxOut)
33-
import Cardano.Db.Operations.Variant.JsonbQuery as X
34-
import Cardano.Db.Operations.Variant.TxOutDelete as X
35-
import Cardano.Db.Operations.Variant.TxOutInsert as X
36-
import Cardano.Db.Operations.Variant.TxOutQuery as X
3727
import Cardano.Db.PGConfig as X
3828
import Cardano.Db.Run as X
3929
import Cardano.Db.Schema.BaseSchema as X

cardano-db/src/Cardano/Db/Migration.hs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ import Cardano.BM.Trace (Trace)
2828
import Cardano.Crypto.Hash (Blake2b_256, ByteString, Hash, hashToStringAsHex, hashWith)
2929
import Cardano.Db.Migration.Haskell
3030
import Cardano.Db.Migration.Version
31-
import Cardano.Db.Operations.Core.Query
31+
import Cardano.Db.Operations.Query
3232
import Cardano.Db.PGConfig
3333
import Cardano.Db.Run
3434
import Cardano.Db.Schema.BaseSchema
35+
import Cardano.Db.Schema.Core.TxOut (migrateCoreTxOutCardanoDb)
3536
import Cardano.Prelude (Typeable, textShow)
3637
import Control.Exception (Exception, SomeException, handle)
3738
import Control.Monad.Extra
@@ -238,7 +239,10 @@ createMigration source (MigrationDir migdir) = do
238239
create :: ReaderT SqlBackend (NoLoggingT IO) (Maybe (MigrationVersion, Text))
239240
create = do
240241
ver <- getSchemaVersion
241-
statements <- getMigration migrateBaseCardanoDb
242+
-- here is the place to combine any "core" schemas to the base schema
243+
statementsBase <- getMigration migrateBaseCardanoDb
244+
statementsTxOut <- getMigration migrateCoreTxOutCardanoDb
245+
let statements = statementsBase <> statementsTxOut
242246
if null statements
243247
then pure Nothing
244248
else do

0 commit comments

Comments
 (0)