Skip to content

Instantly share code, notes, and snippets.

@pgp44
Created April 14, 2019 04:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pgp44/52d9a9852533b258d3a63d0188b2a60c to your computer and use it in GitHub Desktop.
Save pgp44/52d9a9852533b258d3a63d0188b2a60c to your computer and use it in GitHub Desktop.
create aggregate largest_triangle (point_t,point_t,point_t) (
stype = triangle_t,
sfunc = largest_triangle_accum
);
create function largest_triangle_accum (maxsurfacetriangle triangle_t, p1 point_t, p2 point_t, p3 point_t)
returns triangle_t
language SQL
as $$
select
case
when maxsurfacetriangle is null or
triangle_surface(p1,p2,p3) > maxsurfacetriangle.surface
then (p1,p2,p3,triangle_surface(p1,p2,p3))::triangle_t
else maxsurfacetriangle
end
$$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment