plug-in á á¬ááŒáá·áºááá¯ááºá¡ááŒá Ạáá®ááá¯ááºážáá¯ááºáá¬ážááá·áº áá±á«á·áá«ážáá±á¬ DBMS SQLite 3.42 ááᯠáá¯ááºáá±ááá¯ááºáá«ááŒá®á SQLite áá¯ááºááᯠá¡áá»á¬ážáá°ááŸá¬ ááá¯ááááºážááœáẠááŒáá·áºáá±áá¬ážáááºá ááá·áºáááºáá»ááºáááŸááá² áááºááá·áºáááºááœááºáá»ááºá¡ááœááºáááᯠá¡ááá²á·á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá Adobeá Oracleá Mozillaá Bentley ááŸáá·áº Bloomberg áá²á·ááá¯á·áá±á¬ áá¯áá¹ááá®áá»á¬áž áá«áááºáá±á¬ á¡áá°ážáááºáá®ážáá¬ážáá±á¬ áá¯ááºáááºážá á¯á០SQLite developer áá»á¬ážá¡ááœáẠááá¹áá¬áá±ážááá¯ááºáᬠáá¶á·ááá¯ážááŸá¯áá±ážáá«áááºá
á¡áááááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž-
- FTS5 á á¬áá¬ážá¡ááŒáá·áºá¡á á¯á¶ á¡ááœáŸááºážááááºážáá»á¬ážá¡ááœááºá áá»ááºááŒá®ážáá±á¬áẠáá»ááºáá±áá±á¬áá±áá¬á¡á¬ážáá¯á¶ážááᯠáá¯á¶ážáááŸááºážáá±ážááá·áº áá¯á¶ááŒá¯á¶áá±á¬-áá»ááºááẠá¡áááá·áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá
- JSON áá±áá¬ááᯠáá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠááá¯á¡áá« JSON5 ááá¯ážáá»á²á·ááŸá¯áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
- ááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ áá±ážááŒááºážááŸá¯á¡á á®á¡á ááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá ááŒáá·áºááŸá¯ááŸá¯ á¡ááŒáááºáá± ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠááŒá¯áá¯ááºááŒááºážááᯠááœáá·áºáá¬ážáááºá subqueries ááœáẠá¡áá¯á¶ážáááŒá¯áá±á¬ áá±á¬áºáá¶áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážááᯠáááºááŸá¬ážáááºá push-down optimization ááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá
- á ááºážáááºá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáááºááœááºáá¬ážááá·áº â.testctrlâ áá²á·ááá¯á·áá±á¬ á¡áá¹ááá¬ááºááŸááá±á¬ á¡áááá·áºá¡áá»áá¯á·ááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºááŒá¯ááá·áº á¡áááá·áºáá±ážá á¬ááŒá±á¬ááºážááŒá¬ážáá¶ááœáẠâ--unsafe-testingâ ááœá±ážáá»ááºááœáá·áºááᯠááá·áºááœááºážáá¬ážáááºá áá¯á¶ááŒá¯á¶áá±á¬áá¯áẠ(â-safeâ) ááœáẠâ.log onâ ááŸáá·áº â.log offâ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááᯠááœáá·áºááŒá¯áá¬ážáááºá ááœá±ážáá»ááºááŸá¯áá¯ááºáá±á¬ááºááŒááºážááᯠááááºááŒá®ážáá±á¬áẠá¡ááŒááºážá¡áá¯á¶áá»á¬ážá¡ááœáẠâââ ááá·áºáááºáá»ááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá á¡áá¯á¶ážáááŸá ááŸáá·áº NaN áááºááá¯ážáá»á¬ážááŸáá·áº áááºá ááºáá±ááá·áº ":inf" ááŸáá·áº ":nan" áá±á¬ááºáá»á¬ážááᯠááá·áºáá¬ážáááºá
- á¡ááá®áá±ážááŸááºážááŸáááºááŸááºáá¬ážáá±á¬ SQL áá¯ááºáá±á¬ááºáá»ááºá¡áááºáá»á¬ážááᯠCROSSá FULLá Innerá LEFTá NATURALá OUTER ááŸáá·áº áá¬áááºáá±á¬á·áá»ááºá á¬áá¯á¶ážáá»á¬ážááŸáá·áº áááºáá±ááẠááœáá·áºááŒá¯áá¬ážáááºá
- PRAGMA integrity_check á áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬ážááᯠááá¯ážáá»á²á·áá¬ážáá«áááºá NOT NULL á¡ááŒá±á¡áá±ááŒáá·áº áá±á¬áºáá¶áá»á¬ážááœáẠNaN áááºááá¯ážáá»á¬ážááᯠáááºááŸááºááŒááºážá¡ááœáẠá á áºáá±ážááŒááºážááᯠááá·áºááœááºážáá¬ážáááºá á¡ááŸá¬ážá¡ááœááºáž áááºáá±á·áá»áºáá»á¬ážá á¡áá»ááºá¡ááẠá¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒáŸáá·áºáááºáá«á
- á ááºááŸáẠá¡ááá¯áááá¯ááááºááẠROWID ááá«áá² ááá¬ážáá»á¬ážá០á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá¬ážááŒááºááœáá·áºááŒá¯áááºá
- á áá¹ááá·áºá¡ááá¯ááºážá¡á áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááẠá¡áá»áááºááŸáá·áºáááºá áœá²áá»á¬ážááŸáá·áºá¡áá° á¡áá¯ááºáá¯ááºáááºá¡ááœáẠ"subsec" ááœááºážáá¶ááŸá¯á¡á¬áž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠááá·áºááœááºážáá¬ážáááºá
- arrays ááŸáá·áº JSON á¡áá¬ááá¹áá¯áá»á¬ážá¡ááœáẠáá°áááºáž recursion depth ááᯠ2000 á០1000 ááá¯á· áá»áŸá±á¬á·áá»áá¬ážáááºá
ááá¯á·á¡ááŒááºá DuckDB 0.8.0 DBMS áááœááºááŸáááŸá¯ááᯠáááºáá®ážáá¬ážááŒá®ážá SQLite áá¬ážááŸááºážááᯠáááºáá®ážáá¬ážááŒá®ážá ááœá²ááŒááºážá áááºááŒá¬áá±ážááŒááºážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸáá·áº ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážáá»á¬ážááᯠáá»á²á·ááœááºáᬠá¥ááá¬á¡á¬ážááŒáá·áºá ááááºážáááºážáá¬ážáá±á¬áá±áá¬á áááá¬áááºááŸá¬ážáá±á¬á¡á áááºá¡ááá¯ááºážáá áºáá¯á¡á¬áž áá±á«ááºážá ááºáá¯ááºáá±á¬ááºááŒááºážá á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯áá¯á¶ážááᯠá á¯á ááºážáá¯ááºáá±á¬ááºááŒááºáž á á¬ážááœá²áá»á¬áž ááá¯á·ááá¯áẠá á¬ážááœá²ááŒá®ážáá»á¬ážá áœá¬ááᯠáá±á«ááºážá ááºážááŒááºážá á¡ááœááºááŸá¯ááºááœá±ážááŒá®áž á¡áá»áááºáá¯ááºáá±á¬ á á¯á¶á ááºážáá±ážááŒááºážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠáááºáá±á¬ááºážá áœááºážáááºáá»á¬ážáá«ááŸááá±á¬ SQL áá¡ááá·áºááŒáá·áºáá¬áá¬á áá¬ážááᯠáá¶á·ááá¯ážáá±ážáᬠááŸá¯ááºááœá±ážáá±á¬á¡áá»áá¯ážá¡á á¬ážáá»á¬áž (á¡áááºážá¡áá»ááºážáá»á¬ážá áááºáá±á¬ááºáá¯á¶áá»á¬ážá áááá¹ááá»á¬áž)á á á¯á¶á ááºážáá±ážááŒááºážáá»ááºá¡áá»á¬ážá¡ááŒá¬ážááᯠáá áºááŒáá¯ááºáááºáá¯ááºáá±á¬ááºááŒááºážááŸáá·áº CSVá JSONá ááŸáá·áº Parquet ááá¯ááºáá»á¬ážá០ááá¯ááºááá¯ááºáá±ážááŒááºážáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±ááẠ. PostgreSQL DBMS ááŸáááºááœááºážáááºááŒá áºááá¯ááºáááºá
SQLite á០shell code á¡ááŒááºá ááá±á¬áá»ááºááẠáá®ážááŒá¬ážá á¬ááŒáá·áºááá¯ááºáá áºáá¯ááŸá PostgreSQL á០parser áá áºáá¯á MonetDB á០Date Math á¡á áááºá¡ááá¯ááºážá áááºážáááá¯ááºááá¯áẠwindow functions (Segment Tree Aggregation algorithm ááá¯á¡ááŒá±áá¶á) ááá¯á¡ááŒá±áá¶ááá·áº áá¯á¶ááŸáẠexpression processor ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá RE2 á á¬ááŒáá·áºááá¯ááºá áááºážáááá¯ááºááá¯áẠquery optimizer ááŸáá·áº MVCC ááááºážáá»á¯ááºááŸá¯ááá¹ááá¬áž (Multi-Version Concurrency Control) ááŸáá·áº áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠáááŒáá¯ááºáááºáááºáž áá¯ááºáá±á¬ááºááŒááºážá¡ááŒáẠHyper-Pipelining Query Execution algorithm ááá¯á¡ááŒá±áá¶á áááºááá¯ážá¡á á¯á¶á¡áááºááᯠá¡ááŒá±áá¶áá¬ážáá±á¬ vectorized query execution engine á áááºáááºááŸá¯áá áºáá¯ááœáẠáá áºááŒáááºáááºáž áá¯ááºáá±á¬ááºáááºá ááá±á¬áá»ááºáá¯ááºááᯠMIT ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
DuckDB áá¬ážááŸááºážá¡áá áºááœááº
- á¡áááºážáá»á¬ážááᯠáá±á¬áºáá¶áá»á¬ážá¡ááŒá ẠááŒá±á¬ááºážáá²áááºááŸáá·áº á¡ááŒááºá¡ááŸááºá¡á¬ážááŒáá·áº "PIVOT" ááŸáá·áº "UNPIVOT" ááá¯ááá·áº á áá¬ážáááºá¡áá áºáá»á¬ážááᯠáá±á«ááºážááá·áºáá²á·áááºá
- áá±áá¬áááºááœááºážááŒááºážááŸáá·áº áá¯ááºáá°ááá·áºá¡áá« ááŒáá¯ááºáá°ááŒá¯ááŒááºážááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±áááºá áá°áááºážá¡á¬ážááŒáá·áºá CSV ááá¯ááºáá»á¬ážá០ááŒáá¯ážáá»áá¯ážá á¯á¶áááºááŒááºážááŸáá·áº ááŒáá¯ážáá»áá¯ážá á¯á¶áá±ážáá¬ážááŒááºážááá¯á·ááᯠParquetá CSV ááŸáá·áº JSON áá±á¬áºáááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠá¡áá±á¬ááºá¡áááºáá±á«áºáááºá
- ááá¯ááºáááºážááŒá±á¬ááºážáá»á¬ážááᯠáá¯á¶ážááŒááºáá¬ááœáẠáááºážááŒá±á¬ááºážáá»á¬ážááᯠáááºáá«ááá²áá² ááŒááºááá¯ááẠ"**" á¡á±á¬áºááá±áá¬á¡á¬áž ááá·áºááœááºážáá²á·ááẠ(á¥ááá¬á "'data/glob/crawl/stackoverflow/**/*.csv';" ááŸ)á
- áá±áá¬áá±á«ááºážá ááºážááŒááºážáá¯ááºáááºážáá±á¬ááºááœááºááŸá¯ (JOIN) á¡ááœáẠáááºáá±á¬ááºážáá¶á·ááá¯ážááŸá¯ááœáẠá¡áá»áááºá á®ážáá®ážáá¯á¶á ᶠ(áááºááŸááºáá¬ážáá±á¬ á¡áá»áááºá¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážááœáẠáá«áá¬áá®áá¬áááºááá¯ážáá»á¬áž) ááẠááŸááºáááºážáá»á¬ážáá±á«ááºážá ááºážááŒááºážááá¯ááºáᬠá á¶áááºááŸááºáá»ááºááŸá¬ á¡ááá¡áá»ááá¯ááºáá±á¬áºáááºáž á¡áá®ážá ááºáá¯á¶ážáááºááá¯ážáá»á¬ážá ááá¯ááºááá¯ááºááŸá¯áá áºáá¯ááŒá áºáááºá á¡áá»áááºááŸáá·áº ááœááºáááºáá áºáá¯ááœáẠ(á¥ááá¬á áááºááẠááŸááºáááºážáá»á¬ážááᯠáá±á«ááºážá ááºážááá¯ááºáááºá á¡áá»ááẠ1 áááá áºááẠáááá¯áá±á¬)á
- áá±áá¬áá±á·á Ạáááºáá¬áá±áá¬ááᯠáá»ááºážááá áœá¬ áááºááŒááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááŒá®ážá áááºážááẠDBMS ááœáŸáá·áºáááºááŸá¯ááᯠá¡ááá»á¬ážá áœá¬ á¡ááŸáááºááŒáŸáá·áºááá¯ááºá á±áá²á·áááºá
- Python ááœáẠá áááºááŒáá¯ááºáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá»áááºáááºáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá
- Apache Arrow ááᯠá¡áá¯á¶ážááŒá¯á áá±áá¬ááœáŸá²ááŒá±á¬ááºážááŒááºážá¡ááœáẠADBC ââ(Arrow Database Connectivity) API á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áá±á«ááºážááá·áºáá¬ážáááºá
- Swift áá¯ááºááŸáá·áº áá±á«ááºážá ááºážáááºá¡ááœáẠá ááºážááŸá±á¬ááºááŸá¯ááᯠá¡áá±á¬ááºá¡ááẠáá±á¬áºáá¬ážáááºá
- áá¯á¶áá±á¡á¬ážááŒáá·áº ááááºážááŒáá·áºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡á á¬áž Floating Point ááœááºáá»ááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠdivision operator ("/") á á¡ááŒá¯á¡áá°ááᯠááŒá±á¬ááºážáá²áá²á·áááºá á¡á±á¬áºááá±áá¬á¡áá Ạâ//â ááᯠááááºážááŒáá·áºááœá²ááŒááºážá¡ááœáẠá¡ááá¯ááŒá¯áá¬ážáááºá âSET integer_division=true;â ááᯠáááºááŸááºááŒááºážááŒáá·áº á¡ááŒá¯á¡áá°áá±á¬ááºážááᯠááŒááºáá±ážááá¯ááºáá«áááºá
- "NULLS FIRST" á០"NULLS LAST" ááá¯á· á¡áá»áá¯ážá¡á á¬ážááœá²ááá·áºá¡áá« áá¯áááŸááºáááºážáá»á¬ážááᯠááá·áºááœááºážááœááºáá»ááºááá·áºáááºážáááºážááᯠááá¯ááá¯áááºá NULL áááºááá¯ážáá»á¬ážááᯠá á¬áááºážáá¡á ááẠá¡áá¯á¶ážááœáẠááᯠááá¯ááºááŸáááºáááºááŒá áºáááºá âSET default_null_order='nulls_first';â ááᯠáááºááŸááºááŒááºážááŒáá·áº á¡ááŒá¯á¡áá°áá±á¬ááºážááᯠááŒááºáá±ážááá¯ááºáá«áááºá
ááá¯á·á¡ááŒááºá SQLite ááŒáá·áº ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáá¯ááºáá¯ááºáá±ážááá·áº áá»ááºááá±áá¬ááᯠáá¶á·ááá¯ážáá±ážááá·áº Facebook á០áá®ááœááºáá¬ážááá·áº CG/SQL ááá±á¬áá»ááºááᯠáá»áœááºá¯ááºááá¯á· ááŸááºáá¬ážááá¯ááºáá«áááºá CG/SQL ááẠááá·áºá¡á¬áž Standard C á
á¬ááŒáá·áºááá¯ááºá áá±á«áºááá¯ááŸá¯áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº SQLite ááœáẠáá±áá¬ááá°ááŒááºážááá¯á·ááᯠááœáá·áºááŒá¯áá±ážááá·áº á¡áá°ážáá¬áá¬á
áá¬ážááŒáá·áº T-SQL (Transact-SQL) ááœáẠááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠáá±ážáá¬ážááœáá·áºááŒá¯áááºá áááºááŸááºáá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºááŸáá·áº ááŸá¯ááºááœá±ážáá±á¬ áá±ážááŒááºážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠSQLite C API ááᯠá¡áá¯á¶ážááŒá¯ááá·áº áá¯ááºáá¯ááºáá¬ážáá±á¬ ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠC áá¯ááºááœáẠá
á¯á
ááºážáá¬ážáááºá á
á¯á
ááºážááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠCá Javaá ááŸáá·áº Objective-C áááá¯ááááºáá»á¬ážááá¯á· áá»áááºáááºááá¯ááºáááºá ááá±á¬áá»ááºáá¯ááºááᯠC ááŒáá·áº áá±ážáá¬ážáá¬ážááŒá®áž MIT ááá¯ááºá
ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
source: opennet.ru