Home > C# > PostgreSQL > Npgsql > ドキュメント

互換性メモ Npgsql

新規作成日 2019-02-24
最終更新日

互換性メモ

Compatibility Notes

このページでは、PostgreSQLや他のコンポーネントとの、Npgsqlの互換性の状態をまとめています。そして、いくつかの重要な問題を文書化しています。

PostgreSQL

私たちは、5年前から現在サポートされている、すべてのバージョンのPostgreSQLと互換性を保つことを目指しています。初期のバージョンは、まだ、動作するかもしれませんが、私たちは、それらに対して継続的なテストを実行したり、それらの問題を解決することを約束しません。

ADO.NET

Npgsqlは、ADO.NET互換のプロバイダであるため、他の.NETデータベース・ドライバと同じAPIを持っています。そして、同じように動作するはずです。あなたが、標準ではない動作に気がついたときは、お知らせください。

.NET Framework/.NET Core/mono

Npgsqlは、.NET Coreで実行できる.NET Standard 2.0と同様に、現在.NET Framework 4.5と4.5.1を対象としています。それは、検証され、mono上でも適切に実行します。

Amazon Redshift

Amazon Redshiftは、もともと、PostgreSQL 8.0.2に基づいた、クラウドベースのデータウェアハウスです。加えて、その性質上、一部の機能は削除され、その他の機能は変更され、PostgreSQLとの互換性はありません。私たちは、できる限り、Redshiftをサポートしようとしています。遭遇した問題について、私たちに、知らせて下さい。

まず、RedshiftとPostgreSQLについて、たくさんの役に立つ互換性情報が含まれている、Amazonのページを確認してください。

その他の既知の問題:

Additional known issues:

  • あなたが、SSLで接続したい場合、接続文字列に、Server Compatibility Mode = Redshiftが、含まれている必要があります。それ以外の場合には、ssl_renegotiation_limitに関する接続エラーが発生します。
  • データベースで計算されたID値を持つEntity Frameworkは、シーケンスをサポートしていないため、Redshiftでは機能しません。(issue #544を参照)。

pgbouncer

Npgsqlは、PgBouncerで適切に動作しますが、知っておくべきいくつかの癖があります。

  • 多くの場合、あなたは、接続文字列に、Pooling=falseを指定することによって、Npgsqlの内部接続プールをオフにすることを望むでしょう。
  • あなたが、PgBouncerと一緒に、Npgsqlプールを維持し続け、PgBouncerのトランザクションやステートメント・モードを使用したい場合、続いて、あなたは、接続文字列で、No Reset On Close = trueと指定する必要があります。これは、接続が、これらのモードでは、意味がない、Npgsqlのプールに戻ったとき、実行されるNpgsqlの接続リセット・ロジック(DISCARD ALL)を無効にします。
  • バージョン3.1より以前では、Npgsqlは、接続するとき、statement_timeoutスタートアップ・パラメータを送信しますが、このパラメータは、pgbouncerでは、サポートされていません。これを回避するには、接続文字列でCommandTimeout = 0を指定します。そして、その次に、あなたのNpgsqlCommandオブジェクトで、CommandTimeoutプロパティを手作業で設定します。バージョン3.1では、もはや、statement_timeoutを送信しません。
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」