Skip to content

Commit 5ccd7e2

Browse files
marcelkostalenditmosenberglittlegrasscaovogelsgesang
authored
Hyper API January 2025 Release (#141)
Adapt release notes and version config. --------- Co-authored-by: Dimitri Vorona <[email protected]> Co-authored-by: Maximilian Osenberg <[email protected]> Co-authored-by: Dimitri Vorona <[email protected]> Co-authored-by: littlegrasscao <[email protected]> Co-authored-by: Adrian Vogelsgesang <[email protected]>
1 parent a9ddb41 commit 5ccd7e2

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed

website/docs/releases.md

+7
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ In case you are wondering why all our releases start with `0.0`, read [this FAQ
2424

2525
:::
2626

27+
### 0.0.21200 [Jan 17 2025]
28+
29+
* Support for Microsoft Azure Blob Storage using [`azure_location`](./sql/external/location.md#microsoft-azure-blob-storage) was added.
30+
* Documented [`starts_with`](./sql/scalar_func/string.md) and [`ends_with`](./sql/scalar_func/string.md), as well as negative field positions for [`split_part`](./sql/scalar_func/string.md).
31+
* Fixed double free bug in Java Hyper API (reported in GitHub Issue [#133](https://github.com/tableau/hyper-db/issues/133)).
32+
* Improved performance of distinct aggregates (e.g., `SELECT COUNT(DISTINCT a) from t`).
33+
2734
### 0.0.20746 [Nov 7 2024]
2835

2936
* Support for `array_contains`, `array_position` and `array_positions` was added

website/docs/sql/external/location.md

+28
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ s3_location('amazon_s3_uri'
99
[, access_key_id => 'text', secret_access_key => 'text' [, session_token => 'text'] ]
1010
[, region => 'text']
1111
)
12+
azure_location('azure_blob_storage_uri'
13+
[, sas_token => 'sas_token']
14+
)
1215
ARRAY[ <source_location> [, ...] ]
1316
```
1417

@@ -54,6 +57,31 @@ techniques such as concurrent requests, request hedging and
5457
prefetching). For maximum performance, ensure a high network bandwidth
5558
to Amazon S3, e.g., by running HyperAPI directly on an AWS EC2 instance.
5659

60+
## Microsoft Azure Blob Storage
61+
62+
```
63+
SELECT * FROM external(
64+
azure_location(
65+
'abfss://[email protected]/products.parquet', sas_token => 'secret-sas-token'
66+
)
67+
)
68+
```
69+
70+
To access data stored on Microsoft Azure Blob Storage, you can use the
71+
`azure_location` syntax. Hyper supports the `DFS` and `BLOB` endpoints and
72+
recognizes all of the following Azure URL formats:
73+
* `abfss://[email protected]/...`
74+
* `https://account.dfs.core.windows.net/container/...`
75+
* `https://account.blob.core.windows.net/container/...`
76+
77+
Hyper also allows you to enter the non-SSL version of the URLs (`http://` and `abfs://`),
78+
however it will always establish SSL encrypted connections.
79+
80+
Hyper's Azure support is highly optimized by using techniques such as concurrent
81+
requests, request hedging and prefetching. For maximum performance, ensure that you
82+
have a high network bandwidth to Azure Blob Storage, e.g. by running HyperAPI directly
83+
on Microsoft Azure compute.
84+
5785
## Multiple files
5886

5987
```

website/docs/sql/scalar_func/string.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Function|Return Type|Description|Example
3535
`concat(str "any" [, str "any" [, ...] ])`|`text`|Concatenate the text representations of all the arguments. NULL arguments are ignored, in contrast to <code>&#124;&#124;</code>.|`concat('abcde', 2, NULL, 22)``abcde222`
3636
`decode(string text, format text)`|`bytea`|Decode binary data from textual representation in `string`. Options for `format` are same as in `encode`.|`decode('MTIzAAE=', 'base64')``\x3132330001`
3737
`encode(data bytea, format text)`|`text`|Encode binary data into a textual representation. Supported formats are: `base64`, `hex`, `escape`. `escape` converts zero bytes and high-bit-set bytes to octal sequences (`\``<nnn>`) and doubles backslashes.|`encode('123\000\001', 'base64')``MTIzAAE=`
38+
`ends_with(string text, suffix text)`|`boolean`|Return true if `string` ends with `suffix`.|`ends_with('alphabet', 'bet')``t`
3839
`initcap(string)`|`text`|Convert the first letter of each word to upper case and the rest to lower case. Words are sequences of alphanumeric characters separated by non-alphanumeric characters.|`initcap('hi THOMAS')``'Hi Thomas'`
3940
`left(str text, n int)`|`text`|Return first `<n>` characters in the string. When `<n>` is negative, return all but last <code>&#124;&#60;n&#62;&#124;</code> characters.|`left('abcde', 2)``'ab'`
4041
`length(string)`|`int`|Number of characters in `string`|`length('jose')``4`
@@ -49,7 +50,8 @@ Function|Return Type|Description|Example
4950
`right(str text, n int)`|`text`|Return last `<n>` characters in the string. When `<n>` is negative, return all but first <code>&#124;&#60;n&#62;&#124;</code> characters.|`right('abcde', 2)``'de'`
5051
`rpad(string text, length int , fill text)`|`text`|Fill up the `string` to length `length` by appending the characters `fill` (a space by default). If the `string` is already longer than `length` then it is truncated.|`rpad('hi', 5, 'xy')``'hixyx'`
5152
`rtrim(string text , characters text)`|`text`|Remove the longest string containing only characters from `characters` (a space by default) from the end of `string`.|`rtrim('testxxzx', 'xyz')``'test'`
52-
`split_part(string text, delimiter text, field int)`|`text`|Split `string` on `delimiter` and return the given field (counting from one).|`split_part('abc~@~def~@~ghi', '~@~', 2)``'def'`
53+
`split_part(string text, delimiter text, field int)`|`text`|Split `string` on `delimiter` and return the given field (counting from one). When `n` is negative, returns the `|n|`-th-from-last field. |`split_part('abc~@~def~@~ghi', '~@~', 2)``'def'`
54+
`starts_with(string text, prefix text)`|`boolean`|Return true if `string` starts with `prefix`.|`starts_with('alphabet', 'alph')``t`
5355
`strpos(string, substring)`|`int`|Location of specified substring (same as `position(substring in string)`, but note the reversed argument order).|`strpos('high', 'ig')``2`
5456
`substr(string, from , count)`|`text`|Extract substring (same as `substring(string from from for count)`).|`substr('alphabet', 3, 2)``'ph'`
5557
`to_hex(number int or bigint)`|`text`|Convert `number` to its equivalent hexadecimal representation.|`to_hex(2147483647)``'7fffffff'`

website/src/config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const version_long = '0.0.20746.reac9bd2d';
1+
const version_long = '0.0.21200.re11c8cb9';
22
const version_short = version_long.substr(0, version_long.lastIndexOf('.'));
33

44
const downloadBaseUrl = 'https://downloads.tableau.com/tssoftware/';

0 commit comments

Comments
 (0)