From 25e0ec895534dfc3bfa4ad7943606e633f5af46f Mon Sep 17 00:00:00 2001
From: bigbes <bigbes@gmail.com>
Date: Thu, 25 Jun 2015 11:51:13 +0300
Subject: [PATCH] Issue #319: [tarantool] Error on scan operation and replace
 problems

closes #319
---
 .../main/java/com/yahoo/ycsb/db/TarantoolClient.java | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tarantool/src/main/java/com/yahoo/ycsb/db/TarantoolClient.java b/tarantool/src/main/java/com/yahoo/ycsb/db/TarantoolClient.java
index 6d954ad2..aa26b13b 100644
--- a/tarantool/src/main/java/com/yahoo/ycsb/db/TarantoolClient.java
+++ b/tarantool/src/main/java/com/yahoo/ycsb/db/TarantoolClient.java
@@ -92,7 +92,7 @@ public class TarantoolClient extends DB {
 			j += 2;
 		}
 		try {
-			this.connection.insert(this.spaceNo, tuple);
+			this.connection.replace(this.spaceNo, tuple);
 		} catch (TarantoolException exc) {
 			logger.log(Level.SEVERE,"Can't insert element", exc);
 			return 1;
@@ -131,7 +131,7 @@ public class TarantoolClient extends DB {
 	public int scan(String table, String startkey,
 			int recordcount, Set<String> fields,
 			Vector<HashMap<String, ByteIterator>> result) {
-		List<String> response;
+		List<List<String>> response;
 		try {
 			response = this.connection.select(this.spaceNo, 0, Arrays.asList(startkey), 0, recordcount, 6);
 		} catch (TarantoolException exc) {
@@ -140,9 +140,11 @@ public class TarantoolClient extends DB {
 		} catch (NullPointerException exc) {
 			return 1;
 		}
-		HashMap<String, ByteIterator> temp = tuple_convert_filter(response, fields);
-		if (!temp.isEmpty())
-			result.add((HashMap<String, ByteIterator>) temp.clone());
+		for(List<String> i: response) {
+			HashMap<String, ByteIterator> temp = tuple_convert_filter(i, fields);
+			if (!temp.isEmpty())
+				result.add((HashMap<String, ByteIterator>) temp.clone());
+		}
 		return 0;
 	}
 
-- 
GitLab