NAME

Attean::API::Plan - Query plan

VERSION

This document describes Attean::API::Plan version 0.021

DESCRIPTION

The Attean::API::Plan role defines a common API for all query plans.

ATTRIBUTES

cost
distinct
item_type
in_scope_variables
ordered

REQUIRED METHODS

The following methods are required by the Attean::API::Plan role:

impl( $model )

Returns a code reference that when called (without arguments), returns an Attean::API::Iterator object.

METHODS

has_cost
as_string

Returns a tree-structured string representation of this plan, including children.

evaluate( $model )

Evaluates this plan and returns the resulting iterator.

in_scope_variables_union( @plans )

Returns the set union of in_scope_variables of the given plan objects.

subplans_of_type_are_variable_connected( $type )

Returns true if the subpatterns of the given $type are all connected through their in_scope_variables, false otherwise (implying a cartesian product if the connecting plans perform some form of join.

children_are_variable_connected( $type )

Returns true if the children of this plan are all connected through their in_scope_variables, false otherwise (implying a cartesian product if this plan performs some form of join.

BUGS

Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/attean/issues.

SEE ALSO

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

Copyright (c) 2014--2018 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.