diff --git a/proto/substrait/algebra.proto b/proto/substrait/algebra.proto index eed7bcc79..2bf3c0852 100644 --- a/proto/substrait/algebra.proto +++ b/proto/substrait/algebra.proto @@ -73,10 +73,11 @@ message ReadRel { // Definition of which type of scan operation is to be performed oneof read_type { - VirtualTable virtual_table = 5; + VirtualTable virtual_table = 5 [deprecated = true]; LocalFiles local_files = 6; NamedTable named_table = 7; ExtensionTable extension_table = 8; + VirtualExpressionTable virtual_expression_table = 9; } // A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). @@ -91,6 +92,11 @@ message ReadRel { repeated Expression.Literal.Struct values = 1; } + // A table composed of expressions. + message VirtualExpressionTable { + repeated Expression values = 1; + } + // A stub type that can be used to extend/introduce new table types outside // the specification. message ExtensionTable { diff --git a/site/docs/relations/logical_relations.md b/site/docs/relations/logical_relations.md index d71b57d2f..03d371a6f 100644 --- a/site/docs/relations/logical_relations.md +++ b/site/docs/relations/logical_relations.md @@ -57,6 +57,16 @@ is encoded as records consisting of literal values. | -------- | ----------- | -------- | | Data | Required | Required | +#### Virtual Expression Table + +A virtual expression table is a table whose contents are embedded in the plan itself. The table data +is encoded as records consisting of expression values. + +| Property | Description | Required | +| -------- | ----------- | -------- | +| Data | Required | Required | + + #### Named Table A named table is a reference to data defined elsewhere. For example, there may be a catalog