Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
Used in:
Used in: ,
Used in: ,
Used in:
Used in:
Used in: ,
(message has no fields)
Helper message for deduplicating delete file lists
Used in:
Used in:
Used in:
The array expression to explode into multiple rows
Whether this is explode_outer (produces null row for empty/null arrays)
Expressions for other columns to project alongside the exploded values
Whether to emit a position column alongside the exploded values (posexplode)
Used in:
Used in:
Used for ROWS frames. Integer row count.
Used for RANGE frames. Carries the typed offset value so the native side can build a ScalarValue whose type matches the ORDER BY column.
Used in:
Per-expression modes for mixed-mode aggregates (e.g., PartialMerge + Partial). When set, each entry corresponds to agg_exprs at the same index. When empty, all expressions use the `mode` field.
Offset in the child's output where aggregate buffer attributes start. Used by PartialMerge to locate state fields in the input.
Used in:
True for BroadcastHashJoinExec null-aware anti-joins (NOT IN subquery semantics). When true, any null in the build side suppresses all left rows.
Iceberg delete file for MOR tables (positional or equality deletes) Positional: (file_path, row_position) pairs to skip Equality: Column values to filter out (specified by equality_ids)
Used in:
Delete file path
POSITION_DELETES or EQUALITY_DELETES
Partition spec ID
Equality field IDs (empty for positional deletes)
Iceberg FileScanTask containing data file, delete files, and residual filter
Used in:
Data file path (e.g., s3://bucket/warehouse/db/table/data/00000-0-abc.parquet)
Byte range to read (for split files)
Record count if reading entire file
Total file size from the manifest entry, used to skip stat/HEAD calls
Indices into IcebergScan deduplication pools
Used in:
Common data shared across partitions (pools, metadata, catalog props)
Single partition's file scan tasks
Common data shared by all partitions in split mode (sent once, captured in closure)
Used in:
Catalog-specific configuration for FileIO (credentials, S3/GCS config, etc.)
Table metadata file path for FileIO initialization
Schema to read
Deduplication pools (must contain all entries for cross-partition deduplication)
Number of data files to read concurrently within a single task
Spark V2 catalog name that loaded this table. Forwarded as the dispatchKey to CometS3CredentialDispatcher.ensureInitialized so two catalogs sharing one provider class get isolated provider instances. Empty string when the table has no catalog identity (e.g. HadoopTables loaded by raw path).
Used in: , ,
Used in:
Used in:
Used in:
Common data shared across partitions (schemas, filters, projections, config)
Single partition's file list (injected at execution time)
Common data shared by all partitions in split mode (sent once at planning)
Used in:
SPARK-53535 (Spark 4.1+): when reading a struct whose requested fields are all missing in the Parquet file, true returns the entire struct as null (legacy pre-4.1 behavior); false preserves the parent struct's nullness from the file so non-null parents return a struct of all-null fields.
True when spark.sql.parquet.fieldId.read.enabled is set and the requested schema actually carries parquet.field.id metadata. When false the native scan keeps its existing name-based path with no extra work.
True when spark.sql.parquet.fieldId.read.ignoreMissing is set.
Whether widening type promotion is allowed (e.g. INT32 -> INT64, FLOAT -> DOUBLE). Set from Comet's per-Spark-version constant in ShimCometConf (false on 3.x, true on 4.x). When false, reading a column with a disallowed promoted type throws an error matching Spark's SchemaColumnConvertNotSupportedException behavior.
When true, reading a Parquet TimestampLTZ column as TimestampNTZ is permitted (Spark 4.0+, SPARK-47447); when false, it is rejected with SchemaColumnConvertNotSupportedException (Spark 3.x, SPARK-36182). Set from Comet's per-Spark-version constant in ShimCometConf.
The basic message representing a Spark operator.
Used in:
The child operators of this
Spark plan ID
Used in:
Working directory for temporary files (used by FileCommitProtocol) If not set, files are written directly to output_path
Job ID for tracking this write operation
Task attempt ID for this specific task
Options for configuring object stores such as AWS S3, GCS, etc. The key-value pairs are taken from Hadoop configuration for compatibility with Hadoop FileSystem implementations of object stores. The configuration values have hadoop. or spark.hadoop. prefix trimmed. For instance, the configuration value "spark.hadoop.fs.s3a.access.key" will be stored as "fs.s3a.access.key" in the map.
Collection of partition values for a single partition
Used in:
Partition value for Iceberg partition data
Used in:
days since epoch
microseconds since epoch
microseconds with timezone
unscaled BigInteger bytes
Used in:
Used for ROWS frames. Integer row count.
Used for RANGE frames. Carries the typed offset value so the native side can build a ScalarValue whose type matches the ORDER BY column.
Helper message for deduplicating field ID lists
Used in:
Used in:
Used in:
The source of the scan (e.g. file scan, broadcast exchange, shuffle, etc). This is purely for informational purposes when viewing native query plans in debug mode.
Used in:
Informational label for debug output (e.g., "CometShuffleExchangeExec [id=5]")
Used in:
Size of the write buffer in bytes used when writing shuffle data to disk. Larger values may improve write performance but use more memory.
Spark-declared output schema of the writer's child. When the child is an inlined native subtree, the native planner casts the child's actual output to this schema before serializing to shuffle blocks, since there is no FFI boundary or ScanExec between them to absorb DataFusion-vs-Spark type drift. Empty when the child is a placeholder Scan; that path already has a cast point upstream.
Used in:
Used in:
This name and the one above are not great, but they correspond to the (unfortunate) Spark names. I prepended "Spark" since I think there's a name collision on the native side, but we can revisit.
Used in: ,
Used in:
Used in: , , ,
Spark field metadata. Currently used to carry parquet.field.id through to the native side. Empty when not needed.
Used in:
(message has no fields)
Used in:
(message has no fields)
Used in:
Used in:
Used in:
Spark's expected result type. Used to cast the native window function output when DataFusion's return type differs (e.g. row_number returns UInt64 but Spark expects Int32).
Used in:
Used in:
Used in: