Hoʻokuʻu ʻia o DBMS SQLite 3.42 a me DuckDB 0.8.0. CG/SQL me ka hoʻokō ʻana i nā kaʻina hana mālama no SQLite

Ua paʻi ʻia ka hoʻokuʻu ʻana o SQLite 3.42, kahi DBMS māmā i hoʻolālā ʻia e like me kahi waihona plug-in. Hāʻawi ʻia ka code SQLite ma ka waihona lehulehu, ʻo ia hoʻi. hiki ke hoʻohana ʻia me ka ʻole o ke kau palena ʻole a me ka uku ʻole no kekahi kumu. Hāʻawi ʻia ke kākoʻo kālā no nā mea hoʻomohala SQLite e kahi consortium i hana ʻia, ʻo ia hoʻi nā hui e like me Adobe, Oracle, Mozilla, Bentley a me Bloomberg.

Nā hoʻololi nui:

  • No ka FTS5 piha kikokikona indexes, ua hoʻokō 'ia ka palekana-holoi kauoha, e hoʻomaʻemaʻe loa i na koena ikepili ma hope o ka holoiʻana.
  • Ke kākoʻo nei nā hana no ka hoʻoili ʻana i ka ʻikepili ma JSON format i kēia manawa i nā hoʻonui JSON5.
  • Hoʻolālā nīnau i hoʻomaikaʻi ʻia. Hoʻohana ʻia ka loiloi helu-o-nānā ma ka paʻamau. Hoʻopau ʻia ka lawelawe ʻana i nā kolamu i hoʻohana ʻole ʻia i nā subqueries. Hoʻomaikaʻi ʻia ka hoʻokō ʻana i ka hoʻokō ʻana i ka hoʻokō ʻana.
  • Hoʻohui ʻia ke koho "--unsafe-testing" i ka CLI e ʻae i kekahi mau kauoha weliweli e like me ".testctrl" e hoʻohana ʻia i ka hoʻāʻo ʻana. Ma ke ʻano palekana ("--safe"), ʻae ʻia nā kauoha ".log on" a me ".log off". Hoʻohui ʻia ke kākoʻo no ka mea hoʻokaʻawale "—", no nā hoʻopaʻapaʻa ma hope o ka pau ʻana o ka hana koho. Hoʻohui ʻia nā ʻāpana ": inf" a me ":nan" i pili me nā waiwai infinity a me NaN.
  • Ua ʻae ʻia nā inoa o nā hana SQL i wehewehe ʻia e ka noi e hui pū me nā huaʻōlelo CROSS, FULL, INNER, LEFT, NATURAL, OUTER, a me RIGHT.
  • Hoʻonui ʻia ka mana PRAGMA integrity_check. Hoʻohui ʻia ka nānā no ka wehewehe ʻana i ka waiwai NaN i nā kolamu me ke kūlana NOT NULL. Ua hoʻomaikaʻi ʻia ka ʻike o nā memo hewa.
  • ʻO ka hoʻohui ʻana o ke kau e hiki ai ke hoʻololi i nā loli mai nā papa me ka ʻole o ROWID.
  • Ua hoʻohui ʻia ka mea hoʻololi "subsec" i nā hana no ka hana ʻana me ka manawa a me nā lā e hoʻohana ai i nā hapa o kekona.
  • Hoʻemi ʻia ka hohonu hoʻihoʻi paʻamau no nā arrays a me nā mea JSON mai 2000 a i 1000.

Eia kekahi, ua hoʻokumu ʻia ka hoʻokuʻu ʻana o DuckDB 0.8.0 DBMS, e hoʻomohala ana i ka ʻano SQLite, i hoʻonui ʻia me nā hiʻohiʻona a me nā optimizations no ka hoʻokō ʻana i nā nīnau analytical e uhi ana i kahi hapa nui o ka ʻikepili i mālama ʻia, no ka laʻana, ka hōʻuluʻulu ʻana i nā kikoʻī holoʻokoʻa o nā papa a i ʻole ka hoʻohui ʻana i kekahi. nā papa nui. Hāʻawi ʻia kahi ʻōlelo lōʻihi o ka ʻōlelo SQL, me nā mana hou aʻe no ka lawelawe ʻana i nā nīnau paʻakikī a lōʻihi, a me ke kākoʻo ʻana i nā ʻano paʻakikī (nā ʻano, nā hale, nā uniona), ka hoʻokō like ʻana i nā nīnau he nui, a me ka hoʻokō pololei ʻana i nā nīnau mai. nā faila ma CSV, JSON a me Parquet format. Hiki ke hoʻokomo mai PostgreSQL DBMS.

Ma waho aʻe o ka code shell mai SQLite, hoʻohana ka papahana i kahi parser mai PostgreSQL, neʻe i kahi waihona ʻokoʻa, ka ʻāpana Date Math mai MonetDB, kāna hoʻokō ponoʻī o nā hana pukaaniani (e pili ana i ka Segment Tree Aggregation algorithm), kahi kaʻina hana maʻamau. e pili ana i ka waihona RE2, kāna mea hoʻoponopono hulina ponoʻī, MVCC control mechanism i ka manawa like o ka hoʻokō ʻana i nā hana (Multi-Version Concurrency Control), a me kahi mīkini hoʻokō vectorized query execution e pili ana i ka Hyper-Pipelining Query Execution algorithm, e ʻae ai i ka hoʻoili ʻana i nā pūʻulu nui. nā waiwai i ka manawa hoʻokahi i hoʻokahi hana. Hāʻawi ʻia ke code papahana ma lalo o ka laikini MIT.

Ma ka mana hou o DuckDB:

  • Hoʻohui ʻia nā huaʻōlelo hou "PIVOT" a me "UNPIVOT" e hoʻololi i nā lālani i kolamu a ʻo ia hoʻi.
  • Hoʻomaikaʻi ʻia ka parallelization i ka wā e lawe mai ana a lawe aku i ka ʻikepili. ʻO ka mea maʻamau, hoʻokō ʻia ka heluhelu ʻana mai nā faila ma CSV format i nā kahawai he nui a me nā palapala multi-threaded i ka wā e hoʻohana ai i nā palapala Parquet, CSV a me JSON.
  • Hoʻohui ʻia "**" mea hoʻohana e hoʻololi hou i nā papa kuhikuhi i ka wā e wehewehe ai i nā ala faila (e laʻa, mai "'data/glob/crawl/stackoverflow/**/*.csv';").
  • Hoʻohui i ke kākoʻo no ka hoʻohui ʻana i nā hana (JOIN) no ka ʻikepili i ke ʻano o ka manawa manawa (nā ʻāpana o nā koina parameter i nā manawa manawa i ʻōlelo ʻia), kahi i kūpono ʻole ai ka criterion no ka hoʻohui ʻana i nā moʻolelo, akā he hoʻohālikelike o nā waiwai. ma kahi kahua me ka manawa (no ka laʻana, hiki iā ʻoe ke hoʻohui i nā moʻolelo, ʻokoʻa ka manawa ma mua o 1 mau minuke).
  • Ua hoʻokō ʻia ka hoʻouka ʻana o ka metadata database, kahi i hiki ai ke wikiwiki i ka hoʻomaka ʻana o ka DBMS he ʻumi.
  • Hoʻohui i ke kākoʻo no ka hoʻopili ʻana i nā hana maʻamau ma Python.
  • Hoʻohui i kākoʻo no ka ADBC ​​​​(Arrow Database Connectivity) API no ka hoʻoili ʻana i ka ʻikepili me ka Apache Arrow.
  • Hoʻokomo ʻia ka paʻa no ka hoʻohui ʻana me ka code Swift.
  • Hoʻololi i ke ʻano o ka mea hoʻohana mahele ("/"), i kēia manawa ke hana nei i nā helu lana ma ke ʻano paʻamau ma mua o nā hana integer. Ua noi ʻia kahi mea hoʻohana hou "//" no ka mahele integer. Hiki ke hoʻihoʻi ʻia ka hana kahiko ma ka hoʻonohonoho ʻana i "SET integer_division=ʻoiaʻiʻo;".
  • ʻO ke ʻano o ka helu ʻana i nā moʻolelo null ke hoʻololi ʻia mai ka "NULLS FIRST" a i ka "NULLS LAST", ʻo ia hoʻi. E hōʻike ʻia nā waiwai NULL ma ka hopena ma mua o ka hoʻomaka o ka papa inoa. Hiki ke ho'iho'i 'ia ka hana kahiko ma ka ho'onohonoho 'ana i "SET default_null_order='nulls_first';".

Hoʻohui ʻia, hiki ke ʻike ʻia ka papahana CG/SQL e Facebook, e hāʻawi ana i kahi code generator no ka hoʻohana ʻana i nā kaʻina hana mālama ʻia me SQLite. ʻAe ʻo CG/SQL iā ʻoe e hoʻolālā i nā kaʻina hana i mālama ʻia ma kahi ʻōlelo kūikawā o T-SQL (Transact-SQL), e hiki ai iā ʻoe ke kāhea i nā hana o ka waihona C maʻamau a komo i ka ʻikepili ma SQLite. Hoʻohui ʻia nā kaʻina hana i mālama ʻia i loko o ka code C e hoʻohana ana i ka SQLite C API e hana i nā hana i kuhikuhi ʻia a me ka hana ʻana i nā nīnau paʻakikī. Hiki ke hoʻopili ʻia nā kaʻina hana i hoʻopaʻa ʻia i C, Java, a me Objective-C. Ua kākau ʻia ke code papahana ma C a māhele ʻia ma lalo o ka laikini MIT.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka