1 // Licensed to the Apache Software Foundation (ASF) under one
2 // or more contributor license agreements.  See the NOTICE file
3 // distributed with this work for additional information
4 // regarding copyright ownership.  The ASF licenses this file
5 // to you under the Apache License, Version 2.0 (the
6 // "License"); you may not use this file except in compliance
7 // with the License.  You may obtain a copy of the License at
8 //
9 //   http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing,
12 // software distributed under the License is distributed on an
13 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 // KIND, either express or implied.  See the License for the
15 // specific language governing permissions and limitations
16 // under the License.
17 
18 //! This module provides a logical query plan enum that can describe queries. Logical query
19 //! plans can be created from a SQL statement or built programmatically via the Table API.
20 //!
21 //! Logical query plans can then be optimized and executed directly, or translated into
22 //! physical query plans and executed.
23 
24 mod builder;
25 mod dfschema;
26 mod display;
27 mod expr;
28 mod extension;
29 mod operators;
30 mod plan;
31 mod registry;
32 pub use builder::LogicalPlanBuilder;
33 pub use dfschema::{DFField, DFSchema, DFSchemaRef, ToDFSchema};
34 pub use display::display_schema;
35 pub use expr::{
36     abs, acos, and, array, asin, atan, avg, binary_expr, bit_length, case, ceil,
37     character_length, col, combine_filters, concat, cos, count, count_distinct,
38     create_udaf, create_udf, exp, exprlist_to_fields, floor, in_list, length, lit, ln,
39     log10, log2, lower, ltrim, max, md5, min, octet_length, or, round, rtrim, sha224,
40     sha256, sha384, sha512, signum, sin, sqrt, sum, tan, trim, trunc, upper, when, Expr,
41     ExpressionVisitor, Literal, Recursion,
42 };
43 pub use extension::UserDefinedLogicalNode;
44 pub use operators::Operator;
45 pub use plan::{
46     JoinType, LogicalPlan, Partitioning, PlanType, PlanVisitor, StringifiedPlan,
47 };
48 pub use registry::FunctionRegistry;
49