Supabase.PostgREST.FilterBuilder.Behaviour behaviour (supabase_postgrest v1.1.0)

View Source

Defines the interface for the FilterBuilder module

Summary

Types

condition()

@type condition() ::
  {operator(), column :: String.t(), value :: String.Chars.t()}
  | {:not, condition()}
  | {:and | :or, [condition()]}
  | {:eq | :like | :ilike | :gt | :gte | :lt | :lte | :match | :imatch,
     column :: String.t(), pattern :: [String.Chars.t()]}
  | {:eq | :like | :ilike | :gt | :gte | :lt | :lte | :match | :imatch,
     column :: String.t(), pattern :: [String.Chars.t()],
     [{:any | :all, boolean()}]}

operator()

@type operator() ::
  :eq
  | :gt
  | :gte
  | :lt
  | :lte
  | :neq
  | :like
  | :ilike
  | :match
  | :imatch
  | :in
  | :is
  | :isdistinct
  | :fts
  | :plfts
  | :phfts
  | :wfts
  | :cs
  | :cd
  | :ov
  | :sl
  | :sr
  | :nxr
  | :nxl
  | :adj
  | :not
  | :and
  | :or
  | :all
  | :any

text_search_options()

@type text_search_options() :: [{:type, :plain | :phrase | :websearch}]

Callbacks

all_of(t, list)

all_of(t, list, list)

@callback all_of(Supabase.Fetcher.Request.t(), [condition()], [
  {:foreign_table, String.t()}
]) ::
  Supabase.Fetcher.Request.t()

any_of(t, list)

any_of(t, list, list)

@callback any_of(Supabase.Fetcher.Request.t(), [condition()], [
  {:foreign_table, String.t()}
]) ::
  Supabase.Fetcher.Request.t()

contained_by(t, column, list)

@callback contained_by(Supabase.Fetcher.Request.t(), column :: String.t(), [
  String.Chars.t()
]) ::
  Supabase.Fetcher.Request.t()

contains(t, column, list)

@callback contains(Supabase.Fetcher.Request.t(), column :: String.t(), [String.Chars.t()]) ::
  Supabase.Fetcher.Request.t()

eq(t, column, t)

filter(t, column, operator, t)

gt(t, column, t)

gte(t, column, t)

ilike(t, column, term)

@callback ilike(Supabase.Fetcher.Request.t(), column :: String.t(), term()) ::
  Supabase.Fetcher.Request.t()

ilike_all_of(t, column, list)

@callback ilike_all_of(Supabase.Fetcher.Request.t(), column :: String.t(), [
  String.Chars.t()
]) ::
  Supabase.Fetcher.Request.t()

ilike_any_of(t, column, list)

@callback ilike_any_of(Supabase.Fetcher.Request.t(), column :: String.t(), [
  String.Chars.t()
]) ::
  Supabase.Fetcher.Request.t()

is(t, column, t)

like(t, column, t)

like_all_of(t, column, list)

@callback like_all_of(Supabase.Fetcher.Request.t(), column :: String.t(), [
  String.Chars.t()
]) ::
  Supabase.Fetcher.Request.t()

like_any_of(t, column, list)

@callback like_any_of(Supabase.Fetcher.Request.t(), column :: String.t(), [
  String.Chars.t()
]) ::
  Supabase.Fetcher.Request.t()

lt(t, column, t)

lte(t, column, t)

match(t, query)

@callback match(Supabase.Fetcher.Request.t(), query :: matcher) ::
  Supabase.Fetcher.Request.t()
when matcher: %{required(String.t()) => String.Chars.t()}

negate(t, column, operator, t)

neq(t, column, t)

overlaps(t, column, list)

@callback overlaps(Supabase.Fetcher.Request.t(), column :: String.t(), [String.Chars.t()]) ::
  Supabase.Fetcher.Request.t()

range_adjacent(t, column, t)

@callback range_adjacent(
  Supabase.Fetcher.Request.t(),
  column :: String.t(),
  String.Chars.t()
) ::
  Supabase.Fetcher.Request.t()

range_gt(t, column, t)

range_gte(t, column, t)

range_lt(t, column, t)

range_lte(t, column, t)

text_search(t, column, query)

@callback text_search(
  Supabase.Fetcher.Request.t(),
  column :: String.t(),
  query :: String.t()
) ::
  Supabase.Fetcher.Request.t()

text_search(t, column, query, text_search_options)

@callback text_search(
  Supabase.Fetcher.Request.t(),
  column :: String.t(),
  query :: String.t(),
  text_search_options()
) :: Supabase.Fetcher.Request.t()

within(t, column, t)