ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° DBMS SQLite 3.31 со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ

објавСно ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ SQLite 3.31.0, лСсСн DBMS Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. SQLite ΠΊΠΎΠ΄ΠΎΡ‚ сС дистрибуира ΠΊΠ°ΠΊΠΎ јавСн Π΄ΠΎΠΌΠ΅Π½, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° ΠΈ бСсплатно Π·Π° која Π±ΠΈΠ»ΠΎ Π½Π°ΠΌΠ΅Π½Π°. Ѐинансиската ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° SQLite Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΎΠ΄ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ создадСн ΠΊΠΎΠ½Π·ΠΎΡ€Ρ†ΠΈΡƒΠΌ, кој Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎ Adobe, Oracle, Mozilla, Bentley ΠΈ Bloomberg.

Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ (прСсмСтани ΠΊΠΎΠ»ΠΎΠ½ΠΈ), ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½Π° ΠΊΠΎΠ³Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π°Π±Π΅Π»Π° Ρ‡ΠΈΡ˜Π° врСдност автоматски сС прСсмСтува Π²Ρ€Π· основа Π½Π° содрТината Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠ»ΠΎΠ½Π°. Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ (Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ Π²ΠΎ Π»Π΅Ρ‚ со сСкој пристап) ΠΈΠ»ΠΈ Π·Π°Ρ‡ΡƒΠ²Π°Π½ΠΈ Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ (сС Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°Π°Ρ‚ сСкој ΠΏΠ°Ρ‚ ΠΊΠΎΠ³Π° ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ сС Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π°Ρ‚). Π‘ΠΎΠ΄Ρ€ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π΅ достапна само Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ (ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ сС ΠΏΡ€Π°Π²Π°Ρ‚ само ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° врСдноста Π²ΠΎ Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠ»ΠΎΠ½Π° Π²ΠΊΠ»ΡƒΡ‡Π΅Π½Π° Π²ΠΎ прСсмСтката). На ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    ΠšΠ Π•Π˜Π ΠΠˆ ВАБЕЛА t1(
    Π¦Π•Π› ΠŸΠ Π˜ΠœΠΠ Π•Π ΠšΠ›Π£Π§,
    б ИНВ,
    Π² Π’Π•ΠšΠ‘Π’,
    Π³ Π“Π•ΠΠ•Π Π˜Π ΠΠΠž Π‘Π•ΠšΠžΠ“ΠΠ¨ КАКО (a*abs(b)) Π’Π˜Π Π’Π£ΠΠ›ΠΠž,
    e Π’Π•ΠšΠ‘Π’ Π“Π•ΠΠ•Π Π˜Π ΠΠ Π‘Π•ΠšΠžΠ“ΠΠ¨ КАКО (substr(c,b,b+1)) ЧУВА
    );

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ PRAGMA trusted_schema, ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ SQLITE_DBCONFIG_TRUSTED_SCHEMA ΠΈ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ β€ž-DSQLITE_TRUSTED_SCHEMAβ€œ, која Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Π½Π°ΠΏΠ°Π΄ΠΈ ΠΏΡ€Π΅ΠΊΡƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ‡Π½Π°Ρ‚Π° шСма Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Активната Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ја ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SQL (Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ SQLITE_INNOCUOUS) Π²ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅, ΠΏΡ€Π΅Π³Π»Π΅Π΄ΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΈ стандарднитС изјави, индСкситС ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. Π£ΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ Ρ‚Π°Π±Π΅Π»ΠΈ Π²ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΠΈΡ‚Π΅ Π΅ исто Ρ‚Π°ΠΊΠ° ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½Π°, освСн Π°ΠΊΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π°Ρ‚Π° Ρ‚Π°Π±Π΅Π»Π° Π½Π΅ Π΅ Сксплицитно Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½Π° со Π·Π½Π°ΠΌΠ΅Π½Ρ†Π΅Ρ‚ΠΎ SQLITE_VTAB_INNOCUOUS.
  • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° способност Π·Π° Π΄ΠΎΠ΄Π΅Π»ΡƒΠ²Π°ΡšΠ΅ ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° Π½Π° SQL Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ SQLITE_INNOCUOUS (бСзопасни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΈ Π½Π΅ зависат ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС користат Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠ°Π»ΠΈΡ†ΠΈΠΎΠ·Π½ΠΈ Π΄Π΅Ρ˜ΡΡ‚Π²Π°) ΠΈ SQLITE_DIRECTONLY (само Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ ΠΏΠΎΠ²ΠΈΠΊ Π²ΠΎ SQL ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ°, Π±Π΅Π· моТност Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π²ΠΎ Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈ, ΠΏΡ€Π΅Π³Π»Π΅Π΄ΠΈ ΠΈ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΈ Π·Π° структура Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ);
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ» uuid со ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° UUID (RFC-4122);
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ PRAGMA hard_heap_limit ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° sqlite3_hard_heap_limit64() Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° максималната Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° Π³Ρ€Π°ΠΌΠ°Π΄Π°;
  • Π’ΠΎ ΠŸΠ ΠΠ“ΠœΠ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°_листа Π΄ΠΎΠ΄Π°Π΄Π΅Π½ ΠΈΠ·Π»Π΅Π· Π½Π° Ρ‚ΠΈΠΏ, ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° ΠΈ Π±Ρ€ΠΎΡ˜ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° сСкоја Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°;
  • На Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° Ρ‚Π°Π±Π΅Π»Π° DBSTAT Π΄ΠΎΠ΄Π°Π΄Π΅ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ;
  • sqlite3_open_v2() ја ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° SQLITE_OPEN_NOFOLLOW, која Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡ‚Π΅ ΠΎΡ‚Π²ΠΎΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° симболични врски;
  • Π—Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ PATH, ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ Π½Π° JSON Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π½ΠΎΡ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Π½ΠΈΠ·Π°Ρ‚Π° β€ž#-Nβ€œ;
  • Π’ΠΎ систСмот Π·Π° Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° настрана ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄Π²Π° посСбни мСмориски Π±Π°Π·Π΅Π½ΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ сСкој ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° распрСдСлба Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ со Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½ΠΈ (ΠΎΠ΄Π²ΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΡ‚Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° систСмот Π·Π° ΠΏΠΎΠ³Π»Π΅Π΄, Π΄ΠΎΠ΄Π΅ΠΊΠ° ја Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°Ρ‚Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ‚Π°ΠΌΠΏΠΎΠ½ΠΎΡ‚ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ Π½Π° сСкоја врска ΠΎΠ΄ 120 Π½Π° 48 ΠšΠ‘);
  • ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π½Π° PRAGMA Π΅ ΠΏΡ€Π΅ΠΊΠΈΠ½Π°Ρ‚Π° legacy_file_format, ΡˆΡ‚ΠΎ бСшС Π½Π΅ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΎ со VACUUM, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ ΠΎΠΏΠ°Ρ“Π°Ρ‡ΠΊΠΈ индСкси (ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° наслСдСн Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²Ρ€Π°Ρ‚ΠΈ ΠΏΡ€Π΅ΠΊΡƒ Π·Π½Π°ΠΌΠ΅Ρ‚ΠΎ SQLITE_DBCONFIG_LEGACY_FILE_FORMAT Π²ΠΎ sqlite3_db_config()).

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€