All Classes and Interfaces

Class
Description
 
 
 
 
 
 
Abstract class for string-to-something conversions.
 
 
 
 
DeMuxExchange is opposite of MuxExchange.
Helps to run a query and await on the results.
Abstract base class for all JSON element parsers.
 
 
 
 
 
 
 
Represents table group scan with metadata usage.
This class is responsible for filtering different metadata levels.
Base class for the runtime execution implementation of the Hash-Join and Hash-SetOp operator
 
This holds information about the spilled partitions for the build and probe side.
Abstract base class for Index collection (collection of Index descriptors)
Abstract base class for an Index descriptor
 
 
 
 
 
Describes an operator that expects more than one children operators as its input.
Multiplexing Exchange (MuxExchange) is used when results from multiple minor fragments belonging to the same major fragment running on a node need to be collected at one fragment on the same node before distributing the results further.
 
 
This class is responsible for filtering different metadata levels including row group level.
 
 
Helper class responsible for creating and managing DrillFileSystem.
Abstract base class for file system based partition descriptors and Hive partition descriptors.
 
Abstract base implementation of PluginImplementor that can be used by plugin implementors which can support only a subset of all provided operations.
Parent class for all pojo readers.
Parent class for all pojo writers created for each field.
 
 
 
 
 
 
 
Base class-holder for the list of RelDataTypeFields.
Abstract base class for a resource manager.
 
Basic implementation of a row set for both the single and multiple (hyper) varieties, both the fixed and extensible varieties.
 
 
Abstract implementation of SchemaFactory, ensures that given schema name is always converted is lower case.
Base class for the projection-based and defined-schema-based scan schema trackers.
 
 
Describes an operator that expects a single child operator as its input.
Implements an AbstractUnaryRecordBatch where the incoming record batch is known at the time of creation
Base class for row sets backed by a single record batch.
 
 
 
To get good performance for most commonly used pattern matches CONSTANT('ABC') SqlPatternConstantMatcher STARTSWITH('%ABC') SqlPatternStartsWithMatcher ENDSWITH('ABC%') SqlPatternEndsWithMatcher CONTAINS('%ABC%') SqlPatternContainsMatcher we have simple pattern matchers.
Abstract class for StorePlugin implementations.
 
 
 
 
 
Implements AbstractUnaryRecodBatch for operators that do not have an incoming record batch available at creation time; the input is typically set up a few steps after creation.
Base class for operators that have a single input.
Represents a projected column that has not yet been bound to a table column, special column or a null column.
Represents an unresolved table column to be provided by the reader (or filled in with nulls.) May be associated with a provided schema column.
 
 
Wrapper around a DataTunnel that tracks the status of batches sent to to other Drillbits.
Wrapper around a UserClientConnection that tracks the status of batches sent to User.
Utility class that allows a group of receivers to confirm reception of a record batch as a single unit.
Evaluates if a query can be admitted to a ResourcePool or not by comparing query user/groups with the configured users/groups policies for this selector.
 
 
 
 
 
 
 
 
 
 
 
AdjustOperatorsSchemaVisitor visits corresponding operators' which depending upon their functionality adjusts their output row types.
 
 
 
Specialized aggregate function for SUMing the COUNTs.
 
A shim making an aircompressor (de)compressor available through the BytesInputCompressor and BytesInputDecompressor interfaces.
Aliases table.
List aliases as a System Table
Representation of an entry in the System table - Aliases
Registry for public and user-owned aliases.
Class for obtaining and managing storage and table alias registries.
Target object type for which alias will be applied.
 
 
 
 
Implementation of AnalyzeInfoProvider for file-based tables.
Implementation of AnalyzeInfoProvider for easy group scan tables.
Interface for obtaining information required for analyzing tables such as table segment columns, etc.
Implementation of AnalyzeInfoProvider for parquet tables.
 
 
Complex selector whose value is list of other Simple or Complex Selectors.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Represents one level within array.
Parses a JSON array, which consists of a list of elements, represented by a ValueListener.
 
 
Simple Map type data structure for storing entries of (int -> int) mappings where the max key value is below 2^16 to avoid hashing keys and use direct array index reference for retrieving the values.
Utilities commonly used with ASM.
Responsible for assigning a set of work units to the available slices.
Implementation of DynamicFeature.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Converts and writes all map children using provided AvroColumnConverterFactory.MapColumnConverter.converters.
Format plugin config for Avro data files.
Format plugin for Avro data files.
Utility class that provides methods to interact with Avro schema.
General mechanism for waiting on the query to be executed
 
 
 
Base field factor class which handles the common tasks for building column writers and JSON listeners.
 
Common implementation for both the test and production versions of the fragment context.
 
 
Basic reader implementation for json documents.
Implementation of OperatorContext that provides services needed by most run-time operators.
This OptionManager implements some the basic methods and should be extended by concrete implementations.
Implementation of ParquetMetadataProvider which contains base methods for obtaining metadata from parquet statistics.
 
 
 
 
 
 
 
 
 
Base wrapper for algorithms that use sort comparisons.
 
Base implementation for a tuple model which is common to the "single" and "hyper" cases.
 
 
Base class for code-generation-based tasks.
Build a set of writers for a single (non-hyper) vector container.
 
A JSON output class that generates standard JSON.
 
 
Basic reader builder for simple non-file readers.
Provides access to the row set (record batch) produced by an operator.
 
Represents a group of batches spilled to disk.
 
Tool for printing the content of record batches to screen.
Base strategy for reading a batch of Parquet records.
Strategy for reading a record batch when all columns are fixed-width.
Strategy for reading mock records.
Strategy for reading a record batch when at last one column is variable width.
Holder class that contains batch naming, batch and record index.
Historically BatchSchema is used to represent the schema of a batch.
 
 
This class predicts the sizes of batches given an input batch.
A factory for creating BatchSizePredictors.
 
 
Helper class to assist the Flat Parquet reader build batches which adhere to memory sizing constraints
A container class to hold a column batch memory usage information.
Container class which holds memory usage information about a variable length ValueVector; all values are in bytes.
Validate a batch of value vectors.
 
 
Helps to select a queue whose QueryQueueConfig.getMaxQueryMemoryInMBPerNode() is nearest to the max memory on a node required by the given query.
 
 
 
 
 
Listener for JSON integer values.
 
 
Parquet value writer for passing decimal values into RecordConsumer to be stored as BINARY type.
 
 
 
 
Function templates for Bit/BOOLEAN functions other than comparison functions.
 
 
Utility class providing common methods shared between DataClient and ControlClient
Add a system table for listing connected users on a cluster
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
According to Putze et al.'s "Cache-, Hash- and Space-Efficient BloomFilter Filters", see this paper for details, the main theory is to construct tiny bucket bloom filters which benefit to the cpu cache and SIMD opcode.
 
 
 
 
 
 
 
 
 
Listener for JSON Boolean fields.
 
 
A decorating accessor that returns null for indices that is beyond underlying vector's capacity.
 
 
 
 
 
Broadcast Sender broadcasts incoming batches to all receivers (one or more).
 
Represents the set of in-memory batches accumulated by the external sort.
BufferedDirectBufInputStream reads from the underlying InputStream in blocks of data, into an internal buffer.
 
Build the set of writers from a defined schema.
Build (materialize) as set of vectors based on a provided metadata schema.
 
 
Evaluate a substring expression for a given value; specifying the start position, and optionally the end position.
 
Modeled after org.apache.hadoop.io.WritableUtils.
Class loader for "plain-old Java" generated classes.
 
 
 
Wrapper around PersistentStore to ensure all passed keys are converted to lower case and stored this way.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
 
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
 
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
 
 
 
 
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
This file is generated with Freemarker using the template exec/java-exec/src/main/codegen/templates/CastEmptyStringVarTypesToNullableNumeric.java
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This is a master class used to generate code for HashTables.
A CharSequence is a readable sequence of char values.
Evaluate a substring expression for a given UTF-8 value; specifying the start position, and optionally the end position.
A ClassVisitor that verifies the required call sequence described in http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/ClassVisitor.html .
A MethodVisitor that verifies the required call sequence according to http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/MethodVisitor.html .
 
Implements the "plain Java" method of code generation and compilation.
Selects between the two supported Java compilers: Janino and the build-in Java compiler.
 
 
 
 
Represents a (Nullable)?(Type)Holder instance.
Plugin locator for the "classic" class-path method of locating connectors.
Build the original scanner based on the RecordReader interface.
 
 
Compiles generated code, merges the resulting class with the template class, and performs byte-code cleanup on the resulting byte codes.
 
 
 
 
Creates a deep copy of a LogicalExpression.
 
It allows setting the current value in the iterator and can be used once after ClosingStreamIterator.next() call
Pluggable interface built to manage cluster coordination.
 
 
Global code compiler mechanism shared by all threads and operators.
Abstracts out the details of compiling code using the two available mechanisms.
A code generator is responsible for generating the Java source code required to complete the implementation of an abstract template.
 
 
 
 
 
Aggregate function which stores incoming fields into the map.
 
Aggregate function which collects incoming VarChar column values into the list.
 
Algorithms for building a column given a metadata description of the column and the parent context that will hold the column.
 
Base class for any kind of column converter.
Converts and sets given value into the specific column writer.
Converts and writes array values using ColumnConverter.ArrayColumnConverter.valueConverter into ColumnConverter.ArrayColumnConverter.arrayWriter.
Converts and writes dict values using provided key / value converters.
Does nothing, is used when column is not projected to avoid unnecessary column values conversions and writes.
Converts and writes all map children using provided ColumnConverter.MapColumnConverter.converters.
Converts and writes scalar values using provided ColumnConverter.ScalarColumnConverter.valueConverter.
 
 
Deprecated.
it is never used.
Defines a column for the "enhanced" version of the mock data source.
 
 
Columns that give information from where file data comes from.
Columns that give internal information about file or its parts.
 
Holds system / session options that are used for obtaining partition / implicit / special column names.
Core interface for a projected column.
 
 
Handles the special case in which the entire row is returned as a "columns" array.
Parses the `columns` array.
Scan framework for a file that supports the special "columns" column.
 
Implementation of the columns array schema negotiator.
Schema negotiator that supports the file scan options plus access to the specific selected columns indexes.
Represents the write-time state for a column including the writer and the (optional) backing vector.
 
Primitive (non-map) column state.
Columns move through various lifecycle states as identified by this enum.
 
 
Comparator type.
 
 
 
Comparison predicates for metadata filter pushdown.
 
 
 
Container that holds a complete work unit.
 
 
 
 
 
Visitor that moves non-RexFieldAccess rex node from project below Uncollect to the left side of the Correlate.
Text reader, Complies with the RFC 4180 standard for text/csv files.
Implementation of SqlVisitor that converts bracketed compound SqlIdentifier to bracket-less compound SqlIdentifier (also known as DrillCompoundIdentifier) to provide ease of use while querying complex types.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.CONCAT.
 
 
Defines a storage connector: a storage plugin config along with the locator which can create a plugin instance given an instance of the config.
Locates storage plugins.
Populate metadata columns either file metadata (AKA "implicit columns") or directory metadata (AKA "partition columns.") In both cases the column type is nullable Varchar and the column value is predefined by the projection planner; this class just copies that value into each row.
 
 
Description of a constant argument of an expression.
For CSV files without headers, but with a provided schema, handles the case where extra fields appear in the file beyond the columns enumerated in the schema.
 
Abstract representation of a container of vectors: a row, a map, a repeated map, a list or a union.
 
 
Implement "current_schema" function.
Implement "session_id" function.
Implement "user", "session_user" or "system_user" function.
Provides query context information (such as query start time, query user, default schema etc.) for UDFs.
 
 
 
Maintains connection between two particular bits.
Service that allows one Drillbit to communicate with another.
Defines how the Controller should handle custom messages.
A simple interface that describes the nature of the response to the custom incoming message.
Interface for defining how to serialize and deserialize custom message for consumer who want to use something other than Protobuf messages.
Manages communication tunnels between nodes.
 
Purely to simplify memory debugging.
 
Holds metrics related to bit control rpc layer
 
 
 
 
 
 
 
ControlTunnel.ProtoSerDe<MSG extends com.google.protobuf.MessageLite>
 
 
 
 
 
 
 
 
 
This rule will convert " select count(*) as mycount from table " or " select count(not-nullable-expr) as mycount from table " into
This rule is a logical planning counterpart to a corresponding ConvertCountToDirectScanPrule physical rule
 
 
 
 
 
 
 
 
 
 
 
 
Rule which converts
Convert a VARCHAR column to an BIT column following the Java rules for parsing Boolean values, then using 1 if the boolean is true, 0 if false.
Convert a VARCHAR column to an DATE column following the Java rules for parsing a date time, optionally using the formatter provided in the column schema.
Convert a VARCHAR column to an decimal column following the Java rules for parsing integers (i.e.
Convert a VARCHAR column to a DOUBLE column following the Java rules for parsing doubles (i.e.
Convert a VARCHAR column to an INT column following the Java rules for parsing integers (i.e.
Convert a VARCHAR column to an INTERVAL column following the Java rules for parsing a period.
Convert a VARCHAR column to an BIGINT column following the Java rules for parsing longs (i.e.
Convert a VARCHAR column to an TIME column following the Java rules for parsing a date time, optionally using the formatter provided in the column schema.
Convert a VARCHAR column to an TIMESTAMP column following the Java rules for parsing a date time, optionally using the formatter provided in the column schema.
 
 
 
 
This class is used for backward compatibility when reading older query profiles that stored operator id instead of its name.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This class is used internally for tracking injected countdown latches.
See CountDownLatchInjection Degenerates to PauseInjection.pause(), if initialized to zero count.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A utility class that contains helper functions used by rules that convert COUNT(*) and COUNT(col) aggregates (no group-by) to DirectScan
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Generate a covering index plan that is equivalent to the original plan.
 
Handler for handling CREATE ALIAS statements.
 
Interface that provides the info needed to create a new table.
 
 
 
 
Generates and adds a CSRF token to a HTTP session.
All forms on site have a field with a CSRF token injected by server.
 
Holder for store version.
 
 
 
Manages a connection for each endpoint.
 
 
 
 
 
 
 
 
 
 
Holds metrics related to bit data rpc layer
 
 
 
Listener that keeps track of the status of batches sent, and updates the SendingAccountor when status is received for each batch
 
 
 
 
 
 
 
 
 
 
Very simple date value generator that produces ISO dates uniformly distributed over the last year.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Describes the default date output format to use for JSON.
 
 
 
 
 
 
 
 
 
 
 
 
Function to check if a varchar value can be cast to a date.
 
 
 
 
 
 
 
 
 
 
Parse local time dates.
A DbGroupScan operator represents the scan associated with a database.
 
 
 
 
Utility class to build a debug string for an object in a standard format.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_ADD_SCALE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_AGGREGATE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_AVG_AGGREGATE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_CAST.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_DIV_SCALE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_MAX_SCALE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_MOD_SCALE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_SET_SCALE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_SUM_AGGREGATE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_SUM_SCALE.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DECIMAL_ZERO_SCALE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Non RM version of the parallelizer.
Helps to select the first default queue in the list of all the provided queues.
Represents a default resource manager for clusters that do not provide query queues.
 
 
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.DEFAULT.
When selector configuration is absent for a ResourcePool then it is associated with a DefaultSelector.
 
 
 
 
 
Composite partition location corresponds to a directory in the file system.
Defines a single partition in a DFS table.
 
 
 
Base class for Java type-based conversion.
Encapsulates a Java expression, defined as anything that is valid in the following code:
(expr)
 
 
 
 
 
 
 
 
 
 
 
Reader index that points directly to each row in the row set.
Implementation of a single row set with no indirection (selection) vector.
 
 
 
 
 
 
 
 
 
 
 
Distributed query queue which uses a Zookeeper distributed semaphore to control queuing across the cluster.
 
Exposes a snapshot of internal state information for use in status reporting, such as in the UI.
 
 
 
Describes an operator's endpoint assignment requirements.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Generates random field values uniformly distributed over the range +-1 million, with any number of digits past the decimal point.
Listener for the JSON double type.
Aggregate function interface.
Aggregation implemented in Drill.
Base class for logical and physical Aggregations implemented in Drill
Rule that converts an LogicalAggregate to a DrillAggregateRel, implemented by a Drill "segment" operation followed by a "collapseaggregate" operation.
Drill logical node for "Analyze".
 
Starts, tracks and stops all the required services for a Drillbit daemon to work.
 
 
 
 
 
 
Implementation of the storage registry context which obtains the needed resources from the DrillbitContext.
 
 
 
Interface to define the listener to take actions when the set of active drillbits is changed.
An InputStream that wraps a DrillBuf and implements the seekable interface.
Thin wrapper around byte array.
This class serves as a wrapper class for SqlAggFunction.
This class serves as a wrapper class for SqlBetweenOperator.
This class serves as a wrapper class for SqlFunction.
This class serves as a wrapper class for SqlOperator.
This class serves as a wrapper class for SqlSumEmptyIsZeroAggFunction with the same goal as DrillCalciteSqlAggFunctionWrapper but extends SqlSumEmptyIsZeroAggFunction to allow using additional Calcite functionality designated for SqlSumEmptyIsZeroAggFunction.
This interface is meant for the users of the wrappers, DrillCalciteSqlOperatorWrapper, DrillCalciteSqlFunctionWrapper and DrillCalciteSqlAggFunctionWrapper, to access the wrapped Calcite SqlOperator without knowing exactly which wrapper it is.
This utility contains the static functions to manipulate DrillCalciteSqlWrapper, DrillCalciteSqlOperatorWrapper DrillCalciteSqlFunctionWrapper and DrillCalciteSqlAggFunctionWrapper.
There's a bug in ASM's CheckClassAdapter.
Thin wrapper around a UserClient that handles connect/close and transforms String into ByteBuf.
 
 
 
 
A delegating compression codec factory that returns (de)compressors based on https://github.com/airlift/aircompressor when possible and falls back to parquet-mr otherwise.
 
 
Drill's SQL conformance is SqlConformanceEnum.DEFAULT with a couple of deviations.
 
Convertlet table which allows to plug-in custom rex conversion of calls to Calcite's standard operators.
 
Implementation of the DrillRelOptCost, modeled similar to VolcanoCost
 
 
 
Logical RelNode representing a DirectGroupScan.
Converts join with distinct right input to semi-join.
 
 
 
Stores distribution field index and field name to be used in exchange operators.
 
Custom ErrorHandler class for Drill's WebServer to have better error message in case when SPNEGO login failed and what to do next.
Minus implemented in Drill.
DrillFileSystem is the wrapper around the actual FileSystem implementation.
 
In Drill file system all directories and files that start with dot or underscore is ignored.
 
Rule will transform item star fields in filter and replaced with actual field references.
 
 
Base class for logical and physical Filters implemented in Drill
Rule that converts a LogicalFilter to a Drill "filter" operation.
Wrapper around FSDataInputStream to collect IO Stats.
 
 
Represents the call of a function within a query and includes the actual arguments and a reference to the function declaration (as a "function holder.")
The base class of hash classes used in Drill.
Accessor class that extends the ConstraintSecurityHandler to expose protected method's for start and stop of Handler.
 
Context for converting a tree of DrillRel nodes into a Drill logical plan.
 
 
 
 
Intersect implemented in Drill.
 
 
 
 
 
 
Interface which needs to be implemented by all the join relation expressions.
Logical Join implemented in Drill.
Base class for logical and physical Joins implemented in Drill.
Rule that converts a LogicalJoin to a DrillJoinRel, which is implemented by Drill "join" operation.
 
 
 
Base class for logical and physical Limits implemented in Drill
This rule converts a Sort that has either a offset and fetch into a Drill Sort and LimitPOP Rel
MergeFilterRule implements the rule for combining two Filters
Rule for merging two projects provided the projects aren't projecting identical sets of input references.
Implementation of SqlOperatorTable that contains standard operators and functions provided through SqlStdOperatorTable, and Drill User Defined Functions.
Utilities for Drill's planner.
 
 
 
 
 
 
 
Parquet currently supports a fixed binary type INT96 for storing hive, impala timestamp with nanoseconds precision.
Parquet currently supports a fixed binary type, which is not implemented in Drill.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SQL parser, generated from Parser.jj by JavaCC.
Token literal values and constants.
Token Manager.
Helper methods or constants used in parsing a SQL query.
 
 
 
Project implemented in Drill.
Base class for logical and physical Project implemented in Drill
Rule that converts a LogicalProject to a Drill "project" operation.
 
 
When table support project push down, rule can be applied to reduce number of read columns thus improving scan operator performance.
 
 
This rule implements the run-time filter pushdown via the rowkey join for queries with row-key filters.
 
Rule to reduce aggregates to simpler forms.
 
Relational expression that is implemented in Drill.
 
 
Contains factory implementation for creating various Drill Logical Rel nodes.
 
 
 
 
 
 
 
 
Utility class that is a subset of the RelOptUtil class and is a placeholder for Drill specific static methods that are needed during either logical or physical planning.
InputRefVisitor is a utility class used to collect all the RexInputRef nodes in a RexNode.
Stores information about fields, their names and types.
RexFieldsTransformer is a utility class used to convert column refs in a RexNode based on inputRefMap (input to output ref map).
LoginService used when user authentication is enabled in Drillbit.
 
 
 
 
Provider which injects DrillUserPrincipal directly instead of getting it from SecurityContext and typecasting
 
 
 
 
Pretty-printing wrapper class around the ZK-based queue summary.
 
GroupScan of a Drill table.
Base class for logical/physical scan rel implemented in Drill.
 
 
 
Base class for logical and physical Screen implemented in Drill
 
Classes that can be put in the Distributed Cache must implement this interface.
 
 
Rule that converts LogicalIntersect or LogicalMinus to DrillIntersectRel or DrillExceptRel.
 
Definition of a Drill function defined using the @FunctionTemplate annotation of the class which implements the function.
Sort implemented in Drill.
Base class for logical and physical Sort implemented in Drill.
Rule that converts an Sort to a DrillSortRel, implemented by a Drill "order" operation.
Custom SpnegoAuthenticator for Drill
Custom implementation of DrillSpnegoLoginService to avoid the need of passing targetName in a config file, to include the SPNEGO OID and the way UserIdentity is created.
 
 
 
SqlCall interface with addition of method to get the handler.
Sql parser tree node to represent statement: { DESCRIBE | DESC } tblname [col_name | wildcard ]
Drill SqlLine application configuration.
 
 
 
Customized SqlParseException class
Sql parse tree node to represent statement: RESET { <NAME> | ALL } .
Sql parse tree node to represent statement: SET <NAME> [ = VALUE ].
 
Wraps the stats table info including schema and tableName.
 
 
 
 
 
 
Struct which contains the statistics for the entire directory structure
 
 
 
Holder class for DrillTable, tableName and table schemaPath obtained from SqlNode tableRef.
 
 
 
TableMacros must return a TranslatableTable This class adapts the existing DrillTable to a TranslatableTable
Rule that converts a LogicalUnion to a DrillUnionRel, implemented by a "union" operation.
Union implemented in Drill.
 
 
 
Captures Drill user credentials and privilege's of the session user.
DrillUserPrincipal for anonymous (auth disabled) mode.
Logical Values implementation in Drill.
Base class for logical and physical Values implemented in Drill.
Rule that converts a LogicalValues to a Drill "values" operation.
Give access to Drill version as captured during the build Caution don't rely on major, minor and patch versions only to compare two Drill versions.
 
Interface used by Drill components such as InformationSchema generator to get view info.
 
 
 
 
 
Base class for logical and physical Writer implemented in Drill.
Handler for handling DROP ALIAS statements.
Handler for handling DROP ALL ALIASES statements.
 
 
 
This and DummyConvertTo class merely act as a placeholder so that Optiq allows 'convert_to()' and 'convert_from()' functions in SQL.
This and DummyConvertFrom class merely act as a placeholder so that Optiq allows 'convert_to()' and 'convert_from()' functions in SQL.
This and DummyConvertTo class merely act as a placeholder so that Optiq allows the 'flatten()' function in SQL.
Parse and ignore an unprojected value.
 
Used to ensure the param "batch" is a non-negative number.
 
Dynamically reads values from the given list of records.
An utility class that converts from JsonNode to DynamicPojoRecordReader during physical plan fragment deserialization.
Wrapper around the default and/or distributed resource managers to allow dynamically enabling and disabling queueing.
Loads schemas from storage plugins later when CalciteSchema.getSubSchema(String, boolean) is called.
 
Unlike SimpleCalciteSchema, DynamicSchema could have an empty or partial schemaMap, but it could maintain a map of name->SchemaFactory, and only register schema when the correspondent name is requested.
Projection filter based on the scan schema which typically starts as fully dynamic, then becomes more concrete as the scan progresses.
Filter for a map, represented by a TupleMetadata.
Describes how to handle candidate columns not currently in the scan schema, which turns out to be a surprisingly complex question.
Filter for the top-level dynamic schema.
Dynamic credit based flow control: The sender initially sends batch to the sender by the initial static credit (3).
 
Create the file scan lifecycle that manages the scan.
 
Base class for file readers.
Defines the static, programmer-defined options for this plugin.
 
 
 
 
 
 
 
Parser for a JSON element.
Query queue to be used in an embedded Drillbit.
Implementation of aliases table that doesn't hold or return information.
Represents a run of empty arrays for which we have no type information.
Represents an empty array: the case where the parser has seen only [], but no array elements which would indicate the type.
This class provided utility methods to encode and decode a set of user specified SchemaPaths to a set of encoded SchemaPaths with the following properties.
EndpointAffinity captures affinity value for a given single Drillbit endpoint.
Presents an interface that describes the number of bytes for a particular work unit associated with a particular DrillbitEndpoint.
 
 
 
 
 
 
LeafPrel implementation that generates java code that may be executed to obtain results for the provided plan part.
 
ManagedReader implementation that compiles and executes specified code, calls the method on it for obtaining the values, and reads the results using column converters.
 
Implementation of CredentialsProvider that obtains credential values from environment variables.
To avoid coupling the JSON structure parser with Drill's error reporting mechanism, the caller passes in an instance of this error factory which will build the required errors, including filling in caller-specific context.
 
 
Visitor that generates code for eval
Extended variable descriptor ("holding container") for the variable which references the value holder ("FooHolder") that stores the value from a value vector.
Reads records from the RecordValueAccessor and writes into RecordWriter.
 
An abstraction used for dispatching store events.
 
 
 
Injection for a single exception.
 
 
Exchanges are fragment boundaries in physical operator tree.
This provides the resources required by an exchange operator.
 
Materializer visitor to remove exchange(s) NOTE: this Visitor does NOT set OperatorId, as after Exchange removal all operators need renumbering Use OperatorIdVisitor on top to set correct OperatorId
 
 
Tracks the simulated controls that will be injected for testing purposes.
The JSON specified for the ExecConstants.DRILLBIT_CONTROL_INJECTIONS option is validated using this class.
 
Injects exceptions and pauses at execution time for testing.
The context that is used by a Drillbit in classes like the FragmentExecutor.
Utility class to enhance the Java ExecutorService class functionality
Executor task wrapper to enhance task cancellation behavior
 
A special type of concurrent map which attempts to create an object before returning that it does not exist.
 
 
 
 
Perform a schema projection for the case of an explicit list of projected columns.
 
 
Condensed form of a Drill WHERE clause expression node.
Represents a set of AND'ed expressions in Conjunctive Normal Form (CNF).
Semanticized form of a Calcite relational operator.
 
An expression node with an unlimited set of children.
Represents a set of OR'ed expressions in Disjunctive Normal Form (CNF).
 
Convert a logicalExpression to RexNode, notice the inputRel could be in an old plan, but newRowType is the newly built rowType that the new RexNode will be applied upon, so when reference fields, use newRowType, when need cluster, plannerSetting, etc, use old inputRel
Writes JSON Output that will wrap Binary, Date, Time, Timestamp, Integer, Decimal and Interval types with wrapping maps for better type resolution upon deserialization.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Extended form of the mock record reader that uses generator class instances to create the mock values.
Extends the original Option iterator.
Wrapper class for Extended Option Value
 
 
 
Based on V1 of the Mongo extended type spec.
Names of Mongo extended types.
 
External sort batch: a sort batch which can spill to disk in order to operate within a defined memory footprint.
 
 
This handler fails any request on the connection.
 
An OptionManager which allows for falling back onto another OptionManager when retrieving options.
 
Describes a new field within an object.
Extensible mechanism to build fields for a JSON object (a Drill row or Map).
Interface which all mock column data generators must implement.
 
Creates a field parser given a field description and an optional field listener.
This class manages the projection pushdown for a complex path.
 
Holder class to store field information (name and type) with the list of nodes this field is used in.
Replaces original node with provided in mapper, otherwise returns original node.
Describes one file within a scan and is used to populate implicit columns.
FileGroupScan operator represents all data which will be scanned from FileSystem by a given physical plan.
Specify the file name and optional selection root.
Collects file metadata for the given parquet file.
Represents projection column which resolved to a file metadata (AKA "implicit") column such as "filename", "fqn", etc.
Definition of a file metadata (AKA "implicit") column for this query.
Parses the implicit file metadata columns out of a project list, and marks them for special handling by the file metadata manager.
Implementation of MetadataInfoCollector for file-based tables.
 
Iterates over the splits for the present scan.
The file scan framework adds into the scan framework support for implicit reading from DFS splits (a file and a block).
Iterates over the splits for the present scan.
 
Options for a file-based scan.
The file schema negotiator adds no behavior at present, but is created as a placeholder anticipating the need for file-specific behavior later.
Implementation of the file-level schema negotiator.
The file scan framework adds into the scan framework support for reading from DFS splits (a file and a block) and for the file-related implicit and partition columns.
 
The file schema negotiator provides access to the Drill file system and to the file split which the reader is to consume.
Implementation of the file-level schema negotiator which holds the file split which the reader is to process.
Jackson serializable description of a file selection.
 
Implements CreateTableEntry interface to create new tables in FileSystem storage.
Implementation of MetadataProviderManager which uses file system providers and returns builders for file system based TableMetadataProvider instances.
Partition descriptor for file system based tables.
A Storage engine associated with a Hadoop FileSystem Implementation.
This is the top level schema that responds to root level path requests.
Helper class that provides methods to list directories or file or both statuses.
 
 
 
 
A visitor which visits a materialized logical expression, and build FilterPredicate If a visitXXX method returns null, that means the corresponding filter branch is not qualified for push down.
 
Evaluates information schema for the given condition.
Evaluates necessity to visit certain type of information_schema data using provided filter.
Evaluates necessity to visit certain type of information_schema data based on given schema type.
 
Search through a LogicalExpression, finding all internal schema path references and returning them in a set.
 
 
 
Call-back (listener) implementation for a push-down filter.
Listener for a one specific group scan.
Generalized filter push-down strategy which performs all the tree-walking and tree restructuring work, allowing a "listener" to do the work needed for a particular scan.
 
 
 
 
 
 
A visitor class that analyzes a filter condition (typically an index condition) and a supplied input collation and determines what the output collation would be after applying the filter.
A visitor that is very similar to FindLimit0SqlVisitor in that it looks for a LIMIT 0 in the root portion of the query tree for the sake of enabling optimisations but that is different in the following aspects.
Visitor that will identify whether the root portion of the RelNode tree contains a limit 0 pattern.
Reader for column names and types.
 
Parquet value writer for passing decimal values into RecordConsumer to be stored as FIXED_LEN_BYTE_ARRAY type.
Layer above the ResultSetLoader which handles standard conversions for scalar columns where the schema is known up front (i.e.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Foreman manages all the fragments (local and remote) for a single query where this is the driving/root node.
 
 
 
 
Responsible for instantiating format plugins
Provides the ability to transform format location before creating FileSelection if required.
 
Similar to a storage engine but built specifically to work within a FileSystem context.
 
 
 
 
Provides the resources required by a non-exchange operator to execute.
 
This is the core Context which implements all the Context interfaces: FragmentContext: A context provided to non-exchange operators. ExchangeFragmentContext: A context provided to exchange operators. RootFragmentContext: A context provided to fragment roots. ExecutorFragmentContext: A context used by the Drillbit. The interfaces above expose resources to varying degrees.
Fragment context interface: separates implementation from definition.
 
Runs a single fragment on a single Drillbit.
A Physical Operator that can be the leaf node of one particular execution fragment.
The Fragment Manager is responsible managing incoming data and executing a fragment.
OptionManager that holds options within FragmentContextImpl.
Generic interface to provide different parallelization strategies for MajorFragments.
Describes the root operation within a particular Fragment.
 
Is responsible for submitting query fragments for running (locally and remotely).
Holds statistics of a particular (minor) fragment.
 
The status reporter is responsible for receiving changes in fragment state and propagating the status back to the Foreman either through a control tunnel or locally.
 
Wrapper class for a major fragment profile.
 
WindowFramer implementation that supports the FRAME clause.
Maintains state while traversing a finite state machine described by an FsmDescriptor.
Describes a finite state machine in terms of a mapping of tokens to characters, a regular expression describing the valid transitions using the characters, and an end state.
Is used to provide schema based on table location on file system and default schema file name SchemaProvider.DEFAULT_SCHEMA_NAME.
 
 
FunctionalIndexInfo is to collect Functional fields in IndexDescriptor, derive information needed for index plan, e.g.
Attributes of a function used in code generation and optimization.
Converts FunctionCalls to Java Expressions.
 
Holder class that contains: function name function signature which is string representation of function name and its input parameters DrillFuncHolder associated with the function
Registry for functions.
To avoid the cost of initializing all functions up front, this class contains all information required to initializing a function when it is used.
 
Function registry holder stores function implementations by jar name, function name.
An implementing class of FunctionResolver provide their own algorithm to choose a DrillFuncHolder from a given list of candidates, with respect to a given FunctionCall
 
List functions as a System Table
Representation of an entry in the System table - Functions
 
 
Function scope is used to indicate function output rows relation: simple / scalar (1 -> 1) or aggregate (n -> 1).
 
Estimates the average size of the output produced by a function that produces variable length output
Return type enum is used to indicate which return type calculation logic should be used for functions.
 
 
 
Binary form, returns the interval between `right` and `left`.
Unary form, subtracts `right` from midnight so equivalent to `select age(current_date, right)`.
Binary form, returns the interval between `right` and `left`.
Binary form, returns the interval between `right` and `left`.
Binary form, returns the interval between `right` and `left`.
Unary form, subtracts `right` from midnight so equivalent to `select age(current_date, right)`.
Binary form, returns the interval between `right` and `left`.
Binary form, returns the interval between `right` and `left`.
Binary form, returns the interval between `right` and `left`.
Unary form, subtracts `right` from midnight so equivalent to `select age(current_date, right)`.
Binary form, returns the interval between `right` and `left`.
Binary form, returns the interval between `right` and `left`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This class merely act as a placeholder so that Calcite allows 'trunc('truncationUnit', col)' function in SQL.
 
 
 
 
 
 
 
 
 
 
 
 
 
This class merely act as a placeholder so that Calcite allows 'trunc('truncationUnit', col)' function in SQL.
 
 
 
 
 
 
 
 
This class merely act as a placeholder so that Calcite allows 'trunc('truncationUnit', col)' function in SQL.
 
 
 
 
 
 
 
 
 
 
This class merely act as a placeholder so that Calcite allows 'trunc('truncationUnit', col)' function in SQL.
 
 
 
 
 
 
 
 
 
 
This class merely act as a placeholder so that Calcite allows 'trunc('truncationUnit', col)' function in SQL.
 
 
 
 
 
 
 
 
 
This class merely act as a placeholder so that Calcite allows 'trunc('truncationUnit', col)' function in SQL.
 
 
 
 
 
 
 
 
 
 
The code generator works with four conceptual methods which can have any actual names.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A GroupScan operator represents all data which will be scanned by a given physical plan.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of CredentialsProvider that obtains credential values from Configuration properties.
Implementation of FragmentParallelizer where fragment requires running on a given set of endpoints.
Describes a physical operator that has affinity to particular nodes.
Implement this interface if a Prel has distribution affinity requirements.
hash32 function definitions for numeric data types.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
hash32 with seed function definitions for numeric data types.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implements the runtime execution for the Hash-Join operator supporting INNER, LEFT OUTER, RIGHT OUTER, and FULL OUTER joins
 
 
 
 
This calculator class is used when the Hash-Join_helper is not used (i.e., return size of zero)
 
 
 
This class is responsible for managing the memory calculations for the HashJoin operator.
 
The interface representing the HashJoinStateCalculator corresponding to the HashJoinState.BUILD_SIDE_PARTITIONING state.
 
This class represents the memory size statistics for an entire set of partitions.
The interface representing the HashJoinStateCalculator corresponding to the HashJoinState.POST_BUILD_CALCULATIONS state.
 
At this point we need to reserve memory for the following: An incoming batch An incomplete batch for each partition If there is available memory we keep the batches for each partition in memory.
 
 
In this state, we need to make sure there is enough room to spill probe side batches, if spilling is necessary.
 
 
 
 
 
A HashJoinStateCalculator is a piece of code that compute the memory requirements for one of the states in the HashJoinState enum.
Overview
 
Contains utility methods for creating hash expression for either distribution (in PartitionSender) or for HashTable.
Interface for creating different forms of hash expression types.
 
 
Implements the runtime execution for the Hash-SetOp operator supporting EXCEPT, EXCEPT ALL, INTERSECT, and INTERSECT ALL
 
 
 
 
 
 
 
 
 
 
 
 
 
Text output that implements a header reader/parser.
 
 
Wrapper around a representation of a "Holder" to represent that Holder as an expression.
Define all attributes and values that can be injected by various Wrapper classes in org.apache.drill.exec.server.rest.*
Implementation of UserAuthenticator that reads passwords from an htpasswd formatted file.
Implement HTTP Basic authentication for REST API access
Base reader builder for a hyper-batch.
Vector accessor used by the column accessors to obtain the vector for each column value.
Read-only row index into the hyper row set with batch and index values mapping via an SV4.
Implements a row set wrapper around a collection of "hyper vectors." A hyper-vector is a logical vector formed by a series of physical vectors stacked on top of one another.
 
Infer the schema for a hyperbatch.
 
 
 
Utilities for impersonation purpose.
Create RecordBatch tree (PhysicalOperator implementations) for a given PhysicalOperator tree.
Manages the insertion of file metadata (AKA "implicit" and partition) columns.
 
Marks a column as implicit and provides a function to resolve an implicit column given a description of the input file.
Marker for a file-based, non-internal implicit column that extracts parts of the file name as defined by the implicit column definition.
 
Partition column defined by a partition depth from the scan root folder.
Manages the resolution of implicit file metadata and partition columns.
 
The result of scanning the scan output schema to identify implicit and partition columns.
 
 
This class represents an implicit column in a dataset.
Manages implicit columns for files and partition columns for directories.
Represents a wildcard: SELECT * when used at the root tuple.
 
Helper class to manage inbound impersonation.
Validator for impersonation policies.
Determines when a particular fragment has enough data for each of its receiving exchanges to commence execution.
An incoming batch of data.
The filter expressions that could be indexed Other than SchemaPaths, which represent columns of a table and could be indexed, we consider only function expressions, and specifically, CAST function.
 
Interface used to describe an index collection
Types of an index collections: NATIVE_SECONDARY_INDEX_COLLECTION, EXTERNAL_SECONDARY_INDEX_COLLECTION
 
 
Top level interface used to define an index.
Types of an index: PRIMARY_KEY_INDEX, NATIVE_SECONDARY_INDEX, EXTERNAL_SECONDARY_INDEX
IndexDefinition + functions to access materialized index(index table/scan, etc)
 
SchemaFactory of a storage plugin that can used to store index tables should expose this interface to allow IndexDiscovers discovering the index table without adding dependency to the storage plugin.
IndexDiscoverBase is the layer to read index configurations of tables on storage plugins, then based on the properties it collected, get the StoragePlugin from StoragePluginRegistry, together with indexes information, build an IndexCollection
With this factory, we allow user to load a different indexDiscover class to obtain index information
Encapsulates one or more IndexProperties representing (non)covering or intersecting indexes.
An IndexGroupScan operator represents the scan associated with an Index.
IndexScanIntersectGenerator is to generate index plan against multiple index tables, the input indexes are assumed to be ranked by selectivity(low to high) already.
 
 
 
 
 
IndexProperties encapsulates the various metrics of a single index that are related to the current query.
 
IndexProperties encapsulates the various metrics of a single index that are related to the current query.
 
 
Extension of the container accessor that holds an optional selection vector, presenting the batch row count as the selection vector count.
Reader index that points to each row indirectly through the selection vector.
Single row set coupled with an indirection (selection) vector, specifically an SV2.
Create Drill field listeners based on the observed look-ahead tokens in JSON.
 
 
 
 
 
 
 
 
 
 
 
Builds a InfoSchemaFilter out of the Filter condition.
 
 
Generates records for POJO RecordReader by scanning the given schema.
 
 
 
 
 
 
 
 
 
Base class for tables in INFORMATION_SCHEMA.
Layout for the CATALOGS table.
Layout for the COLUMNS table.
 
Layout for the FILES table.
Layout for the PARTITIONS table.
Layout for the SCHEMATA table.
Layout for the TABLES table.
Layout for the VIEWS table.
The set of tables / views in INFORMATION_SCHEMA.
The base class for all types of injections (currently, pause and exception).
An Exception thrown when injection configuration is incorrect.
 
Key Deserializer for InjectionSite.
Is used to provide schema when passed using table function.
This is an OptionManager that holds options in memory rather than in a persistent store.
 
 
An ASM ClassVisitor that strips class the access bits that are only possible on inner classes (ACC_PROTECTED, ACC_PRIVATE, and ACC_FINAL).
The input batch group gathers batches buffered in memory before spilling.
Constructs plan to be executed for inserting data into the table.
 
 
 
 
Parquet value writer for passing decimal values into RecordConsumer to be stored as INT32 type.
Parquet value writer for passing decimal values into RecordConsumer to be stored as INT32 type.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Drill-specific extension for a time interval (AKA time span or time period).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Generates integer values uniformly randomly distributed over the entire 32-bit integer range from Integer.MIN_VALUE to Integer.MAX_VALUE.
 
 
 
Exception for malformed connection string from client
An InvalidIndexDefinitionException may be thrown if Drill does not recognize the type or expression of the index during the index discovery phase
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Holder class that contains: jar name scan of packages, classes, annotations found in jar unique jar classLoader
 
 
 
For the int type control, the meaning of each bit start from lowest: bit 0: intersect or not, 0 -- default(no intersect), 1 -- INTERSECT (DISTINCT as default) bit 1: intersect type, 0 -- default (DISTINCT), 1 -- INTERSECT_ALL
Base class for MergeJoinPrel and HashJoinPrel
 
 
Maintain join state.
Merge Join implementation using RecordIterator.
 
 
 
 
Abstract implementation of StatisticsRecordWriter interface which exposes interface: #writeHeader(List) #addField(int,String) to output the data in string format instead of implementing addField for each type holder.
EVF based reader.
 
 
 
 
 
 
 
The two functions defined here convert_toJSON and convert_toEXTENDEDJSON are almost identical.
 
 
 
 
Enhanced second-generation JSON loader which takes an input source and creates a series of record batches using the ResultSetLoader abstraction.
Revised JSON loader that is based on the ResultSetLoader abstraction.
 
Extends the JsonStructureOptions class, which provides JSON syntactic options, with a number of semantic options enforced at the JSON loader level.
Interface through which UDFs, RecordWriters and other systems can write out a JSON output.
Abstract implementation of RecordWriter interface which exposes interface: #writeHeader(List) #addField(int,String) to output the data in string format instead of implementing addField for each type holder.
 
 
Deprecated.
 
 
Deprecated.
 
 
EVF based JSON reader which uses input stream as data source.
Input to the JSON structure parser which defines guidelines for low-level parsing as well as listeners for higher-level semantics.
Parser for a subset of the jsonlines format.
 
Parses an arbitrary JSON value (which can be a subtree of any complexity) into a JSON string.
 
 
 
 
Contract between Lateral Join and any operator on right side of it consuming the input from left side.
RecordBatch implementation for the lateral join operator.
 
 
 
 
LateralUnnestRowIDVisitor traverses the physical plan and modifies all the operators in the pipeline of Lateral and Unnest operators to accommodate IMPLICIT_COLUMN.
Visitor for RelNodes which applies specified RexShuttle visitor for every node in the tree.
Operator which specifically is a lowest level leaf node of a query plan across all possible fragments.
Prel without children.
 
 
 
 
 
 
 
Represents the contents of a list vector.
Wrapper around the list vector (and its optional contained union).
 
 
Registry of Drill functions.
Local persistent store stores its data on the given file system.
A really simple provider that stores data in the local file system, one value per file.
A syncable local extension of the Hadoop FileSystem
A mock class to avoid NoClassDefFoundError after excluding Apache commons-logging from Hadoop dependency.
 
 
 
 
A simple Writer that will forward whole lines (lines ending with a newline) to a Logger.
 
 
 
 
 
Responsible for breaking a plan into its constituent Fragments.
Extended version of a record reader which uses a size-aware batch mutator.
Extended version of a record reader which uses a size-aware batch mutator.
Exception thrown from the constructor if the data source is empty and can produce no data or schema.
Basic scan framework for a "managed" reader which uses the scan schema mechanisms encapsulated in the scan schema orchestrator.
Creates a batch reader on demand.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A visitor to compute memory requirements for each operator in a minor fragment.
Utility class which helps in parsing memory configuration string using the passed in pattern to get memory value in bytes.
 
 
 
 
 
A join operator that merges two sorted streams using a record iterator.
 
 
 
 
Wrapper around the "MSorter" (in memory merge sorter).
 
 
 
 
 
 
Merges pre-sorted record batches from remote senders.
 
Optional custom parser for the portion of a JSON message that surrounds the data "payload".
 
This is an utility class, holder for Parquet Table Metadata and ParquetReaderConfig.
 
A struct that contains the metadata for a column in a parquet file
Struct which contains the metadata for a single parquet file
 
A struct that contains the metadata for a parquet row group
 
A struct that contains the metadata for a column in a parquet file
 
 
 
 
 
Struct which contains the metadata for a single parquet file
Struct which contains the metadata for an entire parquet directory structure
A struct that contains the metadata for a parquet row group
 
A struct that contains the metadata for a column in a parquet file
 
 
 
 
Struct which contains the metadata for a single parquet file
 
A struct that contains the metadata for a parquet row group
 
A struct that contains the metadata for a column in a parquet file.
 
 
 
 
 
 
 
Struct which contains the metadata for a single parquet file
 
A struct that contains the metadata for a parquet row group
 
Implementation of RelCollationImpl with field name.
Class which provides information required for producing metadata aggregation when performing analyze.
 
Helper class for constructing aggregate value expressions required for metadata collecting.
 
 
 
 
 
Basic class for parquet metadata.
 
Resolved value for a metadata column (implicit file or partition column.) Resolution here means identifying a value for the column.
A metadata context that holds state across multiple invocations of the Parquet metadata APIs.
 
Terminal operator for producing ANALYZE statement.
 
Class which provides information required for storing metadata to the Metastore when performing analyze.
 
 
 
 
 
Represents direct scan based on metadata information.
Metadata runtime exception to indicate issues connected with table metadata.
 
Responsible for handling metadata returned by incoming aggregate operators and fetching required metadata form the Metastore.
 
Class which provides information required for handling results of metadata aggregation when performing analyze.
 
 
 
 
 
 
 
 
 
 
Interface for obtaining information about segments, files etc which should be handled in Metastore when producing incremental analyze.
Queries can contain a wildcard (*), table columns, or special system-defined columns (the file metadata columns AKA implicit columns, the `columns` column of CSV, etc.).
Util class that contains helper methods for converting paths in the table and directory metadata structures
Interface for retrieving and/or creating metadata given a vector.
Contains worker Runnable classes for providing the metadata and related helper methods.
 
 
 
 
 
 
 
Base interface for passing and obtaining SchemaProvider, DrillStatsTable and TableMetadataProvider, responsible for creating required TableMetadataProviderBuilder which constructs required TableMetadataProvider based on specified providers
Operator which adds aggregate calls for all incoming columns to calculate required metadata and produces aggregations.
 
 
 
 
Supported metadata versions.
 
Constructs plan to be executed for collecting metadata and storing it to the Metastore.
 
Implementation of TableMetadataProvider which uses Drill Metastore for providing table metadata for file-based tables.
 
Implementation of MetadataProviderManager which uses Drill Metastore providers.
 
Implementation of TableMetadataProvider which uses Drill Metastore for providing table metadata for parquet tables.
 
MethodAnalyzer<V extends org.objectweb.asm.tree.analysis.Value>
Analyzer that allows us to inject additional functionality into ASMs basic analysis.
 
Interface that defines a metric.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MinorFragmentEndpoint represents fragment's MinorFragmentId and Drillbit endpoint to which the fragment is assigned for execution.
 
 
 
 
 
Builds the handler which provides values for columns in an explicit project list but for which the reader provides no values.
 
Each storage plugin requires a unique config class to allow config --> impl lookups to be unique.
Describes a "group" scan of a (logical) mock table.
 
 
 
 
 
Describes a physical scan operation for the mock data source.
Structure of a mock table definition file.
Meta-data description of the columns we wish to create during a simulated scan.
Describes one simulated file (or block) within the logical file scan described by this group scan.
A tiny wrapper class to add required DrillTableSelection behaviour to the entries list.
 
Generates a mock money field as a double over the range 0 to 1 million.
Parsers a binary.
Parses a Mongo date in the V1 format:
In-memory sorter.
 
 
 
 
 
 
 
 
 
 
 
 
MurmurHash3 was written by Austin Appleby, and is placed in the public domain.
A mutable form of a tuple schema.
Holder for a column to allow inserting and replacing columns within the top-level project list.
 
 
 
 
Interface for the nested loop join operator.
 
 
 
 
 
 
 
This class abstracts the resources like cpu and memory used up by the operators.
Provides resources for a node in cluster.
WindowFramer implementation that doesn't support the FRAME clause (will assume the default frame).
Generate a non-covering index plan that is equivalent to the original plan.
Indicates NonNullable nature
This managers determines when to run a non-root fragment node.
Implementation of AliasRegistry that does nothing.
An injector that does not inject any controls, useful when not testing (i.e.
Do-nothing implementation of the metadata manager.
 
 
Simple selector whose value is another Simple or Complex Selectors.
 
 
 
 
 
 
 
 
 
 
 
Old versions of Drill were writing a non-standard format for date.
Old versions of Drill were writing a non-standard format for date.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Manages null columns by creating a null column loader for each set of non-empty null columns.
 
Create and populate null columns for the case in which a SELECT statement refers to columns that do not exist in the actual table.
 
Parser for a field that contains only nulls.
A vector cache implementation which does not actually cache.
Parses nulls.
Do-nothing vector state for a map column which has no actual vector associated with it.
Near-do-nothing state for a vector that requires no work to allocate or roll-over, but where we do want to at least track the vector itself.
A column specific equi-depth histogram which is meant for numeric data types
This class enables Drill to access file systems which use OAuth 2.0 for authorization.
 
 
 
While a builder may seem like overkill for a class that is little more than small struct, it allows us to wrap new instances in an Optional while using contructors does not.
Class for managing oauth tokens.
 
Parses a JSON object: { name : value ...
 
 
Interface to track opening and closing of files.
Per-operator services available for operator implementations.
 
State machine that drives the operator executable.
 
Core protocol for a Drill operator execution.
Visitor to renumber operators - needed after materialization is done as some operators may be removed using @ExtendedMaterializerVisitor
Registry of operator metrics.
 
Modular implementation of the standard Drill record batch iterator protocol.
Interface for updating a statistic.
 
Utility methods, formerly on the OperatorContext class, that work with operators.
Wrapper class for profiles of ALL operator instances of the same operator type within a major fragment.
 
 
 
 
 
This holds all the information about an option.
 
Wrapper class for OptionValue to add Status
 
 
Manager for Drill options.
Contains information about the scopes in which an option can be set, and an option's visibility.
Immutable set of options accessible by name or validator.
Validates the values provided to Drill options.
 
An option value is used internally by an OptionManager to store a run-time setting.
Defines where an option can be configured.
 
This defines where an option was actually configured.
 
OrderedMuxExchange is a version of MuxExchange where the incoming batches are sorted merge operation is performed to produced a sorted stream as output.
OrderedMuxExchangePrel is mux exchange created to multiplex the streams for a MergeReceiver.
 
 
 
 
Generates an ordered partition, rather than a random hash partition.
 

Class implementing OrderedPrel interface guarantees to provide ordered output on certain columns.
Complex selector whose value is list of other Simple or Complex Selectors.
Describes the field will provide output from the given function.
Builds an output batch based on an output schema and one or more input schemas.
Describes an input batch with a schema and a vector container.
Source map as a map schema and map vector.
Interface that allows a record reader to modify the current schema.
 
Return type calculation interface for functions that have return type set as with enum FunctionTemplate.ReturnType.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.CONCAT.
 
 
 
OutputWidthExpressions are used to capture the information required to calculate the width of the output produced by a variable-width expression.
Used to represent fixed-width values used in an expression.
FunctionCallExpr captures the details required to calculate the width of the output produced by a function that produces variable-width output.
IfElseWidthExpr is uded to capture an IfExpression.
VarLenReadExpr captures the inputColumnName and the readExpression used to read a variable length column.
 
 
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.PAD.
Implement UserAuthenticator based on Pluggable Authentication Module (PAM) configuration.
Implement UserAuthenticator based on Pluggable Authentication Module (PAM) configuration.
Captures parallelization parameters for a given operator/fragments.
Collects/merges one or more ParallelizationInfo instances.
Interface to implement for passing parameters to FragmentParallelizer.
Marker annotation to determine which fields should be included as parameters for the function.
 
 
Represents a single column read from the Parquet file by the record reader.
ByteBufferAllocator implementation that uses Drill's BufferAllocator to allocate and release ByteBuffer objects.
To properly release an allocated DrillBuf, this class keeps track of it's corresponding ByteBuffer that was passed to the Parquet library.
Internal implementation of the Parquet file writer as a block container
Note: this is temporary Drill-Parquet class needed to write empty parquet files.
 
 
 
 
 
 
Holds common statistics about data in parquet group scan, including information about total row count, columns counts, partition columns.
Interface for providing table, partition, file etc.
Base interface for builders of ParquetMetadataProvider.
Abstract implementation of RecordWriter interface which exposes interface: #writeHeader(List) #addField(int,String) to output the data in string format instead of implementing addField for each type holder.
PartitionDescriptor that describes partitions based on column names instead of directory structure
 
 
Stores consolidated parquet reading configuration.
 
 
Utility class where we can capture common logic between the two parquet readers
For most recently created parquet files, we can determine if we have corrupted dates (see DRILL-4203) based on the file metadata.
Utilities for converting from parquet INT96 binary (impala, hive timestamp) to date time value.
 
 
 
 
Creates file system only if it was not created before, otherwise returns already created instance.
Mapping from the schema of the Parquet file to that of the record reader to the schema that Drill and the Parquet reader uses.
 
Interface for providing table, partition, file etc.
 
 
Utility class for converting parquet metadata classes to Metastore metadata classes.
 
 
 
 
This exception is thrown when parse errors are encountered.
The parse_query function splits up a query string and returns a map of the key-value pairs.
 
 
The parse_url function takes an URL and returns a map of components of the URL.
 
 
Used internally to keep track of partitions and frames.
Represents a partition column (usually dir0, dir1, ...).
Interface used to describe partitions.
 
 
Decorator class to hide multiple Partitioner existence from the caller since this class involves multithreaded processing of incoming batches as well as flushing it needs special handling of OperatorStats - stats since stats are not suitable for use in multithreaded environment The algorithm to figure out processing versus wait time is based on following formula: totalWaitTime = totalAllPartitionersProcessingTime - max(sum(processingTime) by partitioner)
Helper interface to generalize functionality executed in the thread since it is absolutely the same for partitionBatch and flushOutgoingBatches protected is for testing purposes
 
Exposes partition information to UDFs to allow queries to limit reading partitions dynamically.
 
 
 
 
Helps to perform limit in a partition within a record batch.
Interface to define a partition.
 
 
 
 
 
 
Class PathInExpr is to recursively analyze a expression trees with a map of indexed expression collected from indexDescriptor, e.g.
Is used to provide schema using given schema file name and path.
Path serializer to simple String path.
 
A convenience class used to expedite zookeeper paths manipulations.
Injection for a single pause.
This represents a persisted OptionValue.
This deserializer only fetches the relevant information we care about from a store, which is the value of an option.
Implementation of aliases table that updates its version in persistent store after modifications.
Implementation of AliasRegistry that persists aliases tables to the pre-configured persistent store.
 
Stores and retrieve instances of given value type.
An abstraction for configurations that are used to create a store.
 
Defines operation mode of a PersistentStore instance.
A factory used to create store instances.
 
Implementation of TokenRegistry that persists token tables to the preconfigured persistent store.
 
Implementation of tokens table that updates its version in persistent store after modifications.
 
 
 
 
 
 
 
Visitor class designed to traversal of a operator tree.
 
Returns RuleSet for concrete planner phase.
 
 
 
Helper class to return PlanFragments based on the query plan or based on split query plan As of now it is only invoked once per query and therefore cheap to create PlanSplitter object on heap.
 
Aggregate implementation for Drill plugins.
The rule that converts provided aggregate operator to plugin-specific implementation.
Generalized interface for bootstraping or upgrading the plugin persistent store.
Loads the set of bootstrap plugin configurations for new systems.
 
Abstract base class for a rule that converts provided operator to plugin-specific implementation.
PluginCost describes the cost factors to be used when costing for the specific storage/format plugin
An interface to check if a parameter provided by user is valid or not.
Class which checks whether the provided parameter value is greater than or equals to a minimum limit.
Table implementation based on DynamicDrillTable to be used by Drill plugins.
Filter implementation for Drill plugins.
The rule that converts provided filter operator to plugin-specific implementation.
Represents a storage plugin, defined by a (name, config) pair.
Callback for the implementation process that checks whether a specific operator can be converted and converts a tree of PluginRel nodes into expressions that can be consumed by the storage plugin.
Prel used to represent a Plugin Conversion within an expression tree.
 
Join implementation for Drill plugins.
The rule that converts provided join operator to plugin-specific implementation.
Limit implementation for Drill plugins.
 
Represents a plugin-specific plan once children nodes have been pushed down into group scan.
Project implementation for Drill plugins.
The rule that converts provided project operator to plugin-specific implementation.
Provides a loose coupling of the plugin registry to the resources it needs from elsewhere.
Relational expression that uses specific plugin calling convention.
Provides rules required for adding support of specific operator pushdown for storage plugin.
 
Sort implementation for Drill plugins.
The rule that converts provided sort operator to plugin-specific implementation.
Union implementation for Drill plugins.
The rule that converts provided union operator to plugin-specific implementation.
This class uses reflection of a Java class to construct a RecordDataType.
Reads values from the given list of pojo instances.
Pojo writer interface for writers based on types supported for pojo.
 
Pojo writer for boolean.
Pojo writer for decimal.
Pojo writer for double.
Pojo writer for Enum.
Pojo writer for float.
Pojo writer for int.
Pojo writer for long.
Pojo writer for Long.
Pojo writer for Boolean.
Pojo writer for Double.
Pojo writer for Float.
Pojo writer for Integer.
Pojo writer for Timestamp.
Pojo writer for String.
 
Cost estimates per physical relation.
 
A marker interface that means that this node should be finalized before execution planning.
 
 
 
 
Debug-time class that prints a PRel tree to the console for inspection.
 
Contains worker Runnable for creating a prepared statement and helper methods.
Runnable that creates a prepared statement for given UserProtos.CreatePreparedStatementReq and sends the response at the end.
This class rewrites all the project expression that contain convert_to/ convert_from to actual implementations.
 
 
 
Manages a PriorityQueueCopier instance produced from code generation.
We've gathered a set of batches, each of which has been sorted.
 
Indicates private plugins which will be excluded from automatic plugin discovery.
 
 
 
 
 
 
 
 
System table listing completed profiles
 
Base class for Profile Iterators
System table listing completed profiles as JSON documents
 
 
 
 
Wrapper class for a query profile, so it to be presented through web UI.
 
 
Implements callbacks to build the physical vectors for the project record batch.
 
Enhanced form of a dynamic column which records all information from the project list.
Utility class to check if a column is consistent with the projection requested for a query.
Provides a variety of ways to filter columns: no filtering, filter by (parsed) projection list, or filter by projection list and provided schema.
Schema-based projection.
Compound filter for combining direct and provided schema projections.
Projection filter based on the (parsed) projection list.
Implied projection: either project all or project none.
 
Projection filter in which a schema exactly defines the set of allowed columns, and their types.
Projection based on a non-strict provided schema which enforces the type of known columns, but has no opinion about additional columns.
Converts a projection list passed to an operator into a scan projection list, coalescing multiple references to the same column into a single reference.
Schema tracker for the "normal" case in which schema starts from a simple projection list of column names, optionally with a provided schema.
ProjectMemoryManager(PMM) is used to estimate the size of rows produced by ProjectRecordBatch.
 
 
 
A physical Prel node for Project operator.
 
 
ProtoSerializer<T,B extends com.google.protobuf.Message.Builder>
 
Create a Drill field listener based on a provided schema.
 
 
Iterates over the set of batches in a result set, providing a row set reader to iterate over the rows within each batch.
Protocol
 
 
 
Push-based result set reader, in which the caller obtains batches and registers them with the implementation.
 
 
 
Represents one level of qualifier for a column.
 
Indicates that an external source has cancelled the query.
Per-compilation unit class loader that holds both caching and compilation steps.
 
 
 
Packages a batch from the Screen operator to send to its user connection.
Represents a batch of data with a schema.
Package that contains only a query ID.
 
 
Each Foreman holds its own QueryManager.
OptionManager that holds options within QueryContext.
Parallelizes the query plan.
 
Interface which defines a queue implementation for query queues.
Exception thrown for all non-timeout error conditions.
The opaque lease returned once a query is admitted for execution.
Exception thrown if a query exceeds the configured wait time in the query queue.
Interface which defines an implementation for managing queue configuration of a leaf ResourcePool
Parses and initialize QueueConfiguration for a ResourcePool.
Manages resources for an individual query in conjunction with the global ResourceManager.
Extends a QueryResourceAllocator to provide queueing support.
 
Model class for Query page
Model class for Results page
Encapsulates the future management of query submissions.
Query runner for streaming JSON results.
Is responsible for query transition from one state to another, incrementing / decrementing query statuses counters.
 
 
 
Definition of a minor fragment that contains the (unserialized) fragment operator tree and the (partially built) fragment.
 
 
 
Used to keep track of selected leaf and all rejected ResourcePool for the provided query.
Paralellizer specialized for managing resources for a query based on Queues.
Used in case of error while selecting a queue for a given query
Interface that defines all the implementation of a QueueSelectionPolicy supported by ResourceManagement
 
Factory to return an instance of QueueSelectionPolicy based on the configured policy name.
Randomly selects a queue from the list of all the provided queues.
 
A RangePartitionExchange provides the ability to divide up the rows into separate ranges or 'buckets' based on the values of a set of columns (the range partitioning columns).
Provides the ability to divide up the input rows into a fixed number of separate ranges or 'buckets' based on the values of a set of columns (the range partitioning columns).
 
 
A batch buffer is responsible for queuing incoming batches until a consumer is ready to receive them.
 
 
 
 
 
Creates a batch reader on demand.
Row set index base class used when indexing rows within a row set for a row set reader.
Computes the full output schema given a table (or batch) schema.
Reader-level projection is customizable.
Manages the schema and batch construction for a managed reader.
Orchestrates projection tasks for a single reader within the set that the scan operator manages.
Internal state for reading from a Parquet file.
A receiver is one half of an exchange operator.
 
A record batch contains a set of field values for a particular range of records.
Describes the outcome of incrementing RecordBatch forward by a call to RecordBatch.next().
Holds the data for a particular record batch for later manipulation.
Holds record batch loaded from record batch message.
 
Logic for handling batch record overflow; this class essentially serializes overflow vector data in a compact manner so that it is reused for building the next record batch.
Builder class to construct a RecordBatchOverflow object
Field overflow definition
Record batch definition
Given a record batch or vector container, determines the actual memory consumed by each column, the average row, and the entire record batch.
This class is tasked with managing all aspects of flat Parquet reader record batch sizing logic.
Field memory quota
An abstraction to allow column readers attach custom field overflow state
Container object to hold current field overflow state
Container object to supply variable columns statistics to the batch sizer
Utility class to capture key record batch statistics.
Indicates whether a record batch is Input or Output
Helper class which loads contextual record batch logging options
Provides methods to collect various information_schema data.
Provides information_schema data based on information stored in AbstractSchema.
Provides information_schema data based on information stored in Drill Metastore.
Defines names and data types of columns in a static drill table.
RecordIterator iterates over incoming record batches one record at a time.
 
For new implementations please use new ManagedReader
 
Pojo object for a record in INFORMATION_SCHEMA.CATALOGS
Pojo object for a record in INFORMATION_SCHEMA.COLUMNS
Pojo object for a record in INFORMATION_SCHEMA.FILES
Pojo object for a record in INFORMATION_SCHEMA.PARTITIONS
Pojo object for a record in INFORMATION_SCHEMA.SCHEMATA
Pojo object for a record in INFORMATION_SCHEMA.TABLES
Pojo object for a record in INFORMATION_SCHEMA.VIEWS
 
Wrapper around VectorAccessible to iterate over the records and fetch fields within a record.
RecordWriter interface.
 
 
Utilities for converting SQL LIKE and SIMILAR operators to regular expressions.
 
 
 
 
Fixed set of Drill relational operators, using well-defined names.
 
 
 
Is responsible for remote function registry management.
 
It is necessary to start Drillbit.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Represents the internal state of a RepeatedList vector.
Repeated list column state.
Track the repeated list vector.
Class is responsible for generating record batches for text file inputs.
Vector state for a scalar array (repeated scalar) vector.
BasicValue with additional tracking information used to determine the replaceability of the value (a holder, or boxed value) for scalar replacement purposes.
 
Plan-time properties of a requested column.
Represents one name element.
Represents the set of columns projected for a tuple (row or map.) Each column may have structure: a set of referenced names or array indices.
 
Represents an explicit projection at some tuple level.
 
Converts a SqlNode representing: "ALTER ..
Aliases table that fallback user aliases calls to public aliases if alias not found in user aliases table.
A resolved column has a name, and a specification for how to project data from a source vector to a vector in the final output container.
 
 
Represents a column which is implicitly a map (because it has children in the project list), but which does not match any column in the table.
Projected column that serves as both a resolved column (provides projection mapping) and a null column spec (provides the information needed to create the required null vectors.)
Column that matches one provided by the table.
Drill rows are made up of a tree of tuples, with the row being the root tuple.
 
 
Represents a map implied by the project list, whether or not the map actually appears in the table schema.
Represents a map tuple (not the map column, rather the value of the map column.) When projecting, we create a new repeated map vector, but share the offsets vector from input to output.
Represents the top-level tuple which is projected to a vector container.
 
 
 
 
Drillbit-wide resource manager shared by all queries.
Builds the proper resource manager and queue implementation for the configured system options.
Interface which defines an implementation of ResourcePool configuration for ResourcePoolTree
Parses and initializes all the provided configuration for a ResourcePool defined in RM configuration.
Interface that defines implementation for selectors assigned to a ResourcePool.
 
 
Interface which defines the implementation of a hierarchical configuration for all the ResourcePool that will be used for ResourceManagement
Parses and initializes configuration for ResourceManagement in Drill.
Responsible for setting configured ExecConstants.HTTP_JETTY_SERVER_RESPONSE_HEADERS to HttpServletResponse object.
 
 
 
Copies rows from an input batch to an output batch.
 
Builds a result set (series of zero or more row sets) based on a defined schema which may evolve (expand) over time.
Implementation of the result set loader.
Read-only set of options for the result set loader.
Builder for the options for the row set loader.
Interface for a cache that implements "vector persistence" across multiple result set loaders.
Manages an inventory of value vectors used across row batch readers.
An ASM ClassVisitor that allows for a late-bound delegate.
Return type calculation interface for functions that have return type set as with enum FunctionTemplate.ReturnType.
 
Rewrites an expression tree, replacing OR and AND operators with more than 2 operands with a chained operators each with only 2 operands.
Rewrites an expression tree, replacing chained OR and AND operators with a single N-ary operator e.g.
 
 
This class is an enhanced version for DrillOptiq, 1, it can convert expressions in one more layer(project that have expression) above project-scan, while DrillOptiq can only convert expressions directly reference scan's row type, 2, it can record the generated LogicalExpression of each rexNode in the rexNode tree for future reference this result can serve future rewrite that need to locate particular LogicalExpressions
 
 
Defines all the default values used for the optional configurations for ResourceManagement
Used in cases of any error with the ResourceManagement configuration
Marker interface describe the root of a query plan.
 
 
Node which is the last processing node in a query plan.
Provides services needed by the FragmentExecutor.
This managers determines when to run a root fragment node.
The root parsers are special: they must detect EOF.
Parser for data embedded within a message structure which is encoded as an array of objects.
Parser for data embedded within a message structure which is encoded as a single JSON object.
Parser for a compliant JSON data set which consists of an array at the top level, where each element of the array is a JSON object that represents a data record.
Parser for a jsonlines-style data set which consists of a series of objects.
 
 
 
 
 
 
 
 
 
 
 
Extended version of a record reader used by the revised scan batch operator.
Implementation of Calcite's ROW(col1, col2, ..., colN) constructor function.
 
 
 
Interface for a row key join
Enum for RowKeyJoin internal state.
 
 
 
 
 
 
 
 
A row set is a collection of rows stored as value vectors.
Single row set which is empty and allows writing.
Row set comprised of multiple single row sets, along with an indirection vector (SV4).
 
Row set that manages a single batch of rows.
Fluent builder to quickly build up an row set (record batch) programmatically.
Helper class to obtain string representation of RowSet.
Interface for writing values to a row set.
Implementation of the row set loader.
Reader for all types of row sets: those with or without a selection vector.
Reader implementation for a row set.
 
Interface for writing values to a row set.
Implementation of a row set writer.
Define the validity of a row group against a filter ALL : all rows match the filter (can not drop the row group and can prune the filter) NONE : no row matches the filter (can drop the row group) SOME : some rows only match the filter or the filter can not be applied (can not drop the row group nor the filter)
Contains rule instances which use custom RelBuilder.
 
 
 
 
A RuntimeFilterRecordBatch steps over the ScanBatch.
 
A reporter to send out the bloom filters to their receivers.
This class manages the RuntimeFilter routing information of the pushed down join predicate of the partitioned exchange HashJoin.
This sink receives the RuntimeFilters from the netty thread, aggregates them in an async thread, broadcast the final aggregated one to the RuntimeFilterRecordBatch.
This visitor does two major things: 1) Find the possible HashJoinPrel to add a RuntimeFilterDef to it.
A binary wire transferable representation of the RuntimeFilter which contains the runtime filter definition and its corresponding data.
Describes the field will provide output from the given function.
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.SAME_IN_OUT_LENGTH.
 
 
 
 
Base class for scalar field listeners
 
Reference list of classes we will perform scalar replacement on.
 
Parses true | false | null | integer | float | string |
embedded-object

and simply passes the value token on to the listener.
Parses true | false | null | integer | float | string |
embedded-object
 
Record batch used for a particular scan.
Row set mutator implementation provided to record readers created by this scan batch.
Binds the scan lifeycle to the scan operator.
This visitor will walk a logical plan and record in a map the list of field references associated to each scan.
 
Parses and analyzes the projection list passed to the scanner.
 
Interface for add-on parsers, avoids the need to create a single, tightly-coupled parser for all types of columns.
Identifies the kind of projection done for this scan.
/** Basic scan framework for a set of "managed" readers and which uses the scan schema tracker to evolve the scan output schema.
Gathers options for the ScanLifecycle then builds a scan lifecycle instance.
 
 
Interface to the set of readers, and reader schema, that the scan operator manages.
Implementation of the revised scan operator that uses a mutator aware of batch sizes.
 
Parse the projection list into a dynamic tuple schema.
 
 
Builds the configuration given to the ScanSchemaTracker.
Performs projection of a record reader, along with a set of static columns, to produce the final "public" result set (record batch) for the scan operator.
 
 
Resolves a schema against the existing scan schema.
Indicates the source of the schema to be analyzed.
Computes scan output schema from a variety of sources.
 
Cost estimate for a scan.
 
Simple "tracker" based on a defined, fixed schema.
A reusable builder that supports the creation of BatchSchemas.
 
Contains information needed by AbstractSchema implementations.
 
Interface to implement to provide required info for SchemaConfig
Holder class that contains table name, schema definition and current schema container version.
Schema container version holder contains version in int representation.
Storage plugins implements this interface to register the schemas they provide.
 
Aggregate function which accepts VarChar column with string representations of TupleMetadata and returns string representation of TupleMetadata with merged schema.
 
Aggregate function which infers schema from incoming data and returns string representation of TupleMetadata with incoming schema.
Parent class for CREATE / DROP / DESCRIBE / ALTER SCHEMA handlers.
ALTER SCHEMA ADD command handler.
CREATE SCHEMA command handler.
DESCRIBE SCHEMA FOR TABLE command handler.
Wrapper to output schema in a form of table with one column named `schema`.
DROP SCHEMA command handler.
ALTER SCHEMA REMOVE command handler.
 
Empty batch without schema and data.
The operator for creating SchemalessBatch instances
The type of scan operator, which allows to scan schemaless tables (DynamicDrillTable with null selection)
Negotiates the table schema with the scanner framework and provides context information for the reader.
Negotiates the table schema with the scanner framework and provides context information for the reader.
Implementation of the schema negotiation between scan operator and batch reader.
Implementation of the schema negotiation between scan operator and batch reader.
 
Exposes partition information for a particular schema.
Provides mechanisms to manage schema: store / read / delete.
Factory class responsible for creating different instances of schema provider based on given parameters.
Implements a "schema smoothing" algorithm.
Exception thrown if the prior schema is not compatible with the new table schema.
Tracks changes to schemas via "snapshots" over time.
Creates new schema trees.
Utility class for dealing with changing schemas
 
Set of schema utilities that don't fit well as methods on the column or tuple classes.
 
 
Transfer batches to a user connection.
 
 
 
 
A ByteArrayInputStream that supports the HDFS Seekable API.
 
This class extends from TableScan.
A selection vector that fronts, at most, 64K values.
 
 
 
 
 
 
A sender is one half of an exchange node operations.
Account for whether all messages sent have been completed.
 
 
 
 
ServerAuthenticationHandler<S extends ServerConnection<S>,T extends com.google.protobuf.Internal.EnumLite>
Handles SASL exchange, on the server-side.
Contains worker Runnable for returning server meta information
Runnable that creates server meta information for given ServerMetaReq and sends the response at the end.
A enumeration of server methods, and the version they were introduced it allows to introduce new methods without changing the protocol, with client being able to gracefully handle cases were method is not handled by the server.
 
OptionManager that holds options within UserSession context.
 
 
 
 
Converts a SqlNode representing: "ALTER ..
Representation of "SET property.name" query result.
 
Represents a layer of row batch reader that works with a result set loader and schema manager to structure the data read by the actual row batch reader.
 
Original show files command result holder is used as wrapper over new Records.File holder to maintain backward compatibility with ODBC driver etc.
 
 
Describes the field will provide output from the given function.
 
Base class for scalar and object arrays.
 
 
 
 
 
An implementation of interface CharStream, where the stream is assumed to contain only ASCII characters (without unicode processing).
 
Representation of a millisecond duration in a human-readable format
Parsers a Mongo extended type of the form:
Metadata provider which supplies only table schema and / or table statistics if available.
 
A message parser which accepts a path to the data encoded as a slash-separated string.
The simple parallelizer determines the level of parallelization of a plan based on the cost of the underlying operations.
Designed to setup initial values for arriving fragment accounting.
Abstract class for simple partition.
Builds a set of readers for a single (non-hyper) batch.
Wrap a VectorContainer into a record batch.
 
 
 
 
 
 
 
 
Rewrite RexNode with these policies: 1) field renamed.
This class go through the RexNode, collect all the fieldNames, mark starting positions(RexNode) of fields so this information can be used later e,.g.
 
 
 
 
 
 
 
 
Produce a metadata schema from a vector container.
Sender that pushes all data to a single destination node.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Base class for a single vector.
State for a scalar value vector.
 
Special case for an offset vector.
 
State for a scalar value vector.
Uses this class to keep track # of Drill Logical Expressions that are put to JBlock.
 
 
 
 
 
Resolve a table schema against the prior schema.
Implementation of FragmentParallelizer where fragment has zero or more endpoints with affinities.
 
 
 
 
Rule that converts an Sort to a physical SortPrel, implemented by a Drill "order" operation.
 
Single-batch sorter using a generated implementation based on the schema and sort specification.
Implementation of the external sort which is wrapped into the Drill "next" protocol by the ExternalSortBatch class.
 
Return results for a single input batch.
Iterates over the final sorted results.
Computes the memory needs for input batches, spill batches and merge batches.
 
 
 
 
 
Rule that converts a logical DrillSortRel to a physical sort.
 
 
This interface represents the metadata for a spilled partition.
Replaces "incoming" - instead scanning a spilled partition file
Holds a set of spilled batches, represented by a file on disk.
Represents the set of spilled batches, including methods to spill and/or merge a set of batches to produce a new spill file.
Manages the spilling information for an operator.
This is a class that is used to do updates of the spilled state.
Generates the set of spill files for this sort session.
Wrapper around an input stream to collect the total bytes read through the stream for use in reporting performance metrics.
Wrapper around an output stream to collect the total bytes written through the stream for use in reporting performance metrics.
SimpleParallelizerMultiPlans class is an extension to SimpleParallelizer to help with getting PlanFragments for split plan.
 
 
 
 
This implementation of RawBatchBuffer starts writing incoming batches to disk once the buffer size reaches a threshold.
Column-data accessor that implements JDBC's Java-null--when--SQL-NULL mapping.
SQL tree for ANALYZE statement.
Class responsible for managing: parsing - SqlConverter.parse(String) validation - SqlConverter.validate(SqlNode) conversion to rel - SqlConverter.toRel(SqlNode) (String)}
 
 
 
 
Enum which indicates type of CREATE statement.
 
 
 
 
 
 
 
 
Enum for metadata types to drop.
 
 
 
 
 
 
 
SQL Pattern Contains implementation
 
 
 
 
Sql parse tree node to represent statement: REFRESH TABLE METADATA tblname
Parent class for CREATE, DROP, DESCRIBE, ALTER SCHEMA commands.
 
CREATE SCHEMA sql call.
DESCRIBE SCHEMA FOR TABLE sql call.
Enum which specifies format of DESCRIBE SCHEMA FOR table output.
DROP SCHEMA sql call.
 
 
Sql parse tree node to represent statement: SHOW FILES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
Sql parse tree node to represent statement: SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr]
Sql parse tree node to represent statement: SHOW TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
 
 
Sql parser tree node to represent USE SCHEMA statement.
 
 
 
 
 
Configures SslContextFactory when https is enabled for Web UI
Factory for standard conversions as outlined in the package header.
 
Definition of a conversion including conversion type and the standard conversion class (if available.)
Indicates the type of conversion needed.
 
 
 
 
Base class for columns that take values based on the reader, not individual rows.
 
 
Base class for columns that take values based on the reader, not individual rows.
A DrillTable with a defined schema Currently, this is a wrapper class for SystemTable.
 
 
 
 
 
 
 
 
 
 
 
The log2m parameter defines the accuracy of the counter.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The log2m parameter defines the accuracy of the counter.
The log2m parameter defines the accuracy of the counter.
The log2m parameter defines the accuracy of the counter.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Example input and output: Schema of incoming batch:
 
 
 
Interface for collecting and obtaining statistics.
 
Reads records from the RecordValueAccessor and writes into StatisticsRecordCollector.
 
 
 
Visitor to collect stats such as cost and parallelization info of operators within a fragment.
 
Listener that keeps track of the status of batches sent, and updates the SendingAccountor when status is received for each batch
 
Data Model for rendering /options on webUI
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Interface for all implementations of the storage plugins.
 
 
Indicates an error when decoding a plugin from JSON.
 
 
Indicates the requested plugin was not found.
Plugin registry.
Helper class that can be used to obtain rules required for pushing down operators that specific plugin supports configured using StoragePluginRulesSupplier.StoragePluginRulesSupplierBuilder.
 
Map of storage plugin *configurations* indexed by name.
Interface to the storage mechanism used to store storage plugin configurations, typically in JSON format.
Concrete storage plugin (configuration) store based on the PersistentStore abstraction.
Storage plugin table scan rel implementation.
Holds storage properties used when writing schema container.
 
 
 
Model class for Storage Plugin and Credentials page.
Contains list of parameters that will be used to store path / files on file system.
An interface which supports storing a record stream.
A Store interface used to store and retrieve instances of given value type.
 
 
 
 
 
 
 
 
The Aggregator can return one of the following outcomes:
 
Stream the results of a query to a REST client as JSON, following the schema defined by QueryResult to maintain backward compatibility.
64-bit integer (BIGINT) listener with conversions only from numbers and strings.
 
32-bit integer (INT) listener with conversions only from numbers and strings.
 
Return type calculation implementation for functions with return type set as FunctionTemplate.ReturnType.STRING_CAST.
 
 
Convert string to ASCII from another encoding input.
Returns the ASCII code of the first character of input string
Returns the char corresponding to ASCII code input.
 
 
Remove the longest string containing only characters from "from" from the start of "text"
Remove the longest string containing only character " " from the start of "text"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Remove the longest string containing only characters from "from" from the start of "text"
Remove the longest string containing only character " " from the start of "text"
 
 
 
 
Returns the input char sequences repeated nTimes.
 
Returns the reverse string for given input.
 
Fill up the string to length "length" by appending the characters 'fill' at the end of 'text' If the string is already longer than length then it is truncated.
Fill up the string to length "length" by appending the characters ' ' at the end of 'text' If the string is already longer than length then it is truncated.
Remove the longest string containing only characters from "from" from the end of "text"
Remove the longest string containing only character " " from the end of "text"
 
 
 
Return the string part at index after splitting the input string using the specified delimiter.
Return the string part from start to end after splitting the input string using the specified delimiter.
 
 
 
 
 
 
 
 
Generates a mock string field of the given length.
Abstract implementation of RecordWriter interface which exposes interface: StringOutputRecordWriter.startNewSchema(BatchSchema) StringOutputRecordWriter.addField(int,String) to output the data in string format instead of implementing addField for each type holder.
 
A SubScan operator represents the data scanned by a particular major/minor fragment.
 
Removes RelSubset nodes from the plan.
SubsetTransformer<T extends org.apache.calcite.rel.RelNode,E extends Exception>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Visit Prel tree.
OptionManager that holds options within DrillbitContext.
Indicates system plugins which will be dynamically initialized during storage plugin registry init stage.
Locates system storage plugins.
An enumeration of all tables in Drill's system ("sys") schema.
This class creates batches based on the the type of SystemTable.
A "storage" plugin for system tables.
A namesake plugin configuration for system tables.
 
 
 
 
 
 
Definition of table parameters, contains parameter name, class type, type status (optional / required).
Describes table and parameters that can be used during table initialization and usage.
Simple selector whose value is a string representing a tag.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Defines a code generation "template" which consist of: An interface that defines the generated class. A template class which implements the interface to provide "generic" methods that need not be generated. A signature that lists the methods and vector holders used by the template.
 
 
Text format plugin for CSV and other delimited text formats.
 
A byte-based Text parser implementation.
 
 
 
 
Global resource manager that provides basic admission control (AC) via a configured queue: either the Zookeeper-based distributed queue or the in-process embedded Drillbit queue.
Per-query resource manager.
 
Searches a fragment operator tree to find buffered within that fragment.
 
 
 
 
 
Allows parallel executions of tasks in a simplified way.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Drill-flavored version of a timestamp parser.
Drill-specific extension to allow times only.
 
 
 
Describes the input token stream.
 
 
Internal exception to unwind the stack when a syntax error is detected within a record.
Token Manager Error.
Persistent Registry for OAuth Tokens
 
 
Operator Batch which implements the TopN functionality.
 
 
 
Adds non-trivial top project to ensure the final output field names are preserved.
 
 
 
Contains value vectors which are exactly the same as the incoming record batch's value vectors.
 
An abstraction for storing, retrieving and observing transient (key, value) pairs in a distributed environment.
 
 
Represents an event created as a result of an operation over a particular (key, value) entry in a store instance.
Types of store events.
Factory that is used to obtain a store instance.
A listener used for observing transient store events.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Common interface to access a tuple backed by a vector container or a map vector.
Common interface to access a column vector, its metadata, and its tuple definition (for maps.) Provides a visitor interface for common vector tasks.
Tuple-model interface for the top-level row (tuple) structure.
Accepts { name : value ...
Represents the loader state for a tuple: a row or a map.
 
 
 
 
 
 
Represents a map column (either single or repeated).
Represents a tuple defined as a Drill map: single or repeated.
State for a map vector.
Handles the details of the top-level tuple, the data row itself.
 
 
 
 
Declares a value vector field, providing metadata about the field.
 
Type functions for all types.
 
 
 
 
 
 
Unless explicitly changed by the user previously, the admin user groups can only be determined at runtime
Unless explicitly changed by the user previously, the admin user can only be determined at runtime
 
Validator that checks if the given DateTime format template is valid.
 
Validator that checks if the given value is included in a list of acceptable values.
 
 
 
Max width is a special validator which computes and validates the maxwidth.
 
 
 
 
 
 
 
 
Defines the query state and shared resources available to UDFs through injectables.
 
 
 
 
 
 
 
 
 
 
Wrapper store that delegates operations to PersistentStore.
 
 
 
 
 
 
 
 
 
 
 
Contains additional functions for union types in addition to those in GUnionFunctions
 
 
 
Returns zero if the inputs have equivalent types.
 
 
 
 
 
 
 
Represents the contents of a union vector (or a pseudo-union for lists).
Union or list (repeated union) column state.
Vector wrapper for a union vector.
 
Placeholder for future unnest implementation that may require code generation.
 
Contains the actual unnest operation.
 
 
 
 
 
UnorderedDeMuxExchange is a version of DeMuxExchange where the incoming batches are not sorted.
 
UnorderedMuxExchange is a version of MuxExchange where the incoming batches are not sorted.
 
 
 
 
 
 
 
 
Unpivot maps.
 
 
 
 
 
 
 
Interface to provide various username/password based implementations for authentication.
Factory class which provides UserAuthenticator implementation based on the BOOT options.
Annotation for UserAuthenticator implementation to identify the implementation type.
 
Interface for getting user session properties and interacting with user connection.
 
 
While a builder may seem like overkill for a class that is little more than small struct, it allows us to wrap new instances in an Optional while using contructors does not.
 
While a builder may seem like overkill for a class that is little more than small struct, it allows us to wrap new instances in an Optional while using contructors does not.
 
 
 
Holds metrics related to bit user rpc layer
Utility class for User RPC
 
 
 
Implementations of this interface are allowed to increment queryCount.
 
 
Drill-specific extension to allow dates only, expressed in UTC to be consistent with Mongo timestamps.
Per the V1 docs: In Strict mode, <date> is an ISO-8601 date format with a mandatory time zone field following the template YYYY-MM-DDTHH:mm:ss.mmm<+/-Offset>.
 
 
 
 
 
Description of a JSON value as inferred from looking ahead in the JSON stream.
Description of JSON types as derived from JSON tokens.
Constructs a ValueDef by looking ahead on the input stream.
 
Represents a JSON scalar value, either a direct object field, or level within an array.
Parses a JSON value.
Represents a declared variable (parameter) in a Drill function.
 
 
Physical Values implementation in Drill.
 
This class is responsible for formatting ValueVector elements.
 
 
 
Wraps a value vector field to be read, providing metadata about the field.
 
 
 
 
Value listener for JSON string values.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Parser which accepts all JSON values and converts them to actions on a UNION vector writer.
Class which handles reading a batch of rows from a set of variable columns
Implements the VarLenBulkInput interface to optimize data copy
 
 
 
 
 
 
 
 
 
This class is responsible for processing serialized overflow data (generated in a previous batch); this way overflow data becomes an input source and is thus a) efficiently re-loaded into the current batch ValueVector and b) subjected to the same batching constraints rules.
 
Implementation of CredentialsProvider that obtains credential values from Vault.
Implement UserAuthenticator based on HashiCorp Vault.
 
 
 
A wrapper around a VectorAccessible.
VectorAccessible is an interface.
Given a vector container, and a metadata schema that matches the container, walk the schema tree to allocate new vectors according to a given row count and the size information provided in column metadata.
 
Wraps a vector container and optional selection vector in an interface simpler than the entire RecordBatch.
Deprecated.
Prototype mechanism to allocate vectors based on expected data sizes.
 
 
Serializes vector containers to an output stream or from an input stream.
Read one or more vector containers from an input stream.
Writes multiple VectorAccessible or VectorContainer objects to an output stream.
Generic mechanism for retrieving vectors from a source tuple when projecting columns to the output tuple.
Handles batch and overflow operation for a (possibly compound) vector.
 
 
 
Versioned store that delegates operations to PersistentStore and keeps versioning, incrementing version each time write / delete operation is triggered.
Extension to the Store interface that supports versions
 
 
 
The vertex simply holds the child nodes but contains its own traits.
 
 
 
Overrides Viewable to create a model which contains additional info of what control to display in menubar.
Contains context information about view expansion(s) in a query.
 
Handler for Create View DDL command
Handler for Drop View [If Exists] DDL command.
Marker annotation to determine which fields should be included as parameters for the function.
Marker annotation to determine which fields should be included as parameters for the function.
Wrapper class around jetty based web server.
Holds various constants used by WebServer components.
Holds the resources required for Web User Session.
WebUserConnectionWrapper which represents the UserClientConnection between WebServer and Foreman, for the WebUser submitting the query.
 
 
Perform a wildcard projection.
Perform a wildcard projection with an associated output schema.
 
 
 
support for OVER(PARTITION BY expression1,expression2,...
 
 
 
 
 
 
Implementation of a table macro that generates a table based on parameters.
 
Manages the running fragments in a Drillbit.
Describes the field will provide output from the given function.
Stores the workspace related config.
 
 
 
Wrapper class that allows us to add additional information to each fragment node for planning purposes.
A specialized version of record batch that can moves out buffers and preps them for writing.
 
Writer physical operator
 
 
Write the RecordBatch to the given RecordWriter.
 
ZIP codec implementation which cna read or create single entry.
Defines the functions required by ZKACLProviderDelegate to access ZK-ACL related information
 
This class defines the methods that are required to specify ACLs on Drill ZK nodes
This class hides the ZKACLProvider from Curator-specific functions This is done so that ACL Providers have to be aware only about ZK ACLs and the Drill ZKACLProvider interface ACL Providers should not be concerned with the framework (Curator) used by Drill to access ZK.
This factory returns a ZKACLProviderDelegate which will be used to set ACLs on Drill ZK nodes If secure ACLs are required, the ZKACLProviderFactory looks up and instantiates a ZKACLProviderDelegate specified in the config file.
Annotation for ZKACLProviderDelegate implementation to identify the implementation type.
Manages cluster coordination utilizing zookeeper.
ZKDefaultACLProvider provides the ACLs for znodes created in a un-secure installation.
 
 
Deprecated.
will be removed in 1.7 use ZookeeperPersistentStoreProvider instead.
 
ZKSecureACLProvider restricts access to znodes created by Drill in a secure installation.
 
A namespace aware Zookeeper client.
Zookeeper based implementation of PersistentStore.