-
Notifications
You must be signed in to change notification settings - Fork 13k
/
flink-fn-execution.proto
112 lines (98 loc) · 2.91 KB
/
flink-fn-execution.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* 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.
*/
// NOTE: File flink_fn_execution_pb2.py is generated from this file. Please re-generate it by calling
// gen_protos.py whenever this file is changed.
syntax = "proto3";
package org.apache.flink.fn_execution.v1;
option java_package = "org.apache.flink.fnexecution.v1";
option java_outer_classname = "FlinkFnApi";
// User-defined function definition. It supports chaining functions, that's, the execution
// result of one user-defined function as the input of another user-defined function.
message UserDefinedFunction {
message Input {
oneof input {
UserDefinedFunction udf = 1;
int32 inputOffset = 2;
bytes inputConstant = 3;
}
}
// The serialized representation of the user-defined function
bytes payload = 1;
// The input arguments of the user-defined function, it could be one of the following:
// 1. A column from the input row
// 2. The result of another user-defined function
// 3. The constant value of the column
repeated Input inputs = 2;
}
// A list of user-defined functions to be executed in a batch.
message UserDefinedFunctions {
repeated UserDefinedFunction udfs = 1;
}
// A representation of the data schema.
message Schema {
enum TypeName {
ROW = 0;
TINYINT = 1;
SMALLINT = 2;
INT = 3;
BIGINT = 4;
DECIMAL = 5;
FLOAT = 6;
DOUBLE = 7;
DATE = 8;
TIME = 9;
DATETIME = 10;
BOOLEAN = 11;
BINARY = 12;
VARBINARY = 13;
CHAR = 14;
VARCHAR = 15;
ARRAY = 16;
MAP = 17;
MULTISET = 18;
TABLEFUNCTIONROW = 19;
}
message MapType {
FieldType key_type = 1;
FieldType value_type = 2;
}
message DateTimeType {
int32 precision = 1;
}
message DecimalType {
int32 precision = 1;
int32 scale = 2;
}
message FieldType {
TypeName type_name = 1;
bool nullable = 2;
oneof type_info {
FieldType collection_element_type = 3;
MapType map_type = 4;
Schema row_schema = 5;
DateTimeType date_time_type = 6;
DecimalType decimal_type = 7;
}
}
message Field {
string name = 1;
string description = 2;
FieldType type = 3;
}
repeated Field fields = 1;
}