IGNITE-2169 Fixed incorrect null schema generation.

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/58b55b53
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/58b55b53
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/58b55b53

Branch: refs/heads/master
Commit: 58b55b53f15f0752c8fff97e31b94984a67d081b
Parents: 0c7dfec
Author: Alexey Kuznetsov <akuznet...@apache.org>
Authored: Mon Dec 21 10:20:37 2015 +0700
Committer: Alexey Kuznetsov <akuznet...@apache.org>
Committed: Mon Dec 21 10:20:37 2015 +0700

----------------------------------------------------------------------
 .../ignite/schema/generator/CodeGenerator.java  |   7 +-
 .../schema/test/AbstractSchemaImportTest.java   |  18 +
 .../org/apache/ignite/schema/test/model/Tst.txt | 506 +++++++++++++++++++
 .../apache/ignite/schema/test/model/TstKey.txt  |  96 ++++
 .../schema/test/model/ignite-type-metadata.xml  | 180 +++++++
 .../test/parser/DbMetadataParserTest.java       |  17 +-
 6 files changed, 820 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/58b55b53/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
----------------------------------------------------------------------
diff --git 
a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
 
b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
index 0e52acc..769c7d9 100644
--- 
a/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
+++ 
b/modules/schema-import/src/main/java/org/apache/ignite/schema/generator/CodeGenerator.java
@@ -606,8 +606,11 @@ public class CodeGenerator {
 
             add2(src, "jdbcType.setCacheName(cacheName);");
 
-            // Database info.
-            add2(src, "jdbcType.setDatabaseSchema(\"" + pojo.schema() + 
"\");");
+            // Database schema.
+            if (pojo.schema() != null)
+                add2(src, "jdbcType.setDatabaseSchema(\"" + pojo.schema() + 
"\");");
+
+            // Database table.
             add2(src, "jdbcType.setDatabaseTable(\"" + tbl + "\");");
 
             // Java info.

http://git-wip-us.apache.org/repos/asf/ignite/blob/58b55b53/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java
----------------------------------------------------------------------
diff --git 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java
 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java
index bf0f94a..97f0f87 100644
--- 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java
+++ 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/AbstractSchemaImportTest.java
@@ -97,6 +97,24 @@ public abstract class AbstractSchemaImportTest extends 
TestCase {
             " tsCol TIMESTAMP," +
             " arrCol BINARY(10))");
 
+        stmt.executeUpdate("CREATE SCHEMA IF NOT EXISTS TESTSCHEMA");
+
+        stmt.executeUpdate("CREATE TABLE IF NOT EXISTS TESTSCHEMA.TST(pk 
INTEGER PRIMARY KEY, " +
+            " boolCol BOOLEAN NOT NULL," +
+            " byteCol TINYINT NOT NULL," +
+            " shortCol SMALLINT NOT NULL," +
+            " intCol INTEGER NOT NULL, " +
+            " longCol BIGINT NOT NULL," +
+            " floatCol REAL NOT NULL," +
+            " doubleCol DOUBLE NOT NULL," +
+            " doubleCol2 DOUBLE NOT NULL, " +
+            " bigDecimalCol DECIMAL(10, 0)," +
+            " strCol VARCHAR(10)," +
+            " dateCol DATE," +
+            " timeCol TIME," +
+            " tsCol TIMESTAMP, " +
+            " arrCol BINARY(10))");
+
         conn.commit();
 
         U.closeQuiet(stmt);

http://git-wip-us.apache.org/repos/asf/ignite/blob/58b55b53/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/Tst.txt
----------------------------------------------------------------------
diff --git 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/Tst.txt
 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/Tst.txt
new file mode 100644
index 0000000..23d61d0
--- /dev/null
+++ 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/Tst.txt
@@ -0,0 +1,506 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.schema.test.model;
+
+import java.io.*;
+
+/**
+ * Tst definition.
+ *
+ * Code generated by Apache Ignite Schema Import utility: 01/27/2015.
+ */
+public class Tst implements Serializable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Value for pk. */
+    private int pk;
+
+    /** Value for boolcol. */
+    private boolean boolcol;
+
+    /** Value for bytecol. */
+    private byte bytecol;
+
+    /** Value for shortcol. */
+    private short shortcol;
+
+    /** Value for intcol. */
+    private int intcol;
+
+    /** Value for longcol. */
+    private long longcol;
+
+    /** Value for floatcol. */
+    private float floatcol;
+
+    /** Value for doublecol. */
+    private double doublecol;
+
+    /** Value for doublecol2. */
+    private double doublecol2;
+
+    /** Value for bigdecimalcol. */
+    private java.math.BigDecimal bigdecimalcol;
+
+    /** Value for strcol. */
+    private String strcol;
+
+    /** Value for datecol. */
+    private java.sql.Date datecol;
+
+    /** Value for timecol. */
+    private java.sql.Time timecol;
+
+    /** Value for tscol. */
+    private java.sql.Timestamp tscol;
+
+    /** Value for arrcol. */
+    private Object arrcol;
+
+    /**
+     * Empty constructor.
+     */
+    public Tst() {
+        // No-op.
+    }
+
+    /**
+     * Full constructor.
+     */
+    public Tst(
+        int pk,
+        boolean boolcol,
+        byte bytecol,
+        short shortcol,
+        int intcol,
+        long longcol,
+        float floatcol,
+        double doublecol,
+        double doublecol2,
+        java.math.BigDecimal bigdecimalcol,
+        String strcol,
+        java.sql.Date datecol,
+        java.sql.Time timecol,
+        java.sql.Timestamp tscol,
+        Object arrcol
+    ) {
+        this.pk = pk;
+        this.boolcol = boolcol;
+        this.bytecol = bytecol;
+        this.shortcol = shortcol;
+        this.intcol = intcol;
+        this.longcol = longcol;
+        this.floatcol = floatcol;
+        this.doublecol = doublecol;
+        this.doublecol2 = doublecol2;
+        this.bigdecimalcol = bigdecimalcol;
+        this.strcol = strcol;
+        this.datecol = datecol;
+        this.timecol = timecol;
+        this.tscol = tscol;
+        this.arrcol = arrcol;
+    }
+
+    /**
+     * Gets pk.
+     *
+     * @return Value for pk.
+     */
+    public int getPk() {
+        return pk;
+    }
+
+    /**
+     * Sets pk.
+     *
+     * @param pk New value for pk.
+     */
+    public void setPk(int pk) {
+        this.pk = pk;
+    }
+
+    /**
+     * Gets boolcol.
+     *
+     * @return Value for boolcol.
+     */
+    public boolean getBoolcol() {
+        return boolcol;
+    }
+
+    /**
+     * Sets boolcol.
+     *
+     * @param boolcol New value for boolcol.
+     */
+    public void setBoolcol(boolean boolcol) {
+        this.boolcol = boolcol;
+    }
+
+    /**
+     * Gets bytecol.
+     *
+     * @return Value for bytecol.
+     */
+    public byte getBytecol() {
+        return bytecol;
+    }
+
+    /**
+     * Sets bytecol.
+     *
+     * @param bytecol New value for bytecol.
+     */
+    public void setBytecol(byte bytecol) {
+        this.bytecol = bytecol;
+    }
+
+    /**
+     * Gets shortcol.
+     *
+     * @return Value for shortcol.
+     */
+    public short getShortcol() {
+        return shortcol;
+    }
+
+    /**
+     * Sets shortcol.
+     *
+     * @param shortcol New value for shortcol.
+     */
+    public void setShortcol(short shortcol) {
+        this.shortcol = shortcol;
+    }
+
+    /**
+     * Gets intcol.
+     *
+     * @return Value for intcol.
+     */
+    public int getIntcol() {
+        return intcol;
+    }
+
+    /**
+     * Sets intcol.
+     *
+     * @param intcol New value for intcol.
+     */
+    public void setIntcol(int intcol) {
+        this.intcol = intcol;
+    }
+
+    /**
+     * Gets longcol.
+     *
+     * @return Value for longcol.
+     */
+    public long getLongcol() {
+        return longcol;
+    }
+
+    /**
+     * Sets longcol.
+     *
+     * @param longcol New value for longcol.
+     */
+    public void setLongcol(long longcol) {
+        this.longcol = longcol;
+    }
+
+    /**
+     * Gets floatcol.
+     *
+     * @return Value for floatcol.
+     */
+    public float getFloatcol() {
+        return floatcol;
+    }
+
+    /**
+     * Sets floatcol.
+     *
+     * @param floatcol New value for floatcol.
+     */
+    public void setFloatcol(float floatcol) {
+        this.floatcol = floatcol;
+    }
+
+    /**
+     * Gets doublecol.
+     *
+     * @return Value for doublecol.
+     */
+    public double getDoublecol() {
+        return doublecol;
+    }
+
+    /**
+     * Sets doublecol.
+     *
+     * @param doublecol New value for doublecol.
+     */
+    public void setDoublecol(double doublecol) {
+        this.doublecol = doublecol;
+    }
+
+    /**
+     * Gets doublecol2.
+     *
+     * @return Value for doublecol2.
+     */
+    public double getDoublecol2() {
+        return doublecol2;
+    }
+
+    /**
+     * Sets doublecol2.
+     *
+     * @param doublecol2 New value for doublecol2.
+     */
+    public void setDoublecol2(double doublecol2) {
+        this.doublecol2 = doublecol2;
+    }
+
+    /**
+     * Gets bigdecimalcol.
+     *
+     * @return Value for bigdecimalcol.
+     */
+    public java.math.BigDecimal getBigdecimalcol() {
+        return bigdecimalcol;
+    }
+
+    /**
+     * Sets bigdecimalcol.
+     *
+     * @param bigdecimalcol New value for bigdecimalcol.
+     */
+    public void setBigdecimalcol(java.math.BigDecimal bigdecimalcol) {
+        this.bigdecimalcol = bigdecimalcol;
+    }
+
+    /**
+     * Gets strcol.
+     *
+     * @return Value for strcol.
+     */
+    public String getStrcol() {
+        return strcol;
+    }
+
+    /**
+     * Sets strcol.
+     *
+     * @param strcol New value for strcol.
+     */
+    public void setStrcol(String strcol) {
+        this.strcol = strcol;
+    }
+
+    /**
+     * Gets datecol.
+     *
+     * @return Value for datecol.
+     */
+    public java.sql.Date getDatecol() {
+        return datecol;
+    }
+
+    /**
+     * Sets datecol.
+     *
+     * @param datecol New value for datecol.
+     */
+    public void setDatecol(java.sql.Date datecol) {
+        this.datecol = datecol;
+    }
+
+    /**
+     * Gets timecol.
+     *
+     * @return Value for timecol.
+     */
+    public java.sql.Time getTimecol() {
+        return timecol;
+    }
+
+    /**
+     * Sets timecol.
+     *
+     * @param timecol New value for timecol.
+     */
+    public void setTimecol(java.sql.Time timecol) {
+        this.timecol = timecol;
+    }
+
+    /**
+     * Gets tscol.
+     *
+     * @return Value for tscol.
+     */
+    public java.sql.Timestamp getTscol() {
+        return tscol;
+    }
+
+    /**
+     * Sets tscol.
+     *
+     * @param tscol New value for tscol.
+     */
+    public void setTscol(java.sql.Timestamp tscol) {
+        this.tscol = tscol;
+    }
+
+    /**
+     * Gets arrcol.
+     *
+     * @return Value for arrcol.
+     */
+    public Object getArrcol() {
+        return arrcol;
+    }
+
+    /**
+     * Sets arrcol.
+     *
+     * @param arrcol New value for arrcol.
+     */
+    public void setArrcol(Object arrcol) {
+        this.arrcol = arrcol;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof Tst))
+            return false;
+
+        Tst that = (Tst)o;
+
+        if (pk != that.pk)
+            return false;
+
+        if (boolcol != that.boolcol)
+            return false;
+
+        if (bytecol != that.bytecol)
+            return false;
+
+        if (shortcol != that.shortcol)
+            return false;
+
+        if (intcol != that.intcol)
+            return false;
+
+        if (longcol != that.longcol)
+            return false;
+
+        if (Float.compare(floatcol, that.floatcol) != 0)
+            return false;
+
+        if (Double.compare(doublecol, that.doublecol) != 0)
+            return false;
+
+        if (Double.compare(doublecol2, that.doublecol2) != 0)
+            return false;
+
+        if (bigdecimalcol != null ? !bigdecimalcol.equals(that.bigdecimalcol) 
: that.bigdecimalcol != null)
+            return false;
+
+        if (strcol != null ? !strcol.equals(that.strcol) : that.strcol != null)
+            return false;
+
+        if (datecol != null ? !datecol.equals(that.datecol) : that.datecol != 
null)
+            return false;
+
+        if (timecol != null ? !timecol.equals(that.timecol) : that.timecol != 
null)
+            return false;
+
+        if (tscol != null ? !tscol.equals(that.tscol) : that.tscol != null)
+            return false;
+
+        if (arrcol != null ? !arrcol.equals(that.arrcol) : that.arrcol != null)
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = pk;
+
+        res = 31 * res + (boolcol ? 1 : 0);
+
+        res = 31 * res + (int)bytecol;
+
+        res = 31 * res + (int)shortcol;
+
+        res = 31 * res + intcol;
+
+        res = 31 * res + (int)(longcol ^ (longcol >>> 32));
+
+        res = 31 * res + (floatcol != +0.0f ? Float.floatToIntBits(floatcol) : 
0);
+
+        long ig_hash_temp = Double.doubleToLongBits(doublecol);
+
+        res = 31 * res + (int)(ig_hash_temp ^ (ig_hash_temp >>> 32));
+
+        ig_hash_temp = Double.doubleToLongBits(doublecol2);
+
+        res = 31 * res + (int)(ig_hash_temp ^ (ig_hash_temp >>> 32));
+
+        res = 31 * res + (bigdecimalcol != null ? bigdecimalcol.hashCode() : 
0);
+
+        res = 31 * res + (strcol != null ? strcol.hashCode() : 0);
+
+        res = 31 * res + (datecol != null ? datecol.hashCode() : 0);
+
+        res = 31 * res + (timecol != null ? timecol.hashCode() : 0);
+
+        res = 31 * res + (tscol != null ? tscol.hashCode() : 0);
+
+        res = 31 * res + (arrcol != null ? arrcol.hashCode() : 0);
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return "Tst [pk=" + pk +
+            ", boolcol=" + boolcol +
+            ", bytecol=" + bytecol +
+            ", shortcol=" + shortcol +
+            ", intcol=" + intcol +
+            ", longcol=" + longcol +
+            ", floatcol=" + floatcol +
+            ", doublecol=" + doublecol +
+            ", doublecol2=" + doublecol2 +
+            ", bigdecimalcol=" + bigdecimalcol +
+            ", strcol=" + strcol +
+            ", datecol=" + datecol +
+            ", timecol=" + timecol +
+            ", tscol=" + tscol +
+            ", arrcol=" + arrcol +
+            "]";
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/58b55b53/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/TstKey.txt
----------------------------------------------------------------------
diff --git 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/TstKey.txt
 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/TstKey.txt
new file mode 100644
index 0000000..e2ce3c0
--- /dev/null
+++ 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/TstKey.txt
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.schema.test.model;
+
+import java.io.*;
+
+/**
+ * TstKey definition.
+ *
+ * Code generated by Apache Ignite Schema Import utility: 01/27/2015.
+ */
+public class TstKey implements Serializable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Value for pk. */
+    private int pk;
+
+    /**
+     * Empty constructor.
+     */
+    public TstKey() {
+        // No-op.
+    }
+
+    /**
+     * Full constructor.
+     */
+    public TstKey(
+        int pk
+    ) {
+        this.pk = pk;
+    }
+
+    /**
+     * Gets pk.
+     *
+     * @return Value for pk.
+     */
+    public int getPk() {
+        return pk;
+    }
+
+    /**
+     * Sets pk.
+     *
+     * @param pk New value for pk.
+     */
+    public void setPk(int pk) {
+        this.pk = pk;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof TstKey))
+            return false;
+
+        TstKey that = (TstKey)o;
+
+        if (pk != that.pk)
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = pk;
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return "TstKey [pk=" + pk +
+            "]";
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/58b55b53/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/ignite-type-metadata.xml
----------------------------------------------------------------------
diff --git 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/ignite-type-metadata.xml
 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/ignite-type-metadata.xml
index f03f24f..92d065c 100644
--- 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/ignite-type-metadata.xml
+++ 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/model/ignite-type-metadata.xml
@@ -314,6 +314,148 @@
                         </list>
                     </property>
                 </bean>
+                <bean class="org.apache.ignite.cache.store.jdbc.JdbcType">
+                    <property name="databaseSchema" value="TESTSCHEMA"/>
+                    <property name="databaseTable" value="TST"/>
+                    <property name="keyType" 
value="org.apache.ignite.schema.test.model.TstKey"/>
+                    <property name="valueType" 
value="org.apache.ignite.schema.test.model.Tst"/>
+                    <property name="keyFields">
+                        <list>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.INTEGER"/>
+                                </property>
+                                <property name="databaseFieldName" value="PK"/>
+                                <property name="javaFieldType" value="int"/>
+                                <property name="javaFieldName" value="pk"/>
+                            </bean>
+                        </list>
+                    </property>
+                    <property name="valueFields">
+                        <list>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.INTEGER"/>
+                                </property>
+                                <property name="databaseFieldName" value="PK"/>
+                                <property name="javaFieldType" value="int"/>
+                                <property name="javaFieldName" value="pk"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.BOOLEAN"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="BOOLCOL"/>
+                                <property name="javaFieldType" 
value="boolean"/>
+                                <property name="javaFieldName" 
value="boolcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.TINYINT"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="BYTECOL"/>
+                                <property name="javaFieldType" value="byte"/>
+                                <property name="javaFieldName" 
value="bytecol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.SMALLINT"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="SHORTCOL"/>
+                                <property name="javaFieldType" value="short"/>
+                                <property name="javaFieldName" 
value="shortcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.INTEGER"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="INTCOL"/>
+                                <property name="javaFieldType" value="int"/>
+                                <property name="javaFieldName" value="intcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.BIGINT"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="LONGCOL"/>
+                                <property name="javaFieldType" value="long"/>
+                                <property name="javaFieldName" 
value="longcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.REAL"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="FLOATCOL"/>
+                                <property name="javaFieldType" value="float"/>
+                                <property name="javaFieldName" 
value="floatcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.DOUBLE"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="DOUBLECOL"/>
+                                <property name="javaFieldType" value="double"/>
+                                <property name="javaFieldName" 
value="doublecol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.DOUBLE"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="DOUBLECOL2"/>
+                                <property name="javaFieldType" value="double"/>
+                                <property name="javaFieldName" 
value="doublecol2"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.DECIMAL"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="BIGDECIMALCOL"/>
+                                <property name="javaFieldType" 
value="java.math.BigDecimal"/>
+                                <property name="javaFieldName" 
value="bigdecimalcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.VARCHAR"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="STRCOL"/>
+                                <property name="javaFieldType" 
value="java.lang.String"/>
+                                <property name="javaFieldName" value="strcol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.DATE"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="DATECOL"/>
+                                <property name="javaFieldType" 
value="java.sql.Date"/>
+                                <property name="javaFieldName" 
value="datecol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.TIME"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="TIMECOL"/>
+                                <property name="javaFieldType" 
value="java.sql.Time"/>
+                                <property name="javaFieldName" 
value="timecol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.TIMESTAMP"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="TSCOL"/>
+                                <property name="javaFieldType" 
value="java.sql.Timestamp"/>
+                                <property name="javaFieldName" value="tscol"/>
+                            </bean>
+                            <bean 
class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
+                                <property name="databaseFieldType">
+                                    <util:constant 
static-field="java.sql.Types.VARBINARY"/>
+                                </property>
+                                <property name="databaseFieldName" 
value="ARRCOL"/>
+                                <property name="javaFieldType" 
value="java.lang.Object"/>
+                                <property name="javaFieldName" value="arrcol"/>
+                            </bean>
+                        </list>
+                    </property>
+                </bean>
             </list>
         </property>
     </bean>
@@ -393,4 +535,42 @@
             </list>
         </property>
     </bean>
+    <bean class="org.apache.ignite.cache.QueryEntity">
+        <property name="keyType" 
value="org.apache.ignite.schema.test.model.TstKey"/>
+        <property name="valueType" 
value="org.apache.ignite.schema.test.model.Tst"/>
+        <property name="fields">
+            <util:map map-class="java.util.LinkedHashMap">
+                <entry key="pk" value="int"/>
+                <entry key="boolcol" value="boolean"/>
+                <entry key="bytecol" value="byte"/>
+                <entry key="shortcol" value="short"/>
+                <entry key="intcol" value="int"/>
+                <entry key="longcol" value="long"/>
+                <entry key="floatcol" value="float"/>
+                <entry key="doublecol" value="double"/>
+                <entry key="doublecol2" value="double"/>
+                <entry key="bigdecimalcol" value="java.math.BigDecimal"/>
+                <entry key="strcol" value="java.lang.String"/>
+                <entry key="datecol" value="java.sql.Date"/>
+                <entry key="timecol" value="java.sql.Time"/>
+                <entry key="tscol" value="java.sql.Timestamp"/>
+                <entry key="arrcol" value="java.lang.Object"/>
+            </util:map>
+        </property>
+        <property name="indexes">
+            <list>
+                <bean class="org.apache.ignite.cache.QueryIndex">
+                    <property name="name" value="PRIMARY_KEY_1"/>
+                    <property name="indexType">
+                        <util:constant 
static-field="org.apache.ignite.cache.QueryIndexType.SORTED"/>
+                    </property>
+                    <property name="fields">
+                        <map>
+                            <entry key="PK" value="true"/>
+                        </map>
+                    </property>
+                </bean>
+            </list>
+        </property>
+    </bean>
 </beans>

http://git-wip-us.apache.org/repos/asf/ignite/blob/58b55b53/modules/schema-import/src/test/java/org/apache/ignite/schema/test/parser/DbMetadataParserTest.java
----------------------------------------------------------------------
diff --git 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/parser/DbMetadataParserTest.java
 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/parser/DbMetadataParserTest.java
index 6a2bf1d..a954029 100644
--- 
a/modules/schema-import/src/test/java/org/apache/ignite/schema/test/parser/DbMetadataParserTest.java
+++ 
b/modules/schema-import/src/test/java/org/apache/ignite/schema/test/parser/DbMetadataParserTest.java
@@ -102,10 +102,19 @@ public class DbMetadataParserTest extends 
AbstractSchemaImportTest {
     }
 
     /**
+     * Check that type has not null full db name.
+     *
+     * @param type Type to check.
+     */
+    public void checkSchemaHasFullDbName(PojoDescriptor type) {
+        assertNotNull("The DB schema should have a non-null fullDbName", 
type.fullDbName());
+    }
+
+    /**
      * Test that metadata generated correctly.
      */
     public void testCheckMetadata() {
-        assertEquals("Metadata should contain 3 element", 3, pojos.size());
+        assertEquals("Metadata should contain 5 elements", 5, pojos.size());
 
         Iterator<PojoDescriptor> it = pojos.iterator();
 
@@ -117,5 +126,9 @@ public class DbMetadataParserTest extends 
AbstractSchemaImportTest {
         checkType(it.next());
 
         checkType(it.next());
+
+        checkSchemaHasFullDbName(it.next());
+
+        checkType(it.next());
     }
-}
\ No newline at end of file
+}

Reply via email to