Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement](docs) Sql function compress and uncompress #1955

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
{
"title": "COMPRESS",
"language": "en"
}
---

<!--
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.
-->

## Description
The COMPRESS function is used to compress strings or values into binary data. The compressed data can be decompressed using the UNCOMPRESS function.

## Syntax

```sql
COMPRESS(<uncompressed_str>)
```

## Parameters

| Parameters | Description |
|--------------------|---------------|
| `<uncompressed_str>` | Uncompressed raw string |

The parameter type is varchar or string

## Return Value
The return string is the same as the input <uncompressed_str> type
The first ten digits of the returned string are the hexadecimal length of the original string, for example, 0x01000000. What follows is the compressed byte stream, which is unreadable and you should not get it.

Special case:
- <uncompressed_str> Return '0x' when input is ''

## Example

``` sql
select compress('abc');
```
The result of the decompression is unreadable and you don't need to care about its true value.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont comment like this. add a example like uncompress(compress())


```sql
select compress('');
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add text here

```text
+--------------+
| compress('') |
+--------------+
| |
+--------------+
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
{
"title": "UNCOMPRESS",
"language": "en"
}
---

<!--
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.
-->

## Description
The UNCOMPRESS function is used to COMPRESS binary data into strings or values, you need to make sure that the binary data needs to be the result of 'compress'.

## Syntax

```sql
UNCOMPRESS(<compressed_str>)
```

## Parameters

| Parameters | Description |
|--------------------|---------------|
| `<compressed_str>` | Compressed binary data |

The parameter type is varchar or string

## Return Value
The return value is the same as the input <compressed_str> type

Special cases:
- <compressed_str> Returns NULL if the binary data is not compressed.

## Example

``` sql
select uncompress(compress('abc'));
```
```text
+-----------------------------+
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add more cases which got NULL, or empty

| uncompress(compress('abc')) |
+-----------------------------+
| abc |
+-----------------------------+
```
```sql
select uncompress(compress(''));
```
```text
+--------------------------+
| uncompress(compress('')) |
+--------------------------+
| |
+--------------------------+
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
{
"title": "COMPRESS",
"language": "zh-CN"
}
---

<!--
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.
-->

## 描述
COMPRESS 函数用于将字符串或值压缩成二进制数据,压缩后的数据可通过 `UNCOMPRESS` 函数解压还原。

## 语法

```sql
COMPRESS(<uncompresse_str>)
```

## 参数

| 参数 | 说明 |
|--------------------|---------------|
| `<uncompressed_str>` | 未压缩的原串 |

参数类型是varchar或者string

## 返回值
返回串与输入的 <uncompressed_str> 类型一致
返回串的前十位是原串长度的十六进制形式, 例如: 0x01000000。后面的是压缩字节流,它是不可读的,你不应该获取它。
特殊情况:
- <uncompressed_str> 输入为 ‘’ 时,返回 '0x'

## 举例

``` sql
select compress('abc');
```
解压的结果是不可读的,你不需要关心它的真实值。

```sql
select compress('');
```
```text
+--------------+
| compress('') |
+--------------+
| |
+--------------+
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
{
"title": "UNCOMPRESS",
"language": "zh-CN"
}
---

<!--
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.
-->

## 描述
UNCOMPRESS 函数用于将二进制数据解压缩成字符串或值,你需要确保二进制数据需要是`COMPRESS`的结果。

## 语法

```sql
UNCOMPRESS(<compressed_str>)
```

## 参数

| 参数 | 说明 |
|--------------------|---------------|
| `<compressed_str>` | 压缩得到的二进制数据 |

参数类型是varchar或者string

## 返回值
返回值与输入的 <compressed_str> 类型一致
特殊情况:
- <compressed_str> 输入不是`COMPRESS`得到的二进制数据时, 返回 NULL.


## 举例

``` sql
select uncompress(compress('abc'));
```
```text
+-----------------------------+
| uncompress(compress('abc')) |
+-----------------------------+
| abc |
+-----------------------------+
```
```sql
select uncompress(compress(''));
```
```text
+--------------------------+
| uncompress(compress('')) |
+--------------------------+
| |
+--------------------------+
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
{
"title": "COMPRESS",
"language": "zh-CN"
}
---

<!--
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.
-->

## 描述
COMPRESS 函数用于将字符串或值压缩成二进制数据,压缩后的数据可通过 `UNCOMPRESS` 函数解压还原。

## 语法

```sql
COMPRESS(<uncompresse_str>)
```

## 参数

| 参数 | 说明 |
|--------------------|---------------|
| `<uncompressed_str>` | 未压缩的原串 |

参数类型是varchar或者string

## 返回值
返回串与输入的 <uncompressed_str> 类型一致
返回串的前十位是原串长度的十六进制形式, 例如: 0x01000000。后面的是压缩字节流,它是不可读的,你不应该获取它。
特殊情况:
- <uncompressed_str> 输入为 ‘’ 时,返回 '0x'

## 举例

``` sql
select compress('abc');
```
解压的结果是不可读的,你不需要关心它的真实值。

```sql
select compress('');
```
```text
+--------------+
| compress('') |
+--------------+
| |
+--------------+
```
Loading