Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import org.apache.doris.catalog.Table;
import org.apache.doris.common.UserException;
import org.apache.doris.nereids.CascadesContext;
import org.apache.doris.nereids.StatementContext;
import org.apache.doris.nereids.analyzer.UnboundAlias;
import org.apache.doris.nereids.analyzer.UnboundOneRowRelation;
import org.apache.doris.nereids.analyzer.UnboundSlot;
Expand Down Expand Up @@ -199,8 +198,8 @@ public static LogicalPlan createLoadPlan(NereidsFileGroupInfo fileGroupInfo, Par
partitionNames != null ? partitionNames.getPartitionNames() : ImmutableList.of(), isPartialUpdate,
partialUpdateNewKeyPolicy, DMLCommandType.LOAD, currentRootPlan);

CascadesContext cascadesContext = CascadesContext.initContext(new StatementContext(), currentRootPlan,
PhysicalProperties.ANY);
CascadesContext cascadesContext = CascadesContext.initContext(ConnectContext.get().getStatementContext(),
currentRootPlan, PhysicalProperties.ANY);
ConnectContext ctx = cascadesContext.getConnectContext();
// we force convert nullable column to non-nullable column for load
// so set feDebug to false to avoid AdjustNullableRule report error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.apache.doris.common.LoadException;
import org.apache.doris.common.UserException;
import org.apache.doris.common.util.DebugUtil;
import org.apache.doris.nereids.StatementContext;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
import org.apache.doris.planner.DataPartition;
import org.apache.doris.planner.FileLoadScanNode;
Expand Down Expand Up @@ -146,6 +147,14 @@ public void plan(TUniqueId loadId, List<List<TBrokerFileStatus>> fileStatusesLis

Preconditions.checkState(!fileGroups.isEmpty() && fileGroups.size() == fileStatusesList.size());

// make sure StatementContext is set in ConnectContext
ConnectContext connectContext = ConnectContext.get();
if (connectContext != null && connectContext.getStatementContext() == null) {
StatementContext statementContext = new StatementContext();
connectContext.setStatementContext(statementContext);
statementContext.setConnectContext(connectContext);
}

PartitionNames partitionNames = getPartitionNames();
long txnTimeout = timeoutS == 0 ? ConnectContext.get().getExecTimeoutS() : timeoutS;
if (txnTimeout > Integer.MAX_VALUE) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@
import org.apache.doris.common.UserException;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.load.loadv2.LoadTask;
import org.apache.doris.nereids.StatementContext;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
import org.apache.doris.planner.DataPartition;
import org.apache.doris.planner.FileLoadScanNode;
import org.apache.doris.planner.PlanFragment;
import org.apache.doris.planner.PlanFragmentId;
import org.apache.doris.planner.PlanNodeId;
import org.apache.doris.planner.ScanNode;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.service.FrontendOptions;
import org.apache.doris.thrift.PaloInternalServiceVersion;
import org.apache.doris.thrift.TBrokerFileStatus;
Expand Down Expand Up @@ -217,6 +219,15 @@ public TPipelineFragmentParams plan(TUniqueId loadId, int fragmentInstanceIdInde
throw new DdlException("Column is not SUM AggregateType. column:" + col.getName());
}
}

// make sure StatementContext is set in ConnectContext
ConnectContext connectContext = ConnectContext.get();
if (connectContext != null && connectContext.getStatementContext() == null) {
StatementContext statementContext = new StatementContext();
connectContext.setStatementContext(statementContext);
statementContext.setConnectContext(connectContext);
}

// 1. create file group
NereidsDataDescription dataDescription = new NereidsDataDescription(destTable.getName(), taskInfo);
dataDescription.analyzeWithoutCheckPriv(db.getFullName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@

package org.apache.doris.planner;

import org.apache.doris.common.IdGenerator;
import org.apache.doris.nereids.CascadesContext;
import org.apache.doris.nereids.load.NereidsLoadUtils;
import org.apache.doris.nereids.trees.expressions.ExprId;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.StatementScopeIdGenerator;

import org.junit.Assert;
import org.junit.Test;
Expand All @@ -32,4 +36,13 @@ public void testParseStmt() throws Exception {
List<Expression> expressions = NereidsLoadUtils.parseExpressionSeq(sql);
Assert.assertEquals(4, expressions.size());
}

@Test
public void testExprIdGenerator() {
IdGenerator<ExprId> exprIdGenerator1 = StatementScopeIdGenerator.getExprIdGenerator();
CascadesContext context = CascadesContext.initTempContext();
IdGenerator<ExprId> exprIdGenerator2 = context.getStatementContext().getExprIdGenerator();
// we get different IdGenerator instance
Assert.assertTrue(exprIdGenerator1 != exprIdGenerator2);
}
}
Loading