diff --git a/.ci/dev/publish-branch/Jenkinsfile.nightly b/.ci/dev/publish-branch/Jenkinsfile.nightly index 4b331e9f5d..f0cff55966 100644 --- a/.ci/dev/publish-branch/Jenkinsfile.nightly +++ b/.ci/dev/publish-branch/Jenkinsfile.nightly @@ -119,7 +119,12 @@ pipeline { usernamePassword(credentialsId: 'corda-publisher-docker-hub-credentials', usernameVariable: 'DOCKER_USERNAME', passwordVariable: 'DOCKER_PASSWORD')]) { - sh "./gradlew pushOfficialImages" + sh script: [ + './gradlew', + 'docker:pushDockerImage', + '-Pdocker.image.repository=corda/corda', + '--image OFFICIAL' + ].join(' ') } } } diff --git a/.ci/dev/regression/Jenkinsfile b/.ci/dev/regression/Jenkinsfile index fb6e3896ff..4a08d54fe7 100644 --- a/.ci/dev/regression/Jenkinsfile +++ b/.ci/dev/regression/Jenkinsfile @@ -273,6 +273,28 @@ pipeline { } } + stage('Publish Release Candidate to Internal Repository') { + when { + expression { isReleaseCandidate } + } + steps { + withCredentials([ + usernamePassword(credentialsId: 'docker-image-pusher-os', + usernameVariable: 'DOCKER_USERNAME', + passwordVariable: 'DOCKER_PASSWORD') + ]) { + sh script: [ + './gradlew', + COMMON_GRADLE_PARAMS, + '-Pdocker.image.repository=entdocker.software.r3.com/corda', + 'docker:pushDockerImage', + '--image OFFICIAL', + '--registry-url=entdocker.software.r3.com' + ].join(' ') + } + } + } + stage('Publish Release to Docker Hub') { when { expression { isReleaseTag && !isInternalRelease && !isReleaseCandidate} @@ -286,7 +308,9 @@ pipeline { sh script: [ './gradlew', COMMON_GRADLE_PARAMS, - 'pushOfficialImages' + 'docker:pushDockerImage', + '-Pdocker.image.repository=corda/corda', + '--image OFFICIAL' ].join(' ') } } diff --git a/finance/workflows/src/main/resources/migration/cash.changelog-v1.xml b/finance/workflows/src/main/resources/migration/cash.changelog-v1.xml index 1f8e2c6635..ca6fd91a75 100644 --- a/finance/workflows/src/main/resources/migration/cash.changelog-v1.xml +++ b/finance/workflows/src/main/resources/migration/cash.changelog-v1.xml @@ -2,7 +2,8 @@ <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd" + logicalFilePath="migration/node-services.changelog-init.xml"> <changeSet id="1525793504" author="R3.Corda"> <!-- drop indexes before adding not null constraints to the underlying table, recreating index immediately after --> diff --git a/node/src/main/kotlin/net/corda/node/services/upgrade/ContractUpgradeServiceImpl.kt b/node/src/main/kotlin/net/corda/node/services/upgrade/ContractUpgradeServiceImpl.kt index b28ef53b8a..351864a741 100644 --- a/node/src/main/kotlin/net/corda/node/services/upgrade/ContractUpgradeServiceImpl.kt +++ b/node/src/main/kotlin/net/corda/node/services/upgrade/ContractUpgradeServiceImpl.kt @@ -19,7 +19,7 @@ class ContractUpgradeServiceImpl(cacheFactory: NamedCacheFactory) : ContractUpgr @Table(name = "${NODE_DATABASE_PREFIX}contract_upgrades") class DBContractUpgrade( @Id - @Column(name = "state_ref", length = 96, nullable = false) + @Column(name = "state_ref", length = 176, nullable = false) var stateRef: String = "", /** refers to the UpgradedContract class name*/ diff --git a/node/src/main/resources/migration/node-core.changelog-v21.xml b/node/src/main/resources/migration/node-core.changelog-v21.xml index 7773bc7f91..ee04567f1a 100644 --- a/node/src/main/resources/migration/node-core.changelog-v21.xml +++ b/node/src/main/resources/migration/node-core.changelog-v21.xml @@ -4,11 +4,45 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> <changeSet author="R3.Corda" id="node_transaction_id_size"> + <dropPrimaryKey tableName="node_transactions" constraintName="node_transactions_pkey"/> + <dropPrimaryKey tableName="node_scheduled_states" constraintName="node_scheduled_states_pkey"/> + + <dropNotNullConstraint tableName="node_transactions" columnName="tx_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_scheduled_states" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <modifyDataType tableName="node_transactions" columnName="tx_id" newDataType="NVARCHAR(144)"/> <modifyDataType tableName="node_scheduled_states" columnName="transaction_id" newDataType="NVARCHAR(144)"/> + + <addNotNullConstraint tableName="node_transactions" columnName="tx_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_scheduled_states" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + + <addPrimaryKey columnNames="tx_id" constraintName="node_transactions_pkey" tableName="node_transactions"/> + <addPrimaryKey columnNames="output_index, transaction_id" constraintName="node_scheduled_states_pkey" + tableName="node_scheduled_states"/> + </changeSet> + + <changeSet author="R3.Corda" id="node_transaction_id_size_non-clustered_pk" onValidationFail="MARK_RAN"> + <dropPrimaryKey tableName="node_transactions" constraintName="node_transactions_pkey"/> + <addPrimaryKey tableName="node_transactions" columnNames="tx_id" constraintName="node_transactions_pkey" + clustered="false"/> + </changeSet> + + <changeSet author="R3.Corda" id="node_contract_upgrades_state_ref_size"> + <dropPrimaryKey tableName="node_contract_upgrades" constraintName="node_contract_upgrades_pkey"/> + + <dropNotNullConstraint tableName="node_contract_upgrades" columnName="state_ref" columnDataType="NVARCHAR(96)" /> + + <modifyDataType tableName="node_contract_upgrades" + columnName="state_ref" + newDataType="NVARCHAR(176)"/> + + <addNotNullConstraint tableName="node_contract_upgrades" columnName="state_ref" columnDataType="NVARCHAR(176)"/> + + <addPrimaryKey columnNames="state_ref" constraintName="node_contract_upgrades_pkey" + tableName="node_contract_upgrades"/> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/node/src/main/resources/migration/node-notary.changelog-v4.xml b/node/src/main/resources/migration/node-notary.changelog-v4.xml index c2a15576ec..7cd5a8117d 100644 --- a/node/src/main/resources/migration/node-notary.changelog-v4.xml +++ b/node/src/main/resources/migration/node-notary.changelog-v4.xml @@ -4,6 +4,14 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> <changeSet author="R3.Corda" id="node_notary_transaction_id_size"> + <dropPrimaryKey tableName="node_notary_committed_txs" constraintName="node_notary_transactions_pkey"/> + <dropPrimaryKey tableName="node_notary_committed_states" constraintName="node_notary_states_pkey"/> + + <dropNotNullConstraint tableName="node_notary_committed_txs" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_notary_committed_states" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_notary_committed_states" columnName="consuming_transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_notary_request_log" columnName="consuming_transaction_id" columnDataType="NVARCHAR(64)" /> + <modifyDataType tableName="node_notary_committed_txs" columnName="transaction_id" newDataType="NVARCHAR(144)"/> @@ -16,5 +24,21 @@ <modifyDataType tableName="node_notary_request_log" columnName="consuming_transaction_id" newDataType="NVARCHAR(144)"/> + + <addNotNullConstraint tableName="node_notary_committed_txs" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_notary_committed_states" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_notary_committed_states" columnName="consuming_transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_notary_request_log" columnName="consuming_transaction_id" columnDataType="NVARCHAR(144)"/> + + <addPrimaryKey columnNames="transaction_id" constraintName="node_notary_transactions_pkey" tableName="node_notary_committed_txs"/> + <addPrimaryKey columnNames="output_index, transaction_id" constraintName="node_notary_states_pkey" + tableName="node_notary_committed_states"/> </changeSet> + + <changeSet id="node_notary_transaction_id_size-non-clustered_pk" author="R3.Corda" onValidationFail="MARK_RAN"> + <dropPrimaryKey tableName="node_notary_committed_states" constraintName="node_notary_states_pkey"/> + <addPrimaryKey tableName="node_notary_committed_states" columnNames="output_index, transaction_id" + constraintName="node_notary_states_pkey" clustered="false"/> + </changeSet> + </databaseChangeLog> \ No newline at end of file diff --git a/node/src/main/resources/migration/notary-bft-smart.changelog-v2.xml b/node/src/main/resources/migration/notary-bft-smart.changelog-v2.xml index a63bc827ca..bc62adb0fe 100644 --- a/node/src/main/resources/migration/notary-bft-smart.changelog-v2.xml +++ b/node/src/main/resources/migration/notary-bft-smart.changelog-v2.xml @@ -4,6 +4,14 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> <changeSet author="R3.Corda" id="node_bft_transaction_id_size"> + <dropPrimaryKey tableName="node_bft_committed_states" constraintName="node_bft_states_pkey"/> + <dropPrimaryKey tableName="node_bft_committed_txs" constraintName="node_bft_transactions_pkey"/> + + <dropNotNullConstraint tableName="node_bft_committed_states" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_bft_committed_states" columnName="consuming_transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_notary_request_log" columnName="consuming_transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_bft_committed_txs" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <modifyDataType tableName="node_bft_committed_states" columnName="transaction_id" newDataType="NVARCHAR(144)"/> @@ -13,5 +21,23 @@ <modifyDataType tableName="node_notary_request_log" columnName="consuming_transaction_id" newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="node_bft_committed_txs" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + + <addNotNullConstraint tableName="node_bft_committed_states" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_bft_committed_states" columnName="consuming_transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_notary_request_log" columnName="consuming_transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_bft_committed_txs" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + + <addPrimaryKey columnNames="output_index, transaction_id" constraintName="node_bft_states_pkey" + tableName="node_bft_committed_states"/> + <addPrimaryKey columnNames="transaction_id" constraintName="node_bft_transactions_pkey" tableName="node_bft_committed_txs"/> + </changeSet> + + <changeSet id="node_bft_transaction_id_size-non-clustered_pk" author="R3.Corda" onValidationFail="MARK_RAN"> + <dropPrimaryKey tableName="node_bft_committed_states" constraintName="node_bft_states_pkey"/> + <addPrimaryKey tableName="node_bft_committed_states" columnNames="output_index, transaction_id" + constraintName="node_bft_states_pkey" clustered="false"/> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/node/src/main/resources/migration/notary-raft.changelog-v2.xml b/node/src/main/resources/migration/notary-raft.changelog-v2.xml index ddb0db5742..10b7d76452 100644 --- a/node/src/main/resources/migration/notary-raft.changelog-v2.xml +++ b/node/src/main/resources/migration/notary-raft.changelog-v2.xml @@ -4,16 +4,34 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd" logicalFilePath="migration/node-services.changelog-init.xml"> - <changeSet author="R3.Corda" id="nullability"> - <addNotNullConstraint tableName="node_raft_committed_states" columnName="state_index" columnDataType="BIGINT"/> - <addNotNullConstraint tableName="node_raft_committed_states" columnName="state_value" columnDataType="BLOB"/> - </changeSet> <changeSet author="R3.Corda" id="node_raft_transaction_id_size"> + <dropPrimaryKey tableName="node_raft_committed_txs" constraintName="node_raft_transactions_pkey"/> + + <dropNotNullConstraint tableName="node_raft_committed_txs" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="node_notary_request_log" columnName="consuming_transaction_id" columnDataType="NVARCHAR(64)" /> + <modifyDataType tableName="node_raft_committed_txs" columnName="transaction_id" newDataType="NVARCHAR(144)"/> <modifyDataType tableName="node_notary_request_log" columnName="consuming_transaction_id" newDataType="NVARCHAR(144)"/> + + <addNotNullConstraint tableName="node_raft_committed_txs" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="node_notary_request_log" columnName="consuming_transaction_id" columnDataType="NVARCHAR(144)"/> + + <addPrimaryKey columnNames="transaction_id" constraintName="node_raft_transactions_pkey" tableName="node_raft_committed_txs"/> + </changeSet> + + <changeSet author="R3.Corda" id="node_raft_committed_states_id_size"> + <dropPrimaryKey tableName="node_raft_committed_states" constraintName="node_raft_state_pkey"/> + <dropNotNullConstraint tableName="node_raft_committed_states" columnName="id" columnDataType="NVARCHAR(128)"/> + + <modifyDataType tableName="node_raft_committed_states" + columnName="id" + newDataType="NVARCHAR(208)"/> + + <addNotNullConstraint tableName="node_raft_committed_states" columnName="id" columnDataType="NVARCHAR(208)"/> + <addPrimaryKey columnNames="id" constraintName="node_raft_state_pkey" tableName="node_raft_committed_states"/> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/node/src/main/resources/migration/vault-schema.changelog-master.xml b/node/src/main/resources/migration/vault-schema.changelog-master.xml index d3616c5c0c..44684647fa 100644 --- a/node/src/main/resources/migration/vault-schema.changelog-master.xml +++ b/node/src/main/resources/migration/vault-schema.changelog-master.xml @@ -12,5 +12,5 @@ <include file="migration/vault-schema.changelog-v7.xml"/> <include file="migration/vault-schema.changelog-v8.xml"/> <include file="migration/vault-schema.changelog-v11.xml"/> - <include file="migration/vault-schema.changelog-v12.xml"/> + <include file="migration/vault-schema.changelog-v13.xml"/> </databaseChangeLog> diff --git a/node/src/main/resources/migration/vault-schema.changelog-v12.xml b/node/src/main/resources/migration/vault-schema.changelog-v12.xml deleted file mode 100644 index 8dc736a149..0000000000 --- a/node/src/main/resources/migration/vault-schema.changelog-v12.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> - - <changeSet author="R3.Corda" id="vault_transaction_id_size"> - <modifyDataType tableName="vault_fungible_states" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - <modifyDataType tableName="vault_fungible_states_parts" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - <modifyDataType tableName="vault_linear_states" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - <modifyDataType tableName="vault_linear_states_parts" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - <modifyDataType tableName="vault_states" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - <modifyDataType tableName="vault_transaction_notes" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - <modifyDataType tableName="state_party" - columnName="transaction_id" - newDataType="NVARCHAR(144)"/> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/node/src/main/resources/migration/vault-schema.changelog-v13.xml b/node/src/main/resources/migration/vault-schema.changelog-v13.xml new file mode 100644 index 0000000000..beb66dba82 --- /dev/null +++ b/node/src/main/resources/migration/vault-schema.changelog-v13.xml @@ -0,0 +1,103 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> + + <changeSet author="R3.Corda" id="vault_transaction_id_size"> + <!-- dropView to avoid org.postgresql.util.PSQLException: cannot alter type of a column used by a view or rule --> + <dropView viewName="v_pkey_hash_ex_id_map"/> + + <dropForeignKeyConstraint baseTableName="vault_fungible_states_parts" + constraintName="FK__fung_st_parts__fung_st"/> + <dropForeignKeyConstraint baseTableName="vault_linear_states_parts" + constraintName="FK__lin_stat_parts__lin_stat"/> + <dropPrimaryKey tableName="vault_fungible_states" constraintName="vault_fungible_states_pkey"/> + <dropPrimaryKey tableName="vault_linear_states" constraintName="vault_linear_states_pkey"/> + <dropPrimaryKey tableName="vault_states" constraintName="vault_states_pkey"/> + <dropIndex indexName="transaction_id_index" tableName="vault_transaction_notes"/> + + <dropNotNullConstraint tableName="vault_fungible_states" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="vault_fungible_states_parts" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="vault_linear_states" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="vault_linear_states_parts" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + <dropNotNullConstraint tableName="vault_states" columnName="transaction_id" columnDataType="NVARCHAR(64)" /> + + <modifyDataType tableName="vault_fungible_states" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="vault_fungible_states_parts" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="vault_linear_states" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="vault_linear_states_parts" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="vault_states" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="vault_transaction_notes" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + <modifyDataType tableName="state_party" + columnName="transaction_id" + newDataType="NVARCHAR(144)"/> + + <addNotNullConstraint tableName="vault_fungible_states" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="vault_fungible_states_parts" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="vault_linear_states" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="vault_linear_states_parts" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + <addNotNullConstraint tableName="vault_states" columnName="transaction_id" columnDataType="NVARCHAR(144)"/> + + <addPrimaryKey tableName="vault_fungible_states" columnNames="transaction_id, output_index" + constraintName="vault_fungible_states_pkey"/> + <addPrimaryKey tableName="vault_linear_states" columnNames="transaction_id, output_index" + constraintName="vault_linear_states_pkey"/> + <addPrimaryKey tableName="vault_states" columnNames="transaction_id, output_index" + constraintName="vault_states_pkey"/> + <createIndex indexName="transaction_id_index" tableName="vault_transaction_notes"> + <column name="transaction_id"/> + </createIndex> + </changeSet> + + <changeSet author="R3.Corda" id="vault_transaction_id_size_non-clustered_pk-1" onValidationFail="MARK_RAN"> + <dropPrimaryKey tableName="vault_fungible_states" constraintName="vault_fungible_states_pkey"/> + <addPrimaryKey tableName="vault_fungible_states" columnNames="transaction_id, output_index" + constraintName="vault_fungible_states_pkey" clustered="false"/> + </changeSet> + + <changeSet author="R3.Corda" id="vault_transaction_id_size_non-clustered_pk-2" onValidationFail="MARK_RAN"> + <dropPrimaryKey tableName="vault_linear_states" constraintName="vault_linear_states_pkey"/> + <addPrimaryKey tableName="vault_linear_states" columnNames="transaction_id, output_index" + constraintName="vault_linear_states_pkey" clustered="false"/> + </changeSet> + + <changeSet author="R3.Corda" id="vault_transaction_id_size_non-clustered_pk-3" onValidationFail="MARK_RAN"> + <dropPrimaryKey tableName="vault_states" constraintName="vault_states_pkey"/> + <addPrimaryKey tableName="vault_states" columnNames="transaction_id, output_index" + constraintName="vault_states_pkey" clustered="false"/> + </changeSet> + + <changeSet author="R3.Corda" id="vault_transaction_id_size_2"> + <addForeignKeyConstraint baseColumnNames="transaction_id,output_index" + baseTableName="vault_fungible_states_parts" + constraintName="FK__fung_st_parts__fung_st" + referencedColumnNames="transaction_id,output_index" + referencedTableName="vault_fungible_states"/> + <addForeignKeyConstraint baseColumnNames="transaction_id,output_index" baseTableName="vault_linear_states_parts" + constraintName="FK__lin_stat_parts__lin_stat" + referencedColumnNames="transaction_id,output_index" + referencedTableName="vault_linear_states"/> + <createView viewName="v_pkey_hash_ex_id_map"> + select + state_party.public_key_hash, + state_party.transaction_id, + state_party.output_index, + pk_hash_to_ext_id_map.external_id + from state_party + join pk_hash_to_ext_id_map + on state_party.public_key_hash = pk_hash_to_ext_id_map.public_key_hash + </createView> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/node/src/test/kotlin/net/corda/node/utilities/PersistentMapTests.kt b/node/src/test/kotlin/net/corda/node/utilities/PersistentMapTests.kt index f2d08608cf..3f15c6d298 100644 --- a/node/src/test/kotlin/net/corda/node/utilities/PersistentMapTests.kt +++ b/node/src/test/kotlin/net/corda/node/utilities/PersistentMapTests.kt @@ -47,6 +47,22 @@ class PersistentMapTests { } } + @Test(timeout=300_000) + fun `make sure persistence works with SHA-512`() { + val testHash = SecureHash.random(SecureHash.SHA2_512).toString() + + database.transaction { + val map = createTestMap() + map[testHash] = "test" + assertEquals(map[testHash], "test") + } + + database.transaction { + val reloadedMap = createTestMap() + assertEquals("test", reloadedMap[testHash]) + } + } + @Test(timeout=300_000) fun `make sure persistence works using assignment operator`() { val testHash = SecureHash.randomSHA256().toString()