You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create a changeset with a createProcedure-change, which contains dmbs="mysql,mariadb".
Expected/Desired Behavior
The changeset should not trigger a validation-check.
Liquibase Version
tested at 4.25.0, but probably all versions 4.8 - 4.25
Database Vendor & Version
mysql,mariadb
Liquibase Integration
spring boot
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
ubuntu
Additional Context
I had a look at the code.
CreateProcedureChange.validate(database) calls DatabaseList.validateDefinitions(String definition, vErrors) with the string provided in the dbms-attribute. It seams, that the valdiateDefinitions-method is supposed to be called with an already split dbms-string.
I want to fix this issue by moving the implementation of DatabaseList.validateDefinitions(String definition, vErrors) in a private method DatabaseList.validateDefinition(String definition, vErrors) (singular). The public DatabaseList.validateDefinitions would then call toDbmsSet(String definition) to split the given definition. Then I can call DatabaseList.validateDefinitions(Collection<String> definitions, vErrors), which in turn calls the private `DatabaseList.validateDefinition(String definition, vErrors)``.
I have prepared a fix and will create a pull request.
Are you willing to submit a PR?
I'm willing to submit a PR (Thank you!)
The text was updated successfully, but these errors were encountered:
jclohmann
added a commit
to jclohmann/liquibase
that referenced
this issue
Nov 21, 2023
kevin-atx
changed the title
createProdecure with multiple comma separated dbms triggers validation-check
createProcedure with multiple comma separated dbms triggers validation-check
Nov 22, 2023
Search first
Description
According to https://docs.liquibase.com/change-types/create-procedure.html the dbms-attribute in of a createProcedure Change Type should allow comma separated values. It seems, that this is not implemented as such.
In version 4.7 this was working as expected.
Steps To Reproduce
Create a changeset with a createProcedure-change, which contains dmbs="mysql,mariadb".
Expected/Desired Behavior
The changeset should not trigger a validation-check.
Liquibase Version
tested at 4.25.0, but probably all versions 4.8 - 4.25
Database Vendor & Version
mysql,mariadb
Liquibase Integration
spring boot
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
ubuntu
Additional Context
I had a look at the code.
CreateProcedureChange.validate(database)
callsDatabaseList.validateDefinitions(String definition, vErrors)
with the string provided in the dbms-attribute. It seams, that the valdiateDefinitions-method is supposed to be called with an already split dbms-string.I want to fix this issue by moving the implementation of
DatabaseList.validateDefinitions(String definition, vErrors)
in a private methodDatabaseList.validateDefinition(String definition, vErrors)
(singular). The publicDatabaseList.validateDefinitions
would then calltoDbmsSet(String definition)
to split the given definition. Then I can callDatabaseList.validateDefinitions(Collection<String> definitions, vErrors)
, which in turn calls the private `DatabaseList.validateDefinition(String definition, vErrors)``.I have prepared a fix and will create a pull request.
Are you willing to submit a PR?
The text was updated successfully, but these errors were encountered: