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: [email protected]
For additional commands, e-mail: [email protected]