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/02 14:29:31 UTC
[1/2] incubator-ignite git commit: # IGNITE-32: warnings for batches.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-32 811713446 -> 605088c60
# IGNITE-32: warnings for batches.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/54ed9b13
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/54ed9b13
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/54ed9b13
Branch: refs/heads/ignite-32
Commit: 54ed9b1327734e6a9f4e7cb94c0c481c78c3752d
Parents: 8117134
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Feb 2 20:27:19 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Feb 2 20:27:19 2015 +0700
----------------------------------------------------------------------
.../ignite/cache/store/jdbc/JdbcCacheStore.java | 50 +++++++++++++++-----
.../store/jdbc/PojoJdbcCacheStoreTest.java | 2 +
2 files changed, 40 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54ed9b13/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 15e1373..9ad64ab 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
@@ -731,7 +731,7 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements G
}
if (!currKeyTypeId.equals(keyTypeId)) {
- mergeStmt.executeBatch();
+ executeBatch(mergeStmt, "writeAll", cnt);
currKeyTypeId = keyTypeId;
@@ -744,12 +744,15 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements G
mergeStmt.addBatch();
- if (cnt++ % batchSz == 0)
- mergeStmt.executeBatch();
+ if (++cnt % batchSz == 0) {
+ executeBatch(mergeStmt, "writeAll", cnt);
+
+ cnt = 0;
+ }
}
if (mergeStmt != null && cnt % batchSz != 0)
- mergeStmt.executeBatch();
+ executeBatch(mergeStmt, "writeAll", cnt);
}
catch (SQLException e) {
throw new CacheWriterException("Failed to write entries in database", e);
@@ -796,6 +799,28 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements G
}
}
+ /**
+ * @param stmt Statement.
+ * @param stmtType Statement type for error message.
+ * @param batchSz Expected batch size.
+ */
+ private void executeBatch(Statement stmt, String stmtType, int batchSz) throws SQLException {
+ int[] rowCounts = stmt.executeBatch();
+
+ int numOfRowCnt = rowCounts.length;
+
+ if (numOfRowCnt != batchSz)
+ log.warning("JDBC driver did not return the expected number of row counts," +
+ " actual row count: " + numOfRowCnt + " expected: " + batchSz);
+
+ for (int rowCount : rowCounts)
+ if (rowCount != 1) {
+ log.warning("Batch " + stmtType + " returned unexpected row count from " + stmtType + " statement");
+
+ break;
+ }
+ }
+
/** {@inheritDoc} */
@Override public void deleteAll(Collection<?> keys) throws CacheWriterException {
assert keys != null;
@@ -823,25 +848,26 @@ public abstract class JdbcCacheStore<K, V> extends CacheStore<K, V> implements G
}
if (!currKeyTypeId.equals(keyTypeId)) {
- delStmt.executeBatch();
-
- currKeyTypeId = keyTypeId;
+ executeBatch(delStmt, "deleteAll", cnt);
cnt = 0;
+
+ currKeyTypeId = keyTypeId;
}
fillKeyParameters(delStmt, em, key);
delStmt.addBatch();
- if (cnt++ % batchSz == 0)
- delStmt.executeBatch();
+ if (++cnt % batchSz == 0) {
+ executeBatch(delStmt, "deleteAll", cnt);
+
+ cnt = 0;
+ }
}
if (delStmt != null && cnt % batchSz != 0)
- delStmt.executeBatch();
-
- // TODO check delete result?
+ executeBatch(delStmt, "deleteAll", cnt);
}
catch (SQLException e) {
throw new CacheWriterException("Failed to remove values from database", e);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54ed9b13/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 b7acf23..b8b751b 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
@@ -345,6 +345,8 @@ public class PojoJdbcCacheStoreTest extends GridCommonAbstractTest {
assertEquals(v3, store.load(k3));
+ store.deleteAll(Arrays.asList(new OrganizationKey(-100)));
+
// Remove all.
store.deleteAll(Arrays.asList(k3));
[2/2] incubator-ignite git commit: # IGNITE-32: Use indexes instead
of columns names.
Posted by ak...@apache.org.
# IGNITE-32: Use indexes instead of columns names.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/605088c6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/605088c6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/605088c6
Branch: refs/heads/ignite-32
Commit: 605088c60865dd9bed40525ce547a0dbb183c0b7
Parents: 54ed9b1
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Feb 2 20:29:24 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Feb 2 20:29:24 2015 +0700
----------------------------------------------------------------------
.../parser/dialect/JdbcMetadataDialect.java | 36 ++++++++++++++++----
.../parser/dialect/OracleMetadataDialect.java | 10 +++---
2 files changed, 34 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/605088c6/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 4e34f35..c9cf0cf 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
@@ -32,6 +32,28 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
/** */
private static final String[] TABLES_AND_VIEWS = {"TABLE", "VIEW"};
+ /** Schema name index. */
+ private static final int SCHEMA_NAME_IDX = 1;
+
+ /** Schema catalog index. */
+ private static final int SCHEMA_CATALOG_IDX = 2;
+
+ /** Table name index. */
+ private static final int TABLE_NAME_IDX = 3;
+
+ /** Primary key column name index. */
+ private static final int PK_COLUMN_NAME_IDX = 4;
+
+ /** Column name index. */
+ private static final int COLUMN_NAME_IDX = 4;
+
+ /** Column data type index. */
+ private static final int COLUMN_DATA_TYPE_IDX = 5;
+
+ /** Column nullable index. */
+ private static final int COLUMN_NULLABLE_IDX = 11;
+
+
/** {@inheritDoc} */
@Override public Collection<DbTable> tables(Connection conn, boolean tblsOnly) throws SQLException {
DatabaseMetaData dbMeta = conn.getMetaData();
@@ -42,37 +64,37 @@ public class JdbcMetadataDialect extends DatabaseMetadataDialect {
try (ResultSet schemasRs = dbMeta.getSchemas()) {
while (schemasRs.next()) {
- String schema = schemasRs.getString("TABLE_SCHEM");
+ String schema = schemasRs.getString(SCHEMA_NAME_IDX);
// Skip system schemas.
if (sys.contains(schema))
continue;
- String catalog = schemasRs.getString("TABLE_CATALOG");
+ String catalog = schemasRs.getString(SCHEMA_CATALOG_IDX);
try (ResultSet tblsRs = dbMeta.getTables(catalog, schema, "%",
tblsOnly ? TABLES_ONLY : TABLES_AND_VIEWS)) {
while (tblsRs.next()) {
- String tblName = tblsRs.getString("TABLE_NAME");
+ String tblName = tblsRs.getString(TABLE_NAME_IDX);
Set<String> pkCols = new HashSet<>();
try (ResultSet pkRs = dbMeta.getPrimaryKeys(catalog, schema, tblName)) {
while (pkRs.next())
- pkCols.add(pkRs.getString("COLUMN_NAME"));
+ pkCols.add(pkRs.getString(PK_COLUMN_NAME_IDX));
}
List<DbColumn> cols = new ArrayList<>();
try (ResultSet colsRs = dbMeta.getColumns(catalog, schema, tblName, null)) {
while (colsRs.next()) {
- String colName = colsRs.getString("COLUMN_NAME");
+ String colName = colsRs.getString(COLUMN_NAME_IDX);
cols.add(new DbColumn(
colName,
- colsRs.getInt("DATA_TYPE"),
+ colsRs.getInt(COLUMN_DATA_TYPE_IDX),
pkCols.contains(colName),
- colsRs.getInt("NULLABLE") == DatabaseMetaData.columnNullable));
+ colsRs.getInt(COLUMN_NULLABLE_IDX) == DatabaseMetaData.columnNullable));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/605088c6/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
index 81a9442..363c7b2 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/parser/dialect/OracleMetadataDialect.java
@@ -145,8 +145,8 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
String prevTbl = "";
while (colsRs.next()) {
- String schema = colsRs.getString("OWNER");
- String tbl = colsRs.getString("TABLE_NAME");
+ String schema = colsRs.getString(SQL_COLS_OWNER);
+ String tbl = colsRs.getString(SQL_COLS_TAB_NAME);
if (prevSchema.isEmpty()) {
prevSchema = schema;
@@ -162,10 +162,10 @@ public class OracleMetadataDialect extends DatabaseMetadataDialect {
cols = new ArrayList<>();
}
- cols.add(new DbColumn(colsRs.getString("COLUMN_NAME"),
- decodeType(colsRs.getString("DATA_TYPE")),
+ cols.add(new DbColumn(colsRs.getString(SQL_COLS_COL_NAME),
+ decodeType(colsRs.getString(SQL_COLS_DATA_TYPE)),
false,
- decodeNullable(colsRs.getString("NULLABLE"))
+ decodeNullable(colsRs.getString(SQL_COLS_NULLABLE))
));
}