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 2016/09/22 08:19:42 UTC
[1/6] ignite git commit: IGNITE-3635: Additional fix for stack
overflow in binary objects.
Repository: ignite
Updated Branches:
refs/heads/master 86d31537f -> 41b742cd6
IGNITE-3635: Additional fix for stack overflow in binary objects.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/16b82b77
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/16b82b77
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/16b82b77
Branch: refs/heads/master
Commit: 16b82b77f00dff8e525c8cc68d3387de107c78d1
Parents: 135f0a8
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Sep 21 12:35:07 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Sep 21 12:35:07 2016 +0300
----------------------------------------------------------------------
.../org/apache/ignite/internal/binary/BinaryObjectExImpl.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/16b82b77/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
index e6df407..063bd83 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectExImpl.java
@@ -30,6 +30,7 @@ import org.apache.ignite.binary.BinaryType;
import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory;
import org.apache.ignite.internal.util.typedef.internal.SB;
+import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
/**
@@ -248,6 +249,8 @@ public abstract class BinaryObjectExImpl implements BinaryObjectEx {
buf.a(Arrays.toString((boolean[]) val));
else if (val instanceof BigDecimal[])
buf.a(Arrays.toString((BigDecimal[])val));
+ else if (val instanceof IgniteUuid)
+ buf.a(val);
else if (val instanceof BinaryObjectExImpl) {
BinaryObjectExImpl po = (BinaryObjectExImpl)val;
[3/6] ignite git commit: Merge branch ignite-1.6.8 into ignite-1.6.9.
Posted by ak...@apache.org.
Merge branch ignite-1.6.8 into ignite-1.6.9.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f4cd72bd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f4cd72bd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f4cd72bd
Branch: refs/heads/master
Commit: f4cd72bdeee32c2cda0fa7ecbfcf5df1a06a35f1
Parents: e3827a4 16b82b7
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Sep 22 14:34:01 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Sep 22 14:34:01 2016 +0700
----------------------------------------------------------------------
.../org/apache/ignite/internal/binary/BinaryObjectExImpl.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
[2/6] ignite git commit: IGNITE-3892 - Fixed bug in
BinaryWriterExImpl.doWriteClass() method
Posted by ak...@apache.org.
IGNITE-3892 - Fixed bug in BinaryWriterExImpl.doWriteClass() method
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e3827a40
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e3827a40
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e3827a40
Branch: refs/heads/master
Commit: e3827a40bcbd54664cc0688e8e6ec57e4e328172
Parents: 4ee52f0
Author: Valentin Kulichenko <va...@gmail.com>
Authored: Wed Sep 21 16:07:02 2016 -0700
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Wed Sep 21 16:07:02 2016 -0700
----------------------------------------------------------------------
.../internal/binary/BinaryWriterExImpl.java | 21 ++++----
.../binary/BinaryMarshallerSelfTest.java | 53 ++++++++++++++++----
.../marshaller/MarshallerContextTestImpl.java | 28 +++++++++--
3 files changed, 77 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3827a40/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
index 21fb2bf..1a81819 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
@@ -17,16 +17,6 @@
package org.apache.ignite.internal.binary;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinaryRawWriter;
-import org.apache.ignite.binary.BinaryWriter;
-import org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream;
-import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
-import org.apache.ignite.internal.util.IgniteUtils;
-import org.apache.ignite.internal.util.typedef.internal.A;
-import org.jetbrains.annotations.Nullable;
-
import java.io.IOException;
import java.io.ObjectOutput;
import java.lang.reflect.InvocationHandler;
@@ -38,6 +28,15 @@ import java.util.Collection;
import java.util.Date;
import java.util.Map;
import java.util.UUID;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinaryRawWriter;
+import org.apache.ignite.binary.BinaryWriter;
+import org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream;
+import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
+import org.apache.ignite.internal.util.IgniteUtils;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.jetbrains.annotations.Nullable;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -823,7 +822,7 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
else {
out.unsafeWriteInt(GridBinaryMarshaller.UNREGISTERED_TYPE_ID);
- doWriteString(val.getClass().getName());
+ doWriteString(val.getName());
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3827a40/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
index b347ec0..f415472 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryMarshallerSelfTest.java
@@ -2648,7 +2648,7 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
*/
public void testDuplicateNameSimpleNameMapper() throws Exception {
BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(true),
- new BinaryBasicIdMapper(true), null, null);
+ new BinaryBasicIdMapper(true), null, null, null);
Test1.Job job1 = new Test1().new Job();
Test2.Job job2 = new Test2().new Job();
@@ -2672,7 +2672,7 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
*/
public void testDuplicateNameFullNameMapper() throws Exception {
BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(false),
- new BinaryBasicIdMapper(false), null, null);
+ new BinaryBasicIdMapper(false), null, null, null);
Test1.Job job1 = new Test1().new Job();
Test2.Job job2 = new Test2().new Job();
@@ -2911,6 +2911,17 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
}
/**
+ * @throws Exception If failed.
+ */
+ public void testUnregisteredClass() throws Exception {
+ BinaryMarshaller m = binaryMarshaller(null, Collections.singletonList(Value.class.getName()));
+
+ ClassFieldObject res = m.unmarshal(m.marshal(new ClassFieldObject(Value.class)), null);
+
+ assertEquals(Value.class, res.cls);
+ }
+
+ /**
*
*/
private static interface SomeItf {
@@ -3227,9 +3238,8 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
/**
*
*/
- protected BinaryMarshaller binaryMarshaller()
- throws IgniteCheckedException {
- return binaryMarshaller(null, null, null, null);
+ protected BinaryMarshaller binaryMarshaller() throws IgniteCheckedException {
+ return binaryMarshaller(null, null, null, null, null);
}
/**
@@ -3237,7 +3247,15 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
*/
protected BinaryMarshaller binaryMarshaller(Collection<BinaryTypeConfiguration> cfgs)
throws IgniteCheckedException {
- return binaryMarshaller(null, null, null, cfgs);
+ return binaryMarshaller(null, null, null, cfgs, null);
+ }
+
+ /**
+ *
+ */
+ protected BinaryMarshaller binaryMarshaller(Collection<BinaryTypeConfiguration> cfgs,
+ Collection<String> excludedClasses) throws IgniteCheckedException {
+ return binaryMarshaller(null, null, null, cfgs, excludedClasses);
}
/**
@@ -3246,7 +3264,7 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
protected BinaryMarshaller binaryMarshaller(BinaryNameMapper nameMapper, BinaryIdMapper mapper,
Collection<BinaryTypeConfiguration> cfgs)
throws IgniteCheckedException {
- return binaryMarshaller(nameMapper, mapper, null, cfgs);
+ return binaryMarshaller(nameMapper, mapper, null, cfgs, null);
}
/**
@@ -3254,7 +3272,7 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
*/
protected BinaryMarshaller binaryMarshaller(BinarySerializer serializer, Collection<BinaryTypeConfiguration> cfgs)
throws IgniteCheckedException {
- return binaryMarshaller(null, null, serializer, cfgs);
+ return binaryMarshaller(null, null, serializer, cfgs, null);
}
/**
@@ -3264,7 +3282,8 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
BinaryNameMapper nameMapper,
BinaryIdMapper mapper,
BinarySerializer serializer,
- Collection<BinaryTypeConfiguration> cfgs
+ Collection<BinaryTypeConfiguration> cfgs,
+ Collection<String> excludedClasses
) throws IgniteCheckedException {
IgniteConfiguration iCfg = new IgniteConfiguration();
@@ -3283,7 +3302,7 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
BinaryMarshaller marsh = new BinaryMarshaller();
- marsh.setContext(new MarshallerContextTestImpl(null));
+ marsh.setContext(new MarshallerContextTestImpl(null, excludedClasses));
IgniteUtils.invoke(BinaryMarshaller.class, marsh, "setBinaryContext", ctx, iCfg);
@@ -4885,4 +4904,18 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest {
/**
*/
private static class SingleHandleB {}
+
+ /**
+ */
+ private static class ClassFieldObject {
+ /** */
+ private Class<?> cls;
+
+ /**
+ * @param cls Class field.
+ */
+ public ClassFieldObject(Class<?> cls) {
+ this.cls = cls;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3827a40/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextTestImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextTestImpl.java b/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextTestImpl.java
index c600ca4..9ff127d 100644
--- a/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextTestImpl.java
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextTestImpl.java
@@ -17,11 +17,13 @@
package org.apache.ignite.marshaller;
+import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentMap;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.MarshallerContextAdapter;
import org.apache.ignite.plugin.PluginProvider;
+import org.jetbrains.annotations.Nullable;
import org.jsr166.ConcurrentHashMap8;
/**
@@ -29,26 +31,44 @@ import org.jsr166.ConcurrentHashMap8;
*/
public class MarshallerContextTestImpl extends MarshallerContextAdapter {
/** */
- private final static ConcurrentMap<Integer, String> map = new ConcurrentHashMap8<>();
+ private static final ConcurrentMap<Integer, String> map = new ConcurrentHashMap8<>();
+
+ /** */
+ private final Collection<String> excluded;
/**
* Initializes context.
*
* @param plugins Plugins.
+ * @param excluded Excluded classes.
*/
- public MarshallerContextTestImpl(List<PluginProvider> plugins) {
+ public MarshallerContextTestImpl(@Nullable List<PluginProvider> plugins, Collection<String> excluded) {
super(plugins);
+
+ this.excluded = excluded;
+ }
+
+ /**
+ * Initializes context.
+ *
+ * @param plugins Plugins.
+ */
+ public MarshallerContextTestImpl(List<PluginProvider> plugins) {
+ this(plugins, null);
}
/**
* Initializes context.
*/
public MarshallerContextTestImpl() {
- super(null);
+ this(null);
}
/** {@inheritDoc} */
@Override protected boolean registerClassName(int id, String clsName) throws IgniteCheckedException {
+ if (excluded != null && excluded.contains(clsName))
+ return false;
+
String oldClsName = map.putIfAbsent(id, clsName);
if (oldClsName != null && !oldClsName.equals(clsName))
@@ -69,4 +89,4 @@ public class MarshallerContextTestImpl extends MarshallerContextAdapter {
public ConcurrentMap<Integer, String> internalMap() {
return map;
}
-}
\ No newline at end of file
+}
[4/6] ignite git commit: IGNITE-3937 implemented support for unsigned
types in MySQL.
Posted by ak...@apache.org.
IGNITE-3937 implemented support for unsigned types in MySQL.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0d5ee788
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0d5ee788
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0d5ee788
Branch: refs/heads/master
Commit: 0d5ee7887be03295133704227133d619898b6abf
Parents: f4cd72b
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Sep 22 14:36:50 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Sep 22 14:36:50 2016 +0700
----------------------------------------------------------------------
.../apache/ignite/schema/parser/DbColumn.java | 16 +++++++++++--
.../parser/dialect/DatabaseMetadataDialect.java | 9 ++++++++
.../parser/dialect/JdbcMetadataDialect.java | 23 +++++++++++--------
.../parser/dialect/MySQLMetadataDialect.java | 24 ++++++++++++++++++--
.../parser/dialect/OracleMetadataDialect.java | 5 ++--
.../ignite/schema/model/PojoDescriptor.java | 24 +++++++++++++-------
6 files changed, 77 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0d5ee788/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbColumn.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbColumn.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbColumn.java
index 8b0c813..10fd50f 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbColumn.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/DbColumn.java
@@ -33,17 +33,22 @@ public class DbColumn {
/** Is {@code NULL} allowed for column in database. */
private final boolean nullable;
+ /** Whether column unsigned. */
+ private final boolean unsigned;
+
/**
* @param name Column name.
* @param type Column JDBC type.
* @param key {@code true} if this column belongs to primary key.
* @param nullable {@code true} if {@code NULL } allowed for column in database.
+ * @param unsigned {@code true} if column is unsigned.
*/
- public DbColumn(String name, int type, boolean key, boolean nullable) {
+ public DbColumn(String name, int type, boolean key, boolean nullable, boolean unsigned) {
this.name = name;
this.type = type;
this.key = key;
this.nullable = nullable;
+ this.unsigned = unsigned;
}
/**
@@ -68,9 +73,16 @@ public class DbColumn {
}
/**
- * @return nullable {@code true} if {@code NULL } allowed for column in database.
+ * @return {@code true} if {@code NULL } allowed for column in database.
*/
public boolean nullable() {
return nullable;
}
+
+ /**
+ * @return {@code true} if column is unsigned.
+ */
+ public boolean unsigned() {
+ return unsigned;
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0d5ee788/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
index 5ef088a..56ee59b 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/DatabaseMetadataDialect.java
@@ -18,6 +18,7 @@
package org.apache.ignite.schema.parser.dialect;
import java.sql.Connection;
+import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
@@ -63,6 +64,14 @@ public abstract class DatabaseMetadataDialect {
}
/**
+ * @return Collection of unsigned type names.
+ * @throws SQLException If failed to get unsigned type names.
+ */
+ public Set<String> unsignedTypes(DatabaseMetaData dbMeta) throws SQLException {
+ return Collections.emptySet();
+ }
+
+ /**
* Create table descriptor.
*
* @param schema Schema name.
http://git-wip-us.apache.org/repos/asf/ignite/blob/0d5ee788/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
index 235c84c..f6c27f2 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/JdbcMetadataDialect.java
@@ -30,7 +30,6 @@ import java.util.Map;
import java.util.Set;
import org.apache.ignite.cache.QueryIndex;
-import org.apache.ignite.cache.QueryIndexType;
import org.apache.ignite.schema.parser.DbColumn;
import org.apache.ignite.schema.parser.DbTable;
@@ -62,6 +61,9 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
/** Column data type index. */
private static final int COL_DATA_TYPE_IDX = 5;
+ /** Column type name index. */
+ private static final int COL_TYPE_NAME_IDX = 6;
+
/** Column nullable index. */
private static final int COL_NULLABLE_IDX = 11;
@@ -116,11 +118,11 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
Set<String> sys = systemSchemas();
- Collection<DbTable> tbls = new ArrayList<>();
-
if (schemas.isEmpty())
schemas.add(null);
+ Collection<DbTable> tbls = new ArrayList<>();
+
for (String toSchema: schemas) {
try (ResultSet tblsRs = dbMeta.getTables(useCatalog() ? toSchema : null, useSchema() ? toSchema : null, "%",
tblsOnly ? TABLES_ONLY : TABLES_AND_VIEWS)) {
@@ -136,24 +138,27 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
if (sys.contains(schema))
continue;
- Set<String> pkCols = new HashSet<>();
+ Collection<String> pkCols = new HashSet<>();
try (ResultSet pkRs = dbMeta.getPrimaryKeys(tblCatalog, tblSchema, tblName)) {
while (pkRs.next())
pkCols.add(pkRs.getString(PK_COL_NAME_IDX));
}
- List<DbColumn> cols = new ArrayList<>();
+ Collection<DbColumn> cols = new ArrayList<>();
+
+ Collection<String> unsignedTypes = unsignedTypes(dbMeta);
try (ResultSet colsRs = dbMeta.getColumns(tblCatalog, tblSchema, tblName, null)) {
while (colsRs.next()) {
String colName = colsRs.getString(COL_NAME_IDX);
cols.add(new DbColumn(
- colName,
- colsRs.getInt(COL_DATA_TYPE_IDX),
- pkCols.contains(colName),
- colsRs.getInt(COL_NULLABLE_IDX) == DatabaseMetaData.columnNullable));
+ colName,
+ colsRs.getInt(COL_DATA_TYPE_IDX),
+ pkCols.contains(colName),
+ colsRs.getInt(COL_NULLABLE_IDX) == DatabaseMetaData.columnNullable,
+ unsignedTypes.contains(colsRs.getString(COL_TYPE_NAME_IDX))));
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0d5ee788/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
index 3332046..7bd6f31 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/MySQLMetadataDialect.java
@@ -18,20 +18,24 @@
package org.apache.ignite.schema.parser.dialect;
import java.sql.Connection;
+import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
+import java.util.HashSet;
import java.util.Set;
/**
* MySQL specific metadata dialect.
*/
public class MySQLMetadataDialect extends JdbcMetadataDialect {
+ /** Type name index. */
+ private static final int TYPE_NAME_IDX = 1;
+
/** {@inheritDoc} */
@Override public Collection<String> schemas(Connection conn) throws SQLException {
- List<String> schemas = new ArrayList<>();
+ Collection<String> schemas = new ArrayList<>();
ResultSet rs = conn.getMetaData().getCatalogs();
@@ -59,4 +63,20 @@ public class MySQLMetadataDialect extends JdbcMetadataDialect {
@Override protected boolean useSchema() {
return false;
}
+
+ /** {@inheritDoc} */
+ @Override public Set<String> unsignedTypes(DatabaseMetaData dbMeta) throws SQLException {
+ Set<String> unsignedTypes = new HashSet<>();
+
+ try (ResultSet typeRs = dbMeta.getTypeInfo()) {
+ while (typeRs.next()) {
+ String typeName = typeRs.getString(TYPE_NAME_IDX);
+
+ if (typeName.contains("UNSIGNED"))
+ unsignedTypes.add(typeName);
+ }
+ }
+
+ return unsignedTypes;
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0d5ee788/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
index 3535655..47fb05c 100644
--- a/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
+++ b/modules/schema-import-db/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
@@ -258,8 +258,7 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
* @return Indexes.
* @throws SQLException If failed to retrieve indexes columns.
*/
- private Collection<QueryIndex> indexes(PreparedStatement stmt, String owner, String tbl)
- throws SQLException {
+ private Collection<QueryIndex> indexes(PreparedStatement stmt, String owner, String tbl) throws SQLException {
Map<String, QueryIndex> idxs = new LinkedHashMap<>();
stmt.setString(1, owner);
@@ -347,7 +346,7 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
String colName = colsRs.getString(COL_NAME_IDX);
cols.add(new DbColumn(colName, decodeType(colsRs), pkCols.contains(colName),
- !"N".equals(colsRs.getString(NULLABLE_IDX))));
+ !"N".equals(colsRs.getString(NULLABLE_IDX)), false));
}
if (!cols.isEmpty())
http://git-wip-us.apache.org/repos/asf/ignite/blob/0d5ee788/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
index 5053b07..4f696d6 100644
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
+++ b/modules/schema-import/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
@@ -123,7 +123,7 @@ public class PojoDescriptor {
String colName = col.name();
PojoField fld = new PojoField(colName, col.type(),
- toJavaFieldName(colName), toJavaType(col.type(), col.nullable()).getName(),
+ toJavaFieldName(colName), toJavaType(col).getName(),
col.key(), col.nullable());
fld.owner(this);
@@ -427,24 +427,32 @@ public class PojoDescriptor {
/**
* Convert JDBC data type to java type.
*
- * @param type JDBC SQL data type.
- * @param nullable {@code true} if {@code NULL} is allowed for this field in database.
+ * @param col Database column descriptor.
* @return Java data type.
*/
- private static Class<?> toJavaType(int type, boolean nullable) {
- switch (type) {
+ private static Class<?> toJavaType(DbColumn col) {
+ boolean nullable = col.nullable();
+ boolean unsigned = col.unsigned();
+
+ switch (col.type()) {
case BIT:
case BOOLEAN:
return nullable ? Boolean.class : boolean.class;
case TINYINT:
- return nullable ? Byte.class : byte.class;
+ return unsigned
+ ? (nullable ? Short.class : short.class)
+ : (nullable ? Byte.class : byte.class);
case SMALLINT:
- return nullable ? Short.class : short.class;
+ return unsigned
+ ? (nullable ? Integer.class : int.class)
+ : (nullable ? Short.class : short.class);
case INTEGER:
- return nullable ? Integer.class : int.class;
+ return unsigned
+ ? (nullable ? Long.class : long.class)
+ : (nullable ? Integer.class : int.class);
case BIGINT:
return nullable ? Long.class : long.class;
[6/6] ignite git commit: Merge branch ignite-1.7.2 into master.
Posted by ak...@apache.org.
Merge branch ignite-1.7.2 into master.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/41b742cd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/41b742cd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/41b742cd
Branch: refs/heads/master
Commit: 41b742cd6d89da9c1573aee78209ddded5ecaa45
Parents: 86d3153 c8e7938
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Sep 22 14:57:23 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Sep 22 14:57:23 2016 +0700
----------------------------------------------------------------------
.../internal/binary/BinaryObjectExImpl.java | 3 ++
.../internal/binary/BinaryWriterExImpl.java | 21 ++++----
.../binary/BinaryMarshallerSelfTest.java | 53 ++++++++++++++++----
.../marshaller/MarshallerContextTestImpl.java | 28 +++++++++--
.../apache/ignite/schema/parser/DbColumn.java | 16 +++++-
.../parser/dialect/DatabaseMetadataDialect.java | 9 ++++
.../parser/dialect/JdbcMetadataDialect.java | 23 +++++----
.../parser/dialect/MySQLMetadataDialect.java | 24 ++++++++-
.../parser/dialect/OracleMetadataDialect.java | 5 +-
.../ignite/schema/model/PojoDescriptor.java | 24 ++++++---
10 files changed, 157 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
[5/6] ignite git commit: Merge ignite-1.6.9 into ignite-1.7.2.
Posted by ak...@apache.org.
Merge ignite-1.6.9 into ignite-1.7.2.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c8e79388
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c8e79388
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c8e79388
Branch: refs/heads/master
Commit: c8e79388305e026f36bca62cf7d87ba9bec7fd49
Parents: 85c47eb 0d5ee78
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Sep 22 14:42:27 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Sep 22 14:42:27 2016 +0700
----------------------------------------------------------------------
.../internal/binary/BinaryObjectExImpl.java | 3 ++
.../internal/binary/BinaryWriterExImpl.java | 21 ++++----
.../binary/BinaryMarshallerSelfTest.java | 53 ++++++++++++++++----
.../marshaller/MarshallerContextTestImpl.java | 28 +++++++++--
.../apache/ignite/schema/parser/DbColumn.java | 16 +++++-
.../parser/dialect/DatabaseMetadataDialect.java | 9 ++++
.../parser/dialect/JdbcMetadataDialect.java | 23 +++++----
.../parser/dialect/MySQLMetadataDialect.java | 24 ++++++++-
.../parser/dialect/OracleMetadataDialect.java | 5 +-
.../ignite/schema/model/PojoDescriptor.java | 24 ++++++---
10 files changed, 157 insertions(+), 49 deletions(-)
----------------------------------------------------------------------