sqlode/capabilities

Single source of truth for the capabilities that sqlode currently advertises to public consumers.

CHANGELOG.md, README.md, and any other release-facing document that needs to claim “supported X” values should derive from the lists below or from manifest_markdown() instead of restating them by hand. The accompanying test/capabilities_test.gleam pins the rendered manifest against the tracked file doc/capabilities.md so any change to the supported set forces a conscious doc refresh.

The split between fully-supported and planned query commands matches what generate.gleam enforces at generation time: the planned commands are currently rejected with an UnsupportedAnnotation error, so listing them as “Added” without qualification (as CHANGELOG.md did before this module) gives a false impression to public users.

Types

Per-engine runtime support matrix. Each entry pairs an engine with the runtimes sqlode can target for it and the Hex driver the generated native adapter imports. raw mode is always supported because the generated code never needs a driver; native mode requires a driver and is enumerated here so docs and the manifest stop relying on the flat “supported engines” list to imply parity.

pub type EngineSupport {
  EngineSupport(
    engine: model.Engine,
    raw: Bool,
    native: Bool,
    native_driver: String,
  )
}

Constructors

  • EngineSupport(
      engine: model.Engine,
      raw: Bool,
      native: Bool,
      native_driver: String,
    )

    Arguments

    native_driver

    Hex package name imported by the generated native adapter, or "—" when no native runtime is supported. Avoids dragging gleam/option into the public API for a single field.

Values

pub fn engine_runtime_support() -> List(EngineSupport)
pub fn fully_supported_query_commands() -> List(
  runtime.QueryCommand,
)

Query annotations that are fully supported end-to-end: parsing, analysis, and code generation all complete without the validate_unsupported_annotations guard rejecting them.

pub fn manifest_markdown() -> String

Render a Markdown manifest that the test suite pins against doc/capabilities.md. The generated shape is intentionally stable: adding a new capability changes the file, adding a new section changes this function.

pub fn planned_query_commands() -> List(runtime.QueryCommand)

Query annotations that the parser accepts for sqlc source compatibility but that generation currently refuses with an UnsupportedAnnotation error.

pub fn supported_engines() -> List(model.Engine)
pub fn supported_macros() -> List(String)

Macro helpers sqlode recognises inside query files. Emitted names include the sqlode. prefix that appears in user SQL.

pub fn supported_placeholder_styles() -> List(
  #(model.Engine, String),
)

Placeholder styles emitted for the three engines sqlode targets. The pair matches the mapping in codegen/queries.gleam.

pub fn supported_runtimes() -> List(model.Runtime)
pub fn supported_type_mappings() -> List(model.TypeMapping)
Search Document