Adjust signatures for cellpath access of tables (#9778)

# Description
Reallow the commands that take cellpaths as rest parameters to operate
on table input data.

Went through all commands returned by

```
scope commands |
  filter { |cmd| $cmd.signatures |
    values |
    any {|sig| $sig |
      any {|$sig| $sig.parameter_type == rest and $sig.syntax_shape ==
cellpath }
    }
  } | get name
```

Only exception to that was `is-empty` that returns a bool.
# User-Facing Changes
Same table operations as in `0.82` should still be possible
Mitigates effects of #9680
This commit is contained in:
Stefan Holderbach
2023-07-24 13:17:30 +02:00
committed by GitHub
parent d7ebe5fdc3
commit 9db0d6bd34
24 changed files with 70 additions and 10 deletions

View File

@ -36,6 +36,7 @@ impl Command for BitsInto {
(Type::String, Type::String),
(Type::Bool, Type::String),
(Type::Date, Type::String),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true) // TODO: supply exhaustive examples
.rest(

View File

@ -36,6 +36,7 @@ impl Command for BytesAdd {
Type::List(Box::new(Type::Binary)),
Type::List(Box::new(Type::Binary)),
),
(Type::Table(vec![]), Type::Table(vec![])),
])
.vectorizes_over_list(true)
.allow_variants_without_examples(true)

View File

@ -43,6 +43,7 @@ impl Command for BytesAt {
Type::List(Box::new(Type::Binary)),
Type::List(Box::new(Type::Binary)),
),
(Type::Table(vec![]), Type::Table(vec![])),
])
.vectorizes_over_list(true)
.required("range", SyntaxShape::Range, "the range to get bytes")

View File

@ -28,7 +28,10 @@ impl Command for BytesEndsWith {
fn signature(&self) -> Signature {
Signature::build("bytes ends-with")
.input_output_types(vec![(Type::Binary, Type::Bool)])
.input_output_types(vec![(Type::Binary, Type::Bool),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.required("pattern", SyntaxShape::Binary, "the pattern to match")
.rest(
"rest",

View File

@ -22,7 +22,9 @@ impl Command for BytesLen {
Type::List(Box::new(Type::Binary)),
Type::List(Box::new(Type::Int)),
),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.vectorizes_over_list(true)
.rest(
"rest",

View File

@ -17,7 +17,11 @@ impl Command for BytesReverse {
fn signature(&self) -> Signature {
Signature::build("bytes reverse")
.input_output_types(vec![(Type::Binary, Type::Binary)])
.input_output_types(vec![
(Type::Binary, Type::Binary),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.rest(
"rest",
SyntaxShape::CellPath,

View File

@ -29,7 +29,11 @@ impl Command for BytesStartsWith {
fn signature(&self) -> Signature {
Signature::build("bytes starts-with")
.input_output_types(vec![(Type::Binary, Type::Bool)])
.input_output_types(vec![
(Type::Binary, Type::Bool),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.required("pattern", SyntaxShape::Binary, "the pattern to match")
.rest(
"rest",

View File

@ -21,6 +21,7 @@ impl Command for DecodeHex {
Type::List(Box::new(Type::String)),
Type::List(Box::new(Type::Binary)),
),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.vectorizes_over_list(true)

View File

@ -21,6 +21,7 @@ impl Command for EncodeHex {
Type::List(Box::new(Type::Binary)),
Type::List(Box::new(Type::String)),
),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.vectorizes_over_list(true)

View File

@ -28,7 +28,11 @@ impl Command for FileSize {
fn signature(&self) -> Signature {
Signature::build("format filesize")
.input_output_types(vec![(Type::Filesize, Type::String)])
.input_output_types(vec![
(Type::Filesize, Type::String),
(Type::Table(vec![]), Type::Table(vec![])),
])
.allow_variants_without_examples(true)
.required(
"format value",
SyntaxShape::String,