DIH update trouble with sql field name "pk" -------------------------------------------
Key: SOLR-2529 URL: https://issues.apache.org/jira/browse/SOLR-2529 Project: Solr Issue Type: Bug Components: contrib - DataImportHandler Affects Versions: 3.1, 3.2 Environment: Debian Lenny, JRE 6 Reporter: Thomas Gambier Priority: Blocker We are unable to use the DIH when database columnName primary key is named "pk". The reported solr error is : "deltaQuery has no column to resolve to declared primary key pk='pk'" We have made some investigations and found that the DIH have a mistake when it's looking for the primary key between row's columns list. private String findMatchingPkColumn(String pk, Map row) { if (row.containsKey(pk)) throw new IllegalArgumentException( String.format("deltaQuery returned a row with null for primary key %s", pk)); String resolvedPk = null; for (String columnName : row.keySet()) { if (columnName.endsWith("." + pk) || pk.endsWith("." + columnName)) { if (resolvedPk != null) throw new IllegalArgumentException( String.format( "deltaQuery has more than one column (%s and %s) that might resolve to declared primary key pk='%s'", resolvedPk, columnName, pk)); resolvedPk = columnName; } } if (resolvedPk == null) throw new IllegalArgumentException( String.format("deltaQuery has no column to resolve to declared primary key pk='%s'", pk)); LOG.info(String.format("Resolving deltaQuery column '%s' to match entity's declared pk '%s'", resolvedPk, pk)); return resolvedPk; } -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org