SQL
`*COLUMNS` Unpacked Columns
The `*COLUMNS` clause is a variation of `COLUMNS`, which supports all of the previously mentioned capabilities.
The difference is in how the expression expands.  
`*COLUMNS` will expand in-place, much like the [iterable unpacking behavior in Python](https://peps.python.org/pep-3132/), which inspired the `*` syntax.
This implies that the expression expands into the parent expression.
An example that shows this difference between `COLUMNS` and `*COLUMNS`:  
With `COLUMNS`:  
```sql
SELECT coalesce(COLUMNS(['a', 'b', 'c'])) AS result
FROM (SELECT NULL a, 42 b, true c);
```  
| result | result | result |
|--------|-------:|-------:|
| NULL   | 42     | true   |  
With `*COLUMNS`, the expression expands in its parent expression `coalesce`, resulting in a single result column:  
```sql
SELECT coalesce(*COLUMNS(['a', 'b', 'c'])) AS result
FROM (SELECT NULL AS a, 42 AS b, true AS c);
```  
| result |
|-------:|
| 42     |  
`*COLUMNS` also works with the `(*)` argument:  
```sql
SELECT coalesce(*COLUMNS(*)) AS result
FROM (SELECT NULL a, 42 AS b, true AS c);
```  
| result |
|-------:|
| 42     |