blob: 6ad51b545fef65974eeec4904ef10c971231da12 [file] [log] [blame]
// 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.
syntax = "proto2";
package quickstep.serialization;
import "expressions/Expressions.proto";
import "expressions/table_generator/GeneratorFunction.proto";
import "storage/AggregationOperationState.proto";
import "storage/HashTable.proto";
import "storage/InsertDestination.proto";
import "storage/WindowAggregationOperationState.proto";
import "types/containers/Tuple.proto";
import "utility/SortConfiguration.proto";
import "utility/lip_filter/LIPFilter.proto";
message QueryContext {
message AggregationOperationStateContext {
required AggregationOperationState aggregation_state = 1;
optional uint64 num_partitions = 2 [default = 1];
}
message HashTableContext {
required HashTable join_hash_table = 1;
optional uint64 num_partitions = 2 [default = 1];
}
message ScalarGroup {
repeated Scalar scalars = 1;
}
message UpdateGroup {
message UpdateAssignment {
required int32 attribute_id = 1;
required Scalar scalar = 2;
}
// NOTE(zuyu): Only used for validating UpdateAssignment's attribute_id.
required int32 relation_id = 1;
repeated UpdateAssignment update_assignments = 2;
}
repeated AggregationOperationStateContext aggregation_states = 1;
repeated GeneratorFunctionHandle generator_functions = 2;
repeated HashTableContext join_hash_tables = 3;
repeated InsertDestination insert_destinations = 4;
repeated LIPFilter lip_filters = 5;
repeated LIPFilterDeployment lip_filter_deployments = 6;
repeated Predicate predicates = 7;
repeated ScalarGroup scalar_groups = 8;
repeated SortConfiguration sort_configs = 9;
repeated Tuple tuples = 10;
// NOTE(zuyu): For UpdateWorkOrder only.
repeated UpdateGroup update_groups = 11;
repeated WindowAggregationOperationState window_aggregation_states = 12;
required uint64 query_id = 13;
repeated uint64 num_partitions_for_nested_loops_joins = 14;
optional uint64 num_partitions_for_lips = 15 [default = 1];
}