Hi all!
I’m having this error on running particular queries:
AssertionError: Relational expression should override copy. Class=[class com.dremio.plugins.mongo.planning.rels.MongoScanPrel]; traits=[PHYSICAL.ANY([]).[]]; desired traits=[PHYSICAL.SINGLETON([]).[]].
My query is just a join with filter:
select (...) from
SAP.PM.pm_local_instalacao li
left join DORG.scdga_modulo modu on
modu.ID_EDIFICACAO = li.ID_EDIFICACAO
and li.ID_TENSAO = modu.ID_TENSAO_PRIMARIA
and modu.ID_TIPO_MODULO = 1
When I remove the last line “and modu.ID_TIPO_MODULO = 1” it works.
MongoDB: 4.4.6
Dremio: 15.5.0
Verbose error:
SYSTEM ERROR: AssertionError: Relational expression should override copy. Class=[class com.dremio.plugins.mongo.planning.rels.MongoScanPrel]; traits=[PHYSICAL.ANY([]).[]]; desired traits=[PHYSICAL.SINGLETON([]).[]]
(com.dremio.exec.work.foreman.ForemanException) Unexpected exception during fragment initialization: java.lang.AssertionError: Relational expression should override copy. Class=[class com.dremio.plugins.mongo.planning.rels.MongoScanPrel]; traits=[PHYSICAL.ANY([]).[]]; desired traits=[PHYSICAL.SINGLETON([]).[]]
com.dremio.exec.work.foreman.AttemptManager.run():407
com.dremio.context.RequestContext.run():95
com.dremio.common.concurrent.ContextMigratingExecutorService.lambda$decorate$3():199
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (java.util.concurrent.ExecutionException) java.lang.AssertionError: Relational expression should override copy. Class=[class com.dremio.plugins.mongo.planning.rels.MongoScanPrel]; traits=[PHYSICAL.ANY([]).[]]; desired traits=[PHYSICAL.SINGLETON([]).[]]
java.util.concurrent.CompletableFuture.reportGet():357
java.util.concurrent.CompletableFuture.get():1908
com.dremio.exec.work.foreman.AttemptManager.run():366
com.dremio.context.RequestContext.run():95
com.dremio.common.concurrent.ContextMigratingExecutorService.lambda$decorate$3():199
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (java.lang.AssertionError) Relational expression should override copy. Class=[class com.dremio.plugins.mongo.planning.rels.MongoScanPrel]; traits=[PHYSICAL.ANY([]).[]]; desired traits=[PHYSICAL.SINGLETON([]).[]]
org.apache.calcite.rel.AbstractRelNode.copy():133
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():58
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitJoin():37
com.dremio.exec.planner.physical.JoinPrel.accept():64
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():50
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitExchange():32
com.dremio.exec.planner.physical.ExchangePrel.accept():33
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():92
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitPrel():32
com.dremio.exec.planner.physical.visitor.BasePrelVisitor.visitProject():42
com.dremio.exec.planner.physical.ProjectPrel.accept():95
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitScreen():68
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.visitScreen():32
com.dremio.exec.planner.physical.ScreenPrel.accept():74
com.dremio.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.removeExcessiveEchanges():43
com.dremio.exec.planner.sql.handlers.PrelTransformer.convertToPrel():788
com.dremio.exec.planner.sql.handlers.query.NormalHandler.getPlan():85
com.dremio.exec.planner.sql.handlers.commands.HandlerToExec.plan():59
com.dremio.exec.work.foreman.AttemptManager.plan():457
com.dremio.exec.work.foreman.AttemptManager.lambda$run$1():361
com.dremio.service.commandpool.CommandWrapper.run():62
com.dremio.context.RequestContext.run():95
com.dremio.common.concurrent.ContextMigratingExecutorService.lambda$decorate$3():199
com.dremio.common.concurrent.ContextMigratingExecutorService$ComparableRunnable.run():180
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748