-
1. Re: User Defined Functions - External jar
shawkins May 13, 2016 2:22 PM (in response to parrotola)Can you provide the full stack trace?
-
2. Re: User Defined Functions - External jar
parrotola May 16, 2016 4:35 AM (in response to shawkins)10:34:38,119 INFO [org.teiid.PLANNER] (Worker0_QueryProcessorQueue47) GzUPLUyEV2u5
============================================================================
USER COMMAND:
SELECT convertUri(ViewModel.new_table.citta, '', '') FROM ViewModel.new_table
----------------------------------------------------------------------------
OPTIMIZE:
SELECT convertUri(ViewModel.new_table.citta, '', '') FROM ViewModel.new_table
----------------------------------------------------------------------------
GENERATE CANONICAL:
SELECT convertUri(ViewModel.new_table.citta, '', '') FROM ViewModel.new_table
CANONICAL PLAN:
Project(groups=[ViewModel.new_table], props={PROJECT_COLS=[convertUri(ViewModel.new_table.citta, '', '')]})
Source(groups=[ViewModel.new_table], props={NESTED_COMMAND=SELECT A.id_transazione, A.cognome, A.nome, A.indirizzo, A.citta, A.stato, A.regione, A.iban, A.iban2, A.data, A.filiale, A.cifra, A.d_clienti, A.d_filiali, A.d_ip, A.d_prodotti FROM (EXEC SourceModel_1.getTextFiles('csvprova.csv')) AS f CROSS JOIN TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, SYMBOL_MAP={ViewModel.new_table.id_transazione=A.id_transazione, ViewModel.new_table.cognome=A.cognome, ViewModel.new_table.nome=A.nome, ViewModel.new_table.indirizzo=A.indirizzo, ViewModel.new_table.citta=A.citta, ViewModel.new_table.stato=A.stato, ViewModel.new_table.regione=A.regione, ViewModel.new_table.iban=A.iban, ViewModel.new_table.iban2=A.iban2, ViewModel.new_table.data=A.data, ViewModel.new_table.filiale=A.filiale, ViewModel.new_table.cifra=A.cifra, ViewModel.new_table.d_clienti=A.d_clienti, ViewModel.new_table.d_filiali=A.d_filiali, ViewModel.new_table.d_ip=A.d_ip, ViewModel.new_table.d_prodotti=A.d_prodotti}})
Project(groups=[A], props={PROJECT_COLS=[A.id_transazione, A.cognome, A.nome, A.indirizzo, A.citta, A.stato, A.regione, A.iban, A.iban2, A.data, A.filiale, A.cifra, A.d_clienti, A.d_filiali, A.d_ip, A.d_prodotti]})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[]})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file, f.filePath=SourceModel_1.getTextFiles.filePath}})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath]})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv')})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}})
============================================================================
EXECUTING PlaceAccess
AFTER:
Project(groups=[ViewModel.new_table], props={PROJECT_COLS=[convertUri(ViewModel.new_table.citta, '', '')]})
Source(groups=[ViewModel.new_table], props={NESTED_COMMAND=SELECT A.id_transazione, A.cognome, A.nome, A.indirizzo, A.citta, A.stato, A.regione, A.iban, A.iban2, A.data, A.filiale, A.cifra, A.d_clienti, A.d_filiali, A.d_ip, A.d_prodotti FROM (EXEC SourceModel_1.getTextFiles('csvprova.csv')) AS f CROSS JOIN TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, SYMBOL_MAP={ViewModel.new_table.id_transazione=A.id_transazione, ViewModel.new_table.cognome=A.cognome, ViewModel.new_table.nome=A.nome, ViewModel.new_table.indirizzo=A.indirizzo, ViewModel.new_table.citta=A.citta, ViewModel.new_table.stato=A.stato, ViewModel.new_table.regione=A.regione, ViewModel.new_table.iban=A.iban, ViewModel.new_table.iban2=A.iban2, ViewModel.new_table.data=A.data, ViewModel.new_table.filiale=A.filiale, ViewModel.new_table.cifra=A.cifra, ViewModel.new_table.d_clienti=A.d_clienti, ViewModel.new_table.d_filiali=A.d_filiali, ViewModel.new_table.d_ip=A.d_ip, ViewModel.new_table.d_prodotti=A.d_prodotti}})
Project(groups=[A], props={PROJECT_COLS=[A.id_transazione, A.cognome, A.nome, A.indirizzo, A.citta, A.stato, A.regione, A.iban, A.iban2, A.data, A.filiale, A.cifra, A.d_clienti, A.d_filiali, A.d_ip, A.d_prodotti]})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[]})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file, f.filePath=SourceModel_1.getTextFiles.filePath}})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath]})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv')})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}})
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[ViewModel.new_table], props={PROJECT_COLS=[convertUri(ViewModel.new_table.citta, '', '')], OUTPUT_COLS=[convertUri(ViewModel.new_table.citta, '', '')]})
Source(groups=[ViewModel.new_table], props={NESTED_COMMAND=SELECT A.id_transazione, A.cognome, A.nome, A.indirizzo, A.citta, A.stato, A.regione, A.iban, A.iban2, A.data, A.filiale, A.cifra, A.d_clienti, A.d_filiali, A.d_ip, A.d_prodotti FROM (EXEC SourceModel_1.getTextFiles('csvprova.csv')) AS f CROSS JOIN TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, SYMBOL_MAP={ViewModel.new_table.citta=A.citta}, OUTPUT_COLS=[ViewModel.new_table.citta]})
Project(groups=[A], props={PROJECT_COLS=[A.citta], OUTPUT_COLS=[A.citta]})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta]})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file}, OUTPUT_COLS=[file]})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=[SourceModel_1.getTextFiles.file]})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath]})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=[SourceModel_1.getTextFiles.file]})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=[A.citta]})
============================================================================
EXECUTING MergeVirtual
AFTER:
Project(groups=[A], props={PROJECT_COLS=[convertUri(A.citta, '', '')], OUTPUT_COLS=[convertUri(A.citta, '', '')]})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta]})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=[SourceModel_1.getTextFiles.file]})
Source(groups=[A])
============================================================================
EXECUTING PushNonJoinCriteria
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta]})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[A], props={PROJECT_COLS=[convertUri(A.citta, '', '')], OUTPUT_COLS=null})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file}, OUTPUT_COLS=null})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=null})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=null})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=null})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=null})
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[A])
Join(groups=[f, A])
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=null})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=null})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=null})
Source(groups=[A])
============================================================================
EXECUTING CopyCriteria
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null, IS_COPIED=true})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING CleanCriteria
AFTER:
Project(groups=[A], props={PROJECT_COLS=[convertUri(A.citta, '', '')], OUTPUT_COLS=null})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null, IS_COPIED=true})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file}, OUTPUT_COLS=null})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=null})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=null})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=null})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=null})
============================================================================
EXECUTING PlanJoins
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null, IS_COPIED=true})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=null})
============================================================================
EXECUTING PushSelectCriteria
AFTER:
Project(groups=[A])
Join(groups=[f, A])
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING RaiseAccess
AFTER:
Project(groups=[A])
Join(groups=[f, A])
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=null})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=null})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=null})
Source(groups=[A])
============================================================================
EXECUTING PlanOuterJoins
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null, IS_COPIED=true})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING ChooseJoinStrategy
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null, IS_COPIED=true})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING ChooseDependent
LOW [Relational Planner] parent join is CROSS - Rejecting dependent join Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file}, OUTPUT_COLS=null}
LOW [Relational Planner] parent join is CROSS - Rejecting dependent join Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=null}
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=null, IS_COPIED=true})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING AssignOutputElements
AFTER:
Project(groups=[A], props={PROJECT_COLS=[convertUri(A.citta, '', '')], OUTPUT_COLS=[convertUri(A.citta, '', '')]})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta], IS_COPIED=true})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file}, OUTPUT_COLS=[file]})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=[SourceModel_1.getTextFiles.file]})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath]})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=[SourceModel_1.getTextFiles.file]})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=[A.citta]})
============================================================================
EXECUTING CalculateCost
AFTER:
Project(groups=[A], props={PROJECT_COLS=[convertUri(A.citta, '', '')], OUTPUT_COLS=[convertUri(A.citta, '', '')], EST_CARDINALITY=-1.0})
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_LOOP, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta], IS_COPIED=true, EST_CARDINALITY=-1.0})
Source(groups=[f], props={NESTED_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), SYMBOL_MAP={f.file=SourceModel_1.getTextFiles.file}, OUTPUT_COLS=[file], EST_CARDINALITY=-1.0, EST_COL_STATS={file=[-1.0, -1.0]}})
Project(groups=[SourceModel_1.getTextFiles], props={PROJECT_COLS=[SourceModel_1.getTextFiles.file], OUTPUT_COLS=[SourceModel_1.getTextFiles.file], EST_CARDINALITY=-1.0})
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath], EST_CARDINALITY=-1.0})
Source(groups=[SourceModel_1.getTextFiles], props={VIRTUAL_COMMAND=EXEC SourceModel_1.getTextFiles('csvprova.csv'), OUTPUT_COLS=[SourceModel_1.getTextFiles.file], EST_COL_STATS={SourceModel_1.getTextFiles.file=[-1.0, -1.0]}, EST_CARDINALITY=-1.0})
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=[A.citta], EST_COL_STATS={A.citta=[-1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING ImplementJoinStrategy
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_TABLE, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta], IS_COPIED=true, EST_CARDINALITY=-1.0, RIGHT_NESTED_REFERENCES={file=file}})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A], props={TABLE_FUNCTION=TEXTTABLE(file COLUMNS id_transazione string, cognome string, nome string, indirizzo string, citta string, stato string, regione string, iban string, iban2 string, data string, filiale string, cifra string, d_clienti string, d_filiali string, d_ip string, d_prodotti string DELIMITER '%' HEADER) AS A, CORRELATED_REFERENCES={file=file}, OUTPUT_COLS=[A.citta], EST_COL_STATS={A.citta=[-1.0, -1.0]}, EST_CARDINALITY=-1.0})
============================================================================
EXECUTING MergeCriteria
AFTER:
Project(groups=[A])
Join(groups=[f, A])
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING PlanSorts
AFTER:
Project(groups=[A])
Join(groups=[f, A], props={JOIN_TYPE=CROSS JOIN, JOIN_STRATEGY=NESTED_TABLE, JOIN_CRITERIA=[], OUTPUT_COLS=[A.citta], IS_COPIED=true, EST_CARDINALITY=-1.0, RIGHT_NESTED_REFERENCES={file=file}})
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles])
Source(groups=[SourceModel_1.getTextFiles])
Source(groups=[A])
============================================================================
EXECUTING CollapseSource
AFTER:
Project(groups=[A])
Join(groups=[f, A])
Source(groups=[f])
Project(groups=[SourceModel_1.getTextFiles])
Access(groups=[SourceModel_1.getTextFiles], props={SOURCE_HINT=null, MODEL_ID=Schema name=SourceModel_1, nameInSource=null, uuid=mmuuid:5f82a4a1-d55c-4432-8baf-37ec61653055, OUTPUT_COLS=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath], EST_CARDINALITY=-1.0, ATOMIC_REQUEST=EXEC SourceModel_1.getTextFiles('csvprova.csv')})
Source(groups=[A])
============================================================================
CONVERTING PLAN TREE TO PROCESS TREE
PROCESS PLAN =
ProjectNode(0) output=[convertUri(A.citta, '', '')] [convertUri(A.citta, '', '')]
JoinNode(1) [NESTED TABLE JOIN] [CROSS JOIN] output=[A.citta]
ProjectNode(2) output=[file] [SourceModel_1.getTextFiles.file]
AccessNode(3) output=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath] EXEC SourceModel_1.getTextFiles('csvprova.csv')
TextTableNode(4) output=[A.citta]
============================================================================
----------------------------------------------------------------------------
OPTIMIZATION COMPLETE:
PROCESSOR PLAN:
ProjectNode(0) output=[convertUri(A.citta, '', '')] [convertUri(A.citta, '', '')]
JoinNode(1) [NESTED TABLE JOIN] [CROSS JOIN] output=[A.citta]
ProjectNode(2) output=[file] [SourceModel_1.getTextFiles.file]
AccessNode(3) output=[SourceModel_1.getTextFiles.file, SourceModel_1.getTextFiles.filePath] EXEC SourceModel_1.getTextFiles('csvprova.csv')
TextTableNode(4) output=[A.citta]
============================================================================
10:34:38,129 WARN [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue51) GzUPLUyEV2u5 TEIID30020 Processing exception for request GzUPLUyEV2u5.0 'TEIID30328 Unable to evaluate convertUri(A.citta, '', ''): TEIID30384 Error while evaluating function tabella.convertUri'. Originally ExpressionEvaluationException 'com/mongodb/BasicDBObject' RestTest.java:111. Enable more detailed logging to see the entire stacktrace.
***************************
It has the same behavior with anyone external jar library. If I use native java library, it's worked.
Francesco
-
3. Re: User Defined Functions - External jar
shawkins May 17, 2016 2:41 PM (in response to parrotola)Do you have a complete stack trace? It looks like this could be a class not found exception. That would imply that your vdb classpath or the external jar module needs to be expanded.