You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2015/12/24 11:58:08 UTC
[05/50] [abbrv] ignite git commit: IGNITE-2169 Fixed incorrect null
schema generation.
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 <ak...@apache.org>
Authored: Mon Dec 21 10:20:37 2015 +0700
Committer: Alexey Kuznetsov <ak...@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
+}