SQLite 3.35 ریلیز

SQLite 3.35 کی ریلیز، ایک ہلکا پھلکا DBMS جسے پلگ ان لائبریری کے طور پر ڈیزائن کیا گیا ہے، شائع ہو چکا ہے۔ SQLite کوڈ عوامی ڈومین میں تقسیم کیا جاتا ہے، یعنی بغیر کسی پابندی کے اور کسی بھی مقصد کے لیے مفت استعمال کیا جا سکتا ہے۔ SQLite ڈویلپرز کے لیے مالی معاونت ایک خاص طور پر بنائے گئے کنسورشیم کے ذریعے فراہم کی جاتی ہے، جس میں Adobe، Oracle، Mozilla، Bentley اور Bloomberg جیسی کمپنیاں شامل ہیں۔

اہم تبدیلیاں:

  • بلٹ ان میتھ فنکشنز (log2(), cos(), tg(), exp(), ln(), pow(), وغیرہ) شامل کیے گئے جو SQL میں استعمال کیے جاسکتے ہیں۔ بلٹ ان فنکشنز کو فعال کرنے کے لیے "-DSQLITE_ENABLE_MATH_FUNCTIONS" آپشن کے ساتھ تعمیر کی ضرورت ہوتی ہے۔
  • ٹیبل سے کالموں کو ہٹانے اور دیے گئے کالم میں پہلے سے ذخیرہ شدہ ڈیٹا کو صاف کرنے کے لیے "ALTER TABLE DROP COLUMN" اظہار کے لیے سپورٹ کو نافذ کیا گیا۔
  • UPSERT (add-or-modify) آپریشن کے نفاذ کو بڑھا دیا گیا ہے، جس سے "INSERT... ON ConFLICT ON NOTHING/UPDATE" جیسے تاثرات کے ذریعے غلطی کو نظر انداز کرنے کی اجازت دی گئی ہے یا اگر شامل کرنا ناممکن ہو تو داخل کرنے کے بجائے اپ ڈیٹ انجام دے سکتے ہیں۔ "INSERT" کے ذریعے ڈیٹا (مثال کے طور پر، اگر کوئی ریکارڈ پہلے سے موجود ہے، تو آپ INSERT کے بجائے اپ ڈیٹ کر سکتے ہیں)۔ نیا ورژن آپ کو متعدد ON CONFLICT بلاکس کی وضاحت کرنے کی اجازت دیتا ہے، جن پر ترتیب سے کارروائی کی جائے گی۔ آخری "ONFLICT" بلاک "DO UPDATE" استعمال کرنے کے لیے تنازعہ کی تعریف کے پیرامیٹر کو چھوڑنے کی اجازت دیتا ہے۔
  • DELETE، INSERT، اور UPDATE آپریشنز ریٹرننگ ایکسپریشن کی حمایت کرتے ہیں، جو حذف شدہ، داخل کیے گئے، یا ترمیم شدہ ریکارڈ کے مواد کو ظاہر کرنے کے لیے استعمال کیا جا سکتا ہے۔ مثال کے طور پر، "Insert in ... returning id" کا اظہار شامل کردہ لائن کے شناخت کنندہ کو لوٹائے گا، اور "update... set price = price * 1.10 ریٹرننگ پرائس" تبدیل شدہ قیمت کی قیمت لوٹائے گا۔
  • کامن ٹیبل ایکسپریشنز (CTE) کے لیے، جو کہ WITH سٹیٹمنٹ کا استعمال کرتے ہوئے مخصوص کردہ عارضی نامزد نتائج کے سیٹ کے استعمال کی اجازت دیتے ہیں، "مٹیریلائزڈ" اور "نوٹ میٹریلائزڈ" موڈز کے انتخاب کی اجازت ہے۔ "مٹیریلائزڈ" کا مطلب یہ ہے کہ ویو میں متعین کردہ استفسار کو ایک علیحدہ فزیکل ٹیبل میں کیش کرنا اور پھر اس ٹیبل سے ڈیٹا لانا، اور ہر بار جب ویو تک رسائی حاصل کی جائے گی تو "نوٹ میٹریلائزڈ" کے ساتھ بار بار استفسارات کیے جائیں گے۔ SQLite اصل میں "NOT MATERIALIZED" میں ڈیفالٹ تھا، لیکن اب CTEs کے لیے ایک سے زیادہ مرتبہ استعمال ہونے والے میں تبدیل ہو گیا ہے۔
  • ڈیٹا بیس پر VACUUM آپریشن کرتے وقت میموری کی کھپت کو کم کیا جاتا ہے جس میں بہت بڑی TEXT یا BLOB اقدار شامل ہوتی ہیں۔
  • اصلاح کار اور استفسار کے منصوبہ ساز کی کارکردگی کو بڑھانے کے لیے کام کیا گیا ہے:
    • "IN" اظہار کے ساتھ کم سے کم اور زیادہ سے زیادہ فنکشنز استعمال کرتے وقت اصلاح شامل کی گئی۔
    • EXISTS بیان پر عملدرآمد تیز کر دیا گیا ہے۔
    • JOIN کے حصے کے طور پر استعمال ہونے والے تمام اظہارات UNION سے ذیلی سوالات کی توسیع کو نافذ کیا گیا۔
    • انڈیکس IS NOT NULL اظہار کے لیے استعمال ہوتا ہے۔
    • اس بات کو یقینی بناتا ہے کہ "x IS NULL" اور "x IS NOT NULL" کو "NOT NULL" وصف والے کالموں کے لیے FALSE یا TRUE میں تبدیل کر دیا گیا ہے۔
    • اگر آپریشن غیر ملکی کلید سے وابستہ کالموں کو تبدیل نہیں کرتا ہے تو اپ ڈیٹ میں غیر ملکی کلیدوں کی جانچ کرنا چھوڑ دیں۔
    • اسے WHERE بلاک کے کچھ حصوں کو ونڈو فنکشنز پر مشتمل ذیلی سوالات میں منتقل کرنے کی اجازت ہے، جب تک کہ وہ حصے ونڈو فنکشنز میں استعمال ہونے والے PARTITION BY بلاکس سے مستقل اور اظہار کی کاپیوں کے ساتھ کام کرنے تک محدود ہوں۔
  • کمانڈ لائن انٹرفیس میں تبدیلیاں:
    • ".filectrl data_version" کمانڈ شامل کی گئی۔
    • ". ایک بار" اور ". آؤٹ پٹ" کمانڈز اب بے نام پائپ ("|") کا استعمال کرتے ہوئے ہینڈلر کو آؤٹ پٹ پاس کرنے کی حمایت کرتی ہیں۔
    • "stmt" اور "vmstep" دلائل کو ".stats" کمانڈ میں شامل کر دیا گیا ہے تاکہ ایکسپریشنز اور ورچوئل مشین کاؤنٹرز پر اعداد و شمار ظاہر ہوں۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں