GeneratedPlanRelations.java

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

package org.apache.doris.nereids.pattern;

import org.apache.doris.nereids.trees.plans.Plan;

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;

import java.util.Map;
import java.util.Set;

/** GeneratedPlanRelations */
public class GeneratedPlanRelations {
    public static final Map<Class<?>, Set<Class<? extends Plan>>> CHILDREN_CLASS_MAP;

    static {
        ImmutableMap.Builder<Class<?>, Set<Class<? extends Plan>>> childrenClassesBuilder
                = ImmutableMap.builderWithExpectedSize(303);
        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.Plan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundPlan.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.rules.rewrite.MultiJoin.class,
                    org.apache.doris.nereids.trees.plans.AbstractPlan.class,
                    org.apache.doris.nereids.trees.plans.BinaryPlan.class,
                    org.apache.doris.nereids.trees.plans.BlockFuncDepsPropagation.class,
                    org.apache.doris.nereids.trees.plans.FakePlan.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.LeafPlan.class,
                    org.apache.doris.nereids.trees.plans.PropagateFuncDeps.class,
                    org.apache.doris.nereids.trees.plans.UnaryPlan.class,
                    org.apache.doris.nereids.trees.plans.algebra.Aggregate.class,
                    org.apache.doris.nereids.trees.plans.algebra.InlineTable.class,
                    org.apache.doris.nereids.trees.plans.algebra.Repeat.class,
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.Command.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExecuteCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExplainCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PrepareCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ReplayCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConfigCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConstraintsCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowProcedureStatusCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UnsupportedCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class,
                    org.apache.doris.nereids.trees.plans.logical.AbstractLogicalPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalPlan.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPlan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.BlockFuncDepsPropagation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.rules.rewrite.MultiJoin.class,
                    org.apache.doris.nereids.trees.plans.FakePlan.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.Command.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExecuteCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExplainCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PrepareCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ReplayCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConfigCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConstraintsCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowProcedureStatusCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UnsupportedCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.AbstractPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.rules.rewrite.MultiJoin.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.Command.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExecuteCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExplainCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PrepareCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ReplayCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConfigCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConstraintsCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowProcedureStatusCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UnsupportedCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class,
                    org.apache.doris.nereids.trees.plans.logical.AbstractLogicalPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalPlan.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.rules.rewrite.MultiJoin.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.Command.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExecuteCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExplainCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PrepareCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ReplayCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConfigCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConstraintsCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowProcedureStatusCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UnsupportedCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class,
                    org.apache.doris.nereids.trees.plans.logical.AbstractLogicalPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.Explainable.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.rules.rewrite.MultiJoin.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class,
                    org.apache.doris.nereids.trees.plans.logical.AbstractLogicalPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalPlan.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.AbstractLogicalPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.rules.rewrite.MultiJoin.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.LeafPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.algebra.InlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.OutputSavePoint.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.algebra.Aggregate.class,
                    org.apache.doris.nereids.trees.plans.algebra.Repeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalLeaf.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.GroupPlan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalPlan.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalLeaf.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Relation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.OneRowRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.ComputeResultSet.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.SetOperation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalSetOperation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalExcept.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.UnaryPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.trees.plans.algebra.Aggregate.class,
                    org.apache.doris.nereids.trees.plans.algebra.Repeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalUnary.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalSink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Sink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalResultSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.BinaryPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalBinary.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Join.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalJoin.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashJoin.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalNestedLoopJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.PropagateFuncDeps.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDistribute.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.CatalogRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalCatalogRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalStorageLayerAggregate.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalFileScan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHudiScan.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Sort.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.AbstractPhysicalSort.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalQuickSort.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.TopN.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTopN.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.OutputPrunable.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.algebra.Aggregate.class,
                    org.apache.doris.nereids.trees.plans.algebra.Repeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Aggregate.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.algebra.Repeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHashAggregate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Repeat.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalRepeat.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.SqlCache.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.TreeStringPlan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalSqlCache.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalSqlCache.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Project.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalProject.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalTableSink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapTableSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Union.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalUnion.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Limit.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalLimit.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.TVFRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalTVFRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Filter.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalFilter.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.physical.PhysicalBaseExternalTableSink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.physical.PhysicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalJdbcTableSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.OlapScan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalOlapScan.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.PartitionTopN.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalPartitionTopN.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Window.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalWindow.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.EmptyRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalEmptyRelation.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.Generate.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.physical.PhysicalGenerate.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundOneRowRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundRelation.class,
                    org.apache.doris.nereids.analyzer.UnboundTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalUnary.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalAssertNumRows.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTE.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCheckPolicy.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFilter.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalGenerate.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHaving.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalLimit.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalPreAggOnHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalProject.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalRepeat.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSelectHint.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSort.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSubQueryAlias.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTopN.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalView.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalWindow.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalCatalogRelation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalEsScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOdbcScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalSchemaScan.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTestScan.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalBinary.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalApply.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJoin.class,
                    org.apache.doris.nereids.trees.plans.logical.UsingJoin.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalSink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundResultSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalFileSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalTableSink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalHiveTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIcebergTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalJdbcTableSink.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalOlapTableSink.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalSetOperation.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalExcept.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalIntersect.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalUnion.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.algebra.InlineTable.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundInlineTable.class,
                    org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.logical.LogicalHudiScan.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.Command.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExecuteCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExplainCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PrepareCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ReplayCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConfigCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConstraintsCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowProcedureStatusCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UnsupportedCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.Forward.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.ForwardWithSync.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.AddConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterStorageVaultCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterSystemRenameComputeGroupCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.AlterViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CallCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CancelMTMVTaskCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreatePolicyCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateTableLikeCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.CreateViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCatalogRecycleBinCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropConstraintCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ExportCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.LoadCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.PauseMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.RefreshMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ResumeMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.DropCommand.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.DropAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.DropRoleCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.insert.InsertOverwriteTableCommand.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.UpdateMvByPartitionCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.NoForward.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.ExplainCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ReplayCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConfigCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowConstraintsCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateMTMVCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowCreateProcedureCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexAnalyzerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenFilterCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowIndexTokenizerCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowProcedureStatusCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.ShowViewCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.UnsupportedCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.insert.BatchInsertIntoTableCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.KillCommand.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.KillAnalyzeJobCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillConnectionCommand.class,
                    org.apache.doris.nereids.trees.plans.commands.KillQueryCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.commands.DeleteFromCommand.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.trees.plans.commands.DeleteFromUsingCommand.class
                )
        );

        childrenClassesBuilder.put(
                org.apache.doris.nereids.trees.plans.logical.UnboundLogicalSink.class,
                ImmutableSet.<Class<? extends Plan>>of(
                    org.apache.doris.nereids.analyzer.UnboundBaseExternalTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundHiveTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundIcebergTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundJdbcTableSink.class,
                    org.apache.doris.nereids.analyzer.UnboundTableSink.class
                )
        );

        CHILDREN_CLASS_MAP = childrenClassesBuilder.build();
    }
}