Nikolas Falco created NIFI-12777:
------------------------------------
Summary: QueryRecord does not support UUID field type
Key: NIFI-12777
URL: https://issues.apache.org/jira/browse/NIFI-12777
Project: Apache NiFi
Issue Type: Bug
Components: Extensions
Affects Versions: 1.25.0
Environment: windows
Reporter: Nikolas Falco
I have a QueryRecord processor that takes a flowfile as input. This flowfile
contains records with some fields of type UUID.
{noformat}
Objavro.schema„N{"type":"record","name":"nifiRecord","namespace":"org.apache.nifi","fields":[{"name":"obbligato_cognome","type":["string","null"]},{"name":"data_inserimento","type":[{"type":"long","logicalType":"timestamp-millis"},"null"]},{"name":"obbligato_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"trasgressore_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"id_verbale","type":["string","null"]},{"name":"stato_verbale","type":["string","null"]},{"name":"obbligato_comune_sede_legale_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"tipo_verbale","type":["string","null"]},{"name":"obbligato_indirizzo_residenza","type":["string","null"]},{"name":"trasgressore_tipo_anagrafica","type":["string","null"]},{"name":"tipo_accertamento_nome","type":["string","null"]},{"name":"importo_scontato","type":[{"type":"bytes","logicalType":"decimal","precision":15,"scale":6},"null"]},{"name":"obbligato_comune_residenza_id","type":["string","null"]},{"name":"luogo_comune_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"obbligato_data_nascita","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"data_spedizione_verbale","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"trasgressore_esito_spedizione","type":["string","null"]},{"name":"obbligato_nome","type":["string","null"]},{"name":"luogo_strada","type":["string","null"]},{"name":"gruppo_nome_comune","type":["string","null"]},{"name":"tipo_accertamento_descrizione","type":["string","null"]},{"name":"agente_accertatore","type":["string","null"]},{"name":"data_decorrenza_verbale","type":[{"type":"long","logicalType":"timestamp-millis"},"null"]},{"name":"trasgressore_civico_residenza","type":["string","null"]},{"name":"trasgressore_cognome","type":["string","null"]},{"name":"tipo_accertamento_codice_veloce","type":["string","null"]},{"name":"trasgressore_rappresentante_legale","type":["string","null"]},{"name":"aggId","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"trasgressore_comune_residenza_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"obbligato_tipo_anagrafica","type":["string","null"]},{"name":"obbligato_sesso","type":["string","null"]},{"name":"trasgressore_data_spedizione","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"obbligato_ragione_sociale","type":["string","null"]},{"name":"obbligato_indirizzo_sede_legale","type":["string","null"]},{"name":"obbligato_data_notifica","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"importo_minimo_edittale","type":[{"type":"bytes","logicalType":"decimal","precision":15,"scale":6},"null"]},{"name":"trasgressore_cf_pi","type":["string","null"]},{"name":"veicolo_stato_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"trasgressore_nome","type":["string","null"]},{"name":"trasgressore_cap_comune_residenza","type":["string","null"]},{"name":"trasgressore_comune_sede_legale_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"obbligato_cf_pi","type":["string","null"]},{"name":"trasgressore_ragione_sociale","type":["string","null"]},{"name":"stazione_descrizione","type":["string","null"]},{"name":"obbligato_rappresentante_legale","type":["string","null"]},{"name":"gruppo_descizione","type":["string","null"]},{"name":"obbligato_data_spedizione","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"trasgressore_civico_sede_legale","type":["string","null"]},{"name":"data_notifica_verbale","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"obbligato_cap_comune_residenza","type":["string","null"]},{"name":"trasgressore_data_notifica","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"trasgressore_data_nascita","type":[{"type":"int","logicalType":"date"},"null"]},{"name":"trasgressore_indirizzo_residenza","type":["string","null"]},{"name":"gruppo_comando_id","type":["string","null"]},{"name":"obbligato_esito_spedizione","type":["string","null"]},{"name":"data_verbale","type":[{"type":"long","logicalType":"timestamp-millis"},"null"]},{"name":"agente_proprietario","type":["string","null"]},{"name":"trasgressore_indirizzo_sede_legale","type":["string","null"]},{"name":"obbligato_civico_sede_legale","type":["string","null"]},{"name":"stazione_codice_univoco","type":["string","null"]},{"name":"obbligato_civico_residenza","type":["string","null"]},{"name":"veicolo_targa","type":["string","null"]},{"name":"gruppo_codice_univoco","type":["string","null"]},{"name":"luogo_comune","type":["string","null"]},{"name":"importo_ruolo","type":[{"type":"bytes","logicalType":"decimal","precision":15,"scale":6},"null"]},{"name":"stazione_comando_id","type":["string","null"]},{"name":"stazione_nome_comune","type":["string","null"]},{"name":"trasgressore_sesso","type":["string","null"]},{"name":"luogo_strada_id","type":[{"type":"string","logicalType":"uuid"},"null"]},{"name":"id_ricorso","type":[{"type":"string","logicalType":"uuid"},"null"]}]}
{noformat}
If I add a property named "extracId" and value "SELECT aggid FROM FLOWFILE" the
processor throw an exception:
{noformat}
Caused by: java.sql.SQLException: Error while preparing statement [SELECT aggid
FROM FLOWFILE]
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:226)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:205)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:101)
at
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:178)
at
org.apache.nifi.processors.standard.QueryRecord.buildCachedStatement(QueryRecord.java:409)
... 15 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unknown Record Field Type: UUID
at
org.apache.nifi.queryrecord.FlowFileTable.getRelDataType(FlowFileTable.java:278)
at
org.apache.nifi.queryrecord.FlowFileTable.getRowType(FlowFileTable.java:185)
at
org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java:161)
at
org.apache.calcite.sql.validate.EmptyScope.resolveTable(EmptyScope.java:101)
at
org.apache.calcite.sql.validate.DelegatingScope.resolveTable(DelegatingScope.java:230)
at
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:116)
at
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:189)
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:88)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1154)
{noformat}
Looking into the code seems that the switch case in getRelDataType in
FlowFileTable miss to handle UUID. In version 2.0 beta the class has been
removed
--
This message was sent by Atlassian Jira
(v8.20.10#820010)