pentaho/pentaho-kettle · error · SQLException
The error was gotten from ingres sql process
Error message
The error was gotten from ingres sql process
What it means
Thrown by the Ingres VectorWise bulk loader step after joining the SQL log-writer thread. The background thread that reads the ingres sql process log reported errors (logWriter.isErrorsOccured()), so the step surfaces a generic SQLException because the actual details were logged by the writer thread.
Solutions
- Check the step and Spoon logs plus the ingres sql process log output for the underlying error message reported by the log writer thread.
- Verify the field-to-column mapping (names, order, types) matches the target Ingres table.
- Test the target table accepts the data (constraints, not-null, widths) with a small batch.
- Confirm the Ingres/VectorWise client tools and environment (II_SYSTEM etc.) are correctly set up on the machine running the transformation.
Example fix
// before: generic failure with no visible cause throw new SQLException( "The error was gotten from ingres sql process" ); // after: include the captured log output for diagnosability String logTail = logWriter.getLastLogLines(); throw new SQLException( "The error was gotten from ingres sql process: " + logTail );
Defensive patterns
Strategy: try-catch
Try / catch
try { loader.processRow(); } catch (SQLException e) { /* inspect ingres sql process log / step log for real cause */ log.error("Ingres load failed: {}", e.getMessage(), e); } Prevention
- Validate field mappings against the live Ingres table schema before large loads.
- Test-load a small sample first.
- Keep the Ingres client environment correctly configured on the execution host.
When it happens
Trigger: processRow finishes loading and joins logWriteThread; the thread's isErrorsOccured() flag is true, meaning the 'ingres sql' process wrote errors to its log while consuming the fifo/stdin data.
Common situations: Invalid column names or types in the field mapping; data that violates Ingres table constraints; the vwload/ingres process failing to start or dying mid-load; wrong Ingres installation or environment variables.
Related errors
- Error serializing rows of data to the fifo file
- No connection specified
- AbortMeta.Exception.UnableToSaveStepInfoToRepository
- AccessInputMeta.Exception.ErrorReadingRepository
- AddSequence.Exception.CouldNotFindNextValueForSequence
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/9a6f0a988f5e8105.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/ivw-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/ivwloader/IngresVectorwiseLoader.java:406
public boolean processRow( StepMetaInterface smi, StepDataInterface sdi ) throws KettleException {
meta = (IngresVectorwiseLoaderMeta) smi;
data = (IngresVectorwiseLoaderData) sdi;
try {
Object[] r = getRow(); // Get row from input rowset & set row busy!
// no more input to be expected...
if ( r == null ) {
// only close output after the first row was processed
// to prevent error (NPE) on empty rows set
if ( !first ) {
closeOutput();
}
if ( logWriter != null ) {
logWriteThread.join();
if ( logWriter.isErrorsOccured() ) {
throw new SQLException( "The error was gotten from ingres sql process" );
}
}
if ( vwLoadMonitorThread != null ) {
vwLoadMonitorThread.join();
}
setOutputDone();
return false;
}
if ( first ) {
first = false;
// Cache field indexes.
//
data.keynrs = new int[meta.getFieldStream().length];
for ( int i = 0; i < data.keynrs.length; i++ ) {View on GitHub (pinned to f3058517a1)