# PostgreSQL 9.4アダプタ制限事項

- サポートする型
- テーブル読み取り処理
- 検索系SQL実行処理
- テーブル書き込み処理
- 更新系SQL実行処理
- 主な例外

## サポートする型

本アダプタでサポートする型は以下の通りです。

型名 | サポート | 備考
--- | --- | ---
BIGINT型 | ○ |
BIGSERIAL型 | × |
BIT[(n)]型 | × |
BIT VARYING[(n)]型 | △ |
BOOLEAN型 | ○ |
BOX型 | △ |
BYTEA型 | △ |
MONEY型 | × |
CHARACTER[(n)]型 | △ |
CHARACTER VARYING[(n)]型 | △ |
CIDR型 | △ |
CIRCLE型 | △ |
DATE型 | ○ |
DOUBLE PRECISION型 | ○ |
INET型 | △ |
INTEGER型 | ○ |
INTERVAL[(p)]型 | △ |
LINE型 | × |
LSEG型 | △ |
MACADDR型 | △ |
NUMERIC[(p,s)]型 | ○ |
PATH型 | △ |
POINT型 | △ |
POLYGON型 | △ |
REAL型 | ○ |
SMALLINT型 | ○ |
SERIAL型 | × |
TEXT型 | △ |
TIME[(P)]型 | × |
TIME[(P)] WITH TIME ZONE型 | × |
TIMESTAMP[(P)]型 | ○ |
TIMESTAMP[(P)] WITH TIME ZONE型 | ○ |
ARRAY型 | △ |
UUID型 | × |
ENUM型 | × |
XML型 | × |
JSON型 | × |
JSONB型 | × |
RANGE型 | × |

- ○:サポートします。
- △:サポートしますが、制限事項があります。
- ×:サポートしません。

## テーブル読み取り処理

### 仕様制限

- CHARACTER VARYING型、CHARACTER型、TEXT型
  - 最大値は「10,485,760」です。
- BYTEA型
  - 半角バックスラッシュ(「\」)と半角アポストロフィ(「'」)はサポートしません。
- テーブル名が引用符で囲われている場合、テーブル名の大文字小文字を区別します。
- [フェッチサイズ]のデフォルト値は「500」です。

## 検索系SQL実行処理

### 仕様制限

- CHARACTER VARYING型、CHARACTER型、TEXT型
  - 最大値は「10,485,760」です。
- BYTEA型
  - 半角バックスラッシュ(「\」)と半角アポストロフィ(「'」)はサポートしません。
- [フェッチサイズ]のデフォルト値は「500」です。

## テーブル書き込み処理

### 仕様制限

- 以下の型はサポートしません。
  - BOX型
  - CIDR型
  - CIRCLE型
  - INTERVAL型
  - LSEG型
  - PATH型
  - POINT型
  - POLYGON型
  - BIT VARYING型
  - BIT VARYING(N)型
  - ARRAY型
  - INET型
  - MACADDR型
- CHARACTER VARYING型、CHARACTER型、TEXT型
  - 最大値は「10,485,760」です。
- BYTEA型
  - 半角バックスラッシュ(「\」)と半角アポストロフィ(「'」)はサポートしません。
- テーブル名が引用符で囲われている場合、テーブル名の大文字小文字を区別します。
- [アップデートモード]の[インサート・アップデート]は使用できません。

## 更新系SQL実行処理

### 仕様制限

- 以下の型はサポートしません。
  - BOX型
  - CIDR型
  - CIRCLE型
  - INTERVAL型
  - LSEG型
  - PATH型
  - POINT型
  - POLYGON型
  - BIT VARYING型
  - BIT VARYING(N)型
  - ARRAY型
  - INET型
  - MACADDR型
- CHARACTER VARYING型、CHARACTER型、TEXT型
  - 最大値は「10,485,760」です。
- BYTEA型
  - 半角バックスラッシュ(「\」)と半角アポストロフィ(「'」)はサポートしません。

## 主な例外

例外名 | 原因 | 対策
--- | --- | ---
java.sql.SQLException | バッチ投入 0 insert into "<テーブル名>" ("<列名>") values ( <列値>) は停止しました。getNextExceptionを呼んで原因を見てください。 | テーブル名が不正、またはテーブルが存在しません。 | [テーブル名]で指定したテーブル名を確認してください。
org.postgresql.util.PSQLException | Connection to "<ホスト名>:<ポート番号>" refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. | データベースに接続できません。 | グローバルリソースの[ポート番号]を確認してください。
FATAL: database "<データベース名>" does not exist | データベースが存在しません。 | グローバルリソースの[データベース名]で存在するデータベースを指定してください。
FATAL: password authentication failed for user "<ユーザ名>" | ユーザ名またはパスワードに誤りがあります。 | グローバルリソースの[ユーザ名]と[パスワード]を確認してください。
ERROR: syntax error at or near "<テーブル名>" | テーブル名が不正です。 | [テーブル名]で指定したテーブル名を確認してください。
ERROR: relation "<テーブル名>" does not exist | テーブルが存在しません。 | [テーブル名]で存在するテーブルを指定してください。
ERROR: permission denied for relation <テーブル名> | テーブルの読み取り権限がありません。 | [テーブル名]で指定したテーブルの読み取り権限を確認してください。
サーバはSSLをサポートしていません。 | PostgreSQLサーバがSSL接続をサポートしていません。 | PostgreSQLサーバ側の設定を確認してください。
接続試行は失敗しました。 | データベースサーバに接続できません。 | グローバルリソースの[ホスト名]を確認してください。
SSL エラー: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target | 証明書がDataAnyware 2.0Serverが参照するキーストアにインポートされていません。 | 証明書をDataAnyware 2.0Serverが参照するキーストアにインポートしてください。 証明書のインポート方法については、「証明書のインポート」を参照してください。
FATAL: no pg_hba.conf entry for host "<ホスト名>", user "<ユーザ名>", database "<データベース名>", SSL off | PostgreSQLサーバへの標準接続(非SSL接続)に適合するクライアント認証情報が見つかりません。 | [接続先]で指定したグローバルリソースの設定、またはPostgreSQLサーバの設定を確認してください。
FATAL: no pg_hba.conf entry for host "<ホスト名>", user "<ユーザ名>", database "<データベース名>", SSL on | PostgreSQLサーバへのSSL接続に適合するクライアント認証情報が見つかりません。 | [接続先]で指定したグローバルリソースの設定、またはPostgreSQLサーバの設定を確認してください。