Drops.SQL.Compilers.Sqlite (drops_relation v0.1.0)

View Source

SQLite-specific compiler for processing database introspection ASTs.

This module implements the Drops.SQL.Compiler behavior to provide SQLite-specific type mapping and AST processing. It converts SQLite database types to Ecto types and handles SQLite-specific type characteristics.

Summary

Functions

opts()

@spec opts() :: keyword()

process(node, opts)

@spec process(tuple(), map()) :: Drops.SQL.Database.Table.t() | term()

visit(arg)

visit(components, opts)

@spec visit(
  {:type, String.t()},
  map()
) :: atom() | String.t()
@spec visit(
  {:table, list()},
  map()
) :: Drops.SQL.Database.Table.t()
@spec visit(
  {:identifier, String.t()},
  map()
) :: atom()
@spec visit(
  {:column, list()},
  map()
) :: Drops.SQL.Database.Column.t()
@spec visit(
  {:type, term()},
  map()
) :: term()
@spec visit(
  {:meta, map()},
  map()
) :: map()
@spec visit(
  {:index, list()},
  map()
) :: Drops.SQL.Database.Index.t()
@spec visit(
  {:foreign_key, list()},
  map()
) :: Drops.SQL.Database.ForeignKey.t()
@spec visit(list(), map()) :: list()
@spec visit(tuple(), map()) :: term()
@spec visit(term(), map()) :: term()