diff --git a/cmd/api-errors.go b/cmd/api-errors.go index 91c6c4437..e4d3989e8 100644 --- a/cmd/api-errors.go +++ b/cmd/api-errors.go @@ -297,6 +297,8 @@ const ( ErrEvaluatorInvalidTimestampFormatPatternSymbol ErrEvaluatorBindingDoesNotExist ErrMissingHeaders + ErrInvalidColumnIndex + ErrAdminConfigNotificationTargetsFailed ErrAdminProfilerNotEnabled ErrInvalidDecompressedSize @@ -1431,6 +1433,11 @@ var errorCodeResponse = map[APIErrorCode]APIError{ Description: "Some headers in the query are missing from the file. Check the file and try again.", HTTPStatusCode: http.StatusBadRequest, }, + ErrInvalidColumnIndex: { + Code: "InvalidColumnIndex", + Description: "The column index is invalid. Please check the service documentation and try again.", + HTTPStatusCode: http.StatusBadRequest, + }, ErrInvalidDecompressedSize: { Code: "XMinioInvalidDecompressedSize", Description: "The data provided is unfit for decompression", @@ -1658,6 +1665,8 @@ func toAPIErrorCode(ctx context.Context, err error) (apiErr APIErrorCode) { apiErr = ErrMissingHeaders case format.ErrParseInvalidPathComponent: apiErr = ErrMissingHeaders + case format.ErrInvalidColumnIndex: + apiErr = ErrInvalidColumnIndex } // Compression errors diff --git a/pkg/s3select/input.go b/pkg/s3select/input.go index 2d5c4f34a..09d607e72 100644 --- a/pkg/s3select/input.go +++ b/pkg/s3select/input.go @@ -75,7 +75,7 @@ func New(reader io.Reader, size int64, req ObjectSelectRequest) (s3s format.Sele req.InputSerialization.CSV.RecordDelimiter = "\n" } s3s, err = csv.New(&csv.Options{ - HasHeader: req.InputSerialization.CSV.FileHeaderInfo != CSVFileHeaderInfoNone, + HasHeader: req.InputSerialization.CSV.FileHeaderInfo == CSVFileHeaderInfoUse, RecordDelimiter: req.InputSerialization.CSV.RecordDelimiter, FieldDelimiter: req.InputSerialization.CSV.FieldDelimiter, Comments: req.InputSerialization.CSV.Comments,