Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TIBERO] TiberoDB Datatype 'TIBERO.BOOLEAN' is invalid #2226

Open
ronnie-dba opened this issue Nov 22, 2021 · 7 comments · May be fixed by #5885
Open

[TIBERO] TiberoDB Datatype 'TIBERO.BOOLEAN' is invalid #2226

ronnie-dba opened this issue Nov 22, 2021 · 7 comments · May be fixed by #5885

Comments

@ronnie-dba
Copy link

ronnie-dba commented Nov 22, 2021

Environment

RedHat 7.4
Liquibase Version:
4.6.1 - 4.12.0
Liquibase Integration & Version: <Pick one: CLI, maven, gradle, spring boot, servlet, etc.>
CLI
Liquibase Extension(s) & Version:

Database Vendor & Version:
TmaxSoft TIBERO 6
Operating System Type & Version:

Description

trying liquibase 4.6.1 on TmaxSoft Tibero, it basically speaks ORACLE dialect.
In my property file I’m passing databaseClass: liquibase.database.core.OracleDatabase parameter, and I can confirm that on log:
[2021-11-22 11:20:15] DETALHADO [liquibase.configuration] Found ‘liquibase.databaseClass’ configuration of ‘class liquibase.database.core.OracleDatabase’
file /home/tibero/liquibase/liquibase.properties ‘databaseClass’ of ‘class liquibase.database.core.OracleDatabase’
However, after connecting on database the process fails due to the following error:
[2021-11-22 11:20:16] GRAVE [liquibase.integration] JDBC-7454:Datatype ‘TIBERO.BOOLEAN’ is invalid.
CREATE TABLE tibero.DATABASECHANGELOGLOCK (ID INT NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED datetime, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))]

Steps To Reproduce

Download and install tibero.
Try to connect liquibase to tibero.

Actual Behavior

For some reason liquibase is not using oracle dialect:

[tibero@legolas liquibase]$ liquibase update
####################################################

_ _ _ _

| | () () |

| | _ __ _ _ _ | |_ __ _ ___ ___

| | | |/ _ | | | | | '_ \ / _ / __|/ _ \

| || | (| | || | | |) | (| _ \ __/

_/|_, |_,||./ _,|/__|

| |

|_|

Get documentation at docs.liquibase.com

Get certified courses at learn.liquibase.com

Free schema change activity reports at

https://hub.liquibase.com

####################################################
Starting Liquibase at 11:20:15 (version 4.6.1 #98 built at 2021-11-04 20:16+0000)
Liquibase Version: 4.6.1
Liquibase Community 4.6.1 by Liquibase

Unexpected error running Liquibase: JDBC-7454:Datatype 'TIBERO.BOOLEAN' is invalid. [Failed SQL: (-7454) CREATE TABLE tibero.DATABASECHANGELOGLOCK (ID INT NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED datetime, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))]

Logs saved to /home/tibero/liquibase/liquibase.log

Expected/Desired Behavior

If liquibase.database.core.OracleDatabase is set, was suposed to execute all statements in oracle dialect, and oracle doesn't support boolean.
liquibase.log
liquibase_properties.txt
I need a way to make liquibase use oracle dialect or to don't use boolean when conected to Tibero database.

Screenshots (if appropriate)

If applicable, add screenshots to help explain your problem.

Additional Context

Add any other context about the problem here.

@molivasdat
Copy link
Contributor

Hi @ronnie-dba Thanks for creating this issue. We will add it to the list of issues to process.

@ronnie-dba
Copy link
Author

Hello @molivasdat do we have any workaround for this issue available? I understand it is a long list of issues and this tibero bug may be of very low priority, so if somebody could suggest a workaround is of great help to me.
Best regards.

@kataggart kataggart added this to To Do in Conditioning++ via automation Jul 6, 2022
@kataggart
Copy link
Contributor

@ronnie-dba Thanks for understanding -- wanted to confirm since it has been a while since you initially reported the error that all of the above is still the same? Are you still using the same version? Getting same error? I am assuming you are, but wanted to verify first. Thanks!

@ronnie-dba
Copy link
Author

Hi @kataggart I recently tried on latest version 4.12.0, all remains the same, even specifying the databaseClass: liquibase.database.core.OracleDatabase in .properties file it is trying to create the databasechangelock table with locked field as boolean, I've tried to manually create it as int(1) as it does in oracle, however, during the insert liquibase tries to insert it as TRUE or FALSE.
What I need is a way to force liquibase to don't use boolean when I use databaseClass OracleDatabase, I believe that there is some validation on the url or driver class string and as it doesn't find Oracle, it uses boolean ddl class.
Thanks in advance, best regards.

@molivasdat
Copy link
Contributor

Hi @ronnie-dba - Oracle does have a boolean data type. So when you say that Tibero acts or respects the Oracle data types by looking like an Oracle database, booleans are accepted. You can build your own database class that is for Tibero that may help this situation.

@ronnie-dba
Copy link
Author

hey @molivasdat as far as I know oracle doesn't support boolean at least till 19c (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlqr/Data-Types.html#GUID-F5148A9D-3098-4067-935A-9F670991A541) I will conduct some tests on oracle newer versions, because on older versions the above mentioned tables is created with integer datatype and not boolean, thanks for the heads up I will double check this on Oracle and get back to you.
About building a class for tibero, that's what I was trying to avoid as it will be very time consuming.
Best regards.

@ronnie-dba
Copy link
Author

image
Just for better understanding, Oracle doesn't uses boolean on liquibase control tables.

@KihaJeong1994 KihaJeong1994 linked a pull request May 7, 2024 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging a pull request may close this issue.

3 participants