MongoDB query error: Relational expression should override copy

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
1 Like

@victorouttes Can you please share the query profile?

Hi @balaji.ramaswamy, here is the profile:
profile.zip (38,6,KB)

@balaji.ramaswamy I upgraded to 15.5 and facing the same issue.

Here is something we isolated.

...
FROM PRODUCTION.BUSINESSDAYS as businessdays

-- this is referenced in below left joins
LEFT JOIN PRODUCTION.PROJECTS as projects
    ON 1=1  AND businessdays.formatteddate>=TO_DATE(projects.Start_Date__c, 'YYYY-MM-DD', 1)
    AND businessdays.formattedDate<=TO_DATE(projects."Due_Date__c", 'YYYY-MM-DD', 1)

-- this does not work
LEFT JOIN Production.opportunities as join_opportunities ON
    projects.salesforce_id =  join_opportunities.salesforce_id

-- this works
LEFT JOIN Production.people as join_people_owner ON
    projects._id = join_people_owner."_id"

The full error is

      AssertionError: Relational expression should override copy. Class=[class com.dremio.plugins.mongo.planning.rels.MongoScanPrel]; traits=[PHYSICAL.ANY([]).[]]; desired traits=[PHYSICAL.SINGLETON([]).[]]


 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.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.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.visitWriter():57
    com.dremio.exec.planner.physical.WriterPrel.accept():76
    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.visitWriterCommitter():67
    com.dremio.exec.planner.physical.WriterCommitterPrel.accept():100
    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
      

Visualization

Validation (7 ms)

Convert To Rel (29 ms)

LogicalProject(opportunityid=[$95], salesforce_id=[$6], PROJECT_id=[$5], projectName=[$11], bill_type=[$53], PROJECT_projectCode=[$10], PROJECT_client=[$8], PROJECT_billable=[$9], PROJECT_isOpenForInvoicing=[$14], stageName=[$31], project_group=[$33], rollupProject=[$57], projectKickOffDate=[$60], projectCloseDate=[$61], projectEndDate=[TO_DATE($22, 'YYYY-MM-DD', 1)], project_Owner=[$38], project_lead=[$39], Entry=[$4], isWeekday=[$1], isKeystoneHoliday=[$2], Industry__c=[$125], Project_Type_s_Secondary__c=[$126], Project_Type__c=[$127], Law_Firm_Name=[$128])
  LogicalJoin(condition=[=($6, $96)], joinType=[left])
    LogicalJoin(condition=[=($5, $65)], joinType=[left])
      LogicalJoin(condition=[AND(=(1, 1), >=($4, TO_DATE($60, 'YYYY-MM-DD', 1)), <=($4, CAST(TO_DATE($22, 'YYYY-MM-DD', 1)):TIMESTAMP(3)))], joinType=[left])
        ExpansionNode(path=[Production.businessdays])
          LogicalProject(_id=[$0], isWeekday=[$1], isKeystoneHoliday=[$2], date=[$4], formattedDate=[TO_TIMESTAMP($4, 'YYYY-MM-DD', 1)])
            LogicalFilter(condition=[=($3, false)])
              ScanCrel(table=[funnel_prod."keystone-funnel".businessdays], columns=[`_id`, `isWeekday`, `isKeystoneHoliday`, `deleted`, `date`, `__v`], splits=[1])
        ExpansionNode(path=[Production.projects])
          LogicalProject(_id=[$0], salesforce_id=[$35], WTS_Id__c=[$42], client=[$17], billable=[$18], projectCode=[$19], projectName=[$15], projectRepliconId=[$20], __v=[$21], isOpenForInvoicing=[$22], isOpenForTimeEntries=[$23], deleted=[$24], leadInfo=[$25], id=[$16], repliconProjectLead=[$26], taskIds=[$27], managers=[$29], Due_Date__c=[$37], CreatedById=[$38], Client_Sponsor__c=[$39], OwnerId=[$2], AccountId=[$3], Project_Code_Requested__c=[$4], IsWon=[$5], ForecastCategoryName=[$6], ForecastCategory=[$7], stageName=[$8], Budget__c=[$9], Group__c=[CASE(=($41, 'Economics and Technology advisory (ETA)'), 'ETA', $41)], Billable__c=[$13], Qb_Project_Code__c=[$14], invoicingActive=[$43], attributes=[$44], owner=[$45], lead=[$61], Old_rate_new_rate=[$52], Invoice_worksteam_title_on_cover=[$53], Address_2=[$54], Address=[$1], Attn=[$55], Customer=[$56], Short_Parent_Project_Name=[$57], Payment_terms=[$58], Invoice_Reviewer=[$59], Matter_Name=[$60], Matter_Number=[$63], Address_3=[$68], Vendor_ID=[$69], bill_type=[CASE(=($34, true), 'Fixed', =($34, false), 'Hourly', null)], city=[$65], state=[$66], zipCode=[$67], rollupProject=[$62], updatedAt=[TO_TIMESTAMP($28, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], Closed_Date__c=[TO_TIMESTAMP($36, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], Start_Date__c=[TO_TIMESTAMP($10, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], CloseDate=[TO_TIMESTAMP($11, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], CreatedDate=[TO_TIMESTAMP($12, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], createdAt=[TO_TIMESTAMP($64, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], partner_lead=[$61])
            LogicalFilter(condition=[=($24, false)])
              ScanCrel(table=[funnel_prod."keystone-funnel".projects], columns=[`_id`, `Address`, `OwnerId`, `AccountId`, `Project_Code_Requested__c`, `IsWon`, `ForecastCategoryName`, `ForecastCategory`, `StageName`, `Budget__c`, `Start_Date__c`, `CloseDate`, `CreatedDate`, `Billable__c`, `Qb_Project_Code__c`, `Name`, `Id`, `client`, `billable`, `projectCode`, `repliconId`, `__v`, `isOpenForInvoicing`, `isOpenForTimeEntries`, `deleted`, `leadInfo`, `repliconProjectLead`, `taskIds`, `updatedAt`, `managers`, `country`, `isForeignCurrency`, `oldRepliconId`, `isKatsOrLabsInvolved`, `isFixedBill`, `salesforce_id`, `Closed_Date__c`, `Due_Date__c`, `CreatedById`, `Client_Sponsor__c`, `Fixed_or_Capped_Budget__c`, `Group__c`, `WTS_Id__c`, `invoicingActive`, `attributes`, `owner`, `Law_Firm_Name`, `Client_Sponsor__Name`, `Industry__c`, `Practice_Order__c`, `Project_Type__c`, `Affiliated_Expert__c`, `Old_rate_new_rate`, `Invoice_worksteam_title_on_cover`, `Address_2`, `Attn`, `Customer`, `Short_Parent_Project_Name`, `Payment_terms`, `Invoice_Reviewer`, `Matter_Name`, `lead`, `rollupProject`, `Matter_Number`, `createdAt`, `city`, `state`, `zipCode`, `Address_3`, `Vendor_ID`, `about`, `Description`], splits=[1])
      ExpansionNode(path=[Production.people])
        LogicalProject(_id=[$0], repliconId=[$1], fullName=[$3], repliconFullName=[CONCAT($4, ', ', $5)], lastName=[$4], firstName=[$5], isActive=[CASE($6, false, true)], __v=[$7], deleted=[$8], createdAt=[TO_TIMESTAMP($9, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], updatedAt=[TO_TIMESTAMP($10, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], id=[$11], repliconLoginName=[$12], startDate=[TO_TIMESTAMP($17, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], endDate=[TO_TIMESTAMP($21, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], email=[$18], employeeType=[$2], currentPosition=[$20], currentRepliconPosition=[$19], office=[$27], standardize=[$13], pdlId=[$30], maritalStatus=[$24], division=[$28], ethnicity=[$29], gender=[$23], terminatedReason=[$25], terminationType=[CASE(IS NULL($25), null, >(POSITION('-', $25), 0), LEFT($25, -(POSITION('-', $25), 1)), $25)], terminationReason=[CASE(IS NULL($25), null, >(POSITION('-', $25), 0), SUBSTR($25, +(POSITION('-', $25), 1)), $25)])
          LogicalFilter(condition=[<>($8, true)])
            ScanCrel(table=[funnel_prod."keystone-funnel".people], columns=[`_id`, `repliconId`, `employeeType`, `fullName`, `lastName`, `firstName`, `disabled`, `__v`, `deleted`, `createdAt`, `updatedAt`, `id`, `repliconLoginName`, `standardize`, `oldRepliconId`, `isDev`, `deletedAt`, `startDate`, `email`, `position`, `currentPosition`, `endDate`, `namelyId`, `gender`, `maritalStatus`, `terminatedReason`, `outlookId`, `office`, `division`, `ethnicity`, `pdlId`], splits=[1])
    ExpansionNode(path=[Production.opportunities])
      LogicalProject(_id=[$0], Id=[$1], salesforce_id=[$1], Due_Date__c=[TO_DATE($30, 'YYYY-MM-DD', 1)], CreatedById=[$2], Client_Sponsor__c=[$3], OwnerId=[$4], AccountId=[$5], Project_Code_Requested__c=[$6], IsWon=[$7], ForecastCategoryName=[$8], ForecastCategory=[$9], StageName=[$10], Budget__c=[$11], Start_Date__c=[TO_TIMESTAMP($25, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], CloseDate=[TO_TIMESTAMP($12, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], CreatedDate=[TO_TIMESTAMP($13, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], Fixed_or_Capped_Budget__c=[$14], Group__c=[$15], Billable__c=[$16], Name=[$18], __v=[$19], deleted=[$20], owner=[$21], Qb_Project_Code__c=[$17], WTS_Id__c=[$26], createdAt=[TO_TIMESTAMP($32, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], updatedAt=[TO_TIMESTAMP($23, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], Closed_Date__c=[TO_TIMESTAMP($31, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], Description=[$33], isFixedBill=[$22], Industry__c=[$27], Project_Type_s_Secondary__c=[$34], Project_Type__c=[$29], Law_Firm_Name=[$28], Law_Firm_Contact__c=[$35])
        LogicalFilter(condition=[=($20, false)])
          ScanCrel(table=[funnel_prod."keystone-funnel".opportunities], columns=[`_id`, `Id`, `CreatedById`, `Client_Sponsor__c`, `OwnerId`, `AccountId`, `Project_Code_Requested__c`, `IsWon`, `ForecastCategoryName`, `ForecastCategory`, `StageName`, `Budget__c`, `CloseDate`, `CreatedDate`, `Fixed_or_Capped_Budget__c`, `Group__c`, `Billable__c`, `Qb_Project_Code__c`, `Name`, `__v`, `deleted`, `owner`, `isFixedBill`, `updatedAt`, `salesforce_id`, `Start_Date__c`, `WTS_Id__c`, `Industry__c`, `Law_Firm_Name`, `Project_Type__c`, `Due_Date__c`, `Closed_Date__c`, `createdAt`, `Description`, `Project_Type_s_Secondary__c`, `Law_Firm_Contact__c`], splits=[1])
Reduce Expressions (2 ms)

Window Function Rewrites (0 ms)

Project Pushdown (0 ms)

Pre-Logical Filter Pushdown (1 ms)

Transitive Predicate Pullup (0 ms)

LogicalProject(opportunityid=[$19], salesforce_id=[$4], PROJECT_id=[$3], projectName=[$8], bill_type=[$14], PROJECT_projectCode=[$7], PROJECT_client=[$5], PROJECT_billable=[$6], PROJECT_isOpenForInvoicing=[$9], stageName=[$10], project_group=[$11], rollupProject=[$15], projectKickOffDate=[$16], projectCloseDate=[$17], projectEndDate=[$18], project_Owner=[$12], project_lead=[$13], Entry=[$2], isWeekday=[$0], isKeystoneHoliday=[$1], Industry__c=[$21], Project_Type_s_Secondary__c=[$22], Project_Type__c=[$23], Law_Firm_Name=[$24])
  LogicalJoin(condition=[=($4, $20)], joinType=[left])
    LogicalProject(isWeekday=[$0], isKeystoneHoliday=[$1], formattedDate=[$2], _id=[$3], salesforce_id=[$4], client=[$5], billable=[$6], projectCode=[$7], projectName=[$8], isOpenForInvoicing=[$9], stageName=[$10], Group__c=[$11], owner=[$12], lead=[$13], bill_type=[$14], rollupProject=[$15], Start_Date__c=[$16], CloseDate=[$17], TO_DATE=[$18])
      LogicalJoin(condition=[=($3, $19)], joinType=[left])
        LogicalProject(isWeekday=[$0], isKeystoneHoliday=[$1], formattedDate=[$2], _id=[$3], salesforce_id=[$4], client=[$5], billable=[$6], projectCode=[$7], projectName=[$8], isOpenForInvoicing=[$9], stageName=[$11], Group__c=[$12], owner=[$13], lead=[$14], bill_type=[$15], rollupProject=[$16], Start_Date__c=[$17], CloseDate=[$18], TO_DATE=[TO_DATE($10, 'YYYY-MM-DD', 1)])
          LogicalJoin(condition=[AND(>=($2, TO_DATE($17, 'YYYY-MM-DD', 1)), <=($2, CAST(TO_DATE($10, 'YYYY-MM-DD', 1)):TIMESTAMP(3)))], joinType=[left])
            LogicalProject(isWeekday=[$0], isKeystoneHoliday=[$1], formattedDate=[TO_TIMESTAMP($3, 'YYYY-MM-DD', 1)])
              LogicalFilter(condition=[=($2, false)])
                ScanCrel(table=[funnel_prod."keystone-funnel".businessdays], columns=[`isWeekday`, `isKeystoneHoliday`, `deleted`, `date`], splits=[1])
            LogicalProject(_id=[$0], salesforce_id=[$11], client=[$5], billable=[$6], projectCode=[$7], projectName=[$4], isOpenForInvoicing=[$8], Due_Date__c=[$12], stageName=[$1], Group__c=[CASE(=($13, 'Economics and Technology advisory (ETA)'), 'ETA', $13)], owner=[$14], lead=[$15], bill_type=[CASE(=($10, true), 'Fixed', =($10, false), 'Hourly', null)], rollupProject=[$16], Start_Date__c=[TO_TIMESTAMP($2, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], CloseDate=[TO_TIMESTAMP($3, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)])
              LogicalFilter(condition=[=($9, false)])
                ScanCrel(table=[funnel_prod."keystone-funnel".projects], columns=[`_id`, `StageName`, `Start_Date__c`, `CloseDate`, `Name`, `client`, `billable`, `projectCode`, `isOpenForInvoicing`, `deleted`, `isFixedBill`, `salesforce_id`, `Due_Date__c`, `Group__c`, `owner`, `lead`, `rollupProject`], splits=[1])
        LogicalProject(_id=[$0])
          LogicalProject(_id=[$0])
            LogicalFilter(condition=[<>($1, true)])
              ScanCrel(table=[funnel_prod."keystone-funnel".people], columns=[`_id`, `deleted`], splits=[1])
    LogicalProject(Id=[$0], salesforce_id=[$1], Industry__c=[$2], Project_Type_s_Secondary__c=[$3], Project_Type__c=[$4], Law_Firm_Name=[$5])
      LogicalProject(Id=[$0], salesforce_id=[$0], Industry__c=[$2], Project_Type_s_Secondary__c=[$5], Project_Type__c=[$4], Law_Firm_Name=[$3])
        LogicalFilter(condition=[=($1, false)])
          ScanCrel(table=[funnel_prod."keystone-funnel".opportunities], columns=[`Id`, `deleted`, `Industry__c`, `Law_Firm_Name`, `Project_Type__c`, `Project_Type_s_Secondary__c`], splits=[1])
Pre-Logical Transitive Filter Pushdown (0 ms)

Find Materializations (0 ms)

Substitution (0 ms)

Logical Planning (7 ms)

ProjectRel(opportunityid=[$19], salesforce_id=[$4], PROJECT_id=[$3], projectName=[$8], bill_type=[$14], PROJECT_projectCode=[$7], PROJECT_client=[$5], PROJECT_billable=[$6], PROJECT_isOpenForInvoicing=[$9], stageName=[$10], project_group=[$11], rollupProject=[$15], projectKickOffDate=[$16], projectCloseDate=[$17], projectEndDate=[$18], project_Owner=[$12], project_lead=[$13], Entry=[$2], isWeekday=[$0], isKeystoneHoliday=[$1], Industry__c=[$21], Project_Type_s_Secondary__c=[$22], Project_Type__c=[$23], Law_Firm_Name=[$24])
  JoinRel(condition=[=($4, $20)], joinType=[left])
    ProjectRel(isWeekday=[$0], isKeystoneHoliday=[$1], formattedDate=[$2], _id=[$3], salesforce_id=[$4], client=[$5], billable=[$6], projectCode=[$7], projectName=[$8], isOpenForInvoicing=[$9], stageName=[$10], Group__c=[$11], owner=[$12], lead=[$13], bill_type=[$14], rollupProject=[$15], Start_Date__c=[$16], CloseDate=[$17], TO_DATE=[$18])
      JoinRel(condition=[=($3, $19)], joinType=[left])
        ProjectRel(isWeekday=[$0], isKeystoneHoliday=[$1], formattedDate=[$2], _id=[$3], salesforce_id=[$4], client=[$5], billable=[$6], projectCode=[$7], projectName=[$8], isOpenForInvoicing=[$9], stageName=[$11], Group__c=[$12], owner=[$13], lead=[$14], bill_type=[$15], rollupProject=[$16], Start_Date__c=[$17], CloseDate=[$18], TO_DATE=[TO_DATE($10, 'YYYY-MM-DD', 1)])
          JoinRel(condition=[AND(>=($2, TO_DATE($17, 'YYYY-MM-DD', 1)), <=($2, CAST(TO_DATE($10, 'YYYY-MM-DD', 1)):TIMESTAMP(3)))], joinType=[left])
            ProjectRel(isWeekday=[$0], isKeystoneHoliday=[$1], formattedDate=[TO_TIMESTAMP($3, 'YYYY-MM-DD', 1)])
              FilterRel(condition=[=($2, false)])
                MongoScanDrel(table=[funnel_prod."keystone-funnel".businessdays], columns=[`isWeekday`, `isKeystoneHoliday`, `deleted`, `date`], splits=[1])
            ProjectRel(_id=[$0], salesforce_id=[$11], client=[$5], billable=[$6], projectCode=[$7], projectName=[$4], isOpenForInvoicing=[$8], Due_Date__c=[$12], stageName=[$1], Group__c=[CASE(=($13, 'Economics and Technology advisory (ETA)'), 'ETA', $13)], owner=[$14], lead=[$15], bill_type=[CASE(=($10, true), 'Fixed', =($10, false), 'Hourly', null)], rollupProject=[$16], Start_Date__c=[TO_TIMESTAMP($2, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)], CloseDate=[TO_TIMESTAMP($3, 'YYYY-MM-DD HH24:MI:SS.FFF', 1)])
              FilterRel(condition=[=($9, false)])
                MongoScanDrel(table=[funnel_prod."keystone-funnel".projects], columns=[`_id`, `StageName`, `Start_Date__c`, `CloseDate`, `Name`, `client`, `billable`, `projectCode`, `isOpenForInvoicing`, `deleted`, `isFixedBill`, `salesforce_id`, `Due_Date__c`, `Group__c`, `owner`, `lead`, `rollupProject`], splits=[1])
        ProjectRel(_id=[$0])
          ProjectRel(_id=[$0])
            FilterRel(condition=[<>($1, true)])
              MongoScanDrel(table=[funnel_prod."keystone-funnel".people], columns=[`_id`, `deleted`], splits=[1])
    ProjectRel(Id=[$0], salesforce_id=[$1], Industry__c=[$2], Project_Type_s_Secondary__c=[$3], Project_Type__c=[$4], Law_Firm_Name=[$5])
      ProjectRel(Id=[$0], salesforce_id=[$0], Industry__c=[$2], Project_Type_s_Secondary__c=[$5], Project_Type__c=[$4], Law_Firm_Name=[$3])
        FilterRel(condition=[=($1, false)])
          MongoScanDrel(table=[funnel_prod."keystone-funnel".opportunities], columns=[`Id`, `deleted`, `Industry__c`, `Law_Firm_Name`, `Project_Type__c`, `Project_Type_s_Secondary__c`], splits=[1])
Relational Planning (0 ms)

Multi-Join analysis (1 ms)

LOPT Join Planning (6 ms)

Physical Planning (27 ms)

Physical Heuristic Planning (0 ms)

funnel_prod."keystone-funnel".businessdays: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".businessdays: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".businessdays: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".projects: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".projects: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".projects: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".people: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".people: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".people: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".opportunities: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".opportunities: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".opportunities: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".businessdays: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".businessdays: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".businessdays: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".projects: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".projects: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".projects: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".people: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".people: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".people: CACHED_METADATA (0 ms)

funnel_prod."keystone-funnel".opportunities: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".opportunities: PERMISSION_CACHE_HIT (0 ms)

funnel_prod."keystone-funnel".opportunities: CACHED_METADATA (0 ms)

Non Default Options

[ {
  "kind" : "STRING",
  "type" : "QUERY",
  "name" : "planner.query_results_store_path",
  "string_val" : "__jobResultsStore"
}, {
  "kind" : "BOOLEAN",
  "type" : "QUERY",
  "name" : "planner.output_limit_enable",
  "bool_val" : true
}, {
  "kind" : "STRING",
  "type" : "QUERY",
  "name" : "planner.store_query_results",
  "string_val" : "PATH_AND_ATTEMPT_ID"
}, {
  "kind" : "STRING",
  "type" : "SYSTEM",
  "name" : "support.email.addr",
  "string_val" : "reports@keystonestrategy.io"
}, {
  "kind" : "BOOLEAN",
  "type" : "SYSTEM",
  "name" : "store.json.all_text_mode",
  "bool_val" : true
}, {
  "kind" : "STRING",
  "type" : "SYSTEM",
  "name" : "support.email.jobs.subject",
  "string_val" : "DREMIO - Support"
}, {
  "kind" : "BOOLEAN",
  "type" : "SYSTEM",
  "name" : "planner.enable_nljoin_for_scalar_only",
  "bool_val" : false
}, {
  "kind" : "BOOLEAN",
  "type" : "SYSTEM",
  "name" : "client.tools.tableau",
  "bool_val" : true
} ]
Job Summary

State:
FAILED
Coordinator:
dremio-master-0.dremio-cluster-pod.dremio.svc.cluster.local
Threads:
0
Command Pool Wait:
0ms
Total Query Time:
112ms
State Durations

Pending:
0ms
Metadata Retrieval:
10ms
Planning:
102ms
Engine Start:
-
Queued:
-
Execution Planning:
-
Starting:
-
Running:
-

@balaji.ramaswamy
now I am getting this error on a simple query on mongodb, with dremio-aws-enterprise.

query is a simple select * from table.
preview part works, but run doesnt.

Also please tell me how can I get some enterprise support here?

5bb5e9ed-4c08-4344-95a8-9c44eb665450.zip (20.0 KB)

1 Like

@Rohithzr This seems like a planner bug when on the Mongo plugin. Let me check internally and get back to you

@Rohithzr @victorouttes is it possible to get the Mongo schema or/and a sample document that reproduces this issue?

1 Like

@balaji.ramaswamy are there any updates on this? we are having the same issue on version 17.0.0-202107060524010627-31b5222b

hey Victor, did you get to fix this?

Hi jdguzmans! I didn’t. I had to migrate my repository to S3 (MinIO) and we don’t use mongo anymore.

alright, thanks anyway

I’m getting the same error, someone knows how to fix it?

@naiaracerqueira If I’m not mistaken, this should’ve been fixed in v20.0. What version are you on?

1 Like

I’m on the online version, but actually this problem was solved without us doing anything, crazy.
Thanks anyway!

@naiaracerqueira Would you be able to send us the profile of the one that worked and the one that failed? By default jobs should be kept for 30 days