View Issue Details

IDProjectCategoryView StatusLast Update
0002298SymmetricDSBugpublic2019-04-26 22:00
Reportermsc Assigned To 
Prioritynormal 
Status newResolutionopen 
Product Version3.7.16 
Summary0002298: ddl detection of read/float default value on interbase is wrong
Descriptioni'm try to send ddl+data (initial load) from interbase to postgresql servers.
But for some tables the ddl was wrongly detected from the interbase server.

[postgres3] - DefaultDatabaseWriter - About to create table using the following definition: <?xml version="1.0"?>
<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database">
<database name="dataextractor" schema="afa_ib_import">
        <table name="UMSATZ_VP">
                <column name="MANR" primaryKey="true" required="true" type="INTEGER" size="0">
                        <platform-column name="interbase" type="INTEGER" size="10"/>
                </column>
                <column name="EH" type="REAL" size="7" default="default 0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="default 0"/>
                </column>
                <column name="EH50" type="REAL" size="7" default="default 0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="default 0"/>
                </column>
                <column name="EH25" type="REAL" size="7" default="default 0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="default 0"/>
                </column>
                <column name="EH20" type="REAL" size="7" default="default 0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="default 0"/>
                </column>
                <column name="EH16" type="REAL" size="7" default="default 0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="default 0"/>
                </column>
                <column name="EH14" type="REAL" size="7" default="default 0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="default 0"/>
                </column>
                <column name="EHVK" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="DE7" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="DE15" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="KV" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="TV" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="TL" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="D" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="KSTUFE" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="GSTUFE" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="STRUKTUR" type="INTEGER" size="0">
                        <platform-column name="interbase" type="INTEGER" size="10"/>
                </column>
                <column name="IQUOTE" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="IQUOTEA" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="FP" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="FPA" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="STR01" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="STR02" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="ZKSTUFE" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="ZDE7" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="ZDE15" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="ZKV" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="ZTV" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="ZTL" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="ZD" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="MONATEH1" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="MONATEH2" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="MONATSOLL1" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="MONATSOLL2" type="REAL" size="7" default="0">
                        <platform-column name="interbase" type="FLOAT" size="7" default="0"/>
                </column>
                <column name="MONATFP1" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="MONATFP2" type="INTEGER" size="0" default="0">
                        <platform-column name="interbase" type="INTEGER" size="10" default="0"/>
                </column>
                <column name="SORT1" type="INTEGER" size="0">
                        <platform-column name="interbase" type="INTEGER" size="10"/>
                </column>
                <column name="SORT2" type="INTEGER" size="0">
                        <platform-column name="interbase" type="INTEGER" size="10"/>
                </column>
                <column name="SORT3" type="INTEGER" size="0">
                        <platform-column name="interbase" type="INTEGER" size="10"/>
                </column>
                <column name="ID" required="true" type="INTEGER" size="0">
                        <platform-column name="interbase" type="INTEGER" size="10"/>
                </column>
                <index name="UMSATZ_VP_IDX1">
                        <index-column name="KSTUFE"/>
                </index>
        </table>
</database>

as you can see the default value for the eh/eh50/.. columns (*some* columns with type=FLOAT/REAL but not all of them?!?) is wrongly detected as "default 0" instead of "0".

For the other column types (i.e. integer) it works fine as you can see above.

the above would produce the following wrong ddl-statement for postgresql:

[postgres3] - PostgreSqlDatabasePlatform - Running alter sql:
CREATE TABLE "afa_ib_import"."umsatz_vp"(
    "manr" INTEGER NOT NULL,
    "eh" REAL DEFAULT default 0,
    "eh50" REAL DEFAULT default 0,
    "eh25" REAL DEFAULT default 0,
    "eh20" REAL DEFAULT default 0,
    "eh16" REAL DEFAULT default 0,
    "eh14" REAL DEFAULT default 0,
    "ehvk" REAL DEFAULT 0,
    "de7" INTEGER DEFAULT 0,
    "de15" INTEGER DEFAULT 0,
    "kv" INTEGER DEFAULT 0,
    "tv" INTEGER DEFAULT 0,
    "tl" INTEGER DEFAULT 0,
    "d" INTEGER DEFAULT 0,
    "kstufe" INTEGER DEFAULT 0,
    "gstufe" INTEGER DEFAULT 0,
    "struktur" INTEGER,
    "iquote" REAL DEFAULT 0,
    "iquotea" REAL DEFAULT 0,
    "fp" INTEGER DEFAULT 0,
    "fpa" INTEGER DEFAULT 0,
    "str01" REAL DEFAULT 0,
    "str02" REAL DEFAULT 0,
    "zkstufe" INTEGER DEFAULT 0,
    "zde7" INTEGER DEFAULT 0,
    "zde15" INTEGER DEFAULT 0,
    "zkv" INTEGER DEFAULT 0,
    "ztv" INTEGER DEFAULT 0,
    "ztl" INTEGER DEFAULT 0,
    "zd" INTEGER DEFAULT 0,
    "monateh1" REAL DEFAULT 0,
    "monateh2" REAL DEFAULT 0,
    "monatsoll1" REAL DEFAULT 0,
    "monatsoll2" REAL DEFAULT 0,
    "monatfp1" INTEGER DEFAULT 0,
    "monatfp2" INTEGER DEFAULT 0,
    "sort1" INTEGER,
    "sort2" INTEGER,
    "sort3" INTEGER,
    "id" INTEGER NOT NULL,
    PRIMARY KEY ("manr")
);
CREATE INDEX "umsatz_vp_idx1" ON "afa_ib_import"."umsatz_vp" ("kstufe");


the different behavior on REAL column types looks strange to me.
Tagsddl/schema, dialect: interbase

Activities

msc

2015-08-07 06:46

reporter   ~0000707

it looks like the DDL-Parser compare the "default" value from system table case-sensitive instead of case-insensitive.

After changing the "default" keyword to uppercase it detects the correct DDL.

Issue History

Date Modified Username Field Change
2015-05-15 08:54 msc New Issue
2015-08-07 06:46 msc Note Added: 0000707
2019-04-23 17:13 elong Tag Attached: ddl/schema
2019-04-23 17:14 elong Tag Attached: interbase
2019-04-23 20:49 admin Tag Renamed interbase => dialect: interbase
2019-04-26 22:00 elong Summary ddl detection on interbase is wrong => ddl detection of read/float default value on interbase is wrong