PostgreSQL Communityエディションで提供されているvarbitプラグインは、単純なBITタイプの操作関数のみをサポートします。 varbitxプラグインは、varbitプラグインの拡張です。 varbitxプラグインはApsaraDB RDS for PostgreSQLで提供され、より多くのシナリオでより多くのBITタイプの操作をサポートします。 これらのシナリオには、リアルタイムのユーザープロファイルの推奨、アクセス制御広告、および発券が含まれます。
前提条件
RDSインスタンスは、次のPostgreSQLバージョンのいずれかを実行します。- PostgreSQL 11
- PostgreSQL 10
サポートされる関数
関数 | 説明 |
get_bit (varbit a、int b、int c) はvarbitを返します | 位置bで始まる指定された数cのビットを取得し、VARBITタイプの文字列を返します。 たとえば、 |
set_bit_array (varbit a, int b, int c, int[] d) returns varbit | 下付き文字列dで指定されたビットの値を値b (0または1) に変更し、元の長さを超えるビットを値c (0または1) で埋めます。 たとえば、 |
bit_count (varbit a, int b, int c, int d) returns int | 指定されたビット数dのうち、位置cから始まる値b (0または1) の数をカウントします。 指定された長さを超えるビットはカウントされません。 たとえば、 |
bit_count (varbit a, int b) returns int | 値b (0または1) の総数をカウントします。 たとえば、 |
bit_fill (int a、int b) はvarbitを返します | 指定された数bのビットを値a (0または1) で埋めます。 たとえば、 |
bit_rand (int a、int b、float c) はvarbitを返します | 指定されたビット数aからランダムな割合cのビットを取得し、取得したビットを値b (0または1) でランダムに埋めます。 例えば、 |
bit_posite (varbit a, int b, boolean c) returns int[] | 下付き文字配列を返します。 添字配列は、値がb (0または1) であるビットの位置を示す。 下付き文字は0から始まります。 cの値がtrueの場合、サブスクリプトは正の順序で返されます。 cの値がfalseの場合、サブスクリプトは負の順序で返されます。 たとえば、 |
bit_posite (varbit a, int b, int c, boolean d) returns int[] | 下付き文字配列を返します。 添字配列は、値がb (0または1) であるビットの位置を示す。 下付き文字配列の下付き文字の数はcです。 下付き文字は0から始まります。 dの値がtrueの場合、サブスクリプトは正の順序で返されます。 dの値がfalseの場合、添え字は負の順序で返されます。 たとえば、 |
get_bit_array (varbit a, int b, int c, int d) returns int[] | 位置bから始まるビットの指定数cを取得し、取得したビットのうち値がd (0または1) であるビットを識別し、下付き文字配列を返す。 下付き文字配列は、識別されたビットの位置を示す。 たとえば、 |
get_bit_array (varbit a, int b, int[] c) returns int[] | 下付き文字配列cで指定されるビットを取得し、取得したビットのうち値がb (0または1) であるビットを識別し、下付き文字配列を返す。 下付き文字配列は、識別されたビットの位置を示す。 添字配列cに含まれないビットはカウントされない。 たとえば、 |
set_bit_array (varbit a, int b, int c, int[] d, int e) returns varbit | 下付き文字配列dで指定されたビットの値を値b (0または1) に変更し、元の長さを超えるビットを値c (0または1) で埋めます。 返されるビット数はeです。 たとえば、 |
set_bit_array_record (varbit a, int b, int c, int[] d) returns (varbit,int[]) | 下付き文字配列dで指定されたビットの値を値b (0または1) に変更し、元の長さを超えるビットを値c (0または1) で埋めます。 この関数は、ビット列だけでなく、添え字配列も返します。 下付き文字配列は、値が変更されるビットの位置を示す。 たとえば、 |
set_bit_array_record (varbit a, int b, int c, int[] d, int e) returns (varbit,int[]) | 下付き文字配列dで指定されたビットの値を値b (0または1) に変更し、元の長さを超えるビットを値c (0または1) で埋めます。 この関数は、ビット列だけでなく、添え字配列も返します。 下付き文字配列は、値が変更されるビットの位置を示す。 この関数は、合計eビットの値を変更した直後に結果を返します。 たとえば、 |
bit_count_array (varbit a, int b, int[] c) returns int | 添字配列cで指定されるビットのうち、値b (0または1) の数をカウントします。 たとえば、 |
基本的な使用方法
- varbitxプラグインを作成します。
拡張varbitxを作成します。
- varbitxプラグインを削除します。
ドロップ延長varbitx;
- varbitxプラグインでサポートされている関数を呼び出します。
SELECT <function>
ステートメントを実行して、関数を呼び出すことができます。- 次のステートメントを実行して、bit_count関数を呼び出します。
select bit_count('1111000011110000', 1, 5, 4);
次の応答が返されます。
bit_count ----------- 1 (1行)
- 次のステートメントを実行して、set_bit_array_record関数を呼び出します。
select set_bit_array_record('111100001111', 1,0, array[1,4,5,6,7], 2);
次の応答が返されます。
set_bit_array_record ------------------------ (111111001111、"{4,5}") (1行)
関数とその説明の詳細については、「サポートされている関数」をご参照ください。
- 次のステートメントを実行して、bit_count関数を呼び出します。