diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp index c8fe1d6f8..63e93edae 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp @@ -25,7 +25,7 @@ BaseScanner::BaseScanner(shared_ptr buffer_manager_p, shared_p } } -bool BaseScanner::FinishedFile() { +bool BaseScanner::FinishedFile() const { if (!cur_buffer_handle) { return true; } @@ -76,7 +76,7 @@ void BaseScanner::FinalizeChunkProcess() { throw InternalException("FinalizeChunkProcess() from CSV Base Scanner is not implemented"); } -CSVStateMachine &BaseScanner::GetStateMachine() { +CSVStateMachine &BaseScanner::GetStateMachine() const { return *state_machine; } diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp index b58f36490..173ca8a17 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp @@ -28,6 +28,11 @@ StringValueResult::StringValueResult(CSVStates &states, CSVStateMachine &state_m current_errors(state_machine.options.IgnoreErrors()), sniffing(sniffing_p), path(std::move(path_p)) { // Vector information D_ASSERT(number_of_columns > 0); + if (!buffer_handle) { + // It Was Over Before It Even Began + D_ASSERT(iterator.done); + return; + } buffer_handles[buffer_handle->buffer_idx] = buffer_handle; // Buffer Information buffer_ptr = buffer_handle->Ptr(); diff --git a/src/duckdb/src/function/table/version/pragma_version.cpp b/src/duckdb/src/function/table/version/pragma_version.cpp index f8dd0a0a8..4996fbfb1 100644 --- a/src/duckdb/src/function/table/version/pragma_version.cpp +++ b/src/duckdb/src/function/table/version/pragma_version.cpp @@ -1,5 +1,5 @@ #ifndef DUCKDB_PATCH_VERSION -#define DUCKDB_PATCH_VERSION "1-dev293" +#define DUCKDB_PATCH_VERSION "1-dev297" #endif #ifndef DUCKDB_MINOR_VERSION #define DUCKDB_MINOR_VERSION 1 @@ -8,10 +8,10 @@ #define DUCKDB_MAJOR_VERSION 1 #endif #ifndef DUCKDB_VERSION -#define DUCKDB_VERSION "v1.1.1-dev293" +#define DUCKDB_VERSION "v1.1.1-dev297" #endif #ifndef DUCKDB_SOURCE_ID -#define DUCKDB_SOURCE_ID "64520f224d" +#define DUCKDB_SOURCE_ID "cb2a947e9d" #endif #include "duckdb/function/table/system_functions.hpp" #include "duckdb/main/database.hpp" diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp index 8922fc7ce..8a10868d7 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp @@ -73,7 +73,7 @@ class BaseScanner { virtual ~BaseScanner() = default; //! Returns true if the scanner is finished - bool FinishedFile(); + bool FinishedFile() const; //! Parses data into a output_chunk virtual ScannerResult &ParseChunk(); @@ -97,7 +97,7 @@ class BaseScanner { return iterator.pos; } - CSVStateMachine &GetStateMachine(); + CSVStateMachine &GetStateMachine() const; shared_ptr csv_file_scan; @@ -313,6 +313,9 @@ class BaseScanner { //! Internal function for parse chunk template void ParseChunkInternal(T &result) { + if (iterator.done) { + return; + } if (!initialized) { Initialize(); initialized = true;