AshClickhouse.DataLayer.Dsl.Macros (AshClickhouse v0.3.0)

Copy Markdown View Source

Compile-time macros for the ClickHouse DSL.

This module only contains the clickhouse/1 macro (and its private helpers). It is intentionally kept separate from AshClickhouse.DataLayer.Dsl so that importing it does not also import the runtime getter functions (such as table/1). That separation matters: a resource may define a local helper macro or function named like a DSL key (e.g. table/1) inside a clickhouse block value, and we must not shadow it with an imported getter.

Summary

Functions

Macro for configuring ClickHouse options in Ash resources.

Functions

clickhouse(list)

(macro)
@spec clickhouse(keyword()) :: Macro.t()

Macro for configuring ClickHouse options in Ash resources.

Import this module (and only this module) to use the clickhouse block:

import AshClickhouse.DataLayer.Dsl.Macros

clickhouse do
  table "my_table"
  repo MyApp.Repo
end

The runtime getters (e.g. AshClickhouse.DataLayer.Dsl.table/1) live in AshClickhouse.DataLayer.Dsl and are not imported by this module.