AshR2RML.Introspection (AshR2RML v26.8.22)

Copy Markdown View Source

Data-layer-aware Ash introspection used before semantic mapping serialization.

AshR2RML never owns persistence. This module asks Ash and, when present, the active relational data layer for table/schema/column/join facts. Optional adapters are resolved dynamically so AshPostgres is not a mandatory runtime dependency merely to use the semantic core.

Summary

Functions

column(resource, attribute_name)

@spec column(module(), atom()) :: {:ok, String.t()} | {:error, AshR2RML.Refusal.t()}

identities(resource_or_dsl, dsl \\ nil)

@spec identities(module() | Spark.Dsl.t(), Spark.Dsl.t() | nil) :: [[atom()]]

logical_table(resource, opts \\ [])

@spec logical_table(
  module(),
  keyword()
) :: {:ok, AshR2RML.Mapping.LogicalTable.t()} | {:error, AshR2RML.Refusal.t()}

relationship(resource, relationship_name)

@spec relationship(module(), atom()) :: {:ok, map()} | {:error, AshR2RML.Refusal.t()}

stable_subject_identity?(resource, template_fields)

@spec stable_subject_identity?(module(), [String.t()]) :: boolean()