د DBMS SQLite 3.42 او DuckDB 0.8.0 خوشې کول. CG/SQL د SQLite لپاره ذخیره شوي طرزالعملونو پلي کولو سره

د SQLite 3.42 خوشې کول، یو سپک وزن DBMS د پلگ ان کتابتون په توګه ډیزاین شوی، خپور شوی. د SQLite کوډ په عامه ډومین کې ویشل شوی، د بیلګې په توګه. پرته له کوم محدودیت څخه او د هر هدف لپاره وړیا کارول کیدی شي. د SQLite پراختیا کونکو لپاره مالي ملاتړ د ځانګړي جوړ شوي کنسورشیم لخوا چمتو شوی ، چې پکې شرکتونه لکه اډوب ، اوریکل ، موزیلا ، بینټلي او بلومبرګ شامل دي.

اصلي بدلونونه:

  • د FTS5 بشپړ متن شاخصونو لپاره، د خوندي ړنګولو کمانډ پلي شوی، کوم چې د حذف کولو وروسته ټول پاتې شوي ډاټا په بشپړه توګه پاکوي.
  • د JSON ډیټا پروسس کولو لپاره دندې اوس د JSON5 توسیعونو ملاتړ کوي.
  • د پوښتنو پالن جوړونکی ښه شوی. د ډیفالټ په واسطه، د لید شمیرنې اصلاح کول فعال شوي. په فرعي پوښتنو کې د نه کارول شوي کالمونو پروسس له مینځه وړل کیږي. د فشار لاندې اصلاح کولو ښه پلي کول.
  • د کمانډ لاین انٹرفیس ته د "--unsafe-testing" اختیار اضافه شوی، کوم چې د ځینې خطرناک کمانډونو کارولو ته اجازه ورکوي، لکه ".testctrl"، چې په ازموینه کې د کارولو لپاره هدف دی. په خوندي حالت کې ("-safe")، د ".log on" او ".log off" کمانډونو کارولو ته اجازه ورکول کیږي. د "—" ډیلیمیټر لپاره ملاتړ اضافه شوی، د دلیلونو لپاره چې وروسته د اختیار پروسس کول غیر فعال شوي. اضافه شوي ":inf" او ":nan" پیرامیټونه د انفینیت او NaN ارزښتونو سره تړاو لري.
  • د غوښتنلیک ټاکل شوي د SQL فنکشن نومونه اجازه لري چې د کراس، بشپړ، داخلي، کیڼ، طبیعي، بهر، او ښي کلیدي کلمو سره یوځای شي.
  • د PRAGMA integrity_check وړتیاوې پراخې شوې. د NOT NULL حالت سره په کالمونو کې د NaN ارزښتونو مشخص کولو لپاره چک کول اضافه شوي. د غلطو پیغامونو د معلوماتو محتويات ښه شوي.
  • د سیشن اضافه کول د ROWID پرته د میزونو څخه بدلونونو ته اجازه ورکوي.
  • د "سبسک" ترمیم کونکی د ثانیو د برخو کارولو لپاره د وخت او نیټې سره کار کولو لپاره په دندو کې اضافه شوی.
  • د صفونو او JSON څیزونو لپاره د ډیفالټ تکرار ژوره له 2000 څخه 1000 ته راټیټه شوې.

سربیره پردې ، د DuckDB 0.8.0 DBMS خوشې کول رامینځته شوي ، کوم چې د SQLite نسخه رامینځته کوي ، د تحلیلي پوښتنو پلي کولو لپاره د ظرفیتونو او اصلاحونو سره پراخه شوې چې د ذخیره شوي ډیټا یوه مهمه برخه پوښي ، د مثال په توګه ، د ټولو مینځپانګو راټولول ترسره کول د میزونو یا څو لوی میزونو یوځای کول. د SQL پرمختللی ډیلیکټ چمتو کوي چې د خورا پیچلي او وخت مصرف پوښتنو پروسس کولو لپاره اضافي وړتیاوې پکې شاملې دي، او همدارنګه د پیچلو ډولونو (ایرونو، جوړښتونو، اتحادیو) ملاتړ کوي، په ورته وخت کې د ډیری پوښتنو چلول، او د CSV، JSON، او Parquet فایلونو څخه مستقیم پوښتنو چلول. . دا ممکنه ده چې د PostgreSQL DBMS څخه وارد کړئ.

د SQLite څخه د شیل کوډ سربیره، پروژه په جلا کتابتون کې د PostgreSQL څخه پارسر کاروي، د MonetDB څخه د نیټې ریاضی برخه، د خپل کړکۍ دندو پلي کول (د برخې د ونې راټولولو الګوریتم پر بنسټ)، د منظم بیان پروسیسر پراساس. د RE2 کتابتون، د دې خپل د پوښتنې اصلاح کوونکی، او د MVCC کنټرول میکانیزم په ورته وخت کې د دندو اجرا کول (د څو نسخو همغږي کنټرول)، په بیله بیا د ویکٹر شوي پوښتنو اجرا کولو انجن چې د هایپر پایپلینینګ پوښتنې اجرا کولو الګوریتم پر بنسټ والړ دی، کوم چې لوی ارزښت ته اجازه ورکوي. په یوه عملیات کې یوځل پروسس شي. د پروژې کوډ د MIT جواز لاندې ویشل شوی.

د DuckDB نوې نسخه کې:

  • نوي بیانونه "PIVOT" او "UNPIVOT" اضافه کړل ترڅو قطارونه په کالمونو بدل کړي او برعکس.
  • د معلوماتو واردولو او صادرولو پر مهال موازي کول ښه شوي. په ډیفالټ ډول، د CSV فایلونو څخه څو اړخیزه لوستل او څو اړخیزه لیکنه پلي کیږي کله چې د Parquet، CSV او JSON فارمیټونو کارول کیږي.
  • د "**" آپریټر اضافه شوی ترڅو د لارښودونو له لارې تکرار شي کله چې د فایل لارې ټاکل کیږي (د مثال په توګه، FROM "'data/glob/crawl/stackoverflow/**/*.csv'؛").
  • د وخت لړۍ (په ټاکلي وخت وقفو کې د پیرامیټرو ارزښتونو ټوټې) په بڼه د معلوماتو لپاره د ادغام عملیاتو (JOIN) لپاره ملاتړ اضافه شوی ، په کوم کې چې د ریکارډونو ضمیمه کولو معیار دقیق ندی ، مګر د ارزښتونو نږدې تصادفي د وخت سره په ساحه کې (د مثال په توګه، تاسو کولی شئ ریکارډونه یوځای کړئ، وخت چې د 1 دقیقو څخه ډیر توپیر نلري).
  • د ډیټابیس میټاډاټا سست بار کولو پلي کول ، کوم چې دا ممکنه کړې چې د DBMS لانچ په لسګونو ځله ګړندی کړي.
  • په Python کې د دودیز افعال وصل کولو لپاره ملاتړ اضافه شوی.
  • د اپاچي تیر په کارولو سره د معلوماتو لیږدولو لپاره د 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

Add a comment