Skip to content

Commit

Permalink
Added special functions page
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanc-n committed Oct 25, 2024
1 parent 6f6bdab commit bc7a331
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 74 deletions.
74 changes: 0 additions & 74 deletions docs/source/user-guide/sql/scalar_functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,51 +72,8 @@ See [date_part](#date_part).

## Array Functions

- [unnest](#unnest)
- [range](#range)

### `unnest`

Transforms an array into rows.

#### Arguments

- **array**: Array expression to unnest.
Can be a constant, column, or function, and any combination of array operators.

#### Examples

```
> select unnest(make_array(1, 2, 3, 4, 5));
+------------------------------------------------------------------+
| unnest(make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5))) |
+------------------------------------------------------------------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------------------------------------------------------------------+
```

```
> select unnest(range(0, 10));
+-----------------------------------+
| unnest(range(Int64(0),Int64(10))) |
+-----------------------------------+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+-----------------------------------+
```

### `range`

Returns an Arrow array between start and stop with step. `SELECT range(2, 10, 3) -> [2, 5, 8]` or
Expand Down Expand Up @@ -165,40 +122,9 @@ are not allowed

- generate_series

## Struct Functions

- [unnest](#unnest-struct)

For more struct functions see the new documentation [
`here`](https://datafusion.apache.org/user-guide/sql/scalar_functions_new.html)

### `unnest (struct)`

Unwraps struct fields into columns.

#### Arguments

- **struct**: Object expression to unnest.
Can be a constant, column, or function, and any combination of object operators.

#### Examples

```
> select * from foo;
+---------------------+
| column1 |
+---------------------+
| {a: 5, b: a string} |
+---------------------+
> select unnest(column1) from foo;
+-----------------------+-----------------------+
| unnest(foo.column1).a | unnest(foo.column1).b |
+-----------------------+-----------------------+
| 5 | a string |
+-----------------------+-----------------------+
```

## Other Functions

See the new documentation [`here`](https://datafusion.apache.org/user-guide/sql/scalar_functions_new.html)
89 changes: 89 additions & 0 deletions docs/source/user-guide/sql/special_functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<!---
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->

# Special Functions

### `unnest`

Transforms an array into rows.

#### Arguments

- **array**: Array expression to unnest.
Can be a constant, column, or function, and any combination of array operators.

#### Examples

```
> select unnest(make_array(1, 2, 3, 4, 5));
+------------------------------------------------------------------+
| unnest(make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5))) |
+------------------------------------------------------------------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------------------------------------------------------------------+
```

```
> select unnest(range(0, 10));
+-----------------------------------+
| unnest(range(Int64(0),Int64(10))) |
+-----------------------------------+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+-----------------------------------+
```

### `unnest (struct)`

Unwraps struct fields into columns.

#### Arguments

- **struct**: Object expression to unnest.
Can be a constant, column, or function, and any combination of object operators.

#### Examples

```
> select * from foo;
+---------------------+
| column1 |
+---------------------+
| {a: 5, b: a string} |
+---------------------+
> select unnest(column1) from foo;
+-----------------------+-----------------------+
| unnest(foo.column1).a | unnest(foo.column1).b |
+-----------------------+-----------------------+
| 5 | a string |
+-----------------------+-----------------------+
```

0 comments on commit bc7a331

Please sign in to comment.