[22/27] ignite git commit: IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped mode.

2016-09-23 Thread sboikov
IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped 
mode.


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

Branch: refs/heads/ignite-comm-balance
Commit: 63888bd99b8a84cc961b226efba9964dcc292f4c
Parents: a97483a
Author: Alexey Kuznetsov 
Authored: Thu Sep 22 16:22:40 2016 +0700
Committer: Alexey Kuznetsov 
Committed: Thu Sep 22 16:22:40 2016 +0700

--
 .../store/jdbc/CacheAbstractJdbcStore.java  | 104 +++
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |  46 ++--
 .../store/jdbc/dialect/BasicJdbcDialect.java|   8 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java|   6 +-
 .../cache/store/jdbc/dialect/H2Dialect.java |   5 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |  18 +++-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |   9 +-
 .../cache/store/jdbc/dialect/OracleDialect.java |   5 +-
 .../store/jdbc/dialect/SQLServerDialect.java|  14 ++-
 .../CacheJdbcPojoStoreAbstractSelfTest.java |  48 ++---
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |   2 +-
 ...reBinaryMarshallerWithSqlEscapeSelfTest.java |  28 +
 ...dbcPojoStoreOptimizedMarshallerSelfTest.java |   2 +-
 ...ptimizedMarshallerWithSqlEscapeSelfTest.java |  28 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   4 +
 .../src/test/config/jdbc-pojo-store-builtin.xml |  12 +--
 .../src/test/config/jdbc-pojo-store-obj.xml |  12 +--
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |  12 +--
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |  14 ++-
 .../store/jdbc/CachePojoStoreXmlSelfTest.java   |  13 ++-
 .../CachePojoStoreXmlWithSqlEscapeSelfTest.java |  28 +
 .../testsuites/IgniteSpringTestSuite.java   |   5 +-
 22 files changed, 328 insertions(+), 95 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/63888bd9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index fe8a50b..a9a8ce1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -187,6 +187,9 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 /** Hash calculator.  */
 protected JdbcTypeHasher hasher = JdbcTypeDefaultHasher.INSTANCE;
 
+/** Flag indicating that table and field names should be escaped in all 
SQL queries created by JDBC POJO store. */
+private boolean sqlEscapeAll;
+
 /**
  * Get field value from object for use as query parameter.
  *
@@ -727,7 +730,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 checkTypeConfiguration(cacheName, valKind, valType, 
type.getValueFields());
 
-entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind));
+entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind, sqlEscapeAll));
 
 // Add one more binding to binary typeId for POJOs,
 // because object could be passed to store in binary 
format.
@@ -736,7 +739,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 valKind = valKind == TypeKind.POJO ? TypeKind.BINARY : 
valKind;
 
-entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind));
+entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind, sqlEscapeAll));
 }
 }
 
@@ -1675,6 +1678,28 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 }
 
 /**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code "tableName"."fieldsName"}). This enforces case sensitivity for 
field names and
+ * also allows having special characters in table and field names.
+ *
+ * @return Flag value.
+ */
+public boolean isSqlEscapeAll() {
+return sqlEscapeAll;
+}
+
+/**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code 

[22/24] ignite git commit: IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped mode.

2016-09-23 Thread sboikov
IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped 
mode.


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

Branch: refs/heads/ignite-comm-opts2
Commit: 63888bd99b8a84cc961b226efba9964dcc292f4c
Parents: a97483a
Author: Alexey Kuznetsov 
Authored: Thu Sep 22 16:22:40 2016 +0700
Committer: Alexey Kuznetsov 
Committed: Thu Sep 22 16:22:40 2016 +0700

--
 .../store/jdbc/CacheAbstractJdbcStore.java  | 104 +++
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |  46 ++--
 .../store/jdbc/dialect/BasicJdbcDialect.java|   8 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java|   6 +-
 .../cache/store/jdbc/dialect/H2Dialect.java |   5 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |  18 +++-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |   9 +-
 .../cache/store/jdbc/dialect/OracleDialect.java |   5 +-
 .../store/jdbc/dialect/SQLServerDialect.java|  14 ++-
 .../CacheJdbcPojoStoreAbstractSelfTest.java |  48 ++---
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |   2 +-
 ...reBinaryMarshallerWithSqlEscapeSelfTest.java |  28 +
 ...dbcPojoStoreOptimizedMarshallerSelfTest.java |   2 +-
 ...ptimizedMarshallerWithSqlEscapeSelfTest.java |  28 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   4 +
 .../src/test/config/jdbc-pojo-store-builtin.xml |  12 +--
 .../src/test/config/jdbc-pojo-store-obj.xml |  12 +--
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |  12 +--
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |  14 ++-
 .../store/jdbc/CachePojoStoreXmlSelfTest.java   |  13 ++-
 .../CachePojoStoreXmlWithSqlEscapeSelfTest.java |  28 +
 .../testsuites/IgniteSpringTestSuite.java   |   5 +-
 22 files changed, 328 insertions(+), 95 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/63888bd9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index fe8a50b..a9a8ce1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -187,6 +187,9 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 /** Hash calculator.  */
 protected JdbcTypeHasher hasher = JdbcTypeDefaultHasher.INSTANCE;
 
+/** Flag indicating that table and field names should be escaped in all 
SQL queries created by JDBC POJO store. */
+private boolean sqlEscapeAll;
+
 /**
  * Get field value from object for use as query parameter.
  *
@@ -727,7 +730,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 checkTypeConfiguration(cacheName, valKind, valType, 
type.getValueFields());
 
-entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind));
+entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind, sqlEscapeAll));
 
 // Add one more binding to binary typeId for POJOs,
 // because object could be passed to store in binary 
format.
@@ -736,7 +739,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 valKind = valKind == TypeKind.POJO ? TypeKind.BINARY : 
valKind;
 
-entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind));
+entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind, sqlEscapeAll));
 }
 }
 
@@ -1675,6 +1678,28 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 }
 
 /**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code "tableName"."fieldsName"}). This enforces case sensitivity for 
field names and
+ * also allows having special characters in table and field names.
+ *
+ * @return Flag value.
+ */
+public boolean isSqlEscapeAll() {
+return sqlEscapeAll;
+}
+
+/**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code 

[2/4] ignite git commit: IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped mode.

2016-09-22 Thread akuznetsov
IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped 
mode.


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

Branch: refs/heads/master
Commit: 63888bd99b8a84cc961b226efba9964dcc292f4c
Parents: a97483a
Author: Alexey Kuznetsov 
Authored: Thu Sep 22 16:22:40 2016 +0700
Committer: Alexey Kuznetsov 
Committed: Thu Sep 22 16:22:40 2016 +0700

--
 .../store/jdbc/CacheAbstractJdbcStore.java  | 104 +++
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |  46 ++--
 .../store/jdbc/dialect/BasicJdbcDialect.java|   8 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java|   6 +-
 .../cache/store/jdbc/dialect/H2Dialect.java |   5 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |  18 +++-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |   9 +-
 .../cache/store/jdbc/dialect/OracleDialect.java |   5 +-
 .../store/jdbc/dialect/SQLServerDialect.java|  14 ++-
 .../CacheJdbcPojoStoreAbstractSelfTest.java |  48 ++---
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |   2 +-
 ...reBinaryMarshallerWithSqlEscapeSelfTest.java |  28 +
 ...dbcPojoStoreOptimizedMarshallerSelfTest.java |   2 +-
 ...ptimizedMarshallerWithSqlEscapeSelfTest.java |  28 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   4 +
 .../src/test/config/jdbc-pojo-store-builtin.xml |  12 +--
 .../src/test/config/jdbc-pojo-store-obj.xml |  12 +--
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |  12 +--
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |  14 ++-
 .../store/jdbc/CachePojoStoreXmlSelfTest.java   |  13 ++-
 .../CachePojoStoreXmlWithSqlEscapeSelfTest.java |  28 +
 .../testsuites/IgniteSpringTestSuite.java   |   5 +-
 22 files changed, 328 insertions(+), 95 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/63888bd9/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index fe8a50b..a9a8ce1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -187,6 +187,9 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 /** Hash calculator.  */
 protected JdbcTypeHasher hasher = JdbcTypeDefaultHasher.INSTANCE;
 
+/** Flag indicating that table and field names should be escaped in all 
SQL queries created by JDBC POJO store. */
+private boolean sqlEscapeAll;
+
 /**
  * Get field value from object for use as query parameter.
  *
@@ -727,7 +730,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 checkTypeConfiguration(cacheName, valKind, valType, 
type.getValueFields());
 
-entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind));
+entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind, sqlEscapeAll));
 
 // Add one more binding to binary typeId for POJOs,
 // because object could be passed to store in binary 
format.
@@ -736,7 +739,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 valKind = valKind == TypeKind.POJO ? TypeKind.BINARY : 
valKind;
 
-entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind));
+entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind, sqlEscapeAll));
 }
 }
 
@@ -1675,6 +1678,28 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 }
 
 /**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code "tableName"."fieldsName"}). This enforces case sensitivity for 
field names and
+ * also allows having special characters in table and field names.
+ *
+ * @return Flag value.
+ */
+public boolean isSqlEscapeAll() {
+return sqlEscapeAll;
+}
+
+/**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code 

ignite git commit: IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped mode.

2016-09-22 Thread akuznetsov
Repository: ignite
Updated Branches:
  refs/heads/ignite-3938 [created] 8d795a153


IGNITE-3938 Implemented escaping for SQL identifiers. Added tests for escaped 
mode.


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

Branch: refs/heads/ignite-3938
Commit: 8d795a153d937665a31200bc44d7f44e8ba66035
Parents: 4ee52f0
Author: Alexey Kuznetsov 
Authored: Thu Sep 22 14:12:43 2016 +0700
Committer: Alexey Kuznetsov 
Committed: Thu Sep 22 14:12:43 2016 +0700

--
 .../store/jdbc/CacheAbstractJdbcStore.java  | 104 +++
 .../store/jdbc/CacheJdbcPojoStoreFactory.java   |  45 ++--
 .../store/jdbc/dialect/BasicJdbcDialect.java|   8 +-
 .../cache/store/jdbc/dialect/DB2Dialect.java|   6 +-
 .../cache/store/jdbc/dialect/H2Dialect.java |   5 +-
 .../cache/store/jdbc/dialect/JdbcDialect.java   |  18 +++-
 .../cache/store/jdbc/dialect/MySQLDialect.java  |   9 +-
 .../cache/store/jdbc/dialect/OracleDialect.java |   5 +-
 .../store/jdbc/dialect/SQLServerDialect.java|  14 ++-
 .../CacheJdbcPojoStoreAbstractSelfTest.java |  48 ++---
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |   2 +-
 ...reBinaryMarshallerWithSqlEscapeSelfTest.java |  28 +
 ...dbcPojoStoreOptimizedMarshallerSelfTest.java |   2 +-
 ...ptimizedMarshallerWithSqlEscapeSelfTest.java |  28 +
 .../ignite/testsuites/IgniteCacheTestSuite.java |   4 +
 .../src/test/config/jdbc-pojo-store-builtin.xml |  12 +--
 .../src/test/config/jdbc-pojo-store-obj.xml |  12 +--
 .../jdbc/CacheJdbcBlobStoreFactorySelfTest.java |  12 +--
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |  14 ++-
 .../store/jdbc/CachePojoStoreXmlSelfTest.java   |  13 ++-
 .../CachePojoStoreXmlWithSqlEscapeSelfTest.java |  28 +
 .../testsuites/IgniteSpringTestSuite.java   |   5 +-
 22 files changed, 327 insertions(+), 95 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/8d795a15/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
index fe8a50b..a9a8ce1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java
@@ -187,6 +187,9 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 /** Hash calculator.  */
 protected JdbcTypeHasher hasher = JdbcTypeDefaultHasher.INSTANCE;
 
+/** Flag indicating that table and field names should be escaped in all 
SQL queries created by JDBC POJO store. */
+private boolean sqlEscapeAll;
+
 /**
  * Get field value from object for use as query parameter.
  *
@@ -727,7 +730,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 checkTypeConfiguration(cacheName, valKind, valType, 
type.getValueFields());
 
-entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind));
+entryMappings.put(keyTypeId, new EntryMapping(cacheName, 
dialect, type, keyKind, valKind, sqlEscapeAll));
 
 // Add one more binding to binary typeId for POJOs,
 // because object could be passed to store in binary 
format.
@@ -736,7 +739,7 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 
 valKind = valKind == TypeKind.POJO ? TypeKind.BINARY : 
valKind;
 
-entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind));
+entryMappings.put(keyTypeId, new 
EntryMapping(cacheName, dialect, type, TypeKind.BINARY, valKind, sqlEscapeAll));
 }
 }
 
@@ -1675,6 +1678,28 @@ public abstract class CacheAbstractJdbcStore 
implements CacheStore,
 }
 
 /**
+ * If {@code true} all the SQL table and field names will be escaped with 
double quotes like
+ * ({@code "tableName"."fieldsName"}). This enforces case sensitivity for 
field names and
+ * also allows having special characters in table and field names.
+ *
+ * @return Flag value.
+ */
+public boolean isSqlEscapeAll() {
+return sqlEscapeAll;
+}
+
+/**
+ * If {@code true} all the SQL table and