pentaho/pentaho-kettle · error · KettleDatabaseException

Error evaluating Internet address value metadata

Error message

Error evaluating Internet address value metadata

What it means

getValueFromSQLType() inspects a ResultSet's column metadata to decide whether the column is a valid Internet Address source. Any exception during this evaluation (metadata access failures, unexpected SQL types) is wrapped in KettleDatabaseException 'Error evaluating Internet address value metadata'.

Solutions

  1. Check the JDBC connection and driver; upgrade to a fully compliant driver
  2. Test the same query in a DB client to confirm the column metadata is retrievable
  3. Catch KettleDatabaseException during preview and define the field type manually (Set Field Type to Internet Address / String) instead of relying on SQL-type detection

Example fix

// before
ValueMetaInterface vm = inetMeta.getValueFromSQLType(dbMeta, rs, i, null, false);
// after
ValueMetaInterface vm;
try { vm = inetMeta.getValueFromSQLType(dbMeta, rs, i, null, false); }
catch (KettleDatabaseException e) { vm = new ValueMetaString("ip"); log.warn("Metadata detection failed, defaulting to String"); }
Defensive patterns

Strategy: try-catch

Validate before calling

try (ResultSet rs = stmt.getMetaData()) { /* verify rs.getColumnCount() > index and type name before detection */ }

Try / catch

try { vm = inetMeta.getValueFromSQLType(dbMeta, rs, i, null, false); } catch (KettleDatabaseException e) { vm = new ValueMetaString("ip"); }

Prevention

When it happens

Trigger: Table input / database preview calling getValueFromSQLType() against a column whose metadata cannot be evaluated — driver throwing on getColumnType/getColumnTypeName, invalid column index, or connection problems during metadata retrieval.

Common situations: JDBC drivers with incomplete DatabaseMetaData support (e.g., exotic or legacy drivers); querying views/system tables with odd column types; stale or broken connections during table preview.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/670a60f5c300407a. Report an issue: GitHub.

Appendix: source

Thrown at core/src/main/java/org/pentaho/di/core/row/value/ValueMetaInternetAddress.java:501

    try {
      int type = rm.getColumnType( index );
      if ( type == java.sql.Types.OTHER ) {

        String columnTypeName = rm.getColumnTypeName( index );
        if ( "INET".equalsIgnoreCase( columnTypeName ) ) {

          ValueMetaInternetAddress valueMeta = new ValueMetaInternetAddress( name );

          // Also get original column details, comment, etc.
          //
          getOriginalColumnMetadata( valueMeta, rm, index, ignoreLength );
          return valueMeta;
        }
      }
      return null;
    } catch ( Exception e ) {
      throw new KettleDatabaseException( "Error evaluating Internet address value metadata", e );
    }
  }

  @Override
  public Object getValueFromResultSet( DatabaseInterface databaseInterface, ResultSet resultSet, int index ) throws KettleDatabaseException {

    try {

      return convertStringToInternetAddress( resultSet.getString( index + 1 ) );

    } catch ( Exception e ) {
      throw new KettleDatabaseException( toStringMeta()
        + " : Unable to get Internet Address from resultset at index " + index, e );
    }

  }

  @Override

View on GitHub (pinned to f3058517a1)