[improvement](nereids) support insert into doris_internal_table_id(xxx) (#25722)

This commit is contained in:
zzzzzzzs
2023-10-25 11:12:00 +08:00
committed by GitHub
parent 411fae951b
commit d94ae20d4a
5 changed files with 186 additions and 2 deletions

View File

@ -20,8 +20,10 @@ package org.apache.doris.nereids.parser;
import org.apache.doris.analysis.ArithmeticExpr.Operator;
import org.apache.doris.analysis.BrokerDesc;
import org.apache.doris.analysis.StorageBackend;
import org.apache.doris.analysis.TableName;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.catalog.AggregateType;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.KeysType;
import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
@ -411,7 +413,17 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
@Override
public LogicalPlan visitInsertIntoQuery(InsertIntoQueryContext ctx) {
boolean isOverwrite = ctx.INTO() == null;
List<String> tableName = visitMultipartIdentifier(ctx.tableName);
List<String> tableName = new ArrayList<>();
if (null != ctx.tableName) {
tableName = visitMultipartIdentifier(ctx.tableName);
} else if (null != ctx.tableId) {
TableName name = Env.getCurrentEnv().getInternalCatalog()
.getTableNameByTableId(Long.valueOf(ctx.tableId.getText()));
tableName.add(name.getDb());
tableName.add(name.getTbl());
} else {
throw new ParseException("tableName and tableId cannot both be null");
}
String labelName = ctx.labelName == null ? null : ctx.labelName.getText();
List<String> colNames = ctx.cols == null ? ImmutableList.of() : visitIdentifierList(ctx.cols);
List<String> partitions = ctx.partition == null ? ImmutableList.of() : visitIdentifierList(ctx.partition);