You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/02/03 07:19:31 UTC
[2/2] incubator-ignite git commit: # IGNITE-32: Refactored types
metadata to cache package from.
# IGNITE-32: Refactored types metadata to cache package from.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ed2af98c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ed2af98c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ed2af98c
Branch: refs/heads/ignite-32
Commit: ed2af98cff847f39067fd9c8a2fdb7879e7cf31b
Parents: 8e5c0a8
Author: AKuznetsov <ak...@gridgain.com>
Authored: Tue Feb 3 13:19:36 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Tue Feb 3 13:19:36 2015 +0700
----------------------------------------------------------------------
.../apache/ignite/cache/CacheConfiguration.java | 23 ++
.../ignite/cache/CacheTypeFieldMetadata.java | 145 +++++++++
.../apache/ignite/cache/CacheTypeMetadata.java | 156 ++++++++++
.../query/CacheQueryTableColumnMetadata.java | 143 ---------
.../cache/query/CacheQueryTableMetadata.java | 134 ---------
.../cache/query/CacheQueryTypeMetadata.java | 59 +---
.../ignite/cache/store/jdbc/JdbcCacheStore.java | 145 +++++----
.../cache/store/jdbc/JdbcPojoCacheStore.java | 22 +-
.../core/src/test/config/store/jdbc/Ignite.xml | 252 +++++-----------
...ractJdbcCacheStoreMultithreadedSelfTest.java | 9 +-
.../store/jdbc/PojoJdbcCacheStoreTest.java | 7 +-
.../cache/store/jdbc/model/Organization.java | 2 +-
.../cache/store/jdbc/model/OrganizationKey.java | 2 +-
.../ignite/cache/store/jdbc/model/Person.java | 2 +-
.../cache/store/jdbc/model/PersonKey.java | 2 +-
.../ignite/schema/generator/PojoGenerator.java | 2 +-
.../ignite/schema/generator/XmlGenerator.java | 100 +------
.../ignite/schema/model/PojoDescriptor.java | 65 -----
.../schema/parser/DatabaseMetadataParser.java | 45 +--
.../apache/ignite/schema/parser/DbTable.java | 39 +--
.../parser/dialect/JdbcMetadataDialect.java | 40 +--
.../parser/dialect/OracleMetadataDialect.java | 66 ++---
.../apache/ignite/schema/load/model/Ignite.xml | 292 +++++++------------
23 files changed, 651 insertions(+), 1101 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
index d5edb86..95d6a43 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
@@ -344,6 +344,9 @@ public class CacheConfiguration extends MutableConfiguration {
*/
private boolean readFromBackup = DFLT_READ_FROM_BACKUP;
+ /** Collection of type metadata. */
+ private Collection<CacheTypeMetadata> typeMeta;
+
/** Empty constructor (all values are initialized to their defaults). */
public CacheConfiguration() {
/* No-op. */
@@ -427,6 +430,7 @@ public class CacheConfiguration extends MutableConfiguration {
writeBehindFlushSize = cc.getWriteBehindFlushSize();
writeBehindFlushThreadCnt = cc.getWriteBehindFlushThreadCount();
writeSync = cc.getWriteSynchronizationMode();
+ typeMeta = cc.getTypeMetadata();
}
/**
@@ -1751,6 +1755,25 @@ public class CacheConfiguration extends MutableConfiguration {
}
/**
+ * Gets collection of type metadata objects.
+ *
+ * @return Collection of type metadata.
+ */
+ public Collection<CacheTypeMetadata> getTypeMetadata() {
+ return typeMeta;
+ }
+
+ /**
+ * Sets collection of type metadata objects.
+ *
+ * @param typeMeta Collection of type metadata.
+ */
+ public void setTypeMetadata(Collection<CacheTypeMetadata> typeMeta) {
+ this.typeMeta = typeMeta;
+ }
+
+
+ /**
* Gets query configuration. Query configuration defines which fields should be indexed for objects
* without annotations or portable objects.
*
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeFieldMetadata.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeFieldMetadata.java
new file mode 100644
index 0000000..687c97d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeFieldMetadata.java
@@ -0,0 +1,145 @@
+/*
+ * 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.cache;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+/**
+ * Type field metadata.
+ */
+public class CacheTypeFieldMetadata {
+ /** Column name in database. */
+ private String dbName;
+
+ /** Column JDBC type in database. */
+ private int dbType;
+
+ /** Column name in database. */
+ private String javaName;
+
+ /** Corresponding java type. */
+ private Class<?> javaType;
+
+ /**
+ * Default constructor.
+ */
+ public CacheTypeFieldMetadata() {
+ // No-op.
+ }
+
+ /**
+ * Full constructor.
+ *
+ * @param dbName Column name in database.
+ * @param dbType Column JDBC type in database.
+ * @param javaName Field name in java object.
+ * @param javaType Field java type.
+ */
+ public CacheTypeFieldMetadata(String javaName, Class<?> javaType, String dbName, int dbType) {
+ this.dbName = dbName;
+ this.dbType = dbType;
+ this.javaName = javaName;
+ this.javaType = javaType;
+ }
+
+ /**
+ * @return Column name in database.
+ */
+ public String getDbName() {
+ return dbName;
+ }
+
+ /**
+ * @param dbName Column name in database.
+ */
+ public void setDbName(String dbName) {
+ this.dbName = dbName;
+ }
+
+ /**
+ * @return Column JDBC type in database.
+ */
+ public int getDbType() {
+ return dbType;
+ }
+
+ /**
+ * @param dbType Column JDBC type in database.
+ */
+ public void setDbType(int dbType) {
+ this.dbType = dbType;
+ }
+
+ /**
+ * @return Field name in java object.
+ */
+ public String getJavaName() {
+ return javaName;
+ }
+
+ /**
+ * @param javaName Field name in java object.
+ */
+ public void setJavaName(String javaName) {
+ this.javaName = javaName;
+ }
+
+ /**
+ * @return Field java type.
+ */
+ public Class<?> getJavaType() {
+ return javaType;
+ }
+
+ /**
+ * @param javaType Corresponding java type.
+ */
+ public void setJavaType(Class<?> javaType) {
+ this.javaType = javaType;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean equals(Object o) {
+ if (this == o)
+ return true;
+
+ if (!(o instanceof CacheTypeFieldMetadata))
+ return false;
+
+ CacheTypeFieldMetadata that = (CacheTypeFieldMetadata)o;
+
+ return javaName.equals(that.javaName) && dbName.equals(that.dbName) &&
+ javaType == that.javaType && dbType == that.dbType;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int hashCode() {
+ int res = dbName.hashCode();
+
+ res = 31 * res + dbType;
+ res = 31 * res + javaName.hashCode();
+ res = 31 * res + javaType.hashCode();
+
+ return res;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(CacheTypeFieldMetadata.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
new file mode 100644
index 0000000..3a644f8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheTypeMetadata.java
@@ -0,0 +1,156 @@
+/*
+ * 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.cache;
+
+import org.apache.ignite.internal.util.tostring.*;
+
+import java.util.*;
+
+/**
+ * Type metadata.
+ */
+public class CacheTypeMetadata {
+ /** Schema name in database. */
+ private String dbSchema;
+
+ /** Table name in database. */
+ private String dbTbl;
+
+ /** Key class used to store key in cache. */
+ private String keyType;
+
+ /** Value class used to store value in cache. */
+ private String valType;
+
+ /** Key fields. */
+ @GridToStringInclude
+ private Collection<CacheTypeFieldMetadata> keyFields;
+
+ /** Value fields . */
+ @GridToStringInclude
+ private Collection<CacheTypeFieldMetadata> valFields;
+
+ /**
+ * Gets database schema name.
+ *
+ * @return Schema name.
+ */
+ public String getDatabaseSchema() {
+ return dbSchema;
+ }
+
+ /**
+ * Sets database schema name.
+ *
+ * @param dbSchema Schema name.
+ */
+ public void setDatabaseSchema(String dbSchema) {
+ this.dbSchema = dbSchema;
+ }
+
+ /**
+ * Gets table name in database.
+ *
+ * @return Table name in database.
+ */
+ public String getDatabaseTable() {
+ return dbTbl;
+ }
+
+ /**
+ * Table name in database.
+ *
+ * @param dbTbl Table name in database.
+ */
+ public void setDatabaseTable(String dbTbl) {
+ this.dbTbl = dbTbl;
+ }
+
+ /**
+ * Gets key type.
+ *
+ * @return Key type.
+ */
+ public String getKeyType() {
+ return keyType;
+ }
+
+ /**
+ * Sets key type.
+ *
+ * @param keyType Key type.
+ */
+ public void setKeyType(String keyType) {
+ this.keyType = keyType;
+ }
+
+
+ /**
+ * Gets value type.
+ *
+ * @return Key type.
+ */
+ public String getValueType() {
+ return valType;
+ }
+
+ /**
+ * Sets value type.
+ *
+ * @param valType Value type.
+ */
+ public void setValueType(String valType) {
+ this.valType = valType;
+ }
+
+ /**
+ * Gets key fields.
+ *
+ * @return Key fields.
+ */
+ public Collection<CacheTypeFieldMetadata> getKeyFields() {
+ return keyFields;
+ }
+
+ /**
+ * Sets key fields.
+ *
+ * @param keyFields New key fields.
+ */
+ public void setKeyFields(Collection<CacheTypeFieldMetadata> keyFields) {
+ this.keyFields = keyFields;
+ }
+
+ /**
+ * Gets value fields.
+ *
+ * @return Value fields.
+ */
+ public Collection<CacheTypeFieldMetadata> getValueFields() {
+ return valFields;
+ }
+
+ /**
+ * Sets value fields.
+ *
+ * @param valFields New value fields.
+ */
+ public void setValueFields(Collection<CacheTypeFieldMetadata> valFields) {
+ this.valFields = valFields;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableColumnMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableColumnMetadata.java b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableColumnMetadata.java
deleted file mode 100644
index 059cc8b..0000000
--- a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableColumnMetadata.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * 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.cache.query;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-/**
- * Database table column metadata.
- */
-public class CacheQueryTableColumnMetadata {
- /** Column name in database. */
- private String dbName;
-
- /** Column JDBC type in database. */
- private int dbType;
-
- /** Column name in database. */
- private String javaName;
-
- /** Corresponding java type. */
- private Class<?> javaType;
-
- /**
- * Default constructor.
- */
- public CacheQueryTableColumnMetadata() {
- // No-op.
- }
-
- /**
- * @param dbName Column name in database.
- * @param dbType Column JDBC type in database.
- * @param javaName Field name in java object.
- * @param javaType Field java type.
- */
- public CacheQueryTableColumnMetadata(String javaName, Class<?> javaType, String dbName, int dbType) {
- this.dbName = dbName;
- this.dbType = dbType;
- this.javaName = javaName;
- this.javaType = javaType;
- }
-
- /**
- * @return Column name in database.
- */
- public String getDbName() {
- return dbName;
- }
-
- /**
- * @param dbName Column name in database.
- */
- public void setDbName(String dbName) {
- this.dbName = dbName;
- }
-
- /**
- * @return Column JDBC type in database.
- */
- public int getDbType() {
- return dbType;
- }
-
- /**
- * @param dbType Column JDBC type in database.
- */
- public void setDbType(int dbType) {
- this.dbType = dbType;
- }
-
- /**
- * @return Field name in java object.
- */
- public String getJavaName() {
- return javaName;
- }
-
- /**
- * @param javaName Field name in java object.
- */
- public void setJavaName(String javaName) {
- this.javaName = javaName;
- }
-
- /**
- * @return Field java type.
- */
- public Class<?> getJavaType() {
- return javaType;
- }
-
- /**
- * @param javaType Corresponding java type.
- */
- public void setJavaType(Class<?> javaType) {
- this.javaType = javaType;
- }
-
- /** {@inheritDoc} */
- @Override public boolean equals(Object o) {
- if (this == o)
- return true;
-
- if (!(o instanceof CacheQueryTableColumnMetadata))
- return false;
-
- CacheQueryTableColumnMetadata that = (CacheQueryTableColumnMetadata)o;
-
- return javaName.equals(that.javaName) && dbName.equals(that.dbName) &&
- javaType == that.javaType && dbType == that.dbType;
- }
-
- /** {@inheritDoc} */
- @Override public int hashCode() {
- int res = dbName.hashCode();
-
- res = 31 * res + dbType;
- res = 31 * res + javaName.hashCode();
- res = 31 * res + javaType.hashCode();
-
- return res;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(CacheQueryTableColumnMetadata.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableMetadata.java b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableMetadata.java
deleted file mode 100644
index 13e584e..0000000
--- a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTableMetadata.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.cache.query;
-
-import org.apache.ignite.internal.util.tostring.*;
-
-import java.util.*;
-
-/**
- * Database table metadata.
- */
-public class CacheQueryTableMetadata {
- /** Schema name in database. */
- private String schema;
-
- /** Table name in database. */
- private String tbl;
-
- /** Key columns. */
- @GridToStringInclude
- private Collection<CacheQueryTableColumnMetadata> keyCols;
-
- /** Value columns . */
- @GridToStringInclude
- private Collection<CacheQueryTableColumnMetadata> valCols;
-
- /**
- * Default constructor.
- */
- public CacheQueryTableMetadata() {
- keyCols = new ArrayList<>();
- valCols = new ArrayList<>();
- }
-
- /**
- * Copy constructor.
- *
- * @param src Source table metadata.
- */
- public CacheQueryTableMetadata(CacheQueryTableMetadata src) {
- schema = src.getSchema();
- tbl = src.getTable();
-
- keyCols = new ArrayList<>(src.getKeyColumns());
- valCols = new ArrayList<>(src.getValueColumns());
- }
-
- /**
- * Gets database schema name.
- *
- * @return Schema name.
- */
- public String getSchema() {
- return schema;
- }
-
- /**
- * Sets database schema name.
- *
- * @param schema Schema name.
- */
- public void setSchema(String schema) {
- this.schema = schema;
- }
-
- /**
- * Gets table name in database.
- *
- * @return Table name in database.
- */
- public String getTable() {
- return tbl;
- }
-
- /**
- * Table name in database.
- *
- * @param tbl Table name in database.
- */
- public void setTable(String tbl) {
- this.tbl = tbl;
- }
-
- /**
- * Gets key columns.
- *
- * @return Key columns.
- */
- public Collection<CacheQueryTableColumnMetadata> getKeyColumns() {
- return keyCols;
- }
-
- /**
- * Sets key columns.
- *
- * @param keyCols New key columns.
- */
- public void setKeyColumns(Collection<CacheQueryTableColumnMetadata> keyCols) {
- this.keyCols = keyCols;
- }
-
- /**
- * Gets value columns.
- *
- * @return Value columns.
- */
- public Collection<CacheQueryTableColumnMetadata> getValueColumns() {
- return valCols;
- }
-
- /**
- * Sets value columns.
- *
- * @param valCols New value columns.
- */
- public void setValueColumns(Collection<CacheQueryTableColumnMetadata> valCols) {
- this.valCols = valCols;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTypeMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTypeMetadata.java b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTypeMetadata.java
index e866f19..55dc102 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTypeMetadata.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/query/CacheQueryTypeMetadata.java
@@ -17,9 +17,9 @@
package org.apache.ignite.cache.query;
-import org.apache.ignite.lang.*;
import org.apache.ignite.internal.util.tostring.*;
import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
import java.util.*;
@@ -27,15 +27,8 @@ import java.util.*;
* Cache query type metadata.
*/
public class CacheQueryTypeMetadata {
- /** Key class used to store value in cache. */
- private String keyType;
-
/** Type name, e.g. class name. */
- private String valType;
-
- // TODO MOVE to cache or store config ?
- /** Database table metadata.*/
- private CacheQueryTableMetadata tblMeta;
+ private String type;
/** Fields to be queried, in addition to indexed fields. */
@GridToStringInclude
@@ -61,8 +54,6 @@ public class CacheQueryTypeMetadata {
* Default constructor.
*/
public CacheQueryTypeMetadata() {
- tblMeta = new CacheQueryTableMetadata();
-
qryFlds = new LinkedHashMap<>();
ascFlds = new LinkedHashMap<>();
@@ -78,11 +69,7 @@ public class CacheQueryTypeMetadata {
* Copy constructor.
*/
public CacheQueryTypeMetadata(CacheQueryTypeMetadata src) {
- keyType = src.getKeyType();
-
- valType = src.getType();
-
- tblMeta = new CacheQueryTableMetadata(src.getTableMetadata());
+ type = src.getType();
qryFlds = new LinkedHashMap<>(src.getQueryFields());
@@ -96,30 +83,12 @@ public class CacheQueryTypeMetadata {
}
/**
- * Gets key type.
- *
- * @return Key type.
- */
- public String getKeyType() {
- return keyType;
- }
-
- /**
- * Sets key type.
- *
- * @param keyType Key type.
- */
- public void setKeyType(String keyType) {
- this.keyType = keyType;
- }
-
- /**
* Gets type (e.g. class name).
*
* @return Type name.
*/
public String getType() {
- return valType;
+ return type;
}
/**
@@ -137,25 +106,7 @@ public class CacheQueryTypeMetadata {
* @param type Type name.
*/
public void setType(String type) {
- valType = type;
- }
-
- /**
- * Gets table metadata.
- *
- * @return table metadata.
- */
- public CacheQueryTableMetadata getTableMetadata() {
- return tblMeta;
- }
-
- /**
- * Sets table metadata.
- *
- * @param tblMeta New table metadata.
- */
- public void setTableMetadata(CacheQueryTableMetadata tblMeta) {
- this.tblMeta = tblMeta;
+ this.type = type;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java
index 33461b7..2147e3f 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcCacheStore.java
@@ -18,7 +18,7 @@
package org.apache.ignite.cache.store.jdbc;
import org.apache.ignite.*;
-import org.apache.ignite.cache.query.*;
+import org.apache.ignite.cache.*;
import org.apache.ignite.cache.store.*;
import org.apache.ignite.cache.store.jdbc.dialect.*;
import org.apache.ignite.internal.util.tostring.*;
@@ -132,7 +132,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
* @param rs ResultSet.
* @return Constructed object.
*/
- protected abstract <R> R buildObject(String typeName, Collection<CacheQueryTableColumnMetadata> fields, ResultSet rs)
+ protected abstract <R> R buildObject(String typeName, Collection<CacheTypeFieldMetadata> fields, ResultSet rs)
throws CacheLoaderException;
/**
@@ -157,7 +157,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
* @param types Collection of types.
* @throws CacheException If failed to prepare.
*/
- protected abstract void prepareBuilders(@Nullable String cacheName, Collection<CacheQueryTypeMetadata> types)
+ protected abstract void prepareBuilders(@Nullable String cacheName, Collection<CacheTypeMetadata> types)
throws CacheException;
/**
@@ -402,19 +402,19 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
if (entryMappings != null)
return entryMappings;
- Collection<CacheQueryTypeMetadata> typeMetadata =
- ignite().cache(session().cacheName()).configuration().getQueryConfiguration().getTypeMetadata();
+ Collection<CacheTypeMetadata> types = ignite().cache(session().cacheName()).configuration()
+ .getTypeMetadata();
- entryMappings = U.newHashMap(typeMetadata.size());
+ entryMappings = U.newHashMap(types.size());
- for (CacheQueryTypeMetadata type : typeMetadata)
+ for (CacheTypeMetadata type : types)
entryMappings.put(keyTypeId(type.getKeyType()), new EntryMapping(dialect, type));
Map<String, Map<Object, EntryMapping>> mappings = new HashMap<>(cacheMappings);
mappings.put(cacheName, entryMappings);
- prepareBuilders(cacheName, typeMetadata);
+ prepareBuilders(cacheName, types);
cacheMappings = mappings;
@@ -632,10 +632,20 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
insStmt.executeUpdate();
}
catch (SQLException e) {
+ String sqlState = e.getSQLState();
+
+ SQLException nested = e.getNextException();
+
+ while (sqlState == null && nested != null) {
+ sqlState = nested.getSQLState();
+
+ nested = nested.getNextException();
+ }
+
// The error with code 23505 is thrown when trying to insert a row that
// would violate a unique index or primary key.
// TODO check with all RDBMS
- if (e.getErrorCode() == 23505)
+ if (sqlState != null && Integer.valueOf(sqlState) == 23505)
continue;
throw e;
@@ -708,7 +718,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
}
/** {@inheritDoc} */
- @Override public void writeAll(Collection<Cache.Entry<? extends K, ? extends V>> entries)
+ @Override public void writeAll(final Collection<Cache.Entry<? extends K, ? extends V>> entries)
throws CacheWriterException {
assert entries != null;
@@ -723,6 +733,12 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
PreparedStatement mergeStmt = null;
try {
+ LazyValue<Object[]> lazyEntries = new LazyValue<Object[]>() {
+ @Override public Object[] create() {
+ return entries.toArray();
+ }
+ };
+
int fromIdx = 0, prepared = 0;
for (Cache.Entry<? extends K, ? extends V> entry : entries) {
@@ -734,7 +750,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
if (currKeyTypeId == null || !currKeyTypeId.equals(keyTypeId)) {
if (mergeStmt != null) {
- executeBatch(mergeStmt, "writeAll", fromIdx, prepared, entries);
+ executeBatch(mergeStmt, "writeAll", fromIdx, prepared, lazyEntries);
U.closeQuiet(mergeStmt);
}
@@ -753,14 +769,14 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
mergeStmt.addBatch();
if (++prepared % batchSz == 0) {
- executeBatch(mergeStmt, "writeAll", fromIdx, prepared, entries);
+ executeBatch(mergeStmt, "writeAll", fromIdx, prepared, lazyEntries);
prepared = 0;
}
}
if (mergeStmt != null && prepared % batchSz != 0)
- executeBatch(mergeStmt, "writeAll", fromIdx, prepared, entries);
+ executeBatch(mergeStmt, "writeAll", fromIdx, prepared, lazyEntries);
}
finally {
U.closeQuiet(mergeStmt);
@@ -845,9 +861,9 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
* @param stmtType Statement description for error message.
* @param fromIdx Objects in batch start from index.
* @param prepared Expected objects in batch.
- * @param objects All objects.
+ * @param lazyObjs All objects used in batch statement as array.
*/
- private void executeBatch(Statement stmt, String stmtType, int fromIdx, int prepared, Collection<?> objects)
+ private void executeBatch(Statement stmt, String stmtType, int fromIdx, int prepared, LazyValue<Object[]> lazyObjs)
throws SQLException {
int[] rowCounts = stmt.executeBatch();
@@ -857,19 +873,16 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
log.warning("JDBC driver did not return the expected number of updated row counts," +
" actual row count: " + numOfRowCnt + " expected: " + prepared);
- Object[] arr = null;
-
for (int i = 0; i < numOfRowCnt; i++)
if (rowCounts[i] != 1) {
- if (arr == null)
- arr = objects.toArray();
+ Object[] objs = lazyObjs.value();
- log.warning("Batch " + stmtType + " returned unexpected updated row count for: " + arr[fromIdx + i]);
+ log.warning("Batch " + stmtType + " returned unexpected updated row count for: " + objs[fromIdx + i]);
}
}
/** {@inheritDoc} */
- @Override public void deleteAll(Collection<?> keys) throws CacheWriterException {
+ @Override public void deleteAll(final Collection<?> keys) throws CacheWriterException {
assert keys != null;
Connection conn = null;
@@ -881,6 +894,12 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
PreparedStatement delStmt = null;
+ LazyValue<Object[]> lazyKeys = new LazyValue<Object[]>() {
+ @Override public Object[] create() {
+ return keys.toArray();
+ }
+ };
+
int fromIdx = 0, prepared = 0;
for (Object key : keys) {
@@ -895,7 +914,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
}
if (!currKeyTypeId.equals(keyTypeId)) {
- executeBatch(delStmt, "deleteAll", fromIdx, prepared, keys);
+ executeBatch(delStmt, "deleteAll", fromIdx, prepared, lazyKeys);
fromIdx += prepared;
@@ -909,7 +928,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
delStmt.addBatch();
if (++prepared % batchSz == 0) {
- executeBatch(delStmt, "deleteAll", fromIdx, prepared, keys);
+ executeBatch(delStmt, "deleteAll", fromIdx, prepared, lazyKeys);
fromIdx += prepared;
@@ -918,7 +937,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
}
if (delStmt != null && prepared % batchSz != 0)
- executeBatch(delStmt, "deleteAll", fromIdx, prepared, keys);
+ executeBatch(delStmt, "deleteAll", fromIdx, prepared, lazyKeys);
}
catch (SQLException e) {
throw new CacheWriterException("Failed to remove values from database", e);
@@ -937,7 +956,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
*/
protected int fillKeyParameters(PreparedStatement stmt, int i, EntryMapping type,
Object key) throws CacheException {
- for (CacheQueryTableColumnMetadata field : type.keyColumns()) {
+ for (CacheTypeFieldMetadata field : type.keyColumns()) {
Object fieldVal = extractField(type.keyType(), field.getJavaName(), key);
try {
@@ -973,7 +992,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
*/
protected int fillValueParameters(PreparedStatement stmt, int i, EntryMapping m, Object val)
throws CacheWriterException {
- for (CacheQueryTableColumnMetadata field : m.uniqValFields) {
+ for (CacheTypeFieldMetadata field : m.uniqValFields) {
Object fieldVal = extractField(m.valueType(), field.getJavaName(), val);
try {
@@ -1117,37 +1136,32 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
private final Collection<String> cols;
/** Unique value fields. */
- private final Collection<CacheQueryTableColumnMetadata> uniqValFields;
+ private final Collection<CacheTypeFieldMetadata> uniqValFields;
/** Type metadata. */
- private final CacheQueryTypeMetadata typeMeta;
-
- /** Table metadata. */
- private final CacheQueryTableMetadata tblMeta;
+ private final CacheTypeMetadata typeMeta;
/**
* @param typeMeta Type metadata.
*/
- public EntryMapping(JdbcDialect dialect, CacheQueryTypeMetadata typeMeta) {
+ public EntryMapping(JdbcDialect dialect, CacheTypeMetadata typeMeta) {
this.dialect = dialect;
this.typeMeta = typeMeta;
- tblMeta = typeMeta.getTableMetadata();
-
- final Collection<CacheQueryTableColumnMetadata> keyFields = tblMeta.getKeyColumns();
+ final Collection<CacheTypeFieldMetadata> keyFields = typeMeta.getKeyFields();
- Collection<CacheQueryTableColumnMetadata> valFields = tblMeta.getValueColumns();
+ Collection<CacheTypeFieldMetadata> valFields = typeMeta.getValueFields();
- uniqValFields = F.view(valFields, new IgnitePredicate<CacheQueryTableColumnMetadata>() {
- @Override public boolean apply(CacheQueryTableColumnMetadata col) {
+ uniqValFields = F.view(valFields, new IgnitePredicate<CacheTypeFieldMetadata>() {
+ @Override public boolean apply(CacheTypeFieldMetadata col) {
return !keyFields.contains(col);
}
});
- String schema = tblMeta.getSchema();
+ String schema = typeMeta.getDatabaseSchema();
- String tblName = tblMeta.getTable();
+ String tblName = typeMeta.getDatabaseTable();
keyCols = databaseColumns(keyFields);
@@ -1177,14 +1191,14 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
}
/**
- * Extract database column names from {@link CacheQueryTableColumnMetadata}.
+ * Extract database column names from {@link CacheTypeFieldMetadata}.
*
- * @param dsc collection of {@link CacheQueryTableColumnMetadata}.
+ * @param dsc collection of {@link CacheTypeFieldMetadata}.
*/
- private static Collection<String> databaseColumns(Collection<CacheQueryTableColumnMetadata> dsc) {
- return F.transform(dsc, new C1<CacheQueryTableColumnMetadata, String>() {
+ private static Collection<String> databaseColumns(Collection<CacheTypeFieldMetadata> dsc) {
+ return F.transform(dsc, new C1<CacheTypeFieldMetadata, String>() {
/** {@inheritDoc} */
- @Override public String apply(CacheQueryTableColumnMetadata col) {
+ @Override public String apply(CacheTypeFieldMetadata col) {
return col.getDbName();
}
});
@@ -1204,7 +1218,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
if (keyCnt == 1)
return loadQrySingle;
- return dialect.loadQuery(tblMeta.getSchema(), tblMeta.getTable(), keyCols, cols, keyCnt);
+ return dialect.loadQuery(typeMeta.getDatabaseSchema(), typeMeta.getDatabaseTable(), keyCols, cols, keyCnt);
}
/**
* Construct query for select values in range.
@@ -1214,7 +1228,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
* @return Query with range.
*/
protected String loadCacheRangeQuery(boolean appendLowerBound, boolean appendUpperBound) {
- return dialect.loadCacheRangeQuery(tblMeta.getSchema(), tblMeta.getTable(), keyCols, cols,
+ return dialect.loadCacheRangeQuery(typeMeta.getDatabaseSchema(), typeMeta.getDatabaseTable(), keyCols, cols,
appendLowerBound, appendUpperBound);
}
@@ -1225,7 +1239,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
/** Value type. */
protected String valueType() {
- return typeMeta.getType();
+ return typeMeta.getValueType();
}
/**
@@ -1233,8 +1247,8 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
*
* @return Key columns.
*/
- protected Collection<CacheQueryTableColumnMetadata> keyColumns() {
- return tblMeta.getKeyColumns();
+ protected Collection<CacheTypeFieldMetadata> keyColumns() {
+ return typeMeta.getKeyFields();
}
/**
@@ -1242,8 +1256,8 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
*
* @return Value columns.
*/
- protected Collection<CacheQueryTableColumnMetadata> valueColumns() {
- return tblMeta.getValueColumns();
+ protected Collection<CacheTypeFieldMetadata> valueColumns() {
+ return typeMeta.getValueFields();
}
}
@@ -1308,6 +1322,31 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
}
/**
+ * Lazy initialization of value.
+ *
+ * @param <T> Cached object type
+ */
+ private abstract static class LazyValue<T> {
+ /** Cached value. */
+ private T val;
+
+ /**
+ * @return Construct value.
+ */
+ protected abstract T create();
+
+ /**
+ * @return Value.
+ */
+ public T value() {
+ if (val == null)
+ val = create();
+
+ return val;
+ }
+ }
+
+ /**
* Worker for load by keys.
*
* @param <K1> Key type.
@@ -1344,7 +1383,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements L
int i = 1;
for (Object key : keys)
- for (CacheQueryTableColumnMetadata field : m.keyColumns()) {
+ for (CacheTypeFieldMetadata field : m.keyColumns()) {
Object fieldVal = extractField(m.keyType(), field.getJavaName(), key);
if (fieldVal != null)
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java
index e6d0f3a..93e71cc 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/JdbcPojoCacheStore.java
@@ -17,7 +17,7 @@
package org.apache.ignite.cache.store.jdbc;
-import org.apache.ignite.cache.query.*;
+import org.apache.ignite.cache.*;
import org.apache.ignite.cache.store.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.jetbrains.annotations.*;
@@ -56,7 +56,7 @@ public class JdbcPojoCacheStore extends JdbcCacheStore<Object, Object> {
* @param clsName Class name.
* @param fields Fields.
*/
- public PojoMethodsCache(String clsName, Collection<CacheQueryTableColumnMetadata> fields) throws CacheException {
+ public PojoMethodsCache(String clsName, Collection<CacheTypeFieldMetadata> fields) throws CacheException {
try {
cls = Class.forName(clsName);
@@ -76,7 +76,7 @@ public class JdbcPojoCacheStore extends JdbcCacheStore<Object, Object> {
getters = U.newHashMap(fields.size());
- for (CacheQueryTableColumnMetadata field : fields) {
+ for (CacheTypeFieldMetadata field : fields) {
String prop = capitalFirst(field.getJavaName());
try {
@@ -133,16 +133,16 @@ public class JdbcPojoCacheStore extends JdbcCacheStore<Object, Object> {
protected volatile Map<String, Map<String, PojoMethodsCache>> mtdsCache = Collections.emptyMap();
/** {@inheritDoc} */
- @Override protected void prepareBuilders(@Nullable String cacheName, Collection<CacheQueryTypeMetadata> types)
+ @Override protected void prepareBuilders(@Nullable String cacheName, Collection<CacheTypeMetadata> types)
throws CacheException {
Map<String, PojoMethodsCache> typeMethods = U.newHashMap(types.size() * 2);
- for (CacheQueryTypeMetadata type : types) {
- CacheQueryTableMetadata tblMeta = type.getTableMetadata();
+ for (CacheTypeMetadata type : types) {
+ String keyType = type.getKeyType();
+ typeMethods.put(keyType, new PojoMethodsCache(keyType, type.getKeyFields()));
- typeMethods.put(type.getKeyType(), new PojoMethodsCache(type.getKeyType(), tblMeta.getKeyColumns()));
-
- typeMethods.put(type.getType(), new PojoMethodsCache(type.getType(), tblMeta.getValueColumns()));
+ String valType = type.getValueType();
+ typeMethods.put(valType, new PojoMethodsCache(valType, type.getValueFields()));
}
HashMap<String, Map<String, PojoMethodsCache>> newMtdsCache = new HashMap<>(mtdsCache);
@@ -153,14 +153,14 @@ public class JdbcPojoCacheStore extends JdbcCacheStore<Object, Object> {
}
/** {@inheritDoc} */
- @Override protected <R> R buildObject(String typeName, Collection<CacheQueryTableColumnMetadata> fields,
+ @Override protected <R> R buildObject(String typeName, Collection<CacheTypeFieldMetadata> fields,
ResultSet rs) throws CacheLoaderException {
PojoMethodsCache t = mtdsCache.get(session().cacheName()).get(typeName);
Object obj = t.newInstance();
try {
- for (CacheQueryTableColumnMetadata field : fields)
+ for (CacheTypeFieldMetadata field : fields)
t.setters.get(field.getJavaName()).invoke(obj, rs.getObject(field.getDbName()));
return (R)obj;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/config/store/jdbc/Ignite.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/store/jdbc/Ignite.xml b/modules/core/src/test/config/store/jdbc/Ignite.xml
index 4bdd40a..de6e560 100644
--- a/modules/core/src/test/config/store/jdbc/Ignite.xml
+++ b/modules/core/src/test/config/store/jdbc/Ignite.xml
@@ -16,200 +16,86 @@
limitations under the License.
-->
<!--
- XML generated by Apache Ignite Schema Load utility: 02/33/2015
+ XML generated by Apache Ignite Schema Load utility: 02/03/2015
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean class="org.apache.ignite.cache.query.CacheQueryTypeMetadata">
- <property name="type" value="org.apache.ignite.cache.store.jdbc.model.Organization"/>
+ <bean class="org.apache.ignite.cache.CacheTypeMetadata">
+ <property name="databaseSchema" value="PUBLIC"/>
+ <property name="databaseTable" value="ORGANIZATION"/>
<property name="keyType" value="org.apache.ignite.cache.store.jdbc.model.OrganizationKey"/>
- <property name="tableMetadata">
- <bean class="org.apache.ignite.cache.query.CacheQueryTableMetadata">
- <property name="schema" value="PUBLIC"/>
- <property name="table" value="ORGANIZATION"/>
- <property name="keyColumns">
- <list>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="ID"/>
- <property name="dbType" value="4"/>
- <property name="javaName" value="id"/>
- <property name="javaType" value="java.lang.Integer"/>
- </bean>
- </list>
- </property>
- <property name="valueColumns">
- <list>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="ID"/>
- <property name="dbType" value="4"/>
- <property name="javaName" value="id"/>
- <property name="javaType" value="java.lang.Integer"/>
- </bean>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="NAME"/>
- <property name="dbType" value="12"/>
- <property name="javaName" value="name"/>
- <property name="javaType" value="java.lang.String"/>
- </bean>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="CITY"/>
- <property name="dbType" value="12"/>
- <property name="javaName" value="city"/>
- <property name="javaType" value="java.lang.String"/>
- </bean>
- </list>
- </property>
- </bean>
+ <property name="valueType" value="org.apache.ignite.cache.store.jdbc.model.Organization"/>
+ <property name="keyFields">
+ <list>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="ID"/>
+ <property name="dbType" value="4"/>
+ <property name="javaName" value="id"/>
+ <property name="javaType" value="java.lang.Integer"/>
+ </bean>
+ </list>
</property>
- <property name="queryFields">
- <map>
- <entry key="id" value="java.lang.Integer"/>
- <entry key="name" value="java.lang.String"/>
- <entry key="city" value="java.lang.String"/>
- </map>
- </property>
- <property name="ascendingFields">
- <map>
- <entry key="id" value="java.lang.Integer"/>
- <entry key="name" value="java.lang.String"/>
- <entry key="city" value="java.lang.String"/>
- </map>
- </property>
- <property name="groups">
- <map>
- <entry key="PRIMARY_KEY_D">
- <map>
- <entry key="id">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.Integer"/>
- <constructor-arg value="false"/>
- </bean>
- </entry>
- </map>
- </entry>
- <entry key="ORG_NAME_CITY_IDX">
- <map>
- <entry key="name">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.String"/>
- <constructor-arg value="false"/>
- </bean>
- </entry>
- <entry key="city">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.String"/>
- <constructor-arg value="false"/>
- </bean>
- </entry>
- </map>
- </entry>
- <entry key="ORG_NAME_IDX">
- <map>
- <entry key="name">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.String"/>
- <constructor-arg value="false"/>
- </bean>
- </entry>
- </map>
- </entry>
- </map>
+ <property name="valueFields">
+ <list>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="ID"/>
+ <property name="dbType" value="4"/>
+ <property name="javaName" value="id"/>
+ <property name="javaType" value="java.lang.Integer"/>
+ </bean>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="NAME"/>
+ <property name="dbType" value="12"/>
+ <property name="javaName" value="name"/>
+ <property name="javaType" value="java.lang.String"/>
+ </bean>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="CITY"/>
+ <property name="dbType" value="12"/>
+ <property name="javaName" value="city"/>
+ <property name="javaType" value="java.lang.String"/>
+ </bean>
+ </list>
</property>
</bean>
- <bean class="org.apache.ignite.cache.query.CacheQueryTypeMetadata">
- <property name="type" value="org.apache.ignite.cache.store.jdbc.model.Person"/>
+ <bean class="org.apache.ignite.cache.CacheTypeMetadata">
+ <property name="databaseSchema" value="PUBLIC"/>
+ <property name="databaseTable" value="PERSON"/>
<property name="keyType" value="org.apache.ignite.cache.store.jdbc.model.PersonKey"/>
- <property name="tableMetadata">
- <bean class="org.apache.ignite.cache.query.CacheQueryTableMetadata">
- <property name="schema" value="PUBLIC"/>
- <property name="table" value="PERSON"/>
- <property name="keyColumns">
- <list>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="ID"/>
- <property name="dbType" value="4"/>
- <property name="javaName" value="id"/>
- <property name="javaType" value="java.lang.Integer"/>
- </bean>
- </list>
- </property>
- <property name="valueColumns">
- <list>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="ID"/>
- <property name="dbType" value="4"/>
- <property name="javaName" value="id"/>
- <property name="javaType" value="java.lang.Integer"/>
- </bean>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="ORG_ID"/>
- <property name="dbType" value="4"/>
- <property name="javaName" value="orgId"/>
- <property name="javaType" value="java.lang.Integer"/>
- </bean>
- <bean class="org.apache.ignite.cache.query.CacheQueryTableColumnMetadata">
- <property name="dbName" value="NAME"/>
- <property name="dbType" value="12"/>
- <property name="javaName" value="name"/>
- <property name="javaType" value="java.lang.String"/>
- </bean>
- </list>
- </property>
- </bean>
- </property>
- <property name="queryFields">
- <map>
- <entry key="id" value="java.lang.Integer"/>
- <entry key="orgId" value="java.lang.Integer"/>
- <entry key="name" value="java.lang.String"/>
- </map>
- </property>
- <property name="ascendingFields">
- <map>
- <entry key="id" value="java.lang.Integer"/>
- <entry key="name" value="java.lang.String"/>
- </map>
- </property>
- <property name="descendingFields">
- <map>
- <entry key="name" value="java.lang.String"/>
- </map>
+ <property name="valueType" value="org.apache.ignite.cache.store.jdbc.model.Person"/>
+ <property name="keyFields">
+ <list>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="ID"/>
+ <property name="dbType" value="4"/>
+ <property name="javaName" value="id"/>
+ <property name="javaType" value="java.lang.Integer"/>
+ </bean>
+ </list>
</property>
- <property name="groups">
- <map>
- <entry key="PRIMARY_KEY_8">
- <map>
- <entry key="id">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.Integer"/>
- <constructor-arg value="false"/>
- </bean>
- </entry>
- </map>
- </entry>
- <entry key="PERSON_NAME_IDX1">
- <map>
- <entry key="name">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.String"/>
- <constructor-arg value="false"/>
- </bean>
- </entry>
- </map>
- </entry>
- <entry key="PERSON_NAME_IDX2">
- <map>
- <entry key="name">
- <bean class="org.apache.ignite.lang.IgniteBiTuple">
- <constructor-arg value="java.lang.String"/>
- <constructor-arg value="true"/>
- </bean>
- </entry>
- </map>
- </entry>
- </map>
+ <property name="valueFields">
+ <list>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="ID"/>
+ <property name="dbType" value="4"/>
+ <property name="javaName" value="id"/>
+ <property name="javaType" value="java.lang.Integer"/>
+ </bean>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="ORG_ID"/>
+ <property name="dbType" value="4"/>
+ <property name="javaName" value="orgId"/>
+ <property name="javaType" value="java.lang.Integer"/>
+ </bean>
+ <bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">
+ <property name="dbName" value="NAME"/>
+ <property name="dbType" value="12"/>
+ <property name="javaName" value="name"/>
+ <property name="javaType" value="java.lang.String"/>
+ </bean>
+ </list>
</property>
</bean>
</beans>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/AbstractJdbcCacheStoreMultithreadedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/AbstractJdbcCacheStoreMultithreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/AbstractJdbcCacheStoreMultithreadedSelfTest.java
index d4ecf42..c263ceb 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/AbstractJdbcCacheStoreMultithreadedSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/AbstractJdbcCacheStoreMultithreadedSelfTest.java
@@ -19,7 +19,6 @@ package org.apache.ignite.cache.store.jdbc;
import org.apache.ignite.*;
import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.query.*;
import org.apache.ignite.cache.store.jdbc.model.*;
import org.apache.ignite.configuration.*;
import org.apache.ignite.internal.util.typedef.*;
@@ -137,13 +136,9 @@ public abstract class AbstractJdbcCacheStoreMultithreadedSelfTest<T extends Jdbc
springCtx.refresh();
- Collection<CacheQueryTypeMetadata> tp = springCtx.getBeansOfType(CacheQueryTypeMetadata.class).values();
+ Collection<CacheTypeMetadata> tp = springCtx.getBeansOfType(CacheTypeMetadata.class).values();
- CacheQueryConfiguration cq = new CacheQueryConfiguration();
-
- cq.setTypeMetadata(tp);
-
- cc.setQueryConfiguration(cq);
+ cc.setTypeMetadata(tp);
}
catch (BeansException e) {
if (X.hasCause(e, ClassNotFoundException.class))
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java
index b8b751b..c12eff7 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/PojoJdbcCacheStoreTest.java
@@ -18,7 +18,7 @@
package org.apache.ignite.cache.store.jdbc;
import org.apache.ignite.*;
-import org.apache.ignite.cache.query.*;
+import org.apache.ignite.cache.*;
import org.apache.ignite.cache.store.*;
import org.apache.ignite.cache.store.jdbc.dialect.*;
import org.apache.ignite.cache.store.jdbc.model.*;
@@ -117,8 +117,7 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest {
springCtx.refresh();
- Collection<CacheQueryTypeMetadata> typeMeta =
- springCtx.getBeansOfType(CacheQueryTypeMetadata.class).values();
+ Collection<CacheTypeMetadata> typeMeta = springCtx.getBeansOfType(CacheTypeMetadata.class).values();
Map<Integer, Map<Object, JdbcCacheStore.EntryMapping>> cacheMappings = new HashMap<>();
@@ -128,7 +127,7 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest {
Map<Object, JdbcCacheStore.EntryMapping> entryMappings = U.newHashMap(typeMeta.size());
- for (CacheQueryTypeMetadata type : typeMeta)
+ for (CacheTypeMetadata type : typeMeta)
entryMappings.put(store.keyTypeId(type.getKeyType()), new JdbcCacheStore.EntryMapping(dialect, type));
store.prepareBuilders(null, typeMeta);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Organization.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Organization.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Organization.java
index 9b82247..a4ed093 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Organization.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Organization.java
@@ -22,7 +22,7 @@ import java.io.*;
/**
* Organization definition.
*
- * Code generated by Apache Ignite Schema Load utility: 02/33/2015.
+ * Code generated by Apache Ignite Schema Load utility: 02/03/2015.
*/
public class Organization implements Serializable {
/** */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/OrganizationKey.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/OrganizationKey.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/OrganizationKey.java
index 658929f..27a838c 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/OrganizationKey.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/OrganizationKey.java
@@ -22,7 +22,7 @@ import java.io.*;
/**
* OrganizationKey definition.
*
- * Code generated by Apache Ignite Schema Load utility: 02/33/2015.
+ * Code generated by Apache Ignite Schema Load utility: 02/03/2015.
*/
public class OrganizationKey implements Serializable {
/** */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java
index 3807606..32b8400 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/Person.java
@@ -22,7 +22,7 @@ import java.io.*;
/**
* Person definition.
*
- * Code generated by Apache Ignite Schema Load utility: 02/33/2015.
+ * Code generated by Apache Ignite Schema Load utility: 02/03/2015.
*/
public class Person implements Serializable {
/** */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/PersonKey.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/PersonKey.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/PersonKey.java
index 9416fb5..b13709e 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/PersonKey.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/model/PersonKey.java
@@ -22,7 +22,7 @@ import java.io.*;
/**
* PersonKey definition.
*
- * Code generated by Apache Ignite Schema Load utility: 02/33/2015.
+ * Code generated by Apache Ignite Schema Load utility: 02/03/2015.
*/
public class PersonKey implements Serializable {
/** */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/PojoGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/PojoGenerator.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/PojoGenerator.java
index ac46a71..7d12e2c 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/PojoGenerator.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/PojoGenerator.java
@@ -167,7 +167,7 @@ public class PojoGenerator {
add0(src, "/**");
add0(src, " * " + type + " definition.");
add0(src, " *");
- add0(src, " * Code generated by Apache Ignite Schema Load utility: " + new SimpleDateFormat("MM/DD/YYYY").format(new Date()) + ".");
+ add0(src, " * Code generated by Apache Ignite Schema Load utility: " + new SimpleDateFormat("MM/dd/yyyy").format(new Date()) + ".");
add0(src, " */");
add0(src, "public class " + type + " implements Serializable {");
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
index f38d884..2fbef79 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/generator/XmlGenerator.java
@@ -17,8 +17,7 @@
package org.apache.ignite.schema.generator;
-import org.apache.ignite.cache.query.*;
-import org.apache.ignite.lang.*;
+import org.apache.ignite.cache.*;
import org.apache.ignite.schema.model.*;
import org.apache.ignite.schema.ui.*;
import org.w3c.dom.*;
@@ -59,7 +58,7 @@ public class XmlGenerator {
" limitations under the License.\n"));
doc.appendChild(doc.createComment("\n XML generated by Apache Ignite Schema Load utility: " +
- new SimpleDateFormat("MM/DD/YYYY").format(new Date()) + "\n"));
+ new SimpleDateFormat("MM/dd/yyyy").format(new Date()) + "\n"));
}
/**
@@ -142,25 +141,6 @@ public class XmlGenerator {
}
/**
- * Add fields to xml document.
- *
- * @param doc XML document.
- * @param parent Parent XML node.
- * @param name Property name.
- * @param fields Map with fields.
- */
- private static void addFields(Document doc, Node parent, String name, Collection<PojoField> fields) {
- if (!fields.isEmpty()) {
- Element prop = addProperty(doc, parent, name, null);
-
- Element map = addElement(doc, prop, "map");
-
- for (PojoField field : fields)
- addElement(doc, map, "entry", "key", field.javaName(), "value", field.javaTypeName());
- }
- }
-
- /**
* Add type descriptors to XML document.
*
* @param doc XML document.
@@ -168,14 +148,14 @@ public class XmlGenerator {
* @param name Property name.
* @param fields Collection of POJO fields.
*/
- private static void addTableCoumns(Document doc, Node parent, String name, Collection<PojoField> fields) {
+ private static void addFields(Document doc, Node parent, String name, Collection<PojoField> fields) {
if (!fields.isEmpty()) {
Element prop = addProperty(doc, parent, name, null);
Element list = addElement(doc, prop, "list");
for (PojoField field : fields) {
- Element item = addBean(doc, list, CacheQueryTableColumnMetadata.class);
+ Element item = addBean(doc, list, CacheTypeFieldMetadata.class);
addProperty(doc, item, "dbName", field.dbName());
addProperty(doc, item, "dbType", String.valueOf(field.dbType()));
@@ -186,62 +166,6 @@ public class XmlGenerator {
}
/**
- * Add table metadata to xml document.
- *
- * @param doc XML document.
- * @param parent Parent XML node.
- * @param pojo POJO descriptor.
- */
- private static void addTableMetadata(Document doc, Node parent, PojoDescriptor pojo, boolean includeKeys) {
- Element tblMeta = addProperty(doc, parent, "tableMetadata", null);
-
- Element bean = addBean(doc, tblMeta, CacheQueryTableMetadata.class);
-
- addProperty(doc, bean, "schema", pojo.schema());
-
- addProperty(doc, bean, "table", pojo.table());
-
- addTableCoumns(doc, bean, "keyColumns", pojo.keyFields());
-
- addTableCoumns(doc, bean, "valueColumns", pojo.valueFields(includeKeys));
- }
-
- /**
- * Add indexes to xml document.
- *
- * @param doc XML document.
- * @param parent Parent XML node.
- * @param groups Map with indexes.
- */
- private static void addGroups(Document doc, Node parent,
- Map<String, Map<String, IgniteBiTuple<String, Boolean>>> groups) {
- if (!groups.isEmpty()) {
- Element prop = addProperty(doc, parent, "groups", null);
-
- Element map = addElement(doc, prop, "map");
-
- for (Map.Entry<String, Map<String, IgniteBiTuple<String, Boolean>>> group : groups.entrySet()) {
- Element entry1 = addElement(doc, map, "entry", "key", group.getKey());
-
- Element val1 = addElement(doc, entry1, "map");
-
- Map<String, IgniteBiTuple<String, Boolean>> fields = group.getValue();
-
- for (Map.Entry<String, IgniteBiTuple<String, Boolean>> field : fields.entrySet()) {
- Element entry2 = addElement(doc, val1, "entry", "key", field.getKey());
-
- Element val2 = addBean(doc, entry2, IgniteBiTuple.class);
-
- IgniteBiTuple<String, Boolean> idx = field.getValue();
-
- addElement(doc, val2, "constructor-arg", null, null, "value", idx.get1());
- addElement(doc, val2, "constructor-arg", null, null, "value", String.valueOf(idx.get2()));
- }
- }
- }
- }
-
- /**
* Add element with type metadata to XML document.
*
* @param doc XML document.
@@ -251,21 +175,19 @@ public class XmlGenerator {
*/
private static void addTypeMetadata(Document doc, Node parent, String pkg, PojoDescriptor pojo,
boolean includeKeys) {
- Element bean = addBean(doc, parent, CacheQueryTypeMetadata.class);
+ Element bean = addBean(doc, parent, CacheTypeMetadata.class);
- addProperty(doc, bean, "type", pkg + "." + pojo.valueClassName());
+ addProperty(doc, bean, "databaseSchema", pojo.schema());
- addProperty(doc, bean, "keyType", pkg + "." + pojo.keyClassName());
-
- addTableMetadata(doc, bean, pojo, includeKeys);
+ addProperty(doc, bean, "databaseTable", pojo.table());
- addFields(doc, bean, "queryFields", pojo.fields());
+ addProperty(doc, bean, "keyType", pkg + "." + pojo.keyClassName());
- addFields(doc, bean, "ascendingFields", pojo.ascendingFields());
+ addProperty(doc, bean, "valueType", pkg + "." + pojo.valueClassName());
- addFields(doc, bean, "descendingFields", pojo.descendingFields());
+ addFields(doc, bean, "keyFields", pojo.keyFields());
- addGroups(doc, bean, pojo.groups());
+ addFields(doc, bean, "valueFields", pojo.valueFields(includeKeys));
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
index 6b0f785..6bbed5e 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
@@ -20,7 +20,6 @@ package org.apache.ignite.schema.model;
import javafx.beans.property.*;
import javafx.beans.value.*;
import javafx.collections.*;
-import org.apache.ignite.lang.*;
import org.apache.ignite.schema.parser.*;
import java.math.*;
@@ -65,9 +64,6 @@ public class PojoDescriptor {
/** Java class fields. */
private final ObservableList<PojoField> fields;
- /** Fields map for quick access. */
- private final Map<String, PojoField> fieldsMap;
-
/**
* Constructor of POJO descriptor.
*
@@ -120,8 +116,6 @@ public class PojoDescriptor {
List<PojoField> flds = new ArrayList<>(cols.size());
- fieldsMap = new HashMap<>(cols.size());
-
for (DbColumn col : cols) {
PojoField fld = new PojoField(col.name(), col.type(),
toJavaFieldName(col.name()), toJavaType(col.type(), col.nullable()).getName(),
@@ -130,8 +124,6 @@ public class PojoDescriptor {
fld.owner(this);
flds.add(fld);
-
- fieldsMap.put(col.name(), fld);
}
fields = FXCollections.observableList(flds);
@@ -304,36 +296,6 @@ public class PojoDescriptor {
}
/**
- * @return Ascending fields.
- */
- public Collection<PojoField> ascendingFields() {
- Collection<PojoField> res = new ArrayList<>();
-
- Set<String> asc = tbl.ascendingColumns();
-
- for (PojoField field : fields)
- if (asc.contains(field.dbName()))
- res.add(field);
-
- return res;
- }
-
- /**
- * @return Descending fields.
- */
- public Collection<PojoField> descendingFields() {
- Collection<PojoField> res = new ArrayList<>();
-
- Set<String> desc = tbl.descendingColumns();
-
- for (PojoField field : fields)
- if (desc.contains(field.dbName()))
- res.add(field);
-
- return res;
- }
-
- /**
* @return Java class fields.
*/
public ObservableList<PojoField> fields() {
@@ -437,31 +399,4 @@ public class PojoDescriptor {
return Object.class;
}
}
-
- /**
- * Gets indexes groups.
- */
- public Map<String, Map<String, IgniteBiTuple<String, Boolean>>> groups() {
- Map<String, Map<String, Boolean>> idxs = tbl.indexes();
-
- Map<String, Map<String, IgniteBiTuple<String, Boolean>>> groups = new LinkedHashMap<>(idxs.size());
-
- for (Map.Entry<String, Map<String, Boolean>> idx : idxs.entrySet()) {
- String idxName = idx.getKey();
-
- Map<String, Boolean> idxCols = idx.getValue();
-
- Map<String, IgniteBiTuple<String, Boolean>> grp = new LinkedHashMap<>();
-
- groups.put(idxName, grp);
-
- for (Map.Entry<String, Boolean> idxCol : idxCols.entrySet()) {
- PojoField fld = fieldsMap.get(idxCol.getKey());
-
- grp.put(fld.javaName(), new IgniteBiTuple<>(fld.javaTypeName(), idxCol.getValue()));
- }
- }
-
- return groups;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
index 4f57b07..dfc3a75 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DatabaseMetadataParser.java
@@ -28,47 +28,6 @@ import java.util.*;
* Database metadata parser.
*/
public class DatabaseMetadataParser {
-// try (ResultSet idxs = dbMeta.getIndexInfo(catalog, schema, tbl, false, true)) {
-// while (idxs.next()) {
-// String idxName = idxs.getString(6);
-//
-// String colName = idxs.getString(9);
-//
-// if (idxName == null || colName == null)
-// continue;
-//
-// String idx = toJavaFieldName(idxName);
-//
-// String col = toJavaFieldName(colName);
-//
-// String askOrDesc = idxs.getString(10);
-//
-// LinkedHashMap<String, IgniteBiTuple<Class<?>, Boolean>> idxCols = groups.get(idx);
-//
-// if (idxCols == null) {
-// idxCols = new LinkedHashMap<>();
-//
-// groups.put(idx, idxCols);
-// }
-//
-// Class<?> dataType = qryFields.get(col);
-//
-// Boolean desc = askOrDesc != null ? "D".equals(askOrDesc) : null;
-//
-// if (desc != null) {
-// if (desc)
-// descFields.put(col, dataType);
-// else
-// ascFields.put(col, dataType);
-// }
-//
-// idxCols.put(col, new IgniteBiTuple<Class<?>, Boolean>(dataType, desc));
-// }
-// }
-//
-// return new PojoDescriptor(parent, typeMeta, fields);
-// }
-
/**
* Parse database metadata.
*
@@ -108,9 +67,7 @@ public class DatabaseMetadataParser {
Collection<PojoDescriptor> children = childrens.get(schema);
if (parent == null) {
- parent = new PojoDescriptor(null, new DbTable(schema, "", Collections.<DbColumn>emptyList(),
- Collections.<String>emptySet(), Collections.<String>emptySet(),
- Collections.<String, Map<String, Boolean>>emptyMap()));
+ parent = new PojoDescriptor(null, new DbTable(schema, "", Collections.<DbColumn>emptyList()));
children = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DbTable.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DbTable.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DbTable.java
index 35c7d91..91c69b6 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DbTable.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/DbTable.java
@@ -32,33 +32,17 @@ public class DbTable {
/** Columns. */
private final Collection<DbColumn> cols;
- /** Columns in ascending order. */
- private final Set<String> ascCols;
-
- /** Columns in descending order. */
- private final Set<String> descCols;
-
- /** Indexes. */
- private final Map<String, Map<String, Boolean>> idxs;
-
/**
* Default columns.
*
* @param schema Schema name.
* @param tbl Table name.
* @param cols Columns.
- * @param ascCols Columns in ascending order.
- * @param descCols Columns in descending order.
- * @param idxs Indexes;
*/
- public DbTable(String schema, String tbl, Collection<DbColumn> cols, Set<String> ascCols, Set<String> descCols,
- Map<String, Map<String, Boolean>> idxs) {
+ public DbTable(String schema, String tbl, Collection<DbColumn> cols) {
this.schema = schema;
this.tbl = tbl;
this.cols = cols;
- this.ascCols = ascCols;
- this.descCols = descCols;
- this.idxs = idxs;
}
/**
@@ -81,25 +65,4 @@ public class DbTable {
public Collection<DbColumn> columns() {
return cols;
}
-
- /**
- * @return Fields in ascending order
- */
- public Set<String> ascendingColumns() {
- return ascCols;
- }
-
- /**
- * @return Fields in descending order
- */
- public Set<String> descendingColumns() {
- return descCols;
- }
-
- /**
- * @return Indexes.
- */
- public Map<String, Map<String, Boolean>> indexes() {
- return idxs;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ed2af98c/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
index c9cf0cf..51b1568 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
@@ -98,45 +98,7 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
}
}
- Set<String> ascCols = new HashSet<>();
-
- Set<String> descCols = new HashSet<>();
-
- Map<String, Map<String, Boolean>> idxs = new LinkedHashMap<>();
-
- try (ResultSet idxRs = dbMeta.getIndexInfo(catalog, schema, tblName, false, true)) {
- while (idxRs.next()) {
- String idxName = idxRs.getString("INDEX_NAME");
-
- String colName = idxRs.getString("COLUMN_NAME");
-
- if (idxName == null || colName == null)
- continue;
-
- Map<String, Boolean> idx = idxs.get(idxName);
-
- if (idx == null) {
- idx = new LinkedHashMap<>();
-
- idxs.put(idxName, idx);
- }
-
- String askOrDesc = idxRs.getString("ASC_OR_DESC");
-
- Boolean desc = askOrDesc != null ? "D".equals(askOrDesc) : null;
-
- idx.put(colName, desc);
-
- if (desc != null) {
- if (desc)
- descCols.add(colName);
- else
- ascCols.add(colName);
- }
- }
- }
-
- tbls.add(new DbTable(schema, tblName, cols, ascCols, descCols, idxs));
+ tbls.add(new DbTable(schema, tblName, cols));
}
}
}