ืžืขืœื“ื•ื ื’ ืคื•ืŸ DBMS SQLite 3.31 ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ

ืืจื•ื™ืก ืžืขืœื“ื•ื ื’ ืกืงืœื™ื˜ืข 3.31.0, ืึท ืœื™ื™ื˜ื•ื•ื™ื™ื˜ ื“ื‘ืžืก ื“ื™ื–ื™ื™ื ื“ ื•ื•ื™ ืึท ืฆืึทืคึผืŸ-ืื™ืŸ ื‘ื™ื‘ืœื™ืึธื˜ืขืง. ื“ื™ SQLite ืงืึธื“ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื•ื•ื™ ืึท ืฆื™ื‘ื•ืจ ืคืขืœื“, ื™.ืข. ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืึธืŸ ืจื™ืกื˜ืจื™ืงืฉืึทื ื– ืื•ืŸ ืคืจื™ื™ ืคึฟืึทืจ ืงื™ื™ืŸ ืฆื•ื•ืขืง. ืคื™ื ืึทื ืฆื™ืขืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ SQLite ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ืึท ืกืคึผืขืฉืœื™ ื‘ืืฉืืคืŸ ืงืึธื ืกืึธืจื˜ื™ื•ื, ื•ื•ืึธืก ื›ื•ืœืœ ืงืึธืžืคึผืึทื ื™ืขืก ืึทื–ืึท ื•ื•ื™ ืึทื“ืึธื•ื‘ื™, ืึธืจืึทืงืœืข, ืžืึธื–ื™ืœืœืึท, ื‘ืขื ื˜ืœื™ื™ ืื•ืŸ ื‘ืœื•ืžื‘ืขืจื’.

ื”ื•ื™ืคึผื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ:

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ (ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ ืฉืคืืœื˜ืŸ), ื•ื•ืึธืก ืœืึธื–ืŸ ืื™ืจ ืฆื• ื“ืขืคื™ื ื™ืจืŸ ืึท ื–ื™ื™ึทืœ ื•ื•ืขืŸ ืื™ืจ ืžืึทื›ืŸ ืึท ื˜ื™ืฉ ื•ื•ืขืžืขื ืก ื•ื•ืขืจื˜ ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืืŸ ืื ื“ืขืจ ื–ื™ื™ึทืœ. ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึธื“ืขืจ ื•ื•ื™ืจื˜ื•ืึทืœ (ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืื•ื™ืฃ ื“ื™ ืคืœื™ืขืŸ ืžื™ื˜ ื™ืขื“ืขืจ ืึทืงืกืขืก) ืึธื“ืขืจ ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก (ื’ืขืจืื˜ืขื•ื•ืขื˜ ื™ืขื“ืขืจ ืžืึธืœ ื“ื™ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืฉืคืืœื˜ืŸ ื–ืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜). ื“ืขืจ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ ืื™ื– ื‘ืืจืขื›ื˜ื™ื’ื˜ ื‘ืœื•ื™ื– ืื™ืŸ ืœื™ื™ืขื ืขืŸ ืžืึธื“ืข (ื˜ืฉืึทื ื’ืขืก ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ื‘ืœื•ื™ื– ื“ื•ืจืš ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™ ื•ื•ืขืจื˜ ืื™ืŸ ืืŸ ืื ื“ืขืจ ื–ื™ื™ึทืœ ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ื“ื™ ื›ืขื–ืฉื‘ืŸ). ืœืžืฉืœ:

    ืฉืึทืคึฟืŸ ื˜ื™ืฉ ื˜1(
    ืึท ื™ื ื˜ืึทื“ื–ืฉืขืจ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ,
    b INT,
    c ื˜ืขืงืกื˜,
    ื“ ื™ื ื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉื˜ืขื ื“ื™ืง ื•ื•ื™ (ืึท * ืึทื‘ืก (ื‘)) ื•ื•ื™ืจื˜ื•ืึทืœ,
    ื˜ืขืงืกื˜ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉื˜ืขื ื“ื™ืง ื•ื•ื™ (ืกื•ื‘ืกื˜ืจ (c,b,b+1)) ืกื˜ืึธืจื“
    );

  • ืฆื•ื’ืขื’ืขื‘ืŸ PRAGMA ื˜ืจืึทืกื˜ื™ื“_ืกื˜ืฉืขืžืึท, ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ SQLITE_DBCONFIG_TRUSTED_SCHEMA ืื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืึธืคึผืฆื™ืข "-DSQLITE_TRUSTED_SCHEMA", ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ืฉื•ืฅ ืงืขื’ืŸ ืื ืคืืœืŸ ื“ื•ืจืš ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ืกื˜ืฉืขืžืึท ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืึทืงื˜ื™ื•ื• ืฉื•ืฅ ืจื™ืกื˜ืจื™ืงืฅ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืกืงืœ ืคืึทื ื’ืงืฉืึทื ื– (ื ื™ื˜ ืื ื’ืขืฆื™ื™ื›ื ื˜ SQLITE_INNOCOUS) ืื™ืŸ ื˜ืจื™ื’ืขืจื–, ืงื•ืงืŸ, ื˜ืฉืขืง ืื•ืŸ ื“ื™ืคืึธืœื˜ ืกื˜ื™ื™ื˜ืžืึทื ืฅ, ื™ื ื“ืขืงืกื™ื– ืื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ. ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื˜ื™ืฉืŸ ืื™ืŸ ื˜ืจื™ื’ืขืจื– ืื•ืŸ ืงื•ืงืŸ ืื™ื– ืื•ื™ืš ืคืึทืจืงืจื™ืคึผืœื˜ ืกื™ื™ึทื“ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ื˜ื™ืฉ ืื™ื– ื‘ืคื™ืจื•ืฉ ื“ืขืจืงืœืขืจื˜ ืžื™ื˜ ื“ื™ SQLITE_VTAB_INNOCUOUS ืคืึธืŸ.
  • ื™ืžืคึผืœืึทืžืขื ื˜ืึทื“ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืฆื• SQL ืคืึทื ื’ืงืฉืึทื ื– ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– SQLITE_INNOCUOUS (ืžืฉืขื“ืœืขืš ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ืึธืคืขื ื’ืขืŸ ืื•ื™ืฃ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื•ืŸ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื‘ื™ื™ื–ืข ืึทืงืฉืึทื ื–) ืื•ืŸ SQLITE_DIRECTONLY (ื‘ืœื•ื™ื– ื“ื™ืจืขืงื˜ ืจื•ืคืŸ ืื™ืŸ SQL ืงื•ื•ื™ืจื™ื–, ืึธืŸ ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ื ื™ืฆืŸ ื˜ืจื™ื’ืขืจื–, ืงื•ืงืŸ ืื•ืŸ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ื“ื™ื™ืึทื’ืจืึทืžื–);
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืžืึธื“ื•ืœืข uuid ืžื™ื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’ UUID (RFC-4122);
  • ืฆื•ื’ืขื’ืขื‘ืŸ PRAGMA hard_heap_limit ืื•ืŸ ืคื•ื ืงืฆื™ืึธื ื™ืจืŸ sqlite3_hard_heap_limit64() ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืžืึทืงืกื™ืžื•ื ืงื•ืคึผืข ื’ืจื™ื™ืก;
  • ืื™ืŸ ืคึผืจืึทื’ืžืึท function_list ืฆื•ื’ืขืœื™ื™ื’ื˜ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื˜ื™ืคึผ, ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ ื ื•ืžืขืจ ืคื•ืŸ ืึทืจื’ื•ืžืขื ื˜ืŸ ืคื•ืŸ ื™ืขื“ืขืจ ืคึฟื•ื ืงืฆื™ืข;
  • ืฆื• ื•ื•ื™ืจื˜ื•ืึทืœ ื˜ื™ืฉ DBSTAT ืฆื•ื’ืขื’ืขื‘ืŸ ื“ืึทื˜ืŸ ืึทื’ื’ืจืขื’ืึทื˜ื™ืึธืŸ ืžืึธื“ืข;
  • sqlite3_open_v2() ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ื™ SQLITE_OPEN_NOFOLLOW ืึธืคึผืฆื™ืข, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ืขืคืŸ ืคื•ืŸ ืกื™ืžื‘ืึธืœื™ืฉ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ืขืŸ;
  • ืคืืจ ื˜ืขื ื” ืฉื˜ืขื’, ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ืฆื• JSON ืคืึทื ื’ืงืฉืึทื ื–, ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ "#-N" ืžืขื ื’ืข ื ืึธื•ื˜ื™ื™ืฉืึทืŸ;
  • ืื™ืŸ ื“ื™ ื–ื™ืงืึธืจืŸ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืกื™ืกื˜ืขื ืงื•ืง ื–ื™ื™ึทื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืฆื•ื•ื™ื™ ื‘ืึทื–ื•ื ื“ืขืจ ื–ื™ืงืึธืจืŸ ืคึผืึธืึธืœืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืึทืœืึทืงื™ื™ื˜ ื‘ืœืึทืงืก ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื™ื–ืขืก (ืฆืขืฉื™ื™ื“ื•ื ื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื™ืงืกืคึผืึทื ื“ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ืœื•ืงืึทืกื™ื™ื“ ืกื™ืกื˜ืขื, ื‘ืฉืขืช ืจื™ื“ื•ืกื™ื ื’ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ื‘ืึทืคืขืจ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ื™ืขื“ืขืจ ืงืฉืจ ืคื•ืŸ 120 ืฆื• 48 KB);
  • PRAGMA ืฉื˜ื™ืฆืŸ ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜ legacy_file_format, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื•ื•ืึทืงื•ื•ื, ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ ืื•ืŸ ืืจืืคื ื™ื“ืขืจืŸ ื™ื ื“ืขืงืกื™ื– (ืœืขื’ืึทื˜ ืคึฟืึธืจืžืึทื˜ ืฉื˜ื™ืฆืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื•ืžื’ืขืงืขืจื˜ ื“ื•ืจืš ื“ื™ SQLITE_DBCONFIG_LEGACY_FILE_FORMAT ืคืึธืŸ ืื™ืŸ sqlite3_db_config ()).

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’