@Override
        public RelNode visit(QueryOperation other) {
            if (other instanceof PlannerQueryOperation) {
                return ((PlannerQueryOperation) other).getCalciteTree();
            } else if (other instanceof DataStreamQueryOperation) {
                return convertToDataStreamScan((DataStreamQueryOperation<?>) other);
            } else if (other instanceof JavaDataStreamQueryOperation) {
                JavaDataStreamQueryOperation<?> dataStreamQueryOperation = (JavaDataStreamQueryOperation<?>) other;
                return convertToDataStreamScan(
                        dataStreamQueryOperation.getDataStream(),
                        dataStreamQueryOperation.getFieldIndices(),
                        dataStreamQueryOperation.getTableSchema(),
                        dataStreamQueryOperation.getIdentifier());
            } else if (other instanceof ScalaDataStreamQueryOperation) {
                ScalaDataStreamQueryOperation dataStreamQueryOperation = (ScalaDataStreamQueryOperation<?>) other;
                return convertToDataStreamScan(
                        dataStreamQueryOperation.getDataStream(),
                        dataStreamQueryOperation.getFieldIndices(),
                        dataStreamQueryOperation.getTableSchema(),
                        dataStreamQueryOperation.getIdentifier());
            }

            throw new TableException("Unknown table operation: " + other);
        }
Get the {@link AggCall} correspond to the aggregate or table aggregate expression.
core/src/main/java/org/apache/flink/table/planner/plan/QueryOperationConverter.java