QuackDB.Spatial (quackdb v0.4.0)

Copy Markdown View Source

SQL helpers for DuckDB's spatial extension.

These helpers return iodata fragments for raw DuckDB SQL. Load the spatial extension before using ST_* functions:

QuackDB.query!(conn, QuackDB.Spatial.load())

Geometry values returned by DuckDB's Quack protocol decode as WKB-compatible binaries.

Summary

Functions

Builds ST_AsGeoJSON(geometry).

Builds ST_AsHEXWKB(geometry).

Builds ST_AsText(geometry).

Builds ST_AsWKB(geometry).

Builds ST_MakeEnvelope(min_x, min_y, max_x, max_y).

Builds ST_GeomFromText(wkt).

Builds ST_GeomFromWKB(wkb).

Builds an INSTALL spatial; statement.

Builds ST_Intersects(left, right).

Builds a LOAD spatial; statement.

Builds ST_Point(x, y).

Functions

as_geojson(geometry)

@spec as_geojson(iodata()) :: iodata()

Builds ST_AsGeoJSON(geometry).

as_hex_wkb(geometry)

@spec as_hex_wkb(iodata()) :: iodata()

Builds ST_AsHEXWKB(geometry).

as_text(geometry)

@spec as_text(iodata()) :: iodata()

Builds ST_AsText(geometry).

as_wkb(geometry)

@spec as_wkb(iodata()) :: iodata()

Builds ST_AsWKB(geometry).

envelope(min_x, min_y, max_x, max_y)

@spec envelope(number(), number(), number(), number()) :: iodata()

Builds ST_MakeEnvelope(min_x, min_y, max_x, max_y).

geom_from_text(wkt)

@spec geom_from_text(String.t()) :: iodata()

Builds ST_GeomFromText(wkt).

geom_from_wkb(wkb)

@spec geom_from_wkb(binary() | iodata()) :: iodata()

Builds ST_GeomFromWKB(wkb).

install()

@spec install() :: iodata()

Builds an INSTALL spatial; statement.

intersects(left, right)

@spec intersects(iodata(), iodata()) :: iodata()

Builds ST_Intersects(left, right).

load()

@spec load() :: iodata()

Builds a LOAD spatial; statement.

point(x, y)

@spec point(number(), number()) :: iodata()

Builds ST_Point(x, y).