Skip to content

Commit

Permalink
expr: add protobuf support for BinaryFunc (incomplete)
Browse files Browse the repository at this point in the history
- Add `ProtoBinaryFunc` to `func.proto`. Variants that are
  not properly modeled as protobuf yet are prefixed with an
  `// unsupported:` comment.
- Implement `From<&BinaryFunc> for ProtoBinaryFunc` in `func.rs`.
  Arms that are not yet supported have a `todo!()` placeholder.
- Implement `TryFrom<ProtoBinaryFunc> for BinaryFunc` in `func.rs`.
  Arms that are not yet supported have a `todo!()` placeholder.
  • Loading branch information
aalexandrov committed Apr 19, 2022
1 parent 8e3df36 commit 0d247da
Show file tree
Hide file tree
Showing 2 changed files with 454 additions and 0 deletions.
151 changes: 151 additions & 0 deletions src/expr/src/scalar/func.proto
Original file line number Diff line number Diff line change
Expand Up @@ -369,3 +369,154 @@ message ProtoUnaryFunc {
google.protobuf.Empty mz_type_name = 214;
}
}

message ProtoBinaryFunc {
oneof kind {
google.protobuf.Empty and = 1;
google.protobuf.Empty or = 2;
google.protobuf.Empty add_int16 = 3;
google.protobuf.Empty add_int32 = 4;
google.protobuf.Empty add_int64 = 5;
google.protobuf.Empty add_float32 = 6;
google.protobuf.Empty add_float64 = 7;
google.protobuf.Empty add_interval = 8;
google.protobuf.Empty add_timestamp_interval = 9;
google.protobuf.Empty add_timestamp_tz_interval = 10;
google.protobuf.Empty add_date_interval = 11;
google.protobuf.Empty add_date_time = 12;
google.protobuf.Empty add_time_interval = 13;
google.protobuf.Empty add_numeric = 14;
google.protobuf.Empty bit_and_int16 = 15;
google.protobuf.Empty bit_and_int32 = 16;
google.protobuf.Empty bit_and_int64 = 17;
google.protobuf.Empty bit_or_int16 = 18;
google.protobuf.Empty bit_or_int32 = 19;
google.protobuf.Empty bit_or_int64 = 20;
google.protobuf.Empty bit_xor_int16 = 21;
google.protobuf.Empty bit_xor_int32 = 22;
google.protobuf.Empty bit_xor_int64 = 23;
google.protobuf.Empty bit_shift_left_int16 = 24;
google.protobuf.Empty bit_shift_left_int32 = 25;
google.protobuf.Empty bit_shift_left_int64 = 26;
google.protobuf.Empty bit_shift_right_int16 = 27;
google.protobuf.Empty bit_shift_right_int32 = 28;
google.protobuf.Empty bit_shift_right_int64 = 29;
google.protobuf.Empty sub_int16 = 30;
google.protobuf.Empty sub_int32 = 31;
google.protobuf.Empty sub_int64 = 32;
google.protobuf.Empty sub_float32 = 33;
google.protobuf.Empty sub_float64 = 34;
google.protobuf.Empty sub_interval = 35;
google.protobuf.Empty sub_timestamp = 36;
google.protobuf.Empty sub_timestamp_tz = 37;
google.protobuf.Empty sub_timestamp_interval = 38;
google.protobuf.Empty sub_timestamp_tz_interval = 39;
google.protobuf.Empty sub_date = 40;
google.protobuf.Empty sub_date_interval = 41;
google.protobuf.Empty sub_time = 42;
google.protobuf.Empty sub_time_interval = 43;
google.protobuf.Empty sub_numeric = 44;
google.protobuf.Empty mul_int16 = 45;
google.protobuf.Empty mul_int32 = 46;
google.protobuf.Empty mul_int64 = 47;
google.protobuf.Empty mul_float32 = 48;
google.protobuf.Empty mul_float64 = 49;
google.protobuf.Empty mul_numeric = 50;
google.protobuf.Empty mul_interval = 51;
google.protobuf.Empty div_int16 = 52;
google.protobuf.Empty div_int32 = 53;
google.protobuf.Empty div_int64 = 54;
google.protobuf.Empty div_float32 = 55;
google.protobuf.Empty div_float64 = 56;
google.protobuf.Empty div_numeric = 57;
google.protobuf.Empty div_interval = 58;
google.protobuf.Empty mod_int16 = 59;
google.protobuf.Empty mod_int32 = 60;
google.protobuf.Empty mod_int64 = 61;
google.protobuf.Empty mod_float32 = 62;
google.protobuf.Empty mod_float64 = 63;
google.protobuf.Empty mod_numeric = 64;
google.protobuf.Empty round_numeric = 65;
google.protobuf.Empty eq = 66;
google.protobuf.Empty not_eq = 67;
google.protobuf.Empty lt = 68;
google.protobuf.Empty lte = 69;
google.protobuf.Empty gt = 70;
google.protobuf.Empty gte = 71;
google.protobuf.Empty like_escape = 72;
// unsupported: IsLikeMatch { case_insensitive: bool }
google.protobuf.Empty is_like_match = 73;
// unsupported: IsRegexpMatch { case_insensitive: bool }
google.protobuf.Empty is_regexp_match = 74;
google.protobuf.Empty to_char_timestamp = 75;
google.protobuf.Empty to_char_timestamp_tz = 76;
google.protobuf.Empty date_bin_timestamp = 77;
google.protobuf.Empty date_bin_timestamp_tz = 78;
google.protobuf.Empty extract_interval = 79;
google.protobuf.Empty extract_time = 80;
google.protobuf.Empty extract_timestamp = 81;
google.protobuf.Empty extract_timestamp_tz = 82;
google.protobuf.Empty extract_date = 83;
google.protobuf.Empty date_part_interval = 84;
google.protobuf.Empty date_part_time = 85;
google.protobuf.Empty date_part_timestamp = 86;
google.protobuf.Empty date_part_timestamp_tz = 87;
google.protobuf.Empty date_trunc_timestamp = 88;
google.protobuf.Empty date_trunc_timestamp_tz = 89;
google.protobuf.Empty date_trunc_interval = 90;
google.protobuf.Empty timezone_timestamp = 91;
google.protobuf.Empty timezone_timestamp_tz = 92;
// unsupported: TimezoneTime { wall_time: NaiveDateTime }
google.protobuf.Empty timezone_time = 93;
google.protobuf.Empty timezone_interval_timestamp = 94;
google.protobuf.Empty timezone_interval_timestamp_tz = 95;
google.protobuf.Empty timezone_interval_time = 96;
google.protobuf.Empty text_concat = 97;
// unsupported: JsonbGetInt64 { stringify: bool }
google.protobuf.Empty jsonb_get_int64 = 98;
// unsupported: JsonbGetString { stringify: bool }
google.protobuf.Empty jsonb_get_string = 99;
// unsupported: JsonbGetPath { stringify: bool }
google.protobuf.Empty jsonb_get_path = 100;
google.protobuf.Empty jsonb_contains_string = 101;
google.protobuf.Empty jsonb_concat = 102;
google.protobuf.Empty jsonb_contains_jsonb = 103;
google.protobuf.Empty jsonb_delete_int64 = 104;
google.protobuf.Empty jsonb_delete_string = 105;
google.protobuf.Empty map_contains_key = 106;
google.protobuf.Empty map_get_value = 107;
google.protobuf.Empty map_get_values = 108;
google.protobuf.Empty map_contains_all_keys = 109;
google.protobuf.Empty map_contains_any_keys = 110;
google.protobuf.Empty map_contains_map = 111;
google.protobuf.Empty convert_from = 112;
google.protobuf.Empty left = 113;
google.protobuf.Empty position = 114;
google.protobuf.Empty right = 115;
google.protobuf.Empty repeat_string = 116;
google.protobuf.Empty trim = 117;
google.protobuf.Empty trim_leading = 118;
google.protobuf.Empty trim_trailing = 119;
google.protobuf.Empty encoded_bytes_char_length = 120;
// unsupported: ListLengthMax { max_layer: usize }
google.protobuf.Empty list_length_max = 121;
google.protobuf.Empty array_contains = 122;
google.protobuf.Empty array_length = 123;
google.protobuf.Empty array_lower = 124;
google.protobuf.Empty array_remove = 125;
google.protobuf.Empty array_upper = 126;
google.protobuf.Empty array_array_concat = 127;
google.protobuf.Empty list_list_concat = 128;
google.protobuf.Empty list_element_concat = 129;
google.protobuf.Empty element_list_concat = 130;
google.protobuf.Empty list_remove = 131;
google.protobuf.Empty digest_string = 132;
google.protobuf.Empty digest_bytes = 133;
google.protobuf.Empty mz_render_typmod = 134;
google.protobuf.Empty encode = 135;
google.protobuf.Empty decode = 136;
google.protobuf.Empty log_numeric = 137;
google.protobuf.Empty power = 138;
google.protobuf.Empty power_numeric = 139;
}
}
Loading

0 comments on commit 0d247da

Please sign in to comment.