Browse Source

defined, fields, field promoted by @pal-alex

5HT 5 years ago
parent
commit
8ed7e3eeca
3 changed files with 17 additions and 2 deletions
  1. 1 1
      mix.exs
  2. 1 1
      src/kvs.app.src
  3. 15 0
      src/kvs.erl

+ 1 - 1
mix.exs

@@ -4,7 +4,7 @@ defmodule KVS.Mixfile do
   def project do
     [
       app: :kvs,
-      version: "6.12.8",
+      version: "6.12.9",
       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.8"},
+    {vsn, "6.12.9"},
     {registered, []},
     {applications, [kernel,stdlib]},
     {mod, { kvs, []}},

+ 15 - 0
src/kvs.erl

@@ -22,6 +22,21 @@ start(_,_) -> supervisor:start_link({local, kvs}, kvs, []).
 stop(_) -> ok.
 test_tabs() -> [ #table{name='$msg', fields=record_info(fields,'$msg')} ].
 
+fields(Table) ->
+  case table(Table) of
+    false -> [];
+    T -> T#table.fields
+  end.
+
+defined(TableRecord, Field) ->
+  FieldsList = fields(element(1, TableRecord)),
+  lists:member(Field, FieldsList).
+
+field(TableRecord, Field) ->
+  FieldsList = fields(element(1, TableRecord)),
+  Index = string:str(FieldsList, [Field]) + 1,
+  element(Index, TableRecord).
+
 % kvs api
 
 dba()              -> application:get_env(kvs,dba,kvs_mnesia).