Packages
ecto_tablestore
0.10.0
0.15.1
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
Alibaba Tablestore adapter for Ecto
Current section
Files
Jump to
Current section
Files
lib/ecto_tablestore/sequence.ex
defmodule EctoTablestore.Sequence do
@moduledoc false
require Logger
alias ExAliyunOts.{Var, Sequence}
@default_seq "ecto_tablestore_default_seq"
def default_table, do: @default_seq
def create(instance, seq_name \\ @default_seq) do
new_seq = %Var.NewSequence{name: seq_name}
result = Sequence.create(instance, new_seq)
Logger.info("create a sequence: #{seq_name} result: #{inspect(result)}")
result
end
def next_value(instance, seq_name, field_name)
when is_bitstring(seq_name) and is_bitstring(field_name) do
var_next = %Var.GetSequenceNextValue{
name: seq_name,
event: field_name
}
Sequence.next_value(instance, var_next)
end
@doc """
Use a global sequence table to store all kinds of sequences to the tables.
"""
def next_value(instance, event)
when is_bitstring(event) do
var_next = %Var.GetSequenceNextValue{
name: @default_seq,
event: event
}
Sequence.next_value(instance, var_next)
end
end