You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2016/11/24 13:24:23 UTC
[13/50] [abbrv] ignite git commit: Revert "Merge remote-tracking
branch 'professional/ignite-1.6.11' into ignite-1.6.11"
Revert "Merge remote-tracking branch 'professional/ignite-1.6.11' into ignite-1.6.11"
This reverts commit c2c82ca44befe4570325dd6cf2ba885e0d90596c, reversing
changes made to e821dc0083003bc81058b1cb223d8a8a2ee44daf.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/865bbcf0
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/865bbcf0
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/865bbcf0
Branch: refs/heads/ignite-4242
Commit: 865bbcf0f41a0c4944e0928f1758d43a0eae82c5
Parents: c2c82ca
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Nov 8 15:18:29 2016 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Nov 8 15:18:29 2016 +0300
----------------------------------------------------------------------
.../internal/processors/job/GridJobWorker.java | 10 +-
.../service/GridServiceProcessor.java | 61 +-------
.../internal/util/SerializableTransient.java | 58 -------
.../ignite/marshaller/MarshallerUtils.java | 22 ---
.../optimized/OptimizedClassDescriptor.java | 90 +----------
modules/platforms/cpp/binary/Makefile.am | 4 +-
modules/platforms/cpp/core/Makefile.am | 4 +-
.../cpp/examples/odbc-example/Makefile.am | 4 +-
.../cpp/examples/putget-example/Makefile.am | 4 +-
.../cpp/examples/query-example/Makefile.am | 4 +-
modules/platforms/cpp/ignite/Makefile.am | 4 +-
modules/platforms/cpp/jni/Makefile.am | 4 +-
.../cpp/odbc-test/src/api_robustness_test.cpp | 63 --------
.../cpp/odbc-test/src/queries_test.cpp | 9 +-
modules/platforms/cpp/odbc/Makefile.am | 4 +-
.../cpp/odbc/include/ignite/odbc/statement.h | 42 ------
modules/platforms/cpp/odbc/src/odbc.cpp | 116 +++++++++++++-
modules/platforms/cpp/odbc/src/statement.cpp | 151 -------------------
18 files changed, 128 insertions(+), 526 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java
index 5f38b29..8169eb1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobWorker.java
@@ -57,7 +57,6 @@ import org.apache.ignite.lang.IgniteBiTuple;
import org.apache.ignite.lang.IgniteRunnable;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.marshaller.Marshaller;
-import org.apache.ignite.marshaller.MarshallerUtils;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.events.EventType.EVT_JOB_CANCELLED;
@@ -422,14 +421,7 @@ public class GridJobWorker extends GridWorker implements GridTimeoutObject {
try {
if (job == null) {
- MarshallerUtils.jobSenderVersion(taskNode.version());
-
- try {
- job = U.unmarshal(marsh, jobBytes, U.resolveClassLoader(dep.classLoader(), ctx.config()));
- }
- finally {
- MarshallerUtils.jobSenderVersion(null);
- }
+ job = U.unmarshal(marsh, jobBytes, U.resolveClassLoader(dep.classLoader(), ctx.config()));
// No need to hold reference any more.
jobBytes = null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
index 6c26363..527d360 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
@@ -20,14 +20,11 @@ package org.apache.ignite.internal.processors.service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
@@ -90,7 +87,6 @@ import org.apache.ignite.lang.IgniteFuture;
import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.marshaller.Marshaller;
-import org.apache.ignite.internal.util.SerializableTransient;
import org.apache.ignite.resources.IgniteInstanceResource;
import org.apache.ignite.resources.JobContextResource;
import org.apache.ignite.resources.LoggerResource;
@@ -119,9 +115,6 @@ public class GridServiceProcessor extends GridProcessorAdapter {
/** */
public static final IgniteProductVersion LAZY_SERVICES_CFG_SINCE = IgniteProductVersion.fromString("1.5.22");
- /** Versions that only compatible with each other, and from 1.5.33. */
- private static final Set<IgniteProductVersion> SERVICE_TOP_CALLABLE_VER1;
-
/** */
private final Boolean srvcCompatibilitySysProp;
@@ -169,31 +162,6 @@ public class GridServiceProcessor extends GridProcessorAdapter {
/** Topology listener. */
private GridLocalEventListener topLsnr = new TopologyListener();
- static {
- Set<IgniteProductVersion> versions = new TreeSet<>(new Comparator<IgniteProductVersion>() {
- @Override public int compare(final IgniteProductVersion o1, final IgniteProductVersion o2) {
- return o1.compareToIgnoreTimestamp(o2);
- }
- });
-
- versions.add(IgniteProductVersion.fromString("1.5.30"));
- versions.add(IgniteProductVersion.fromString("1.5.31"));
- versions.add(IgniteProductVersion.fromString("1.5.32"));
- versions.add(IgniteProductVersion.fromString("1.6.3"));
- versions.add(IgniteProductVersion.fromString("1.6.4"));
- versions.add(IgniteProductVersion.fromString("1.6.5"));
- versions.add(IgniteProductVersion.fromString("1.6.6"));
- versions.add(IgniteProductVersion.fromString("1.6.7"));
- versions.add(IgniteProductVersion.fromString("1.6.8"));
- versions.add(IgniteProductVersion.fromString("1.6.9"));
- versions.add(IgniteProductVersion.fromString("1.6.10"));
- versions.add(IgniteProductVersion.fromString("1.7.0"));
- versions.add(IgniteProductVersion.fromString("1.7.1"));
- versions.add(IgniteProductVersion.fromString("1.7.2"));
-
- SERVICE_TOP_CALLABLE_VER1 = Collections.unmodifiableSet(versions);
- }
-
/**
* @param ctx Kernal context.
*/
@@ -700,13 +668,9 @@ public class GridServiceProcessor extends GridProcessorAdapter {
ClusterNode node = cache.affinity().mapKeyToNode(name);
if (node.version().compareTo(ServiceTopologyCallable.SINCE_VER) >= 0) {
- final ServiceTopologyCallable call = new ServiceTopologyCallable(name);
-
- call.serialize = SERVICE_TOP_CALLABLE_VER1.contains(node.version());
-
return ctx.closure().callAsyncNoFailover(
GridClosureCallMode.BROADCAST,
- call,
+ new ServiceTopologyCallable(name),
Collections.singletonList(node),
false
).get();
@@ -1865,7 +1829,6 @@ public class GridServiceProcessor extends GridProcessorAdapter {
/**
*/
@GridInternal
- @SerializableTransient(methodName = "serializableTransient")
private static class ServiceTopologyCallable implements IgniteCallable<Map<UUID, Integer>> {
/** */
private static final long serialVersionUID = 0L;
@@ -1874,13 +1837,10 @@ public class GridServiceProcessor extends GridProcessorAdapter {
private static final IgniteProductVersion SINCE_VER = IgniteProductVersion.fromString("1.5.7");
/** */
- private static final String[] SER_FIELDS = {"waitedCacheInit", "jCtx", "log"};
-
- /** */
private final String svcName;
/** */
- private transient boolean waitedCacheInit;
+ private boolean waitedCacheInit;
/** */
@IgniteInstanceResource
@@ -1888,14 +1848,11 @@ public class GridServiceProcessor extends GridProcessorAdapter {
/** */
@JobContextResource
- private transient ComputeJobContext jCtx;
+ private ComputeJobContext jCtx;
/** */
@LoggerResource
- private transient IgniteLogger log;
-
- /** */
- transient boolean serialize;
+ private IgniteLogger log;
/**
* @param svcName Service name.
@@ -1941,16 +1898,6 @@ public class GridServiceProcessor extends GridProcessorAdapter {
return serviceTopology(cache, svcName);
}
-
- /**
- * @param self Instance of current class before serialization.
- * @param ver Sender job version.
- * @return List of serializable transient fields.
- */
- @SuppressWarnings("unused")
- private static String[] serializableTransient(ServiceTopologyCallable self, IgniteProductVersion ver) {
- return (self != null && self.serialize) || (ver != null && SERVICE_TOP_CALLABLE_VER1.contains(ver)) ? SER_FIELDS : null;
- }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/core/src/main/java/org/apache/ignite/internal/util/SerializableTransient.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/SerializableTransient.java b/modules/core/src/main/java/org/apache/ignite/internal/util/SerializableTransient.java
deleted file mode 100644
index 14a2f27..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/SerializableTransient.java
+++ /dev/null
@@ -1,58 +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.internal.util;
-
-import org.apache.ignite.lang.IgniteProductVersion;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks class as it has transient fields that should be serialized.
- * Annotated class must have method that returns list of transient
- * fields that should be serialized.
- * <p>
- * Works only for jobs. For other messages node version is not available.
- * </p>
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface SerializableTransient {
- /**
- * Name of the private static method that returns list of transient fields
- * that should be serialized (String[]), and accepts itself (before serialization)
- * and {@link IgniteProductVersion}, e.g.
- * <pre>
- * private static String[] fields(Object self, IgniteProductVersion ver){
- * return ver.compareTo("1.5.30") > 0 ? SERIALIZABLE_FIELDS : null;
- * }
- * </pre>
- * <p>
- * On serialization version argument <tt>ver</tt> is null, on deserialization - <tt>self</tt> is null.
- * </p>
- * <p>
- * If it returns empty array or null all transient fields will be normally
- * ignored.
- * </p>
- *
- * @return Name of the method.
- */
- String methodName();
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java b/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
index ad63702..9668baf 100644
--- a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
@@ -17,7 +17,6 @@
package org.apache.ignite.marshaller;
-import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.marshaller.jdk.JdkMarshaller;
import org.jetbrains.annotations.Nullable;
@@ -25,9 +24,6 @@ import org.jetbrains.annotations.Nullable;
* Utility marshaller methods.
*/
public class MarshallerUtils {
- /** Job sender node version. */
- private static final ThreadLocal<IgniteProductVersion> JOB_SND_NODE_VER = new ThreadLocal<>();
-
/**
* Set node name to marshaller context if possible.
*
@@ -59,22 +55,4 @@ public class MarshallerUtils {
private MarshallerUtils() {
// No-op.
}
-
- /**
- * Sets thread local job sender node version.
- *
- * @param ver Thread local job sender node version.
- */
- public static void jobSenderVersion(IgniteProductVersion ver) {
- JOB_SND_NODE_VER.set(ver);
- }
-
- /**
- * Returns thread local job sender node version.
- *
- * @return Thread local job sender node version.
- */
- public static IgniteProductVersion jobSenderVersion() {
- return JOB_SND_NODE_VER.get();
- }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java
index 160f2c1..5a5b54d 100644
--- a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java
@@ -47,11 +47,8 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentMap;
import org.apache.ignite.internal.util.GridUnsafe;
import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.marshaller.MarshallerContext;
import org.apache.ignite.marshaller.MarshallerExclusions;
-import org.apache.ignite.internal.util.SerializableTransient;
-import org.apache.ignite.marshaller.MarshallerUtils;
import static java.lang.reflect.Modifier.isFinal;
import static java.lang.reflect.Modifier.isPrivate;
@@ -169,9 +166,6 @@ class OptimizedClassDescriptor {
/** Proxy interfaces. */
private Class<?>[] proxyIntfs;
- /** Method returns serializable transient fields. */
- private Method serTransMtd;
-
/**
* Creates descriptor for class.
*
@@ -447,27 +441,6 @@ class OptimizedClassDescriptor {
readObjMtds.add(mtd);
- final SerializableTransient serTransAn = c.getAnnotation(SerializableTransient.class);
-
- // Custom serialization policy for transient fields.
- if (serTransAn != null) {
- try {
- serTransMtd = c.getDeclaredMethod(serTransAn.methodName(), cls, IgniteProductVersion.class);
-
- int mod = serTransMtd.getModifiers();
-
- if (isStatic(mod) && isPrivate(mod)
- && serTransMtd.getReturnType() == String[].class)
- serTransMtd.setAccessible(true);
- else
- // Set method back to null if it has incorrect signature.
- serTransMtd = null;
- }
- catch (NoSuchMethodException ignored) {
- serTransMtd = null;
- }
- }
-
Field[] clsFields0 = c.getDeclaredFields();
Map<String, Field> fieldNames = new HashMap<>();
@@ -824,7 +797,7 @@ class OptimizedClassDescriptor {
writeTypeData(out);
out.writeShort(checksum);
- out.writeSerializable(obj, writeObjMtds, serializableFields(obj.getClass(), obj, null));
+ out.writeSerializable(obj, writeObjMtds, fields);
break;
@@ -834,60 +807,6 @@ class OptimizedClassDescriptor {
}
/**
- * Gets list of serializable fields. If {@link #serTransMtd} method
- * returns list of transient fields, they will be added to other fields.
- * Transient fields that are not included in that list will be normally
- * ignored.
- *
- * @param cls Class.
- * @param obj Object.
- * @param ver Job sender version.
- * @return Serializable fields.
- */
- @SuppressWarnings("ForLoopReplaceableByForEach")
- private Fields serializableFields(Class<?> cls, Object obj, IgniteProductVersion ver) {
- if (serTransMtd == null)
- return fields;
-
- try {
- final String[] transFields = (String[])serTransMtd.invoke(cls, obj, ver);
-
- if (transFields == null || transFields.length == 0)
- return fields;
-
- List<FieldInfo> clsFields = new ArrayList<>();
-
- clsFields.addAll(fields.fields.get(0).fields);
-
- for (int i = 0; i < transFields.length; i++) {
- final String fieldName = transFields[i];
-
- final Field f = cls.getDeclaredField(fieldName);
-
- FieldInfo fieldInfo = new FieldInfo(f, f.getName(),
- GridUnsafe.objectFieldOffset(f), fieldType(f.getType()));
-
- clsFields.add(fieldInfo);
- }
-
- Collections.sort(clsFields, new Comparator<FieldInfo>() {
- @Override public int compare(FieldInfo t1, FieldInfo t2) {
- return t1.name().compareTo(t2.name());
- }
- });
-
- List<ClassFields> fields = new ArrayList<>();
-
- fields.add(new ClassFields(clsFields));
-
- return new Fields(fields);
- }
- catch (Exception e) {
- return fields;
- }
- }
-
- /**
* @param out Output stream.
* @throws IOException In case of error.
*/
@@ -919,12 +838,7 @@ class OptimizedClassDescriptor {
case SERIALIZABLE:
verifyChecksum(in.readShort());
- // If no serialize method, then unmarshal as usual.
- if (serTransMtd != null)
- return in.readSerializable(cls, readObjMtds, readResolveMtd,
- serializableFields(cls, null, MarshallerUtils.jobSenderVersion()));
- else
- return in.readSerializable(cls, readObjMtds, readResolveMtd, fields);
+ return in.readSerializable(cls, readObjMtds, readResolveMtd, fields);
default:
assert false : "Unexpected type: " + type;
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/binary/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/binary/Makefile.am b/modules/platforms/cpp/binary/Makefile.am
index ca301a6..4876776 100644
--- a/modules/platforms/cpp/binary/Makefile.am
+++ b/modules/platforms/cpp/binary/Makefile.am
@@ -26,9 +26,7 @@ AM_CPPFLAGS = \
-I$(srcdir)/include \
-I@top_srcdir@/common/include \
-I@top_srcdir@/common/os/linux/include \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/core/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/Makefile.am b/modules/platforms/cpp/core/Makefile.am
index 97523cf..bbb7720 100644
--- a/modules/platforms/cpp/core/Makefile.am
+++ b/modules/platforms/cpp/core/Makefile.am
@@ -31,9 +31,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/jni/os/linux/include \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/linux \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/examples/odbc-example/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/odbc-example/Makefile.am b/modules/platforms/cpp/examples/odbc-example/Makefile.am
index 83cc63e..e584105 100644
--- a/modules/platforms/cpp/examples/odbc-example/Makefile.am
+++ b/modules/platforms/cpp/examples/odbc-example/Makefile.am
@@ -30,9 +30,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/../jni/os/linux/include \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/linux \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/examples/putget-example/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/putget-example/Makefile.am b/modules/platforms/cpp/examples/putget-example/Makefile.am
index cf39002..5301ea1 100644
--- a/modules/platforms/cpp/examples/putget-example/Makefile.am
+++ b/modules/platforms/cpp/examples/putget-example/Makefile.am
@@ -30,9 +30,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/../jni/os/linux/include \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/linux \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/examples/query-example/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/query-example/Makefile.am b/modules/platforms/cpp/examples/query-example/Makefile.am
index 01231ec..1437303 100644
--- a/modules/platforms/cpp/examples/query-example/Makefile.am
+++ b/modules/platforms/cpp/examples/query-example/Makefile.am
@@ -30,9 +30,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/../jni/os/linux/include \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/linux \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/ignite/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/ignite/Makefile.am b/modules/platforms/cpp/ignite/Makefile.am
index 2dbc4d6..625f1df 100644
--- a/modules/platforms/cpp/ignite/Makefile.am
+++ b/modules/platforms/cpp/ignite/Makefile.am
@@ -30,9 +30,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/jni/os/linux/include \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/linux \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/jni/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/Makefile.am b/modules/platforms/cpp/jni/Makefile.am
index 2cb4b90..b9b3913 100644
--- a/modules/platforms/cpp/jni/Makefile.am
+++ b/modules/platforms/cpp/jni/Makefile.am
@@ -29,9 +29,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/common/os/linux/include \
-I$(JAVA_HOME)/include \
-I$(JAVA_HOME)/include/linux \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/odbc-test/src/api_robustness_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc-test/src/api_robustness_test.cpp b/modules/platforms/cpp/odbc-test/src/api_robustness_test.cpp
index fbd5f12..008cf25 100644
--- a/modules/platforms/cpp/odbc-test/src/api_robustness_test.cpp
+++ b/modules/platforms/cpp/odbc-test/src/api_robustness_test.cpp
@@ -161,54 +161,6 @@ struct ApiRobustnessTestSuiteFixture
}
/**
- * Check that SQLFetchScroll does not crash with unsupported orientation.
- *
- * @param orientation Fetch orientation.
- */
- void CheckFetchScrollUnsupportedOrientation(SQLUSMALLINT orientation)
- {
- Connect("DRIVER={Apache Ignite};ADDRESS=127.0.0.1:11110;CACHE=cache");
-
- SQLRETURN ret;
-
- const int64_t recordsNum = 100;
-
- for (int i = 0; i < recordsNum; ++i)
- {
- TestType val;
-
- val.i32Field = i * 10;
-
- testCache.Put(i, val);
- }
-
- int32_t i32Field = -1;
-
- // Binding column.
- ret = SQLBindCol(stmt, 1, SQL_C_SLONG, &i32Field, 0, 0);
-
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
-
- SQLCHAR request[] = "SELECT i32Field FROM TestType ORDER BY _key";
-
- ret = SQLExecDirect(stmt, request, SQL_NTS);
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
-
- ret = SQLFetchScroll(stmt, SQL_FETCH_NEXT, 0);
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
-
- BOOST_CHECK_EQUAL(i32Field, 0);
-
- ret = SQLFetchScroll(stmt, orientation, 0);
-
- // Operation is not supported. However, there should be no crash.
- BOOST_CHECK(ret == SQL_ERROR);
- }
-
- /**
* Destructor.
*/
~ApiRobustnessTestSuiteFixture()
@@ -1051,19 +1003,4 @@ BOOST_AUTO_TEST_CASE(TestSQLSpecialColumns)
SQLCloseCursor(stmt);
}
-BOOST_AUTO_TEST_CASE(TestFetchScrollLast)
-{
- CheckFetchScrollUnsupportedOrientation(SQL_FETCH_LAST);
-}
-
-BOOST_AUTO_TEST_CASE(TestFetchScrollPrior)
-{
- CheckFetchScrollUnsupportedOrientation(SQL_FETCH_PRIOR);
-}
-
-BOOST_AUTO_TEST_CASE(TestFetchScrollFirst)
-{
- CheckFetchScrollUnsupportedOrientation(SQL_FETCH_FIRST);
-}
-
BOOST_AUTO_TEST_SUITE_END()
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/odbc-test/src/queries_test.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc-test/src/queries_test.cpp b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
index 82e9972..eb6e153 100644
--- a/modules/platforms/cpp/odbc-test/src/queries_test.cpp
+++ b/modules/platforms/cpp/odbc-test/src/queries_test.cpp
@@ -200,8 +200,6 @@ struct QueriesTestSuiteFixture
"floatField, doubleField, boolField, guidField, dateField, timestampField FROM TestType";
ret = SQLExecDirect(stmt, reinterpret_cast<SQLCHAR*>(request), SQL_NTS);
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
if (!SQL_SUCCEEDED(ret))
BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
@@ -366,8 +364,6 @@ BOOST_AUTO_TEST_CASE(TestTwoRowsString)
"floatField, doubleField, boolField, guidField, dateField, timestampField FROM TestType";
ret = SQLExecDirect(stmt, request, SQL_NTS);
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
if (!SQL_SUCCEEDED(ret))
BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
@@ -464,8 +460,6 @@ BOOST_AUTO_TEST_CASE(TestOneRowString)
"floatField, doubleField, boolField, guidField, dateField, timestampField FROM TestType";
ret = SQLExecDirect(stmt, request, SQL_NTS);
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
ret = SQLFetch(stmt);
if (!SQL_SUCCEEDED(ret))
@@ -528,8 +522,6 @@ BOOST_AUTO_TEST_CASE(TestOneRowStringLen)
"floatField, doubleField, boolField, guidField, dateField, timestampField FROM TestType";
ret = SQLExecDirect(stmt, request, SQL_NTS);
- if (!SQL_SUCCEEDED(ret))
- BOOST_FAIL(GetOdbcErrorMessage(SQL_HANDLE_STMT, stmt));
ret = SQLFetch(stmt);
if (!SQL_SUCCEEDED(ret))
@@ -674,4 +666,5 @@ BOOST_AUTO_TEST_CASE(TestDataAtExecution)
BOOST_CHECK(ret == SQL_NO_DATA);
}
+
BOOST_AUTO_TEST_SUITE_END()
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/odbc/Makefile.am
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/Makefile.am b/modules/platforms/cpp/odbc/Makefile.am
index b0cc5f8..3c8b37a 100644
--- a/modules/platforms/cpp/odbc/Makefile.am
+++ b/modules/platforms/cpp/odbc/Makefile.am
@@ -27,9 +27,7 @@ AM_CPPFLAGS = \
-I@top_srcdir@/common/include \
-I@top_srcdir@/common/os/linux/include \
-I@top_srcdir@/binary/include \
- -DIGNITE_IMPL \
- -D__STDC_LIMIT_MACROS \
- -D__STDC_CONSTANT_MACROS
+ -DIGNITE_IMPL
AM_CXXFLAGS = \
-Wall \
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h b/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
index db6205e..35f1e98 100644
--- a/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
+++ b/modules/platforms/cpp/odbc/include/ignite/odbc/statement.h
@@ -118,25 +118,6 @@ namespace ignite
void UnbindAllParameters();
/**
- * Set statement attribute.
- *
- * @param attr Attribute type.
- * @param value Value pointer.
- * @param valueLen Value length.
- */
- void SetAttribute(int attr, void* value, SQLINTEGER valueLen);
-
- /**
- * Get statement attribute.
- *
- * @param attr Attribute type.
- * @param buf Buffer for value.
- * @param bufLen Buffer length.
- * @param valueLen Resulting value length.
- */
- void GetAttribute(int attr, void* buf, SQLINTEGER bufLen, SQLINTEGER *valueLen);
-
- /**
* Get number of binded parameters.
*
* @return Number of binded parameters.
@@ -375,29 +356,6 @@ namespace ignite
SqlResult InternalBindParameter(uint16_t paramIdx, const app::Parameter& param);
/**
- * Set statement attribute.
- * Internal call.
- *
- * @param attr Attribute type.
- * @param value Value pointer.
- * @param valueLen Value length.
- * @return Operation result.
- */
- SqlResult InternalSetAttribute(int attr, void* value, SQLINTEGER valueLen);
-
- /**
- * Get statement attribute.
- * Internal call.
- *
- * @param attr Attribute type.
- * @param buf Buffer for value.
- * @param bufLen Buffer length.
- * @param valueLen Resulting value length.
- * @return Operation result.
- */
- SqlResult InternalGetAttribute(int attr, void* buf, SQLINTEGER bufLen, SQLINTEGER* valueLen);
-
- /**
* Get value of the column in the result set.
*
* @param columnIdx Column index.
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/odbc/src/odbc.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/odbc.cpp b/modules/platforms/cpp/odbc/src/odbc.cpp
index 612d51a..7416ad2 100644
--- a/modules/platforms/cpp/odbc/src/odbc.cpp
+++ b/modules/platforms/cpp/odbc/src/odbc.cpp
@@ -854,9 +854,73 @@ namespace ignite
if (!statement)
return SQL_INVALID_HANDLE;
- statement->GetAttribute(attr, valueBuf, valueBufLen, valueResLen);
+ if (!valueBuf)
+ return SQL_ERROR;
- return statement->GetDiagnosticRecords().GetReturnCode();
+ switch (attr)
+ {
+ case SQL_ATTR_APP_ROW_DESC:
+ case SQL_ATTR_APP_PARAM_DESC:
+ case SQL_ATTR_IMP_ROW_DESC:
+ case SQL_ATTR_IMP_PARAM_DESC:
+ {
+ SQLPOINTER *val = reinterpret_cast<SQLPOINTER*>(valueBuf);
+
+ *val = static_cast<SQLPOINTER>(stmt);
+
+ break;
+ }
+
+ case SQL_ATTR_ROW_ARRAY_SIZE:
+ {
+ SQLINTEGER *val = reinterpret_cast<SQLINTEGER*>(valueBuf);
+
+ *val = static_cast<SQLINTEGER>(1);
+
+ break;
+ }
+
+ case SQL_ATTR_ROWS_FETCHED_PTR:
+ {
+ SQLULEN** val = reinterpret_cast<SQLULEN**>(valueBuf);
+
+ *val = reinterpret_cast<SQLULEN*>(statement->GetRowsFetchedPtr());
+
+ break;
+ }
+
+ case SQL_ATTR_ROW_STATUS_PTR:
+ {
+ SQLUSMALLINT** val = reinterpret_cast<SQLUSMALLINT**>(valueBuf);
+
+ *val = reinterpret_cast<SQLUSMALLINT*>(statement->GetRowStatusesPtr());
+
+ break;
+ }
+
+ case SQL_ATTR_PARAM_BIND_OFFSET_PTR:
+ {
+ SQLULEN** val = reinterpret_cast<SQLULEN**>(valueBuf);
+
+ *val = reinterpret_cast<SQLULEN*>(statement->GetParamBindOffsetPtr());
+
+ break;
+ }
+
+ case SQL_ATTR_ROW_BIND_OFFSET_PTR:
+ {
+ SQLULEN** val = reinterpret_cast<SQLULEN**>(valueBuf);
+
+ *val = reinterpret_cast<SQLULEN*>(statement->GetColumnBindOffsetPtr());
+
+ break;
+ }
+
+ default:
+ return SQL_ERROR;
+ }
+
+ return SQL_SUCCESS;
}
SQLRETURN SQLSetStmtAttr(SQLHSTMT stmt,
@@ -879,9 +943,53 @@ namespace ignite
if (!statement)
return SQL_INVALID_HANDLE;
- statement->SetAttribute(attr, value, valueLen);
+ switch (attr)
+ {
+ case SQL_ATTR_ROW_ARRAY_SIZE:
+ {
+ SQLULEN val = reinterpret_cast<SQLULEN>(value);
- return statement->GetDiagnosticRecords().GetReturnCode();
+ LOG_MSG("Value: %d\n", val);
+
+ if (val != 1)
+ return SQL_ERROR;
+
+ break;
+ }
+
+ case SQL_ATTR_ROWS_FETCHED_PTR:
+ {
+ statement->SetRowsFetchedPtr(reinterpret_cast<size_t*>(value));
+
+ break;
+ }
+
+ case SQL_ATTR_ROW_STATUS_PTR:
+ {
+ statement->SetRowStatusesPtr(reinterpret_cast<uint16_t*>(value));
+
+ break;
+ }
+
+ case SQL_ATTR_PARAM_BIND_OFFSET_PTR:
+ {
+ statement->SetParamBindOffsetPtr(reinterpret_cast<int*>(value));
+
+ break;
+ }
+
+ case SQL_ATTR_ROW_BIND_OFFSET_PTR:
+ {
+ statement->SetColumnBindOffsetPtr(reinterpret_cast<int*>(value));
+
+ break;
+ }
+
+ default:
+ return SQL_ERROR;
+ }
+
+ return SQL_SUCCESS;
}
SQLRETURN SQLPrimaryKeys(SQLHSTMT stmt,
http://git-wip-us.apache.org/repos/asf/ignite/blob/865bbcf0/modules/platforms/cpp/odbc/src/statement.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/odbc/src/statement.cpp b/modules/platforms/cpp/odbc/src/statement.cpp
index f1a577a..32f7c3f 100644
--- a/modules/platforms/cpp/odbc/src/statement.cpp
+++ b/modules/platforms/cpp/odbc/src/statement.cpp
@@ -145,157 +145,6 @@ namespace ignite
paramBindings.clear();
}
- void Statement::SetAttribute(int attr, void* value, SQLINTEGER valueLen)
- {
- IGNITE_ODBC_API_CALL(InternalSetAttribute(attr, value, valueLen));
- }
-
- SqlResult Statement::InternalSetAttribute(int attr, void* value, SQLINTEGER valueLen)
- {
- switch (attr)
- {
- case SQL_ATTR_ROW_ARRAY_SIZE:
- {
- SQLULEN val = reinterpret_cast<SQLULEN>(value);
-
- LOG_MSG("SQL_ATTR_ROW_ARRAY_SIZE: %d\n", val);
-
- if (val != 1)
- {
- AddStatusRecord(SQL_STATE_HYC00_OPTIONAL_FEATURE_NOT_IMPLEMENTED,
- "Fetching of more than one row by call is not supported.");
-
- return SQL_RESULT_ERROR;
- }
-
- break;
- }
-
- case SQL_ATTR_ROWS_FETCHED_PTR:
- {
- SetRowsFetchedPtr(reinterpret_cast<size_t*>(value));
-
- break;
- }
-
- case SQL_ATTR_ROW_STATUS_PTR:
- {
- SetRowStatusesPtr(reinterpret_cast<uint16_t*>(value));
-
- break;
- }
-
- case SQL_ATTR_PARAM_BIND_OFFSET_PTR:
- {
- SetParamBindOffsetPtr(reinterpret_cast<int*>(value));
-
- break;
- }
-
- case SQL_ATTR_ROW_BIND_OFFSET_PTR:
- {
- SetColumnBindOffsetPtr(reinterpret_cast<int*>(value));
-
- break;
- }
-
- default:
- {
- AddStatusRecord(SQL_STATE_HYC00_OPTIONAL_FEATURE_NOT_IMPLEMENTED,
- "Specified attribute is not supported.");
-
- return SQL_RESULT_ERROR;
- }
- }
-
- return SQL_RESULT_SUCCESS;
- }
-
- void Statement::GetAttribute(int attr, void* buf, SQLINTEGER bufLen, SQLINTEGER* valueLen)
- {
- IGNITE_ODBC_API_CALL(InternalGetAttribute(attr, buf, bufLen, valueLen));
- }
-
- SqlResult Statement::InternalGetAttribute(int attr, void* buf, SQLINTEGER bufLen, SQLINTEGER* valueLen)
- {
- if (!buf)
- {
- AddStatusRecord(SQL_STATE_HY000_GENERAL_ERROR, "Data buffer is NULL.");
-
- return SQL_RESULT_ERROR;
- }
-
- switch (attr)
- {
- case SQL_ATTR_APP_ROW_DESC:
- case SQL_ATTR_APP_PARAM_DESC:
- case SQL_ATTR_IMP_ROW_DESC:
- case SQL_ATTR_IMP_PARAM_DESC:
- {
- SQLPOINTER *val = reinterpret_cast<SQLPOINTER*>(buf);
-
- *val = static_cast<SQLPOINTER>(this);
-
- break;
- }
-
- case SQL_ATTR_ROW_ARRAY_SIZE:
- {
- SQLINTEGER *val = reinterpret_cast<SQLINTEGER*>(buf);
-
- *val = static_cast<SQLINTEGER>(1);
-
- break;
- }
-
- case SQL_ATTR_ROWS_FETCHED_PTR:
- {
- SQLULEN** val = reinterpret_cast<SQLULEN**>(buf);
-
- *val = reinterpret_cast<SQLULEN*>(GetRowsFetchedPtr());
-
- break;
- }
-
- case SQL_ATTR_ROW_STATUS_PTR:
- {
- SQLUSMALLINT** val = reinterpret_cast<SQLUSMALLINT**>(buf);
-
- *val = reinterpret_cast<SQLUSMALLINT*>(GetRowStatusesPtr());
-
- break;
- }
-
- case SQL_ATTR_PARAM_BIND_OFFSET_PTR:
- {
- SQLULEN** val = reinterpret_cast<SQLULEN**>(buf);
-
- *val = reinterpret_cast<SQLULEN*>(GetParamBindOffsetPtr());
-
- break;
- }
-
- case SQL_ATTR_ROW_BIND_OFFSET_PTR:
- {
- SQLULEN** val = reinterpret_cast<SQLULEN**>(buf);
-
- *val = reinterpret_cast<SQLULEN*>(GetColumnBindOffsetPtr());
-
- break;
- }
-
- default:
- {
- AddStatusRecord(SQL_STATE_HYC00_OPTIONAL_FEATURE_NOT_IMPLEMENTED,
- "Specified attribute is not supported.");
-
- return SQL_RESULT_ERROR;
- }
- }
-
- return SQL_RESULT_SUCCESS;
- }
-
uint16_t Statement::GetParametersNumber()
{
IGNITE_ODBC_API_CALL_ALWAYS_SUCCESS;