bech32Decode
bech32 または bech32m アルゴリズムで生成された Bech32 アドレス文字列をデコードします。
エンコード関数とは異なり、
bech32Decode はパディングされた FixedString を自動的に処理します。address— デコードする Bech32 文字列。StringまたはFixedStringmode— 省略可。先頭バイトを witness version として取り除かずにデコードするには'raw'を指定します。非 SegWit アドレス (例: Cosmos SDK) の場合に使用します。String
(hrp, data) で構成されるタプルを返します。データはバイナリ形式です。Tuple(String, String)
例
アドレスをデコード
Query
Response
Query
Response
bech32Encode
FixedString データ型を使用する場合、値が行を完全に埋めないと、null 文字で埋められます。
bech32Encode 関数は hrp 引数についてはこれを自動的に処理しますが、data 引数については値が埋められていてはなりません。
このため、すべての値の長さが同じであり、かつ FixedString カラムもその長さに設定されていることを確実に保証できる場合を除き、
データ値に FixedString データ型を使用することは推奨されません。hrp— コードの “human-readable part” を指定する、1 - 83文字の小文字からなる String。通常は ‘bc’ または ‘tb’ です。StringまたはFixedStringdata— エンコードするバイナリデータの String。StringまたはFixedStringwitver_or_variant— 任意。UInt* の witness version (デフォルトは 1、Bech32 では0、Bech32m では1以上) または、String のエンコード variant ('bech32'(BIP173) または'bech32m'(BIP350) ) のいずれかを指定します。文字列の variant を使用する場合、witness version バイトは先頭に追加されません。これは Cosmos SDK などの非 SegWit アドレスで必要になります。UInt*またはString
String
例
デフォルトの Bech32m
Query
Response
Query
Response
Query
Response
Query
Response
bin
| 型 | 説明 |
|---|---|
(U)Int* | 最上位ビットから最下位ビットに向かって bin の各桁を出力します (ビッグエンディアン、つまり「人が読みやすい」順序) 。最上位の非ゼロバイトから開始し (先頭のゼロバイトは省略されます) 、先頭の桁がゼロでも各バイトは常に 8 桁で出力されます。 |
Date and DateTime | 対応する整数としてフォーマットされます (Date は epoch からの日数、DateTime は Unix timestamp の値) 。 |
String and FixedString | すべてのバイトはそのまま 8 桁の 2 進数としてエンコードされます。ゼロバイトは省略されません。 |
Float* and Decimal | メモリ上の表現としてエンコードされます。リトルエンディアン アーキテクチャをサポートしているため、リトルエンディアン でエンコードされます。先頭および末尾のゼロバイトは省略されません。 |
UUID | ビッグエンディアン 順の文字列としてエンコードされます。 |
String
例
単純な整数
Query
Response
Query
Response
Query
Response
Query
Response
bitPositionsToArray
arg— 整数値。(U)Int*
Array(UInt64)
例
1 ビットのみが立っている場合
Query
Response
Query
Response
bitmaskToArray
num— 整数値。(U)Int*
Array(UInt64)
例
基本例
Query
Response
Query
Response
bitmaskToList
num— 整数値。(U)Int*
String
例
基本例
Query
Response
char
UInt8 データ型の範囲外である場合、その値は
丸めやオーバーフローが発生する可能性のある形で UInt8 に変換されます。
構文
num1[, num2[, num3 ...]]— 整数として解釈される数値引数。(U)Int8/16/32/64またはFloat*
String
例
基本例
Query
Response
Query
Response
hex
| Type | Description |
|---|---|
(U)Int* | 16進数の桁 (「ニブル」) を、上位桁から下位桁へ (ビッグエンディアン、つまり「human-readable」な順序で) 出力します。最上位の非ゼロバイトから開始し (先頭のゼロバイトは省略されます) 、先頭の桁がゼロであっても各バイトは常に2桁とも出力されます。 |
Date and DateTime | 対応する整数としてフォーマットされます (Date は epoch からの日数、DateTime は Unix timestamp の値) 。 |
String and FixedString | すべてのバイトはそのまま2桁の16進数としてエンコードされます。ゼロバイトも省略されません。 |
Float* and Decimal | メモリ上の表現でエンコードされます。ClickHouse は内部的に常にリトルエンディアンで値を表現するため、それに従ってエンコードされます。先頭や末尾のゼロバイトも省略されません。 |
UUID | ビッグエンディアン順の文字列としてエンコードされます。 |
A-F を使用し、プレフィックス (0x など) や接尾辞 (h など) は使用しません。
構文
String
例
単純な整数値
Query
Response
Query
Response
Query
Response
Query
Response
hilbertDecode
hilbertEncode 関数と同様に、この関数には 2 つの動作モードがあります。
- シンプル
- 拡張
UInt64 コードを生成します。
拡張モード
最初の引数として範囲マスク (タプル) を受け取り、そのほかの引数として最大 2 つの符号なし整数を
受け取ります。マスク内の各数値は、対応する引数を左にシフトするビット数を指定し、
その範囲内で引数を実質的にスケーリングします。
範囲の拡張は、範囲 (またはカーディナリティ) が大きく異なる引数に対して、
似た分布が必要な場合に役立ちます。たとえば、‘IP Address’ (0...FFFFFFFF)
と ‘Country code’ (0...FF) のような場合です。encode 関数と同様に、指定できる
数値は最大 8 個までです。
構文
tuple_size—2以下の整数値。UInt8/16/32/64またはTuple(UInt8/16/32/64)code— コードを表すUInt64値。UInt64
Tuple(UInt64)
例
シンプルモード
Query
Response
Query
Response
Query
Response
Query
Response
hilbertEncode
- シンプル
- 拡張
args— 最大2つのUInt型の値、またはUInt型のカラム。UInt8/16/32/64range_mask— 拡張モードでは、最大2つのUInt型の値、またはUInt型のカラム。UInt8/16/32/64
UInt64 型のコードを返します。UInt64
例
シンプルモード
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
mortonDecode
mortonEncode 関数と同様に、この関数には 2 つの動作モードがあります。
- シンプル
- 拡張
1- 縮小なし2- 2 倍に縮小3- 3 倍に縮小 ⋮- 最大 8 倍まで縮小。
(0...FFFFFFFF)
と ‘Country code’ (0...FF) のような場合です。encode 関数と同様に、指定できる数値は
最大 8 個までに制限されています。
構文
tuple_size— 8 以下の整数値。UInt8/16/32/64range_mask— 拡張モードでは、各引数に対するマスクです。マスクは符号なし整数のタプルです。マスク内の各数値は、範囲の縮小量を設定します。Tuple(UInt8/16/32/64)code— UInt64 のコード。UInt64
Tuple(UInt64)
例
シンプルモード
Query
Response
Query
Response
Query
Response
Query
Response
mortonEncode
- シンプル
- 拡張*
UInt64 のコードを生成します。
拡張モード
最初の引数として範囲マスク (Tuple) を受け取り、
そのほかの引数として最大 8 個の 符号なし整数 を受け取ります。
マスク内の各数値は、範囲をどの程度拡張するかを指定します。
- 1 - 拡張なし
- 2 - 2 倍に拡張
- 3 - 3 倍に拡張 ⋮
- 最大 8 倍まで拡張。
args— 前述の型の符号なし整数、またはその型のカラムを最大 8 個まで指定できます。UInt8/16/32/64range_mask— 拡張モードで使用する、各引数に対応するマスクです。マスクは1-8の符号なし整数からなるタプルです。マスク内の各数値は、範囲の縮小量を設定します。Tuple(UInt8/16/32/64)
UInt64 のコードを返します。 UInt64
例
シンプルモード
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
sqidDecode
sqid— デコードするsqid。String
sqid から数値の配列を返します。Array(UInt64)
例
使用例
Query
Response
sqidEncode
sqid
引数
n1[, n2, ...]— 任意の個数の数値。UInt8/16/32/64
String を返します
例
使用例
Query
Response
unbin
bin とは逆の操作を行います。
数値引数に対しては、unbin() は bin() の逆変換を返しません。結果を数値に変換したい場合は、reverse 関数と reinterpretAs<Type> 関数を使用できます。
clickhouse-client 内から unbin を呼び出した場合、バイナリ文字列は UTF-8 として表示されます。0 と 1 の 2 進数のみをサポートします。2 進数の桁数は 8 の倍数である必要はありません。引数文字列に 2 進数以外の文字が含まれている場合、
結果は未定義です (例外はスローされません) 。
構文
arg— 0 と 1 からなる任意の長さの文字列。String
String
例
基本的な使い方
Query
Response
Query
Response
unhex
hex とは逆の操作を行います。引数内の 16 進数の各 2 桁を 1 つの数値として解釈し、
その数値が表すバイトに変換します。戻り値はバイナリ文字列 (BLOB) です。
結果を数値に変換したい場合は、reverse 関数と reinterpretAs<Type> 関数を使用できます。
clickhouse-client は文字列を UTF-8 として解釈します。
そのため、hex が返す値が想定外の形で表示されることがあります。A-F の両方をサポートしています。
16 進数の桁数は偶数である必要はありません。
奇数の場合、最後の 1 桁は 00-0F バイトの下位 4 ビットとして解釈されます。
引数の文字列に 16 進数以外の文字が含まれている場合、実装依存の結果が返されます (例外はスローされません) 。
数値引数に対しては、hex(N) の逆変換は unhex() では行われません。
構文
arg— 任意個の16進数字を含む文字列。StringまたはFixedString
String
例
基本的な使い方
Query
Response
Query
Response