DBMS SQLite 3.42 اور DuckDB 0.8.0 کی ریلیز۔ SQLite کے لیے ذخیرہ شدہ طریقہ کار کے نفاذ کے ساتھ CG/SQL

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

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

  • FTS5 مکمل متن کے اشاریہ جات کے لیے، safe-delete کمانڈ نافذ کی جاتی ہے، جو حذف ہونے کے بعد تمام بقایا ڈیٹا کو مکمل طور پر صاف کر دیتی ہے۔
  • JSON فارمیٹ میں ڈیٹا پروسیسنگ کے فنکشنز اب JSON5 ایکسٹینشنز کو سپورٹ کرتے ہیں۔
  • بہتر استفسار منصوبہ ساز۔ کاؤنٹ آف ویو آپٹیمائزیشن بطور ڈیفالٹ فعال ہے۔ ذیلی سوالات میں غیر استعمال شدہ کالموں کی ہینڈلنگ کو ختم کر دیا گیا۔ بہتر پش ڈاؤن آپٹیمائزیشن کا نفاذ۔
  • کچھ خطرناک کمانڈز جیسے کہ ".testctrl" کو جانچ میں استعمال کرنے کی اجازت دینے کے لیے CLI میں "--unsafe-testing" کا اختیار شامل کیا گیا۔ سیف موڈ ("--محفوظ") میں، "لاگ آن" اور "لاگ آف" کمانڈز کی اجازت ہے۔ "—" الگ کرنے والے کے لیے تعاون شامل کیا گیا، ان دلائل کے لیے جس کے بعد آپشن پروسیسنگ غیر فعال ہو جاتی ہے۔ انفینٹی اور NaN اقدار سے وابستہ ":inf" اور ":nan" پیرامیٹرز کو شامل کیا گیا۔
  • ایپلیکیشن سے متعین SQL فنکشنز کے ناموں کو کراس، فل، اندرونی، بائیں، قدرتی، بیرونی، اور دائیں کلیدی الفاظ کے ساتھ جوڑنے کی اجازت ہے۔
  • توسیع شدہ PRAGMA انٹیگریٹی_چیک صلاحیتوں۔ NOT NULL حالت کے ساتھ کالموں میں NaN قدر کی وضاحت کے لیے چیک شامل کیا گیا۔ خرابی کے پیغامات کا بہتر معلوماتی مواد۔
  • سیشن کا اضافہ ROWIDs کے بغیر ٹیبلز سے تبدیلیوں کو روکنے کی اجازت دیتا ہے۔
  • "subsec" موڈیفائر کو سیکنڈوں کے حصوں کو استعمال کرنے کے لیے وقت اور تاریخوں کے ساتھ کام کرنے کے لیے فنکشنز میں شامل کیا گیا ہے۔
  • 2000 سے 1000 تک صفوں اور JSON آبجیکٹ کے لیے پہلے سے طے شدہ تکرار کی گہرائی کو کم کر دیا گیا۔

اس کے علاوہ، DuckDB 0.8.0 DBMS ریلیز تشکیل دی گئی ہے، جو SQLite کے مختلف قسم کو تیار کرتی ہے، اس میں ذخیرہ شدہ ڈیٹا کے ایک اہم حصے پر مشتمل تجزیاتی سوالات کرنے کے لیے خصوصیات اور اصلاح کے ساتھ توسیع کی گئی ہے، مثال کے طور پر، میزوں کے پورے مواد کو جمع کرنا یا کئی بڑی میزوں کو ضم کرنا۔ SQL زبان کی ایک توسیعی بولی فراہم کی گئی ہے، جس میں انتہائی پیچیدہ اور طویل عرصے سے چلنے والے سوالات کو سنبھالنے کے لیے اضافی صلاحیتیں، نیز پیچیدہ اقسام (ارے، ڈھانچے، یونینز) کے لیے معاونت، متعدد سوالات کا بیک وقت عمل درآمد، اور CSV، JSON اور Parquet فارمیٹ میں فائلوں سے براہ راست سوالات کا نفاذ۔ PostgreSQL DBMS سے درآمد کرنا ممکن ہے۔

SQLite کے شیل کوڈ کے علاوہ، پروجیکٹ PostgreSQL سے ایک پارسر کا استعمال کرتا ہے، MonetDB سے ڈیٹ میتھ کا ایک جزو، ونڈو فنکشنز کا اپنا نفاذ (سگمنٹ ٹری ایگریگیشن الگورتھم پر مبنی)، RE2 لائبریری پر مبنی ایک ریگولر ایکسپریشن پروسیسر، اس کا اپنا استفسار آپٹیمائزر، MVCC-Mechanism کے لیے ایک مثالی طریقہ کار۔ ورژن کنکرنسی کنٹرول)، اور ہائپر پائپ لائننگ کوئری ایگزیکیٹ الگورتھم پر مبنی ایک ویکٹرائزڈ استفسار پر عمل درآمد کرنے والا انجن۔ پروجیکٹ کوڈ MIT لائسنس کے تحت تقسیم کیا جاتا ہے۔

DuckDB کے نئے ورژن میں:

  • قطاروں کو کالموں میں تبدیل کرنے اور اس کے برعکس "PIVOT" اور "UNPIVOT" کے نئے تاثرات شامل کیے گئے۔
  • ڈیٹا کو درآمد اور برآمد کرتے وقت بہتر متوازی عمل۔ پہلے سے طے شدہ طور پر، CSV فارمیٹ میں فائلوں سے ایک سے زیادہ اسٹریمز میں پڑھنا اور ملٹی تھریڈڈ رائٹنگ کو Parquet، CSV اور JSON فارمیٹس استعمال کرتے وقت لاگو کیا جاتا ہے۔
  • فائل کے راستوں کی وضاحت کرتے وقت ڈائریکٹریز پر بار بار اعادہ کرنے کے لیے "**" آپریٹر کو شامل کیا گیا (مثال کے طور پر "'data/glob/crawl/stackoverflow/**/*.csv';")۔
  • ٹائم سیریز (مخصوص وقت کے وقفوں پر پیرامیٹر ویلیوز کے سلائسز) کی شکل میں ڈیٹا کے لیے انضمام کی کارروائیوں (جوائن) کے لیے معاونت شامل کی گئی ہے، جس میں ریکارڈز کو ضم کرنے کا معیار قطعی نہیں ہے، لیکن وقت کے ساتھ فیلڈ میں قدروں کا تخمینہ مماثلت ہے (مثال کے طور پر، آپ ایسے ریکارڈز کو یکجا کر سکتے ہیں جن کا وقت 1 منٹ سے زیادہ نہیں ہوتا ہے)۔
  • ڈیٹا بیس میٹا ڈیٹا کی موخر لوڈنگ کو لاگو کیا گیا ہے، جس نے ڈی بی ایم ایس کے لانچ کو درجنوں گنا تیز کرنا ممکن بنایا ہے۔
  • ازگر میں کسٹم فنکشنز کو جوڑنے کے لیے مدد شامل کی گئی۔
  • اپاچی ایرو کا استعمال کرتے ہوئے ڈیٹا کی منتقلی کے لیے ADBC ​​(ایرو ڈیٹا بیس کنیکٹیویٹی) API کے لیے معاونت شامل کی گئی۔
  • سوئفٹ کوڈ کے ساتھ انضمام کے لیے بائنڈنگ کا نفاذ۔
  • ڈویژن ("/") آپریٹر کے رویے کو تبدیل کر دیا، جو اب انٹیجر آپریشنز کے بجائے ڈیفالٹ کے ذریعے فلوٹنگ پوائنٹ کیلکولیشن کرتا ہے۔ عددی تقسیم کے لیے ایک نیا آپریٹر "//" تجویز کیا گیا ہے۔ پرانے رویے کو "SET integer_division=true;" ترتیب دے کر واپس کیا جا سکتا ہے۔
  • چھانٹتے وقت کالعدم ریکارڈ کے حساب کتاب کا طریقہ "NULLS FIRST" سے "NULLS LAST" میں تبدیل کر دیا گیا ہے، یعنی NULL اقدار اب فہرست کے آغاز کے بجائے آخر میں ظاہر ہوں گی۔ پرانے رویے کو "SET default_null_order='nulls_first'؛" ترتیب دے کر بحال کیا جا سکتا ہے۔

مزید برآں، فیس بک کی طرف سے تیار کردہ CG/SQL پروجیکٹ، جو SQLite کے ساتھ ذخیرہ شدہ طریقہ کار کو استعمال کرنے کے لیے ایک کوڈ جنریٹر فراہم کرتا ہے، کو نوٹ کیا جا سکتا ہے۔ CG/SQL آپ کو ذخیرہ شدہ طریقہ کار کو T-SQL (Transact-SQL) کی ایک خاص بولی میں ڈیزائن کرنے کی اجازت دیتا ہے، جو آپ کو معیاری C لائبریری کے افعال کو کال کرنے اور SQLite میں ڈیٹا تک رسائی کی اجازت دیتا ہے۔ تیار کردہ ذخیرہ شدہ طریقہ کار کو C کوڈ میں مرتب کیا جاتا ہے جو مخصوص کارروائیوں کو انجام دینے اور پیچیدہ سوالات پر کارروائی کرنے کے لیے SQLite C API استعمال کرتا ہے۔ مرتب شدہ ذخیرہ شدہ طریقہ کار کو C، Java، اور Objective-C پروگراموں سے جوڑا جا سکتا ہے۔ پروجیکٹ کوڈ C میں لکھا جاتا ہے اور MIT لائسنس کے تحت تقسیم کیا جاتا ہے۔

ماخذ: opennet.ru

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