SQLite 3.35 リリース

プラグイン ライブラリとして設計された軽量 DBMS である SQLite 3.35 のリリースが公開されました。 SQLite コードはパブリック ドメインで配布されています。 目的を問わず、制限なく無料で使用できます。 SQLite 開発者に対する財政的サポートは、Adobe、Oracle、Mozilla、Bentley、Bloomberg などの企業が含まれる特別に設立されたコンソーシアムによって提供されます。

主な変更点:

  • SQL で使用できる組み込み数学関数 (log2()、cos()、tg()、exp()、ln()、pow() など) を追加しました。 組み込み関数を有効にするには、「-DSQLITE_ENABLE_MATH_FUNCTIONS」オプションを使用してビルドする必要があります。
  • テーブルから列を削除し、特定の列に以前に保存されていたデータをクリアするための「ALTER TABLE DROP COLUMN」式のサポートが実装されました。
  • UPSERT (追加または変更) 操作の実装が拡張され、「INSERT ... ON CONFLICT DO NOTHING/UPDATE」のような式を通じてエラーを無視したり、追加が不可能な場合は挿入の代わりに更新を実行したりできるようになりました。 「INSERT」を通じてデータを削除します(たとえば、レコードがすでに存在する場合は、INSERT の代わりに UPDATE を実行できます)。 新しいバージョンでは、複数の ON CONFLICT ブロックを指定でき、順番に処理されます。 最後の「ON CONFLICT」ブロックでは、「DO UPDATE」を使用するために競合定義パラメータを省略できます。
  • DELETE、INSERT、および UPDATE 操作は、削除、挿入、または変更されたレコードの内容を表示するために使用できる RETURNING 式をサポートしています。 たとえば、式「insert into ...returning id」は追加された行の識別子を返し、「update...setprice =price * 1.10returningprice」は変更された価格値を返します。
  • 共通テーブル式 (CTE) では、WITH ステートメントを使用して指定された一時的な名前付き結果セットの使用が可能になり、「MATERIALIZED」モードと「NOT MATERIALIZED」モードの選択が許可されます。 「MATERIALIZED」は、ビューで指定されたクエリを別の物理テーブルにキャッシュし、このテーブルからデータをフェッチすることを意味します。「NOT MATERIALIZED」を指定すると、ビューにアクセスするたびにクエリが繰り返し実行されます。 SQLite は当初デフォルトで "NOT MATERIALIZED" に設定されていましたが、複数回使用される CTE に対しては "MATERIALIZED" に変更されました。
  • 非常に大きな TEXT 値または BLOB 値を含むデータベースに対して VACUUM 操作を実行するときのメモリ消費量が削減されました。
  • オプティマイザーとクエリ プランナーのパフォーマンスを向上させるための作業が行われました。
    • 「IN」式で min 関数と max 関数を使用する場合の最適化が追加されました。
    • EXISTS ステートメントの実行が高速化されました。
    • JOIN の一部として使用される UNION ALL 式からのサブクエリの拡張を実装しました。
    • インデックスは IS NOT NULL 式に使用されます。
    • 「NOT NULL」属性を持つ列の「x IS NULL」および「x IS NOT NULL」が FALSE または TRUE に変換されるようにします。
    • 操作によって外部キーに関連付けられた列が変更されない場合は、UPDATE での外部キーのチェックをスキップします。
    • WHERE ブロックの一部を、ウィンドウ関数で使用される PARTITION BY ブロックの定数と式のコピーの操作に限定されている限り、ウィンドウ関数を含むサブクエリに移動することができます。
  • コマンドラインインターフェースの変更点:
    • 「.filectrl data_version」コマンドを追加しました。
    • 「.once」および「.output」コマンドは、名前のないパイプ (「|」) を使用して呼び出されるハンドラーに出力を渡すことをサポートするようになりました。
    • 式と仮想マシン カウンタに関する統計を表示するために、「.stats」コマンドに「stmt」および「vmstep」引数が追加されました。

出所: オープンネット.ru

コメントを追加します