feat(s3select): support compressed CSV and JSON input (#6915)

This commit is contained in:
GatewayJ
2026-08-31 13:35:59 +08:00
committed by GitHub
parent 1d606e1cf6
commit 589a954478
12 changed files with 3057 additions and 144 deletions
+10
View File
@@ -23,6 +23,7 @@ use datafusion::{
use std::{error::Error as StdError, fmt::Display};
use thiserror::Error;
mod input_stream;
mod metrics;
pub mod object_store;
pub mod query;
@@ -79,6 +80,9 @@ pub enum SelectError {
#[error("The file is not in a supported compression format. Only GZIP and BZIP2 are supported.")]
InvalidCompressionFormat,
#[error("{compression} is not applicable to the queried object. Please correct the request and try again.")]
InvalidCompressionFormatForObject { compression: &'static str },
#[error("The data source type is not valid. Only CSV, JSON, and Parquet are supported.")]
InvalidDataSource,
@@ -87,6 +91,9 @@ pub enum SelectError {
)]
TruncatedInput,
#[error("Scan range queries are not supported on this type of object.")]
UnsupportedScanRangeInput,
#[error("An error occurred while parsing the CSV file. Check the file and try again.")]
CsvParsingError,
@@ -96,6 +103,9 @@ pub enum SelectError {
#[error("An error occurred while parsing the Parquet file. Check the file and try again.")]
ParquetParsingError,
#[error("The length of a record in the input or result is greater than the maxCharsPerRecord limit of 1 MB.")]
OverMaxRecordSize,
#[error("{message}")]
ParseSelectFailure { message: String },