SQLite 3.35 เบ›เปˆเบญเบเบญเบญเบเบกเบฒ

เบเบฒเบ™เบ›เปˆเบญเบ SQLite 3.35, DBMS เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” plug-in, เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ. เบฅเบฐเบซเบฑเบ” SQLite เบ–เบทเบเปเบˆเบเบขเบฒเบเบขเบนเปˆเปƒเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ, i.e. เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปเบฅเบฐเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปƒเบ”เป†. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบเบฒเบ™เป€เบ‡เบดเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ SQLite เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบชเบฐเบกเบฒเบ„เบปเบกเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบกเบตเบšเปเบฅเบดเบชเบฑเบ”เป€เบŠเบฑเปˆเบ™ Adobe, Oracle, Mozilla, Bentley เปเบฅเบฐ Bloomberg.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เป€เบžเบตเปˆเบกเบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ (log2(), cos(), tg(), exp(), ln(), pow(), เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปƒเบ™ SQL. เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™เบ•เบปเบงเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบ "-DSQLITE_ENABLE_MATH_FUNCTIONS".
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš "ALTER TABLE DROP COLUMN" เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ„เปเบฅเปเบฒเบญเบญเบเบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบฅเบฐเบฅเบถเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ–เบฑเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ UPSERT (เป€เบžเบตเปˆเบกเบซเบผเบทเบ”เบฑเบ”เปเบเป‰) เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบ, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ„เปเบฒเป€เบงเบปเป‰เบฒเป€เบŠเบฑเปˆเบ™ "INSERT ... ON CONFLICT DO NOTHING/UPDATE" เป€เบžเบทเปˆเบญเบฅเบฐเป€เบฅเบตเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบทเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบชเปˆเบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก. เบ‚เปเป‰เบกเบนเบ™เบœเปˆเบฒเบ™ โ€œINSERTโ€ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบšเบฑเบ™เบ—เบถเบเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ” UPDATE เปเบ—เบ™ INSERT). เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ•เบฑเบ™ ON CONFLICT เบซเบผเบฒเบเบญเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบšเบฅเบฑเบญเบ "ON CONFLICT" เบชเบธเบ”เบ—เป‰เบฒเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เป€เบžเบทเปˆเบญเปƒเบŠเป‰ "เบญเบฑเบšเป€เบ”เบ”".
  • เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ DELETE, INSERT, เปเบฅเบฐ UPDATE เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ–เบทเบเบฅเบถเบš, เปƒเบชเปˆ, เบซเบผเบทเบ”เบฑเบ”เปเบเป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปเบฒเบงเปˆเบฒ "insert into ... returning id" เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ•เบปเบงเบฅเบฐเบšเบธเบ‚เบญเบ‡เปเบ–เบงเบ—เบตเปˆเป€เบžเบตเปˆเบก, เปเบฅเบฐ "update ... set price = price * 1.10 returning price" เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบฅเบฒเบ„เบฒเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡.
  • เบชเปเบฒเบฅเบฑเบš Common Table Expressions (CTE), เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบŠเบธเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบŠเบปเปˆเบงเบ„เบฒเบงเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ WITH, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡ "MATERIALIZED" เปเบฅเบฐ "NOTMATERIALIZED" เบฎเบนเบšเปเบšเบšเปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰. "MATERIALIZED" เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบกเบธเบกเป€เบšเบดเปˆเบ‡เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ™เบตเป‰, เปเบฅเบฐเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™ "เบšเปเปˆเปเบกเปˆเบ™เบงเบฑเบ”เบ–เบธ" เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. SQLite เป€เบ”เบตเบกเป„เบ”เป‰เบ•เบฑเป‰เบ‡เป„เบงเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ "เบšเปเปˆเป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธ", เปเบ•เปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ "MATERIALIZED" เบชเปเบฒเบฅเบฑเบš CTEs เปƒเบŠเป‰เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡.
  • เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ VACUUM เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบตเบ„เปˆเบฒ TEXT เบซเบผเบท BLOB เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ.
  • เบงเบฝเบเบ‡เบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ optimizer เปเบฅเบฐ query planner:
    • เป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบกเบทเปˆเบญเปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ min เปเบฅเบฐ max เบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ "IN".
    • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆ EXISTS เป„เบ”เป‰เบ–เบทเบเป€เบฅเบฑเปˆเบ‡.
    • เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเปˆเบญเบเบˆเบฒเบ UNION ALL expression เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡ JOIN.
    • เบ”เบฑเบ”เบŠเบฐเบ™เบตเปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ IS NOT NULL.
    • เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ "x IS NULL" เปเบฅเบฐ "x IS NOT NULL" เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ FALSE เบซเบผเบท TRUE เบชเปเบฒเบฅเบฑเบšเบ–เบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "NOT NULL".
    • เบ‚เป‰เบฒเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฐเปเบˆเบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”เปƒเบ™ UPDATE เบ–เป‰เบฒเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ–เบฑเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฐเปเบˆเบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”.
    • เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเป‰เบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡ WHERE block เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ subqueries เบ—เบตเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก, เบ•เบฒเบšเปƒเบ”เบ—เบตเปˆเบžเบฒเบเบชเปˆเบงเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบˆเบฒเบ PARTITION BY เบšเบฅเบฑเบญเบเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เปˆเบญเบ‡เบขเป‰เบฝเบก.
  • เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡:
    • เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡ ".fillectrl data_version" เปเบฅเป‰เบง.
    • เบ„เปเบฒเบชเบฑเปˆเบ‡ ".once" เปเบฅเบฐ ".output" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ›เบซเบฒเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เปเปˆเบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเบทเปˆ ("|").
    • เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡ โ€œstmtโ€ เปเบฅเบฐ โ€œvmstepโ€ เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡ โ€œ.statsโ€ เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™ เปเบฅเบฐเบ•เบปเบงเบ™เบฑเบšเป€เบ„เบทเปˆเบญเบ‡ virtual.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™