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 dragginggleam/optioninto 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)