Skip to content
Snippets Groups Projects
Commit c5edd9c3 authored by kristofszentes's avatar kristofszentes
Browse files

repaired BR_G21

parent 01943e94
No related branches found
No related tags found
No related merge requests found
......@@ -461,9 +461,9 @@ defmodule Index.Augmentation do
end
## BR_G21
def pubUnique(local_iindex, global_iindex, key) do
## key is supposed to be unique for local tables
[{key, entry}] = :ets.lookup(local_iindex, key)
def pubUnique(local_iindex, global_iindex) do
:ets.match_object(local_iindex, {:"$1", :"$2"})
|> Enum.map(fn {key, entry} ->
## match global index entries on public key and op
if :dets.match(global_iindex, {:"$1", %{pub: entry.pub, op: "CREATE"}}) == [] do
## Map.merge(entry,%{pubUnique: ...}) appends the entry and the new field
......@@ -471,10 +471,11 @@ defmodule Index.Augmentation do
else
:ets.insert(local_iindex, {key, Map.merge(entry, %{pubUnique: false})})
end
end)
end
## BR_G33
def excludedIsMember(local_iindex, global_iindex, key) do
def excludedIsMember(local_iindex, global_iindex) do
:ets.match_object(local_iindex, {:"$1", :"$2"})
|> Enum.map(fn {key, entry} ->
if entry.member != false do
......
......@@ -5,7 +5,7 @@ defmodule Dunixir.MixProject do
[
app: :dunixir,
version: "0.1.0",
elixir: "~> 1.11",
#elixir: "~> 1.11",
start_permanent: Mix.env() == :prod,
deps: deps()
]
......
......@@ -37,10 +37,10 @@ defmodule Identity.Augmentation.ExcludedIsMember do
[:global_iindex_a, :global_iindex_b]
)
Index.Augmentation.IIndex.excludedIsMember(local_iindex_a, global_iindex_a, "pub_toto")
Index.Augmentation.IIndex.excludedIsMember(local_iindex_a, global_iindex_a, "pub_tata")
Index.Augmentation.IIndex.excludedIsMember(local_iindex_b, global_iindex_b, "pub_toto")
Index.Augmentation.IIndex.excludedIsMember(local_iindex_b, global_iindex_b, "pub_tata")
Index.Augmentation.IIndex.excludedIsMember(local_iindex_a, global_iindex_a)
Index.Augmentation.IIndex.excludedIsMember(local_iindex_a, global_iindex_a)
Index.Augmentation.IIndex.excludedIsMember(local_iindex_b, global_iindex_b)
Index.Augmentation.IIndex.excludedIsMember(local_iindex_b, global_iindex_b)
[{"pub_toto", a_id}] = :ets.lookup(local_iindex_a, "pub_toto")
[{"pub_toto", b_id}] = :ets.lookup(local_iindex_b, "pub_toto")
......
......@@ -27,8 +27,8 @@ defmodule Identity.Augmentation.PubUnique do
new_elt = Map.replace!(elt, :pub, "pub_tutu")
:dets.insert(global_iindex, {"pub_tutu", new_elt})
Index.Augmentation.IIndex.pubUnique(local_iindex, global_iindex, "pub_toto")
Index.Augmentation.IIndex.pubUnique(local_iindex, global_iindex, "pub_tata")
Index.Augmentation.IIndex.pubUnique(local_iindex, global_iindex)
Index.Augmentation.IIndex.pubUnique(local_iindex, global_iindex)
[{"pub_toto", toto}] = :ets.lookup(local_iindex, "pub_toto")
[{"pub_tata", tata}] = :ets.lookup(local_iindex, "pub_tata")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment