生成された列をサポートする DBMS SQLite 3.31 のリリース

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

メイン 変更:

  • 追加されたサポート 生成された列 (計算列)。別の列の内容に基づいて値が自動的に計算されるテーブルを作成するときに、列を定義できます。 生成された列は、仮想 (アクセスごとにオンザフライで生成) またはデータベースに格納 (関連する列が更新されるたびに保存) することができます。 生成された列の内容は、読み取りモードでのみ使用できます (変更は、計算に含まれる別の列の値を変更することによってのみ行われます)。 例えば:

    テーブルの作成 t1(
    整数の主キー、
    b INT、
    c テキスト、
    d INT は常に (a*abs(b)) VIRTUAL として生成されます。
    e テキストは常に (substr(c,b,b​​+1)) として生成され、保存されます
    );

  • プラグマを追加しました 信頼できるスキーマ、設定 SQLITE_DBCONFIG_TRUSTED_SCHEMA およびアセンブリ オプション「-DSQLITE_TRUSTED_SCHEMA」。これにより、保護の組み込みを制御できます。 攻撃 データベース内のデータ スキーマの変更を通じて。 アクティブ保護は、トリガー、ビュー、CHECK および DEFAULT ステートメント、インデックス、および生成された列での SQL 関数 (SQLITE_INNOCUOUS とマークされていない) の使用を制限します。 仮想テーブルが SQLITE_VTAB_INNOCUOUS フラグで明示的に宣言されていない限り、トリガーおよびビューでの仮想テーブルの使用も無効になります。
  • アプリケーションで定義された SQL 関数にプロパティを割り当てる機能を実装しました。 SQLITE_INNOCUOUS (外部パラメータに依存しない無害な関数であり、悪意のあるアクションの実行には使用できません) SQLITE_DIRECTONLY (SQL クエリでの直接呼び出しのみ。トリガー、ビュー、データ構造図では使用できません);
  • 追加されたモジュール ウイド UUID を処理するための関数の実装 (RFC-4122)。
  • プラグマを追加しました ハードヒープ制限 と機能 sqlite3_hard_heap_limit64() 最大ヒープ サイズを制御します。
  • プラグマで 関数リスト 各関数の型、プロパティ、引数の数の出力を追加しました。
  • 仮想テーブル DBSTAT へ 追加されました データ集約モード。
  • sqlite3_open_v2() は SQLITE_OPEN_NOFOLLOW オプションを実装しています。これにより、シンボリック リンクのオープンを無効にすることができます。
  • 引数について パス、JSON 関数に渡され、「#-N」配列表記のサポートが追加されました。
  • メモリ分散システム内 余所見 120 つの個別のメモリ プールのサポートが実装されており、それぞれを使用して異なるサイズのブロックを割り当てることができます (分離することで、ルックアサイド システムの使用を拡張できると同時に、各接続に割り当てられるバッファのサイズを 48 から XNUMX に減らすことができます) KB);
  • PRAGMA のサポートは終了しました レガシーファイル形式これは、VACUUM、生成された列、および降順インデックスと互換性がありませんでした (レガシー形式のサポートは、sqlite3_db_config() の SQLITE_DBCONFIG_LEGACY_FILE_FORMAT フラグを介して返すことができます)。

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

コメントを追加します