This is an automated email from the ASF dual-hosted git repository.
nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 87ddc76 db: make *_details.value non-nullable (#5274)
87ddc76 is described below
commit 87ddc76277fd63e6763663310f89598112067671
Author: Abhishek Kumar <[email protected]>
AuthorDate: Sat Aug 14 06:07:43 2021 +0530
db: make *_details.value non-nullable (#5274)
Fixes #4897
Some details tables were allowing null values for detail value which can
cause NPE in some cases.
mysql> SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM
information_schema.columns WHERE table_schema='cloud' AND table_name
LIKE'%_details' AND column_name='value' AND IS_NULLABLE='YES';
+-------------------------------+-------------+---------------+
| TABLE_NAME | COLUMN_NAME | COLUMN_TYPE |
+-------------------------------+-------------+---------------+
| account_details | value | varchar(255) |
| cluster_details | value | varchar(255) |
| data_center_details | value | varchar(1024) |
| domain_details | value | varchar(255) |
| image_store_details | value | varchar(255) |
| storage_pool_details | value | varchar(255) |
| template_deploy_as_is_details | value | text |
| user_vm_deploy_as_is_details | value | text |
| user_vm_details | value | varchar(5120) |
+-------------------------------+-------------+---------------+
9 rows in set (0.00 sec)
Brings consistency for value column of *_details tables with preventing
null values.
Signed-off-by: Abhishek Kumar <[email protected]>
---
.../resources/META-INF/db/schema-41510to41600.sql | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git
a/engine/schema/src/main/resources/META-INF/db/schema-41510to41600.sql
b/engine/schema/src/main/resources/META-INF/db/schema-41510to41600.sql
index e53bdc5..cc43cc6 100644
--- a/engine/schema/src/main/resources/META-INF/db/schema-41510to41600.sql
+++ b/engine/schema/src/main/resources/META-INF/db/schema-41510to41600.sql
@@ -737,3 +737,23 @@ CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (9, 'pfSense
2.4', 'KVM', 'default', 'p
CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (9, 'OpenBSD 6.7', 'KVM', 'default',
'OpenBSD 6.7');
CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (9, 'OpenBSD 6.8', 'KVM', 'default',
'OpenBSD 6.8');
CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (1, 'AlmaLinux 8.3', 'KVM',
'default', 'AlmaLinux 8.3');
+
+-- Alter value column of *_details table to prevent NULL values
+UPDATE cloud.account_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.account_details MODIFY value varchar(255) NOT NULL;
+UPDATE cloud.cluster_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.cluster_details MODIFY value varchar(255) NOT NULL;
+UPDATE cloud.data_center_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.data_center_details MODIFY value varchar(1024) NOT NULL;
+UPDATE cloud.domain_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.domain_details MODIFY value varchar(255) NOT NULL;
+UPDATE cloud.image_store_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.image_store_details MODIFY value varchar(255) NOT NULL;
+UPDATE cloud.storage_pool_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.storage_pool_details MODIFY value varchar(255) NOT NULL;
+UPDATE cloud.template_deploy_as_is_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.template_deploy_as_is_details MODIFY value text NOT NULL;
+UPDATE cloud.user_vm_deploy_as_is_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.user_vm_deploy_as_is_details MODIFY value text NOT NULL;
+UPDATE cloud.user_vm_details SET value='' WHERE value IS NULL;
+ALTER TABLE cloud.user_vm_details MODIFY value varchar(5120) NOT NULL;