የ DBMS SQLite 3.42 እና DuckDB 0.8.0 መለቀቅ። ለ SQLite የተከማቹ ሂደቶችን በመተግበር CG/SQL

እንደ ተሰኪ ቤተ-መጽሐፍት ሆኖ የተነደፈው ቀላል ክብደት ያለው DBMS SQLite 3.42 ታትሟል። የ SQLite ኮድ በሕዝብ ጎራ ውስጥ ይሰራጫል, ማለትም. ለማንኛውም ዓላማ ያለ ገደብ እና ያለክፍያ መጠቀም ይቻላል. ለ SQLite ገንቢዎች የገንዘብ ድጋፍ የሚሰጠው በልዩ የተፈጠረ ጥምረት ነው፣ እሱም እንደ Adobe፣ Oracle፣ Mozilla፣ Bentley እና Bloomberg ያሉ ኩባንያዎችን ያካትታል።

ዋና ለውጦች፡-

  • ለ FTS5 ሙሉ-ጽሑፍ ኢንዴክሶች, ደህንነቱ የተጠበቀ-ሰርዝ ትዕዛዝ ተተግብሯል, ይህም ከተሰረዘ በኋላ ሁሉንም ቀሪ ውሂብ ሙሉ በሙሉ ያጸዳል.
  • የJSON ውሂብን የማስኬድ ተግባራት አሁን የJSON5 ቅጥያዎችን ይደግፋሉ።
  • የተሻሻለ የመጠይቅ እቅድ አውጪ። በነባሪ የእይታ ቆጠራ ማመቻቸት ነቅቷል። በንዑስ መጠይቆች ውስጥ ጥቅም ላይ ያልዋሉ ዓምዶችን ማካሄድ ይወገዳል. የግፊት-ታች ማመቻቸት የተሻሻለ ትግበራ።
  • በትእዛዝ መስመር በይነገጽ ላይ "--unsafe-testing" አማራጭ ታክሏል፣ ይህም አንዳንድ አደገኛ ትዕዛዞችን ለምሳሌ ".testctrl" መጠቀም ያስችላል፣ ለሙከራ ጥቅም ላይ እንዲውሉ የታሰቡ። በአስተማማኝ ሁነታ ("-አስተማማኝ"), ".log on" እና ".log off" ትዕዛዞችን መጠቀም ይፈቀዳል. ለ«—» ገዳቢ ተጨማሪ ድጋፍ፣ ከየትኛው አማራጭ ማቀናበር ከተሰናከለ ለሚነሱ ክርክሮች። ታክለዋል ": inf" እና ":nan" መለኪያዎች ከኢንፊኒቲ እና ኤንኤን እሴቶች ጋር የተቆራኙ።
  • በመተግበሪያ የተገለጹ የSQL ተግባር ስሞች ከመስቀል፣ ሙሉ፣ ውስጣዊ፣ ግራ፣ ተፈጥሯዊ፣ ውጫዊ እና ቀኝ ቁልፍ ቃላት ጋር እንዲደራረቡ ተፈቅዶላቸዋል።
  • የPRAGMA integrity_check ችሎታዎች ተዘርግተዋል። የNOT NOLL ሁኔታ በአምዶች ውስጥ የናኤን እሴቶችን ለመለየት ፍተሻ ታክሏል። የተሻሻለ የስህተት መልዕክቶች የመረጃ ይዘት።
  • የክፍለ-ጊዜው ተጨማሪው ROWID ከሌለው ጠረጴዛዎች ላይ ለውጦችን ለመጥለፍ ያስችላል።
  • የ"ንዑስ ሰከንድ" መቀየሪያ በሰዓቶች እና ቀናቶች ለመስራት ወደ ተግባራት ተጨምሯል ክፍልፋዮችን ሰከንዶች ለመጠቀም።
  • የድርድር እና የJSON ነገሮች ነባሪ የድግግሞሽ ጥልቀት ከ2000 ወደ 1000 ቀንሷል።

በተጨማሪም ፣ የዱክዲቢ 0.8.0 ዲቢኤምኤስ መለቀቅ ተፈጥሯል ፣ ይህም የ SQLite ስሪት ያዳብራል ፣ በችሎታ እና በማመቻቸት የተከማቸ ውሂብን ጉልህ ክፍል የሚሸፍኑ የትንታኔ ጥያቄዎችን ለማስፈፀም ፣ ለምሳሌ ፣ አጠቃላይ ይዘቶችን በማሰባሰብ የጠረጴዛዎች ወይም በርካታ ትላልቅ ጠረጴዛዎችን በማዋሃድ. በጣም ውስብስብ እና ጊዜ የሚወስድ መጠይቆችን ለመስራት ተጨማሪ ችሎታዎችን የሚያካትት የላቀ የSQL ዘዬ ያቀርባል፣ እና እንዲሁም ውስብስብ አይነቶችን ይደግፋል (ድርድር፣ መዋቅር፣ ማህበራት)፣ ብዙ መጠይቆችን በአንድ ጊዜ ማስኬድ እና መጠይቆችን በቀጥታ ከCSV፣ JSON እና Parquet ፋይሎችን ማስኬድ . ከPostgreSQL DBMS ማስመጣት ይቻላል።

ከ SQLite የሼል ኮድ በተጨማሪ ፕሮጀክቱ ከ PostgreSQL በተለየ ቤተ-መጽሐፍት ውስጥ, የቀን የሂሳብ ክፍል ከ MonetDB, የራሱ የመስኮት ተግባራት አተገባበር (በ Segment Tree Aggregation Algorithm ላይ የተመሰረተ) የመደበኛ መግለጫ ፕሮሰሰር ይጠቀማል. የ RE2 ቤተ መፃህፍት፣ የራሱ መጠይቅ አመቻች እና የ MVCC መቆጣጠሪያ ዘዴ በአንድ ጊዜ ተግባራትን መፈጸም (ባለብዙ ስሪት ኮንኩሬሽን ቁጥጥር) እንዲሁም በሃይፐር-ፓይፕሊኒንግ መጠይቅ ማስፈጸሚያ ስልተ-ቀመር ላይ የተመሰረተ የቬክተር የተደረገ መጠይቅ ማስፈጸሚያ ሞተር፣ ይህም ትልቅ የእሴት ስብስቦችን ይፈቅዳል። በአንድ ኦፕሬሽን ውስጥ በአንድ ጊዜ እንዲሰራ. የፕሮጀክት ኮድ በ MIT ፈቃድ ስር ተሰራጭቷል።

በአዲሱ የDuckDB ስሪት ውስጥ፡-

  • ረድፎችን ወደ አምዶች ለመቀየር እና በተቃራኒው አዲስ አገላለጾችን "PIVOT" እና "UNPIVOT" ታክለዋል።
  • ውሂብ ሲያስገቡ እና ወደ ውጪ በሚልኩበት ጊዜ የተሻሻለ ትይዩነት። በነባሪ፣ የፓርኬት፣ CSV እና JSON ቅርጸቶችን ሲጠቀሙ ከCSV ፋይሎች ባለብዙ-ክር ንባብ እና ባለብዙ-ክር ጽሁፍ ይተገበራሉ።
  • የፋይል ዱካዎችን በሚወስኑበት ጊዜ በማውጫዎች (ለምሳሌ ከ"data/glob/crawl/stackoverflow/**/*.csv';") ለመደጋገም የ"**" ኦፕሬተር ታክሏል።
  • ለተከታታይ ተከታታይ (በተወሰኑት የጊዜ ክፍተቶች ውስጥ ያሉ የመለኪያ እሴቶች ቁርጥራጭ) ለተከታታይ ክዋኔዎች (JOIN) ለማዋሃድ ድጋፍ ታክሏል ፣ በዚህ ውስጥ መዝገቦችን የማዋሃድ መስፈርት ትክክለኛ አይደለም ፣ ግን የእሴቶች ግምታዊ የአጋጣሚ ጉዳይ ነው ። ጊዜ ባለው መስክ (ለምሳሌ ፣ መዝገቦችን ማዋሃድ ይችላሉ ፣ ይህም ከ 1 ደቂቃ ያልበለጠ ጊዜ)።
  • የዲቢኤምኤስን ስራ በአስር ጊዜ ለማፋጠን ያስቻለው የውሂብ ጎታ ሜታዳታ ሰነፍ ጭነትን ተግባራዊ አድርጓል።
  • በፓይዘን ውስጥ ብጁ ተግባራትን ለማገናኘት ድጋፍ ታክሏል።
  • Apache ቀስትን በመጠቀም ውሂብ ለማስተላለፍ ለ ADBC ​​(የቀስት ዳታቤዝ ግንኙነት) ኤፒአይ ድጋፍ ታክሏል።
  • ከስዊፍት ኮድ ጋር ለመዋሃድ ማሰር ተተግብሯል።
  • በነባሪ ከኢንቲጀር ኦፕሬሽን ይልቅ ተንሳፋፊ ነጥብ ስሌቶችን ለማከናወን የዲቪዥን ኦፕሬተር ("/") ባህሪን ቀይሯል ። ለኢንቲጀር ክፍፍል አዲስ ኦፕሬተር “//” ቀርቧል። የድሮውን ባህሪ "SET integer_division=እውነት;" በማቀናበር መመለስ ይቻላል.
  • ሲደረደሩ የዜሮ መዝገቦችን ከግምት ውስጥ የማስገባት ዘዴ ከ"NULLS FIRST" ወደ "NULLS LAST" ተቀይሯል፣ ማለትም። NULL ዋጋዎች አሁን ከዝርዝሩ መጀመሪያ ይልቅ መጨረሻ ላይ ይታተማሉ። የድሮውን ባህሪ "SET default_null_order='nulls_first';" በማቀናበር መመለስ ይቻላል.

በተጨማሪም፣ የተከማቹ ሂደቶችን ከSQLite ጋር ለመጠቀም የኮድ አመንጪ የሚያቀርበውን በፌስቡክ የተሰራውን የCG/SQL ፕሮጀክት ልንገነዘብ እንችላለን። CG/SQL የተከማቹ ሂደቶችን በልዩ የT-SQL (Transact-SQL) ቋንቋ እንዲጽፉ ይፈቅድልዎታል፣ ይህም መደበኛውን የC ቤተ-መጽሐፍትን ለመጥራት እና በSQLite ውስጥ መረጃን ለማግኘት ያስችላል። የተከማቹ ሂደቶች የተገለጹ እርምጃዎችን ለማከናወን እና ውስብስብ ጥያቄዎችን ለማስኬድ SQLite C API የሚጠቀመው ወደ ሲ ኮድ ነው። የተከማቹ ሂደቶች ከ C፣ Java እና Objective-C ፕሮግራሞች ጋር ሊገናኙ ይችላሉ። የፕሮጀክት ኮድ በ C የተፃፈ እና በ MIT ፍቃድ ስር ይሰራጫል.

ምንጭ: opennet.ru

አስተያየት ያክሉ