Drops.SQL.Compilers.Postgres (drops_relation v0.1.0)
View SourcePostgreSQL-specific compiler for processing database introspection ASTs.
This module implements the Drops.SQL.Compiler
behavior to provide PostgreSQL-specific
type mapping and AST processing. It converts PostgreSQL database types to Ecto types
and handles PostgreSQL's rich type system including arrays, custom types, and advanced
data types.
Summary
Functions
@spec opts() :: keyword()
@spec process(tuple(), map()) :: Drops.SQL.Database.Table.t() | term()
@spec visit( {:type, String.t()}, map() ) :: atom() | tuple() | String.t()
@spec visit( {:type, {:enum, [String.t()]}}, map() ) :: {:enum, [String.t()]}
@spec visit( {:default, nil}, map() ) :: nil
@spec visit( {:default, String.t()}, map() ) :: String.t()
@spec visit( {:default, String.t()}, map() ) :: term()
@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()