Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions rust/geodatafusion/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,24 @@
pub(crate) mod data_types;
pub(crate) mod error;
pub mod udf;

/// Register all UDFs defined in geodatafusion
pub fn register(session_context: &datafusion::prelude::SessionContext) {
crate::udf::geo::measurement::register(session_context);

crate::udf::geo::processing::register(session_context);

crate::udf::geo::relationships::register(session_context);

crate::udf::geo::validation::register(session_context);

crate::udf::geohash::register(session_context);

crate::udf::native::accessors::register(session_context);

crate::udf::native::bounding_box::register(session_context);

crate::udf::native::constructors::register(session_context);

crate::udf::native::io::register(session_context);
}
6 changes: 6 additions & 0 deletions rust/geodatafusion/src/udf/geo/measurement/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,9 @@ mod length;
pub use area::Area;
pub use distance::Distance;
pub use length::Length;

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(Area::default().into());
session_context.register_udf(Distance::default().into());
session_context.register_udf(Length::default().into());
}
10 changes: 10 additions & 0 deletions rust/geodatafusion/src/udf/geo/processing/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,13 @@ pub use convex_hull::ConvexHull;
pub use oriented_envelope::OrientedEnvelope;
pub use point_on_surface::PointOnSurface;
pub use simplify::{Simplify, SimplifyPreserveTopology, SimplifyVW};

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(Centroid::default().into());
session_context.register_udf(ConvexHull::default().into());
session_context.register_udf(OrientedEnvelope::default().into());
session_context.register_udf(PointOnSurface::default().into());
session_context.register_udf(Simplify::default().into());
session_context.register_udf(SimplifyPreserveTopology::default().into());
session_context.register_udf(SimplifyVW::default().into());
}
13 changes: 13 additions & 0 deletions rust/geodatafusion/src/udf/geo/relationships/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,16 @@ mod topological;
pub use topological::{
Contains, CoveredBy, Covers, Crosses, Disjoint, Equals, Intersects, Overlaps, Touches, Within,
};

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(Contains::default().into());
session_context.register_udf(CoveredBy::default().into());
session_context.register_udf(Covers::default().into());
session_context.register_udf(Crosses::default().into());
session_context.register_udf(Disjoint::default().into());
session_context.register_udf(Equals::default().into());
session_context.register_udf(Intersects::default().into());
session_context.register_udf(Overlaps::default().into());
session_context.register_udf(Touches::default().into());
session_context.register_udf(Within::default().into());
}
5 changes: 5 additions & 0 deletions rust/geodatafusion/src/udf/geo/validation/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@ mod is_valid_reason;

pub use is_valid::IsValid;
pub use is_valid_reason::IsValidReason;

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(IsValid::default().into());
session_context.register_udf(IsValidReason::default().into());
}
6 changes: 6 additions & 0 deletions rust/geodatafusion/src/udf/geohash/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,9 @@ mod point_from_geohash;
pub use box2d_from_geohash::Box2DFromGeoHash;
pub use geohash::GeoHash;
pub use point_from_geohash::PointFromGeoHash;

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(GeoHash::default().into());
session_context.register_udf(Box2DFromGeoHash::default().into());
session_context.register_udf(PointFromGeoHash::default().into());
}
15 changes: 15 additions & 0 deletions rust/geodatafusion/src/udf/native/accessors/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,18 @@ pub use line_string::{EndPoint, StartPoint};
pub use npoints::NPoints;
pub use num_interior_rings::NumInteriorRings;
pub use point::{M, X, Y, Z};

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(CoordDim::default().into());
session_context.register_udf(NDims::default().into());
session_context.register_udf(GeometryType::default().into());
session_context.register_udf(ST_GeometryType::default().into());
session_context.register_udf(EndPoint::default().into());
session_context.register_udf(StartPoint::default().into());
session_context.register_udf(NPoints::default().into());
session_context.register_udf(NumInteriorRings::default().into());
session_context.register_udf(M::default().into());
session_context.register_udf(X::default().into());
session_context.register_udf(Y::default().into());
session_context.register_udf(Z::default().into());
}
14 changes: 14 additions & 0 deletions rust/geodatafusion/src/udf/native/bounding_box/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,17 @@ pub use r#box::{Box2D, Box3D};
pub use extent::Extent;
pub use extrema::{XMax, XMin, YMax, YMin, ZMax, ZMin};
pub use make_box::{MakeBox2D, MakeBox3D};

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(Box2D::default().into());
session_context.register_udf(Box3D::default().into());
session_context.register_udaf(Extent::default().into());
session_context.register_udf(XMax::default().into());
session_context.register_udf(XMin::default().into());
session_context.register_udf(YMax::default().into());
session_context.register_udf(YMin::default().into());
session_context.register_udf(ZMax::default().into());
session_context.register_udf(ZMin::default().into());
session_context.register_udf(MakeBox2D::default().into());
session_context.register_udf(MakeBox3D::default().into());
}
9 changes: 9 additions & 0 deletions rust/geodatafusion/src/udf/native/constructors/mod.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
mod point;

pub use point::{MakePoint, MakePointM, Point, PointM, PointZ, PointZM};

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(MakePoint::default().into());
session_context.register_udf(MakePointM::default().into());
session_context.register_udf(Point::default().into());
session_context.register_udf(PointM::default().into());
session_context.register_udf(PointZ::default().into());
session_context.register_udf(PointZM::default().into());
}
7 changes: 7 additions & 0 deletions rust/geodatafusion/src/udf/native/io/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,10 @@ mod wkt;

pub use wkb::{AsBinary, GeomFromWKB};
pub use wkt::{AsText, GeomFromText};

pub fn register(session_context: &datafusion::prelude::SessionContext) {
session_context.register_udf(AsBinary::default().into());
session_context.register_udf(GeomFromWKB::default().into());
session_context.register_udf(AsText::default().into());
session_context.register_udf(GeomFromText::default().into());
}
Loading