Π Π΅Π»ΠΈΠ· Π‘Π£Π‘Π” SQLite 3.31 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… столбцов

whakaputaina tuku SQLite 3.31.0, he DBMS mama i hangaia hei whare pukapuka whakauru. Ka tohatohahia te waehere SQLite hei rohe whanui, i.e. ka taea te whakamahi me te kore here me te kore utu mo tetahi kaupapa. Ko te tautoko putea mo nga kaiwhakawhanake SQLite e whakaratohia ana e tetahi roopu i hangaia motuhake, kei roto ko nga kamupene penei i a Adobe, Oracle, Mozilla, Bentley me Bloomberg.

Main huringa:

  • He tautoko taapiri nga pou i hangaia (вычисляСмых столбцов), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ столбСц, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ автоматичСски вычисляСтся Π½Π° основС содСрТимого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ столбца. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ столбцы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ (Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ), Ρ‚Π°ΠΊ ΠΈ сохраняСмыми Π² Π‘Π” (ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ связанных столбцов). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… столбцов доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ производится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ значСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ столбцС, задСйствованном ΠΏΡ€ΠΈ вычислСнии). НапримСр:

    CREATE TABLE t1(
    a INTEGER PRIMARY KEY,
    b INT,
    c TEXT,
    d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
    e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
    );

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ PRAGMA trusted_schema, настройка SQLITE_DBCONFIG_TRUSTED_SCHEMA ΠΈ сборочная опция Β«-DSQLITE_TRUSTED_SCHEMAΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ whakaeke Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ схСмы Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π”. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Π΅ ограничиваСтся использованиС SQL-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ SQLITE_INNOCUOUS) Π² Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°Ρ…, прСдставлСниях, выраТСниях CHECK ΠΈ DEFAULT, индСксах ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… столбцах. Π’Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π² Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°Ρ… ΠΈ прСдставлСниях, Ссли Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° явно Π½Π΅ объявлСна с Ρ„Π»Π°Π³ΠΎΠΌ SQLITE_VTAB_INNOCUOUS.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ присвоСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π² прилоТСниях SQL-функциям свойств SQLITE_INNOCUOUS (Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ зависят ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ врСдоносных дСйствий) ΠΈ SQLITE_DIRECTONLY (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прямой Π²Ρ‹Π·ΠΎΠ² Π² SQL-запросах, Π±Π΅Π· возмоТности примСнСния Π² Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°Ρ…, прСдставлСниях ΠΈ схСмах структуры Π΄Π°Π½Π½Ρ‹Ρ…);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ uuid с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ UUID ( RFC-4122);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° PRAGMA hard_heap_limit me te mahi sqlite3_hard_heap_limit64() для управлСния ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΡƒΡ‡ΠΈ;
  • Π’ PRAGMA function_list Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠ°, свойств ΠΈ числа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;
  • Π’ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ DBSTAT kua taapirihia Ρ€Π΅ΠΆΠΈΠΌ агрСгирования Π΄Π°Π½Π½Ρ‹Ρ…;
  • Π’ sqlite3_open_v2() Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция SQLITE_OPEN_NOFOLLOW, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ символичСских ссылок;
  • Для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° PATH, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² JSON-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ массивов Β«#-NΒ»;
  • Π’ систСмС распрСдСлСния памяти lookaside Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΡƒΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΠ»ΠΎΠ² памяти, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для выдСлСния Π±Π»ΠΎΠΊΠΎΠ² Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ позволяСт Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ систСмы lookaside, ΠΏΡ€ΠΈ этом снизив Ρ€Π°Π·ΠΌΠ΅Ρ€ выдСляСмого Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ соСдинСниС Π±ΡƒΡ„Π΅Ρ€Π° со 120 Π΄ΠΎ 48 ΠšΠ‘);
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PRAGMA legacy_file_format, которая Π±Ρ‹Π»Π° нСсовмСстима с VACUUM, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ столбцами ΠΈ ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ индСксами (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π»Π°Π³ SQLITE_DBCONFIG_LEGACY_FILE_FORMAT Π² sqlite3_db_config()).

Source: opennet.ru

Tāpiri i te kōrero