Empty relation now has a child, this makes it easier to infer logical properties of the node. We don't need to store anything (i.e., schema) in empty relation. Simply wrap the original plan node with empty relation and it's done. (TBD: rename to blackhole node? and remove OneRow variant b/c it's covered by the values node)
Also added values plan node. Currently, this is only used to represent a leaf node that produces nothing.
The difference between values node and empty relation: schema inference. Empty relation passes through all logical properties from the child node (i.e., schema), while values node have its own schema based on the first row of the value (not implemented yet)
Empty relation now has a child, this makes it easier to infer logical properties of the node. We don't need to store anything (i.e., schema) in empty relation. Simply wrap the original plan node with empty relation and it's done. (TBD: rename to blackhole node? and remove OneRow variant b/c it's covered by the values node)
Also added values plan node. Currently, this is only used to represent a leaf node that produces nothing.
The difference between values node and empty relation: schema inference. Empty relation passes through all logical properties from the child node (i.e., schema), while values node have its own schema based on the first row of the value (not implemented yet)