Выполнение select с вложенными запросами возвращает исключение нулевого указателя в Teiid 12.x

#teiid

#teiid

Вопрос:

Мы только что обновили Teiid с 9.1 до Teiid 12.0.2. В Teiid 9.1 мы использовали для выполнения запросов select со ссылками и подзапросами, такими как

вставьте в таблицу (organization,empname,dept) значения (‘ORG-X’,(выберите emp_name из employee, где emp_id=’1′), ‘DIVISION-Y’), которые использовались для возврата результатов.

С Teiid 12.x мы получаем исключение нулевого указателя, как показано ниже

25 05:31:26 541 ОШИБКА [org.teiid.ПРОЦЕССОР] (Worker0_QueryProcessorQueue478) TEIID30019 Неожиданное исключение для запроса enZN3QDAb /U4.2: java.lang.Исключение NullPointerException в org.teiid.query.optimizer.relational.rules.RulePlanSubqueries.planMergeJoin(RulePlanSubqueries.java:274) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.query.optimizer.relational.rules.RulePlanSubqueries.processSubqueries(RulePlanSubqueries.java:234) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.запрос.оптимизатор.реляционные.правила.RulePlanSubqueries.processSubqueries(RulePlanSubqueries.java:248) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.query.optimizer.relational.rules.RulePlanSubqueries.execute(RulePlanSubqueries.java:195) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.запрос.оптимизатор.реляционный.RelationalPlanner.executeRules(RelationalPlanner.java:1101) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.запрос.оптимизатор.реляционный.RelationalPlanner.optimize(RelationalPlanner.java:235) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.запрос.оптимизатор.QueryOptimizer.optimizePlan(QueryOptimizer.java:179) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.Request.generatePlan(Request.java:458) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.Запрос.ProcessRequest(Request.java:486) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:672) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:351) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:43) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:285) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:281) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:124) [teiid-engine-12.2.2.jar:12.2.2] в org.teiid.dqp.internal.process.ThreadReuseExecutor$2.запустите(ThreadReuseExecutor.java:212) [teiid-engine-12.2.2.jar:12.2.2] в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_202] в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_202] на java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_202]

Пожалуйста, дайте мне знать, является ли это дефектом и есть ли какие-либо обходные пути для решения этой проблемы. Мы заметили, что эта проблема отсутствует в Teiid 15.

Ответ №1:

Попробуйте более поздние версии, если проблема все еще существует, вы можете открыть проблему в системе JIRA для Teiid.

Если оно не существует в более поздних версиях, вам, вероятно, придется применить исправление самостоятельно, если вы хотите остаться на версии 12.2