Hi,
We are trying to upgrade 4.16.1 to 4.17 but it fails on db schema upgrade.
When script tries to create procedure it fails.
DROP PROCEDURE IF EXISTS `cloud`.`ADD_GUEST_OS_AND_HYPERVISOR_MAPPING`;
CREATE PROCEDURE `cloud`.`ADD_GUEST_OS_AND_HYPERVISOR_MAPPING` (
IN guest_os_category_id bigint(20) unsigned,
IN guest_os_display_name VARCHAR(255),
IN guest_os_hypervisor_hypervisor_type VARCHAR(32),
IN guest_os_hypervisor_hypervisor_version VARCHAR(32),
IN guest_os_hypervisor_guest_os_name VARCHAR(255)
)
BEGIN
INSERT INTO cloud.guest_os (uuid, category_id, display_name, created)
SELECT UUID(), guest_os_category_id, guest_os_display_name, now()
FROM DUAL
WHERE not exists( SELECT 1
FROM cloud.guest_os
WHERE cloud.guest_os.category_id = guest_os_category_id
AND cloud.guest_os.display_name =
guest_os_display_name)
; INSERT INTO cloud.guest_os_hypervisor (uuid, hypervisor_type,
hypervisor_version, guest_os_name, guest_os_id, created)
SELECT UUID(), guest_os_hypervisor_hypervisor_type,
guest_os_hypervisor_hypervisor_version, guest_os_hypervisor_guest_os_name,
guest_os.id, now()
FROM cloud.guest_os
WHERE guest_os.category_id = guest_os_category_id
AND guest_os.display_name = guest_os_display_name
AND NOT EXISTS (SELECT 1
FROM cloud.guest_os_hypervisor as hypervisor
WHERE hypervisor_type =
guest_os_hypervisor_hypervisor_type
AND hypervisor_version =
guest_os_hypervisor_hypervisor_version
AND hypervisor.guest_os_id = guest_os.id
AND hypervisor.guest_os_name =
guest_os_hypervisor_guest_os_name)
;END;
I tried to run it manually and same error occurs.
mysql> CREATE PROCEDURE `cloud`.`ADD_GUEST_OS_AND_HYPERVISOR_MAPPING` (
-> IN guest_os_category_id bigint(20) unsigned,
-> IN guest_os_display_name VARCHAR(255),
-> IN guest_os_hypervisor_hypervisor_type VARCHAR(32),
-> IN guest_os_hypervisor_hypervisor_version VARCHAR(32),
-> IN guest_os_hypervisor_guest_os_name VARCHAR(255)
-> )
-> BEGIN
-> INSERT INTO cloud.guest_os (uuid, category_id, display_name, created)
-> SELECT UUID(), guest_os_category_id, guest_os_display_name, now()
-> FROM DUAL
-> WHERE not exists( SELECT 1
-> FROM cloud.guest_os
-> WHERE cloud.guest_os.category_id =
guest_os_category_id
-> AND cloud.guest_os.display_name =
guest_os_display_name)
->
-> ;INSERT INTO cloud.guest_os_hypervisor (uuid, hypervisor_type,
hypervisor_version, guest_os_name, guest_os_id, created)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 15
-> SELECT UUID(), guest_os_hypervisor_hypervisor_type,
guest_os_hypervisor_hypervisor_version, guest_os_hypervisor_guest_os_name,
guest_os.id, now()
-> FROM cloud.guest_os
-> WHERE guest_os.category_id = guest_os_category_id
-> AND guest_os.display_name = guest_os_display_name
-> AND NOT EXISTS (SELECT 1
-> FROM cloud.guest_os_hypervisor as hypervisor
-> WHERE hypervisor_type =
guest_os_hypervisor_hypervisor_type
-> AND hypervisor_version =
guest_os_hypervisor_hypervisor_version
-> AND hypervisor.guest_os_id = guest_os.id
-> AND hypervisor.guest_os_name =
guest_os_hypervisor_guest_os_name)
-> ;END;
ERROR 1054 (42S22): Unknown column 'guest_os_hypervisor_hypervisor_type' in
'field list'
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'END'
at line 1
** Mysql version 8.0