syntax = "proto3";
package rayexec.expr;
import "schema.proto";
message EmptyScalar {}
message Decimal64Scalar {
int32 precision = 1;
int32 scale = 2;
int64 value = 3;
}
message Decimal128Scalar {
int32 precision = 1;
int32 scale = 2;
bytes value = 3;
}
message TimestampScalar {
schema.TimeUnit unit = 1;
int64 value = 2;
}
message IntervalScalar {
int32 months = 1;
int32 days = 2;
int64 nanos = 3;
}
message StructScalar {
repeated OwnedScalarValue values = 1;
}
message ListScalar {
repeated OwnedScalarValue values = 1;
}
message OwnedScalarValue {
oneof value {
EmptyScalar scalar_null = 2;
bool scalar_boolean = 3;
int32 scalar_int8 = 4;
int32 scalar_int16 = 5;
int32 scalar_int32 = 6;
int64 scalar_int64 = 7;
bytes scalar_int128 = 8;
uint32 scalar_uint8 = 9;
uint32 scalar_uint16 = 10;
uint32 scalar_uint32 = 11;
uint64 scalar_uint64 = 12;
bytes scalar_uint128 = 13;
float scalar_float16 = 14;
float scalar_float32 = 15;
double scalar_float64 = 16;
Decimal64Scalar scalar_decimal64 = 17;
Decimal128Scalar scalar_decimal128 = 18;
TimestampScalar scalar_timestamp = 19;
int32 scalar_date32 = 20;
int64 scalar_date64 = 21;
IntervalScalar scalar_interval = 22;
string scalar_utf8 = 23;
bytes scalar_binary = 24;
StructScalar scalar_struct = 25;
ListScalar scalar_list = 26;
}
}