This is an automated email from the ASF dual-hosted git repository. dschneider pushed a commit to branch feature/GEODE-3781 in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-3781 by this push: new 0ff46e6 more getColumnToValueList work 0ff46e6 is described below commit 0ff46e662d6c247e048868ba165ba50111d36617 Author: Darrel Schneider <dschnei...@pivotal.io> AuthorDate: Wed Oct 25 13:40:05 2017 -0700 more getColumnToValueList work --- .../apache/geode/connectors/jdbc/JDBCManager.java | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JDBCManager.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JDBCManager.java index fb53710..67fdc1f 100644 --- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JDBCManager.java +++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JDBCManager.java @@ -19,6 +19,7 @@ import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -135,8 +136,18 @@ public class JDBCManager { private List<ColumnValue> getColumnToValueList(String tableName, Object key, PdxInstance value, Operation operation) { Set<String> keyColumnNames = getKeyColumnNames(tableName); - for (String fieldName : value.getFieldNames()) { + List<String> fieldNames = value.getFieldNames(); + List<ColumnValue> result = new ArrayList<>(fieldNames.size()+1); + for (String fieldName : fieldNames) { String columnName = mapFieldNameToColumnName(fieldName, tableName); + if (columnName == null) { + // this field is not mapped to a column + if (isFieldExcluded(fieldName)) { + continue; + } else { + throw new IllegalStateException("No column on table " + tableName + " was found for the field named " + fieldName); + } + } boolean isKey = keyColumnNames.contains(columnName); if (operation.isDestroy() && !isKey) { @@ -145,8 +156,15 @@ public class JDBCManager { // TODO: what if isKey and columnValue needs to be the key object instead of from PdxInstance? Object columnValue = value.getField(fieldName); ColumnValue cv = new ColumnValue(isKey, fieldName, columnValue); + // TODO: any need to order the items in the list? + result.add(cv); } - return null; + return result; + } + + private boolean isFieldExcluded(String fieldName) { + // TODO Auto-generated method stub + return false; } private String mapFieldNameToColumnName(String fieldName, String tableName) { @@ -163,7 +181,4 @@ public class JDBCManager { // TODO: check config for mapping return region.getName(); } - - - } -- To stop receiving notification emails like this one, please contact ['"commits@geode.apache.org" <commits@geode.apache.org>'].