機能
カラムナテーブルにインデックスを作成します。
書式
pgxa_create_index(indexname, tablename, columns, type, unique)
引数
引数 | データ型 | 意味 |
---|---|---|
indexname | text | インデックス名 |
tablename | text | テーブル名(外部テーブル名) |
columns | text | 列名リスト |
type | text | インデックスの形式を以下のいずれかで指定します。
|
unique | boolean | ユニーク属性か否か
|
戻り値
戻り値 | 意味 |
---|---|
TRUE | 正常終了 |
FALSE | 異常終了 |
実行例
> psql postgres psql (9.2.8) Type "help" for help. postgres=# select pgxa_create_index('tbl1_ix1', 'scm.tbl1', 'col1', 'HG', true); pgxa_create_index ------------------- t (1 row)
説明
インデックス名は、テーブル内で一意の名前を指定してください。
テーブル名は、事前に定義した外部テーブル名を指定してください。
指定できるインデックス形式と用途は以下のとおりです。
インデックス形式 | 用途 |
---|---|
HG | カーディナリティが1000以上。ジョインキーやGROUP BY、集合関数、大小比較など。 |
HNG | 集合関数、大小比較、前方一致、後方一致など。 |
LF | カーディナリティが1000未満。ジョインキーやGROUP BY、集合関数、大小比較など。 |
DATE | DATE型の列に対して有効。DATE型専用。 |
TIME | TIME型の列に対して有効。TIME型専用。 |
DTTM | TIMESTAMP型の列に対して有効。TIMESTAMP型専用。 |
CMP | 同じデータ型の列同士の比較。FLOAT, DOUBLE, REAL型には利用できません。 |
未定義の外部テーブル名を指定した場合はエラーとなります。
指定した外部テーブルに既に同じ形式のインデックスが定義されている場合はエラーとなります。
注意
CREATE FOREIGN TABLE文で外部テーブルを作成するときに指定するスキーマ名、外部テーブル名、カラム名などには、半角英数字だけを使用してください。
また、外部テーブルに対するビュー名、インデックス名などには半角英数字だけを使用してください。
なお、使用可能文字の詳細は、“A.1 データベースサーバ機能”を参照してください。