10月2023日から3月2024日までのPolarDB for PostgreSQL (Compatible with Oracle) 2.0 (以下、PolarDBと呼ぶ) の開発サイクルでは、エンジンの互換性、セキュリティと権限の管理、ドライバとツールの互換性が大幅に向上しています。 このトピックでは、10月2023日から3月2024日までのPolarDBの改善点について説明します。
リリースノート
エンジン互換性の最適化
次のセクションでは、エンジン互換性の最適化についてのみ説明します。 エンジンの更新の詳細については、「PolarDB For PostgreSQL (Compatible with Oracle) 2.0のリリースノート」をご参照ください。
組み込みオブジェクト
べき乗を実行するために使用される演算子がサポートされます。
ビットマップインデックスは、64ビットのDATEデータ型で作成できます。
組み込み関数は、
func(arg1 => 1)の構文を使用して呼び出すことができます。V$VERSIONやDBA_TYPE_ATTRSなどの組み込みビューがサポートされています。TO_DATE関数は、文字列の'Y,YYY'形式への変換をサポートするように最適化されています。ビューの互換性を向上させるために、
DBA_CONSTRAINTSなどのビューに追加の列が追加されます。xmlとxmltypeのデータ形式間の変換は、互換性を向上させ、コール操作の失敗のリスクを減らすためにサポートされています。TO_CHAR機能は、DDSPTHのような互換性制御識別ビットをサポートするように拡張されます。次の問題が修正されました。
IMMUTABLE関数が予想されるコンテキストで非IMMUTABLEとしてマークされた関数が使用されると、不正な実行プランが生成されます。DECODE式の戻り値型の互換性の問題が修正されました。mod関数の互換性の問題は修正され、除数が0の場合のエラーは防止されます。V$VERSIONビューのアクセス許可に関する問題は修正されています。
組み込みパッケージ
DBMS_UTILITY組み込みパッケージを使用して、データベースオブジェクト間の依存関係を管理できます。3つの新しい関数が
DBMS_SESSION組み込みパッケージに追加されました。DBMS_SQL組み込みパッケージの互換性の問題が修正されました。空のメッセージに対する
DBMS_ALERT組み込みパッケージのサポートが改善されました。DBMS_MVIEW組み込みパッケージは、依存オブジェクトなしでREFRESHマテリアライズドビューに改良されています。DBMS_LOBパッケージの関数の非互換性の問題は修正されました。
パーティション分割されたテーブル
区間分割メソッドは、グローバルインデックスと一緒に使用して、テーブルを分割できます。パーティションテーブルの
MAXVALUEパーティションをDEFAULTパーティションに変換して、パーティションキーのnull値を受け入れることができます。パーティション分割テーブルビューのクエリに関する問題は修正されています。
SQL 構文
シノニムは、データベースパッケージに使用できます。
PRIMARYはreservedキーワードではなくなり、テーブル名、列名、または関数名として使用できます。トリガーは、関連付けられたテーブル名なしで
DROP triggerステートメントを使用して削除できます。関数のパラメーターの最大数が
384に増加します。複雑なデータ型の
CREATE OR REPLACE操作がサポートされています。REFERENCINGキーワードは、CREATE TRIGGERステートメントで使用できます。BUILDキーワードを使用して、マテリアライズドビューを作成できます。ビューが依存するベーステーブルの列は変更できます。
ビューの列は、
OR REPLACE句を使用して変更できます。NOLOGGINGなどのキーワードを使用してインデックスを作成できます。INSERT ALLステートメントでサブクエリ構文を使用して、サブクエリの結果に基づいて複数の行をテーブルに追加できます。ALTER TYPE MODIFY ATTRIBUTEステートメントがサポートされています。関数の
OUTパラメーターの暗黙的な型変換は、OUTパラメーターによって引き起こされる問題を解決するためにサポートされています。DBLINKを使用して64ビットのDATEタイプをリモートエンドにプッシュするときに発生する問題は修正されています。次の問題が修正されました。データベース内のグローバル一時テーブルにより、一時ファイルが繰り返し削除されます。
PL/SQL
関数は、
NEW + 関数名構文を使用して呼び出すことができます。オブジェクト型のストアドプロシージャは、PL/SQLコードで直接呼び出すことができます。
% TYPE構文は、複雑なデータ型に使用できます。OUTパラメーターは、EXECUTE IMMEDIATEステートメントで使用して値を返すことができます。次の問題が修正されました。
CIDを含むステートメントレベルのトランザクションでエラーまたは失敗が発生しました。次の問題が修正されました。
バッファリークは、自律トランザクションによって発生します。オブジェクト型は、パッケージ仕様 (ヘッダー) で宣言されたメソッドと、パッケージ本体で定義されていないメソッドの実装で定義できます。
オブジェクトタイプのコンストラクタ関数の互換性の問題は修正されています。
プロセス間でオブジェクトタイプを使用するとエラーが発生します。
LABEL構文との不一致により、コードブロックの実行が中断されます。
権限の管理とセキュリティ
ユーザー定義関数 (
UDF) へのスーパーユーザーアクセスは、特権のエスカレーションに関連するリスクを軽減し、悪意のある関数を使用した機密データの抽出を防ぐために制限されています。組み込みユーザーは、他のユーザーに
REPLICATION権限を付与できます。デフォルトでは、特権アカウントには
CAST権限とREPLICATION権限があります。デフォルトでは、特権アカウントは他のユーザーに
pg_monitor権限を付与し、機密情報へのアクセスを取り消すことができます。
ドライバとツールの互換性
PolarDB-ツール
pg_dumpツールを使用して組み込み関数をエクスポートするとエラーが発生します。
JDBC
組み込みデータ型の処理と変換を最適化し、PolarDBとの互換性を向上させるために、Java Database Connectivity (JDBC) ドライバV45.4.0.9が2024年4月11日にリリースされました。 次の改善がアップデートに含まれています。
大文字の列とテーブル名、および厳密な大文字モードがサポートされています。
TimeStampと同じデータ表現形式を使用する64ビットのDATE型がサポートされています。 ドライバーは、DATEタイプをTimestampとして処理できます。Oracle
intervalデータ型がサポートされています。NUMBERデータ型のGet操作がサポートされています。BLOBデータはByteaデータとして扱うことができ、CLOBはTextデータとして扱うことができます。$$記号のないストアドプロシージャがサポートされます。パラメータの変数名にはColons (:) を使用できます。
バインドパラメーターを使用する匿名のPL/SQLブロックがサポートされています。
PL/SQLコードの実行中に生成される警告メッセージを抑制できます。
このリリースでは、開発者がPolarDBを操作する柔軟性と利便性が大幅に向上します。
. NET
. NETドライバーV7.0.6は2024年4月10日にリリースされました。 PolarDB. NETドライバーシリーズは、幅広い.NETバージョンをサポートします。例えば、. NET 2.0、. NET 3.5、. NET 4.0、. NET 5.0、. NET 6.0、. NET 7.0、netcoreapp 3.1、netstandard 2.0、およびnetstandard 2.1。 アップデートでは、次の改善が行われます。
$$シンボルのないPL/SQLストアドプロシージャを実行できます。DECLAREおよびBEGINキーワードで始まるPLコードブロックを認識できます。PolarDB for PostgreSQL (Oracleと互換) 2.0 64ビットの日付タイプを認識できます。