fixed a bug that caused secondary indexes to fail in computing the primarykey hash value for logging/locking; using proper undo functions for LSM indexes
git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_lsm_stabilization@1102 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/declared/AqlMetadataProvider.java b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/declared/AqlMetadataProvider.java
index 08e2e07..db761da 100644
--- a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/declared/AqlMetadataProvider.java
+++ b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/declared/AqlMetadataProvider.java
@@ -1005,7 +1005,7 @@
//prepare callback
JobId jobId = ((JobEventListenerFactory) spec.getJobletEventListenerFactory()).getJobId();
int datasetId = dataset.getDatasetId();
- int[] primaryKeyFields = new int[numKeys];
+ int[] primaryKeyFields = new int[numPrimaryKeys];
i = 0;
for (LogicalVariable varKey : primaryKeys) {
int idx = propagatedSchema.findVariable(varKey);
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/opcallbacks/SecondaryIndexModificationOperationCallback.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/opcallbacks/SecondaryIndexModificationOperationCallback.java
index fa28c0c..b7d64ec 100644
--- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/opcallbacks/SecondaryIndexModificationOperationCallback.java
+++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/opcallbacks/SecondaryIndexModificationOperationCallback.java
@@ -42,7 +42,8 @@
public SecondaryIndexModificationOperationCallback(int datasetId, int[] primaryKeyFields,
IBinaryHashFunctionFactory[] primaryKeyHashFunctionFactories, TransactionContext txnCtx,
- ILockManager lockManager, TransactionSubsystem txnSubsystem, long resourceId, byte resourceType, IndexOperation indexOp) {
+ ILockManager lockManager, TransactionSubsystem txnSubsystem, long resourceId, byte resourceType,
+ IndexOperation indexOp) {
super(datasetId, primaryKeyFields, primaryKeyHashFunctionFactories, txnCtx, lockManager);
this.resourceId = resourceId;
this.resourceType = resourceType;
diff --git a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/IndexResourceManager.java b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/IndexResourceManager.java
index a70fbe2..703e3e6 100644
--- a/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/IndexResourceManager.java
+++ b/asterix-transactions/src/main/java/edu/uci/ics/asterix/transaction/management/service/logging/IndexResourceManager.java
@@ -89,18 +89,18 @@
offset += oldValueSize;
if (oldOperation == (byte) IndexOperation.DELETE.ordinal()) {
- indexAccessor.delete(oldTuple);
+ indexAccessor.forceDelete(oldTuple);
} else {
- indexAccessor.insert(oldTuple);
+ indexAccessor.forceInsert(oldTuple);
}
} else {
- indexAccessor.physicalDelete(newTuple);
+ indexAccessor.forcePhysicalDelete(newTuple);
}
} else {
if (newOperation == (byte) IndexOperation.DELETE.ordinal()) {
- indexAccessor.insert(newTuple);
+ indexAccessor.forceInsert(newTuple);
} else {
- indexAccessor.delete(newTuple);
+ indexAccessor.forceDelete(newTuple);
}
}
} catch (Exception e) {