Browse Source

fix take 2

5HT 5 years ago
parent
commit
92f26ade88
4 changed files with 12 additions and 13 deletions
  1. 1 1
      mix.exs
  2. 1 1
      src/kvs.app.src
  3. 3 3
      src/stores/kvs_st.erl
  4. 7 8
      test/test_helper.exs

+ 1 - 1
mix.exs

@@ -4,7 +4,7 @@ defmodule KVS.Mixfile do
   def project do
     [
       app: :kvs,
-      version: "6.12.4",
+      version: "6.12.5",
       description: "KVS Abstract Chain Database",
       package: package(),
       deps: deps()

+ 1 - 1
src/kvs.app.src

@@ -1,6 +1,6 @@
 {application, kvs,
    [{description, "KVS Abstract Chain Database"},
-    {vsn, "6.12.4"},
+    {vsn, "6.12.5"},
     {registered, []},
     {applications, [kernel,stdlib]},
     {mod, { kvs, []}},

+ 3 - 3
src/stores/kvs_st.erl

@@ -80,9 +80,9 @@ take(#reader{args=N,feed=Feed,cache={T,O},dir=1}=C) ->
    Res = kvs_rocks:prev(I,Key,size(Key),K,BERT,[],case N of -1 -> -1; J -> J + 1 end,0),
    case {lists:reverse(Res),length(Res) < N -1 orelse N == -1, N == length(Res)} of
         {[],_, _}    -> C#reader{args=[],cache=[]};
-        {[H|_] = ResRev,_, true} -> C#reader{args=ResRev,cache={e(1,H),e(2,H)}};
-        {[H|X],false, _} -> C#reader{args=X,cache={e(1,H),e(2,H)}};
-        {[H|X],true, _} -> C#reader{args=Res,cache={e(1,H),e(2,H)}} end.
+        {[H|_], _, true} -> [HX|_] = Res, C#reader{args=Res,cache={e(1,HX),e(2,HX)}};
+        {[H|X],false, _} -> [HX|_] = Res, C#reader{args=X,cache={e(1,HX),e(2,HX)}};
+        {[H|X],true, _}  -> [HX|_] = Res, C#reader{args=Res,cache={e(1,HX),e(2,HX)}} end.
 
 % new, save, load, up, down, top, bot
 

+ 7 - 8
test/test_helper.exs

@@ -84,7 +84,7 @@ defmodule BPE.Test do
     n = :kvs.take(KVS.reader(:kvs.load_reader(tid), args: 5, dir: 1))
     b = :kvs.feed(id)
     assert KVS.reader(t, :args) == b
-    assert KVS.reader(n, :args) == b
+    assert KVS.reader(n, :args) == :lists.reverse b
   end
 
   test "take back2" do
@@ -105,30 +105,29 @@ defmodule BPE.Test do
     x = 5
     p =2
     :kvs.save(:kvs.writer(id))
-    :lists.map(fn _ -> :kvs.append({:"$msg", [], [], [], [], []}, id) end, :lists.seq(1, x))
+    :lists.map(fn _ -> :kvs.append({:"$msg", :kvs.seq([],[]), [], [], [], []}, id) end, :lists.seq(1, x))
     r = :kvs.save(:kvs.reader(id))
     rid = KVS.reader(r, :id)
-    t1 = :kvs.save(:kvs.take(KVS.reader(:kvs.load_reader(rid), args: p, dir: 0)))
+    t1 = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: p, dir: 0))
 
     z1 = :lists.reverse(KVS.reader(t1, :args))
     r = :kvs.save(t1)
 
-    t2 = :kvs.save(:kvs.take(KVS.reader(:kvs.load_reader(rid), args: p, dir: 0)))
+    t2 = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: p, dir: 0))
     z2 = :lists.reverse(KVS.reader(t2, :args))
     r = :kvs.save(t2)
 
-    t3 = :kvs.save(:kvs.take(KVS.reader(:kvs.load_reader(rid), args: p, dir: 0)))
+    t3 = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: p, dir: 0))
     z3 = :lists.reverse(KVS.reader(t3, :args))
 
     KVS.reader(id: tid) = :kvs.save(KVS.reader(t3, dir: 1))
 
-    n1 = :kvs.save(:kvs.take(KVS.reader(:kvs.load_reader(tid), args: p, dir: 1)))
+    n1 = :kvs.take(KVS.reader(:kvs.load_reader(tid), args: p, dir: 1))
     nz1 = :lists.reverse(KVS.reader(n1, :args))
     KVS.reader(id: tid) = :kvs.save(KVS.reader(n1, dir: 1))
 
-    n2 = :kvs.save(:kvs.take(KVS.reader(:kvs.load_reader(tid), args: p, dir: 1)))
+    n2 = :kvs.take(KVS.reader(:kvs.load_reader(tid), args: p, dir: 1))
     nz2 = :lists.reverse(KVS.reader(n2, :args))
-    r = :kvs.save(KVS.reader(n2, dir: 1))
     assert :lists.reverse(z1 ++ z2 ++ z3) == :lists.reverse(nz2 ++ nz1 ++ z3)
   end