ืžื”ื“ื•ืจืช SQLite 3.35

ื”ื•ืฆืืช SQLite 3.35, DBMS ืงืœ ืžืฉืงืœ ืฉืชื•ื›ื ืŸ ื›ืกืคืจื™ื™ืช ืคืœืื’ื™ืŸ, ืคื•ืจืกืžื”. ืงื•ื“ SQLite ืžื•ืคืฅ ื‘ืจืฉื•ืช ื”ืฆื™ื‘ื•ืจ, ื›ืœื•ืžืจ. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ืœืœื ื”ื’ื‘ืœื•ืช ื•ืœืœื ืชืฉืœื•ื ืœื›ืœ ืžื˜ืจื”. ืชืžื™ื›ื” ืคื™ื ื ืกื™ืช ืœืžืคืชื—ื™ SQLite ื ื™ืชื ืช ืขืœ ื™ื“ื™ ืงื•ื ืกื•ืจืฆื™ื•ื ืฉื ื•ืฆืจ ื‘ืžื™ื•ื—ื“, ื”ื›ื•ืœืœ ื—ื‘ืจื•ืช ื›ืžื• ืื“ื•ื‘ื™, ืื•ืจืงืœ, ืžื•ื–ื™ืœื”, ื‘ื ื˜ืœื™ ื•ื‘ืœื•ืžื‘ืจื’.

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื:

  • ื ื•ืกืคื• ืคื•ื ืงืฆื™ื•ืช ืžืชืžื˜ื™ื•ืช ืžื•ื‘ื ื•ืช (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" ืžืืคืฉืจ ื”ืฉืžื˜ืช ืคืจืžื˜ืจ ืงื‘ื™ืขืช ื”ืงื•ื ืคืœื™ืงื˜ ืขืœ ืžื ืช ืœื”ืฉืชืžืฉ ื‘-"DO UPDATE".
  • ืคืขื•ืœื•ืช ื”-DELETE, INSERT ื•-UPDATE ืชื•ืžื›ื•ืช ื‘ื‘ื™ื˜ื•ื™ RETURNING, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ืฆื™ื’ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืจืฉื•ืžื” ืฉื ืžื—ืงื”, ื”ื•ื›ื ืกื” ืื• ืฉื•ื ื”. ืœื“ื•ื’ืžื”, ื”ื‘ื™ื˜ื•ื™ "ื”ื›ื ืก ืœืชื•ืš ... ืžื–ื”ื” ื—ื•ื–ืจ" ื™ื—ื–ื™ืจ ืืช ื”ืžื–ื”ื” ืฉืœ ื”ืฉื•ืจื” ืฉื ื•ืกืคื”, ื•"ืขื“ื›ื•ืŸ ... ืงื‘ืข ืžื—ื™ืจ = ืžื—ื™ืจ * 1.10 ืžื—ื™ืจ ื—ื•ื–ืจ" ื™ื—ื–ื™ืจ ืืช ืขืจืš ื”ืžื—ื™ืจ ืฉื”ืฉืชื ื”.
  • ืขื‘ื•ืจ ื‘ื™ื˜ื•ื™ื™ ื˜ื‘ืœื” ื ืคื•ืฆื™ื (CTE), ื”ืžืืคืฉืจื™ื ืฉื™ืžื•ืฉ ื‘ืงื‘ื•ืฆื•ืช ืชื•ืฆืื•ืช ื–ืžื ื™ื•ืช ืขื ืฉื ืฉืฆื•ื™ื ื• ื‘ืืžืฆืขื•ืช ื”ืฆื”ืจืช WITH, ื”ื‘ื—ื™ืจื” ื‘ืžืฆื‘ื™ื "MATERIALIZED" ื•-"NOT MATERIALIZED" ืžื•ืชืจืช. "MATERIALIZED" ืžืจืžื– ืขืœ ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ื”ืฉืื™ืœืชื” ืฉืฆื•ื™ื ื” ื‘ืชืฆื•ื’ื” ื‘ื˜ื‘ืœื” ืคื™ื–ื™ืช ื ืคืจื“ืช ื•ืœืื—ืจ ืžื›ืŸ ืฉืœื™ืคืช ื ืชื•ื ื™ื ืžื˜ื‘ืœื” ื–ื•, ื•ืขื "NOT MATERIALIZED" ื™ื‘ื•ืฆืขื• ืฉืื™ืœืชื•ืช ื—ื•ื–ืจื•ืช ื‘ื›ืœ ืคืขื ืฉื ื™ื’ืฉื™ื ืœืชืฆื•ื’ื”. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ SQLite ื”ื™ื™ืชื” ื‘ืžืงื•ืจ "NOT MATERIALIZED", ืืš ื›ืขืช ื”ืฉืชื ืชื” ืœ-"MATERIALIZED" ืขื‘ื•ืจ CTEs ื‘ืฉื™ืžื•ืฉ ื™ื•ืชืจ ืžืคืขื ืื—ืช.
  • ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื•ืคื—ืชืช ื‘ืขืช ื‘ื™ืฆื•ืข ืคืขื•ืœืช VACUUM ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื”ื›ื•ืœืœื™ื ืขืจื›ื™ TEXT ืื• BLOB ื’ื“ื•ืœื™ื ืžืื•ื“.
  • ื ืขืฉืชื” ืขื‘ื•ื“ื” ื›ื“ื™ ืœื”ื’ื‘ื™ืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื›ืœื™ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื•ืžืชื›ื ืŸ ื”ืฉืื™ืœืชื•ืช:
    • ื ื•ืกืคื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ื”ืžื™ื ื™ืžื•ื ื•ื”ืžืงืกื™ืžื•ื ืขื ื”ื‘ื™ื˜ื•ื™ "IN".
    • ื”ื‘ื™ืฆื•ืข ืฉืœ ื”ืฆื”ืจืช EXISTS ื”ื•ืืฆื”.
    • ื”ื˜ืžืขื” ื”ืจื—ื‘ื” ืฉืœ ืฉืื™ืœืชื•ืช ืžืฉื ื” ืžื‘ื™ื˜ื•ื™ื™ UNION ALL ื”ืžืฉืžืฉื™ื ื›ื—ืœืง ืž-JOIN.
    • ื”ืื™ื ื“ืงืก ืžืฉืžืฉ ืœื‘ื™ื˜ื•ื™ื™ IS NOT NULL.
    • ืžื•ื•ื“ื ืฉ-"x IS NULL" ื•-"x IS NOT NULL" ื™ื•ืžืจื• ืœ-FALSE ืื• TRUE ืขื‘ื•ืจ ืขืžื•ื“ื•ืช ืฉื™ืฉ ืœื”ืŸ ืืช ื”ืชื›ื•ื ื” "NOT NULL".
    • ื“ืœื’ ืขืœ ื‘ื“ื™ืงืช ืžืคืชื—ื•ืช ื–ืจื™ื ื‘-UPDATE ืื ื”ืคืขื•ืœื” ืœื ืžืฉื ื” ืืช ื”ืขืžื•ื“ื•ืช ื”ืžืฉื•ื™ื›ื•ืช ืœืžืคืชื— ื”ื–ืจ.
    • ืžื•ืชืจ ืœื”ืขื‘ื™ืจ ื—ืœืงื™ื ืžื‘ืœื•ืง WHERE ืœืชื•ืš ืฉืื™ืœืชื•ืช ืžืฉื ื” ื”ืžื›ื™ืœื•ืช ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ, ื›ืœ ืขื•ื“ ื—ืœืงื™ื ืืœื• ืžื•ื’ื‘ืœื™ื ืœืขื‘ื•ื“ื” ืขื ืงื‘ื•ืขื™ื ื•ื”ืขืชืงื™ื ืฉืœ ื‘ื™ื˜ื•ื™ื™ื ืžื‘ืœื•ืงื™ื PARTITION BY ื”ืžืฉืžืฉื™ื ื‘ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ.
  • ืฉื™ื ื•ื™ื™ื ื‘ืžืžืฉืง ืฉื•ืจืช ื”ืคืงื•ื“ื”:
    • ื ื•ืกืคื” ื”ืคืงื•ื“ื” ".filectrl data_version".
    • ื”ืคืงื•ื“ื•ืช ".once" ื•-".output" ืชื•ืžื›ื•ืช ื›ืขืช ื‘ื”ืขื‘ืจืช ืคืœื˜ ืœืžื˜ืคืœ ื”ื ืงืจื ื‘ืืžืฆืขื•ืช ืฆื™ื ื•ืจื•ืช ืœืœื ืฉื ("|").
    • ื”ืืจื’ื•ืžื ื˜ื™ื "stmt" ื•-"vmstep" ื ื•ืกืคื• ืœืคืงื•ื“ื” ".stats" ื›ื“ื™ ืœื”ืฆื™ื’ ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืขืœ ื‘ื™ื˜ื•ื™ื™ื ื•ืžื“ื“ื™ ืžื—ืฉื‘ ื•ื™ืจื˜ื•ืืœื™.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”