{"record":{"id":"d75b7c40e33fd95d","repo":"pentaho/pentaho-kettle","slug":"unsupported-type","errorCode":null,"errorMessage":"Unsupported type","messagePattern":"Unsupported type","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/gp-bulk-loader/core/src/main/java/org/pentaho/di/trans/steps/gpbulkloader/GPBulkDataOutput.java","lineNumber":198,"sourceCode":"            break;\n          case ValueMetaInterface.TYPE_BOOLEAN:\n            Boolean b = mi.getBoolean( row, number );\n            output.print( enclosure );\n            if ( b.booleanValue() ) {\n              output.print( \"Y\" );\n            } else {\n              output.print( \"N\" );\n            }\n            output.print( enclosure );\n            break;\n          case ValueMetaInterface.TYPE_BINARY:\n            byte[] byt = mi.getBinary( row, number );\n            output.print( \"<startlob>\" );\n            output.print( byt );\n            output.print( \"<endlob>\" );\n            break;\n          default:\n            throw new KettleException( \"Unsupported type\" );\n        }\n      }\n    }\n    output.print( Const.CR );\n  }\n}\n","sourceCodeStart":180,"sourceCodeEnd":205,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/gp-bulk-loader/core/src/main/java/org/pentaho/di/trans/steps/gpbulkloader/GPBulkDataOutput.java#L180-L205","documentation":"GPBulkDataOutput.writeLine throws a KettleException 'Unsupported type' when a row value's data type hits the default branch of the writeLine switch. Only the types GPBulkDataOutput explicitly handles (string, number, integer, date, boolean, big number, binary, timestamp) are accepted; anything else is unsupported for text-format bulk output.","triggerScenarios":"A stream field whose ValueMetaInterface type is one not covered by the switch (e.g. TYPE_INET, TYPE_TIMESTAMP on older versions, or a custom/plugin value type) flows into the step and reaches writeLine's default branch.","commonSituations":"Upstream step producing an exotic value type (Internet Address, custom plugin type); a transformation upgraded from a newer Pentaho version whose timestamp/inet types this plugin build predates; misdeclared field type in a User Defined Java Class output.","solutions":["Insert a Select Values step before the loader and convert the offending field to a supported type (String, Number, Integer, Date, Boolean, BigNumber or Binary).","Identify which field has the unsupported type via the nested context and fix its producer step.","Upgrade the gp-bulk-loader plugin/Pentaho if the type is supported in newer builds.","Avoid exotic types (INET, custom) in streams feeding bulk text output."],"exampleFix":"// before: field 'ip' of TYPE_INET reaches writeLine -> Unsupported type\n\n// after: Select Values step converts 'ip' to String before GP Bulk Loader\n// SelectValuesMeta: fields[i].setName(\"ip\"); fields[i].setConvertToType(ValueMetaInterface.TYPE_STRING);","handlingStrategy":"validation","validationCode":"RowMetaInterface prev = transMeta.getPrevStepFields( stepName );\nSet<Integer> supported = new HashSet<>( Arrays.asList(\n  ValueMetaInterface.TYPE_STRING, ValueMetaInterface.TYPE_NUMBER,\n  ValueMetaInterface.TYPE_INTEGER, ValueMetaInterface.TYPE_DATE,\n  ValueMetaInterface.TYPE_BOOLEAN, ValueMetaInterface.TYPE_BIGNUMBER,\n  ValueMetaInterface.TYPE_BINARY, ValueMetaInterface.TYPE_TIMESTAMP ) );\nfor ( ValueMetaInterface vm : prev.getValueMetaList() ) {\n  if ( !supported.contains( vm.getType() ) ) {\n    throw new KettleException( \"Unsupported type in field: \" + vm.getName() );\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Convert exotic types (INET, custom plugin types) to String before bulk loading","Check field types in the step preview before running","Match plugin/Pentaho versions when reusing transformations"],"tags":["type-mismatch","value-types","greenplum"],"backgroundTag":"unsupported-dtype","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}