Source:
<code>private boolean fillBufferIfWeHaveExhaustedIt() throws IOException { if ( bufferPos >= bufferEnd ) { boolean first = currentChunk == null; if ( !first ) { currentChunk.close(); if ( bufferPos - seekStartPos >= dataCapacity ) { throw new IllegalStateException( "Tried to read a field larger than buffer size " + dataLength + ". A common cause of this is that a field has an unterminated " + "quote and so will try to seek until the next quote, which ever line it may be on." + " This should not happen if multi-line fields are disabled, given that the fields contains " + <START> "no new-line characters. If you are running a `LOAD CSV query it may also be possible that " + <END> "increasing the buffer size via `dbms.import.csv.buffer_size` could help. " + "This field started at " + sourceDescription() + ":" + lineNumber() ); } } absoluteBufferStartPosition += dataLength; Chunk nextChunk = source.nextChunk( first ? -1 : seekStartPos ); if ( nextChunk.backPosition() == nextChunk.startPosition() + nextChunk.length() ) { return false; } buffer = nextChunk.data(); dataLength = nextChunk.length(); dataCapacity = nextChunk.maxFieldSize(); bufferPos = nextChunk.startPosition(); bufferEnd = bufferPos + dataLength; int shift = seekStartPos - nextChunk.backPosition(); seekStartPos = nextChunk.backPosition(); if ( first ) { lineStartPos = seekStartPos; } else { lineStartPos -= shift; } String sourceDescriptionAfterRead = nextChunk.sourceDescription(); if ( !sourceDescriptionAfterRead.equals( sourceDescription ) ) { lineNumber = 0; sourceDescription = sourceDescriptionAfterRead; } currentChunk = nextChunk; return dataLength > 0; } return true; }</code><technical_language>a bit of a hack include this information in a component LOAD CSV configuration option lives. catch repurpose this specific exception higher up, it? introduce a specific subclass of IllegalStateException for this purpose, in csv component catch in LOAD CSV land add this piece of messaging it</technical_language>

Target:
private boolean fillBufferIfWeHaveExhaustedIt() throws IOException { if ( bufferPos >= bufferEnd ) { boolean first = currentChunk == null; if ( !first ) { currentChunk.close(); if ( bufferPos - seekStartPos >= dataCapacity ) { throw new BufferOverflowException( "Tried to read a field larger than buffer size " + dataLength + ". A common cause of this is that a field has an unterminated " + "quote and so will try to seek until the next quote, which ever line it may be on." + " This should not happen if multi-line fields are disabled, given that the fields contains " + "no new-line characters. This field started at " + sourceDescription() + ":" + lineNumber() ); } } absoluteBufferStartPosition += dataLength; Chunk nextChunk = source.nextChunk( first ? -1 : seekStartPos ); if ( nextChunk.backPosition() == nextChunk.startPosition() + nextChunk.length() ) { return false; } buffer = nextChunk.data(); dataLength = nextChunk.length(); dataCapacity = nextChunk.maxFieldSize(); bufferPos = nextChunk.startPosition(); bufferEnd = bufferPos + dataLength; int shift = seekStartPos - nextChunk.backPosition(); seekStartPos = nextChunk.backPosition(); if ( first ) { lineStartPos = seekStartPos; } else { lineStartPos -= shift; } String sourceDescriptionAfterRead = nextChunk.sourceDescription(); if ( !sourceDescriptionAfterRead.equals( sourceDescription ) ) { lineNumber = 0; sourceDescription = sourceDescriptionAfterRead; } currentChunk = nextChunk; return dataLength > 0; } return true; }