إصدار DBMS SQLite 3.31 مع دعم الأعمدة التي تم إنشاؤها

نشرت الإفراج عن سكليتي 3.31.0، نظام إدارة قواعد بيانات (DBMS) خفيف الوزن مصمم كمكتبة إضافية. يتم توزيع كود SQLite كمجال عام، أي. ويمكن استخدامها دون قيود ومجانية لأي غرض من الأغراض. يتم توفير الدعم المالي لمطوري SQLite من خلال اتحاد تم إنشاؤه خصيصًا، والذي يضم شركات مثل Adobe وOracle وMozilla وBentley وBloomberg.

رئيسي التغييرات:

  • دعم إضافي الأعمدة المولدة (الأعمدة المحسوبة)، والتي تسمح لك بتعريف عمود عند إنشاء جدول يتم حساب قيمته تلقائيًا بناءً على محتويات عمود آخر. يمكن أن تكون الأعمدة التي تم إنشاؤها إما افتراضية (يتم إنشاؤها بسرعة مع كل وصول) أو مخزنة في قاعدة البيانات (يتم حفظها في كل مرة يتم فيها تحديث الأعمدة ذات الصلة). تتوفر محتويات الأعمدة التي تم إنشاؤها فقط في وضع القراءة (يتم إجراء التغييرات فقط من خلال تعديل القيمة في عمود آخر مشترك في الحساب). على سبيل المثال:

    إنشاء جدول t1(
    مفتاح أساسي عدد صحيح،
    ب إنت،
    ج النص،
    d يتم إنشاء INT دائمًا كـ (a*abs(b)) افتراضيًا،
    يتم إنشاء النص دائمًا كـ (substr(c,b,b+1)) مخزّن
    );

  • تمت إضافة براغما Trusted_schema، جلسة SQLITE_DBCONFIG_TRUSTED_SCHEMA وخيار التجميع "-DSQLITE_TRUSTED_SCHEMA"، والذي يسمح لك بالتحكم في إدراج الحماية ضد الهجمات من خلال تعديل مخطط البيانات في قاعدة البيانات. تقيد الحماية النشطة استخدام وظائف SQL (غير المميزة بـ SQLITE_INNOCUOUS) في المشغلات وطرق العرض وعبارات التحقق والافتراضي والفهارس والأعمدة التي تم إنشاؤها. يتم أيضًا تعطيل استخدام الجداول الافتراضية في المشغلات وطرق العرض ما لم يتم الإعلان عن الجدول الظاهري بشكل صريح باستخدام علامة SQLITE_VTAB_INNOCUOUS.
  • تم تنفيذ القدرة على تعيين خصائص لوظائف SQL المحددة في التطبيقات SQLITE_INNOCUOUS (الوظائف غير الضارة التي لا تعتمد على معلمات خارجية ولا يمكن استخدامها لتنفيذ إجراءات ضارة) و SQLITE_DIRECTONLY (استدعاء مباشر فقط في استعلامات SQL، دون إمكانية استخدامه في المشغلات وطرق العرض ومخططات بنية البيانات)؛
  • الوحدة المضافة UUID مع تنفيذ وظائف معالجة UUID (RFC-4122)؛
  • تمت إضافة براغما hard_heap_limit وظيفة sqlite3_hard_heap_limit64() للتحكم في الحد الأقصى لحجم الكومة؛
  • في براغما function_list إضافة مخرجات النوع والخصائص وعدد الوسائط لكل وظيفة؛
  • إلى الجدول الظاهري DBSTAT مضاف وضع تجميع البيانات؛
  • تطبق sqlite3_open_v2() خيار SQLITE_OPEN_NOFOLLOW، والذي يسمح لك بتعطيل فتح الروابط الرمزية؛
  • للحجة PATHوتم تمريرها إلى وظائف JSON، وإضافة دعم لتدوين الصفيف "#-N"؛
  • في نظام توزيع الذاكرة انظر جانبا تم تنفيذ الدعم لمجموعتي ذاكرة منفصلتين، يمكن استخدام كل منهما لتخصيص كتل بأحجام مختلفة (يسمح لك الفصل بتوسيع استخدام نظام lookaside، مع تقليل حجم المخزن المؤقت المخصص لكل اتصال من 120 إلى 48 كيلو بايت)؛
  • تم إيقاف دعم PRAGMA Legacy_file_format، والذي كان غير متوافق مع VACUUM، والأعمدة التي تم إنشاؤها، والفهارس التنازلية (يمكن إرجاع دعم التنسيق القديم عبر علامة SQLITE_DBCONFIG_LEGACY_FILE_FORMAT في sqlite3_db_config()).

المصدر: opennet.ru

إضافة تعليق