ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· SQLite 3.51, Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ Π‘Π£ΠΠ, ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠ΄ SQLite ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (public domain), Ρ.Π΅. ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈ Π±Π΅Π·Π²ΠΎΠ·ΠΌΠ΅Π·Π΄Π½ΠΎ Π² Π»ΡΠ±ΡΡ ΡΠ΅Π»ΡΡ . Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² SQLite ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ JSON-ΡΡΠ½ΠΊΡΠΈΠΈ jsonb_each() ΠΈ jsonb_tree(), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠ°Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ json_each() ΠΈ json_tree() ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ JSONB Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ.
- ΠΠΎΠ΄ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ carray ΠΈ percentile ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠ½ Π² Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Β«sqlite3.cΒ» ΡΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ SQLite. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΈ ΡΡΠ΅Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Β«-DSQLITE_ENABLE_CARRAYΒ» ΠΈ Β«-DSQLITE_ENABLE_PERCENTILEΒ».
- Π£Π»ΡΡΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SQLite Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Tcl. Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«evalΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ Β«-asdictΒ» Π΄Π»Ρ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠ° Β«dictΒ» Π²ΠΌΠ΅ΡΡΠΎ Β«arrayΒ». ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ NULL.
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
- Π’ΠΎΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«.timerΒ» ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Π΄ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄;
- Π ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Β«boxΒ» ΠΈ Β«columnΒ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠΈΡΠΈΠ½ΠΎΠΉ;
- ΠΠΎΠΌΠ°Π½Π΄Π° Β«.imposterΒ» ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ imposter-ΡΠ°Π±Π»ΠΈΡΡ (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΊΠ°ΠΊ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅), ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ VACUUM ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ° Ρ ΡΠ»Π°Π³ΠΎΠΌ Β«βunsafe-testingΒ»;
- Π ΡΡΠΈΠ»ΠΈΡΡ sqlite ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«.openΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βifexistsΒ».
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΠΈΠ½Π° ΡΡΡΠΎΠΊΠΈ, Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«.widthΒ», ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° 30000 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
- ΠΠ½Π΅ΡΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
- Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Π° Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° CPU ΠΏΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅;
- Π£Π»ΡΡΡΠ΅Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ (JOIN), Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊ;
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π΅ Π²Π»ΠΈΡΡΡΠΈΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ;
- Π£ΡΠΊΠΎΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΎΠΊΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Π·Π°ΠΏΡΠΎΡΠ°Ρ Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Β«BETWEEN π‘ FOLLOWING AND :y FOLLOWINGΒ» ΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ Β«:yΒ».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡΠ°Π³ΠΌΠ° Β«PRAGMA wal_checkpoint=NOOPΒ» ΠΈ ΡΡΠ½ΠΊΡΠΈΡ API sqlite3_wal_checkpoint() Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² WAL-Π»ΠΎΠ³Π΅
- Π API Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ sqlite3_set_errmsg() ΠΈ sqlite3_db_status64().
- Π JavaScript/WASM-Π²Π΅ΡΡΠΈΠΈ SQLite ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ WebAssembly Ρ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ.
- ΠΠΎΠ²ΡΡΠ΅Π½Π° ΡΡΠΎΠΉΠΊΠΎΡΡΡ ΠΎΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΠ½ΠΈΠΌΠ°ΡΡΠΈΡ POSIX-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ² close().
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ VxWorks.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
