/* * 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 = 'proto3'; package spark.connect; option java_multiple_files = true; option java_package = "org.apache.spark.connect.proto"; option go_package = "internal/generated"; // This message describes the logical [[DataType]] of something. It does not carry the value // itself but only describes it. message DataType { oneof kind { NULL null = 1; Binary binary = 2; Boolean boolean = 3; // Numeric types Byte byte = 4; Short short = 5; Integer integer = 6; Long long = 7; Float float = 8; Double double = 9; Decimal decimal = 10; // String types String string = 11; Char char = 12; VarChar var_char = 13; // Datatime types Date date = 14; Timestamp timestamp = 15; TimestampNTZ timestamp_ntz = 16; // Interval types CalendarInterval calendar_interval = 17; YearMonthInterval year_month_interval = 18; DayTimeInterval day_time_interval = 19; // Complex types Array array = 20; Struct struct = 21; Map map = 22; // UserDefinedType UDT udt = 23; // UnparsedDataType Unparsed unparsed = 24; } message Boolean { uint32 type_variation_reference = 1; } message Byte { uint32 type_variation_reference = 1; } message Short { uint32 type_variation_reference = 1; } message Integer { uint32 type_variation_reference = 1; } message Long { uint32 type_variation_reference = 1; } message Float { uint32 type_variation_reference = 1; } message Double { uint32 type_variation_reference = 1; } message String { uint32 type_variation_reference = 1; } message Binary { uint32 type_variation_reference = 1; } message NULL { uint32 type_variation_reference = 1; } message Timestamp { uint32 type_variation_reference = 1; } message Date { uint32 type_variation_reference = 1; } message TimestampNTZ { uint32 type_variation_reference = 1; } message CalendarInterval { uint32 type_variation_reference = 1; } message YearMonthInterval { optional int32 start_field = 1; optional int32 end_field = 2; uint32 type_variation_reference = 3; } message DayTimeInterval { optional int32 start_field = 1; optional int32 end_field = 2; uint32 type_variation_reference = 3; } // Start compound types. message Char { int32 length = 1; uint32 type_variation_reference = 2; } message VarChar { int32 length = 1; uint32 type_variation_reference = 2; } message Decimal { optional int32 scale = 1; optional int32 precision = 2; uint32 type_variation_reference = 3; } message StructField { string name = 1; DataType data_type = 2; bool nullable = 3; optional string metadata = 4; } message Struct { repeated StructField fields = 1; uint32 type_variation_reference = 2; } message Array { DataType element_type = 1; bool contains_null = 2; uint32 type_variation_reference = 3; } message Map { DataType key_type = 1; DataType value_type = 2; bool value_contains_null = 3; uint32 type_variation_reference = 4; } message UDT { string type = 1; optional string jvm_class = 2; optional string python_class = 3; optional string serialized_python_class = 4; DataType sql_type = 5; } message Unparsed { // (Required) The unparsed data type string string data_type_string = 1; } }