DuckDB 1.4.0, āĻāĻāĻāĻŋ DBMS āϝāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖāĻžāϤā§āĻŽāĻ āĻĒā§āϰāĻļā§āύ āϏāĻŽā§āĻĒāĻžāĻĻāύā§āϰ āĻāĻĒāϰ āĻĻā§āώā§āĻāĻŋ āύāĻŋāĻŦāĻĻā§āϧ āĻāϰ⧠āĻāĻŦāĻ āϧāĻžāϰāĻŖāĻžāĻāϤāĻāĻžāĻŦā§ SQLite-āĻāϰ āĻŽāϤā§, āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ DuckDB SQLite-āĻāϰ āĻāĻŽā§āĻĒā§āϝāĻžāĻā§āĻ āϏāĻžāĻāĻ, āĻĒā§āϞāĻžāĻā§āĻŦāϞ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ, āϏāĻŋāĻā§āĻā§āϞ-āĻĢāĻžāĻāϞ āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏā§āĻā§āϰā§āĻ āĻāĻŦāĻ CLI āĻāύā§āĻāĻžāϰāĻĢā§āϏāĻā§ āĻŦāĻŋāĻļā§āϞā§āώāĻŖāĻžāϤā§āĻŽāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ āĻā§āώāĻŽāϤāĻž āĻāĻŦāĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰ⧠āϝāĻž āϏāĻā§āĻāĻŋāϤ āĻĄā§āĻāĻžāϰ āĻāĻāĻāĻŋ āĻŦā§āĻšā§ āĻ āĻāĻļāĻā§ āĻŦāĻŋāϏā§āϤā§āϤ āĻāϰā§, āϝā§āĻŽāύ āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻž āĻŦāĻž āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻā§āĻŦāĻŋāϞ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻžāĨ¤ āĻĒā§āϰāĻāϞā§āĻĒ āĻā§āĻĄāĻāĻŋ C++ āϤ⧠āϞā§āĻāĻž āĻāĻŦāĻ MIT āϞāĻžāĻāϏā§āύā§āϏā§āϰ āĻ āϧā§āύ⧠āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
DuckDB SQL āĻāĻžāώāĻžāϰ āĻāĻāĻāĻŋ āĻŦāϰā§āϧāĻŋāϤ āĻāĻĒāĻāĻžāώāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āϝāĻž āĻ āϤā§āϝāύā§āϤ āĻāĻāĻŋāϞ āĻāĻŦāĻ āĻĻā§āϰā§āĻāϏā§āĻĨāĻžāϝāĻŧā§ āĻĒā§āϰāĻļā§āύāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻā§āώāĻŽāϤāĻž āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āĨ¤ āĻāĻāĻŋāϞ āĻĒā§āϰāĻāĻžāϰ (āĻ ā§āϝāĻžāϰā§, āĻāĻžāĻ āĻžāĻŽā§, āĻāĻāύāĻŋāϝāĻŧāύ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϏāĻŽā§āĻāĻŦ, āϏā§āĻāϏāĻžāĻĨā§ āĻāĻā§āĻāĻžāĻŽāϤ āĻāĻŦāĻ āύā§āϏā§āĻā§āĻĄ āĻā§āϰāĻŋāϞā§āĻā§āĻĄ āϏāĻžāĻŦāĻā§āϝāĻŧā§āϰāĻŋāĻā§āϞāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āϏāĻŽā§āĻāĻŦāĨ¤ āĻāĻāĻžāϧāĻŋāĻ āĻĒā§āϰāĻļā§āύā§āϰ āĻāĻāϝā§āĻā§ āϏāĻŽā§āĻĒāĻžāĻĻāύ, CSV āĻāĻŦāĻ Parquet āĻĢāĻžāĻāϞ āĻĨā§āĻā§ āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϰāĻļā§āύā§āϰ āϏāĻŽā§āĻĒāĻžāĻĻāύ āϏāĻŽāϰā§āĻĨāĻŋāϤāĨ¤ PostgreSQL DBMS āĻĨā§āĻā§ āĻāĻŽāĻĻāĻžāύāĻŋāϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āĻāĻĒāϞāĻŦā§āϧāĨ¤
āĻāĻ āĻĒā§āϰāĻāϞā§āĻĒā§ SQLite āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻļā§āϞ, PostgreSQL āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāϰā§āϏāĻžāϰ, MonetDB āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĄā§āĻ āĻŽā§āϝāĻžāĻĨ āĻāĻĒāĻžāĻĻāĻžāύ, āĻāĻāύā§āĻĄā§ āĻĢāĻžāĻāĻļāύā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ (āϏā§āĻāĻŽā§āύā§āĻ āĻā§āϰāĻŋ āĻ ā§āϝāĻžāĻā§āϰāĻŋāĻā§āĻļāύ āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰā§), RE2 āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ āĻĒā§āϰāϏā§āϏāϰ, āύāĻŋāĻāϏā§āĻŦ āĻā§āϝāĻŧā§āϰāĻŋ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻžāϰ, āĻāĻāϝā§āĻā§ āĻāĻžāϰā§āϝ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻĒāϰāĻŋāĻāĻžāϞāύāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ MVCC āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž (āĻŽāĻžāϞā§āĻāĻŋ-āĻāĻžāϰā§āϏāύ āĻāύāĻāĻžāϰā§āύā§āϏāĻŋ āĻāύā§āĻā§āϰā§āϞ) āĻāĻŦāĻ āĻšāĻžāĻāĻĒāĻžāϰ-āĻĒāĻžāĻāĻĒāϞāĻžāĻāύāĻŋāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύ āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāĻāĻāĻŋ āĻā§āĻā§āĻāϰāĻžāĻāĻāĻĄ āĻā§āϝāĻŧā§āϰāĻŋ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύ āĻāĻā§āĻāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻāĻāĻāĻŋ āĻ āĻĒāĻžāϰā§āĻļāύ⧠āĻŦā§āĻšā§ āĻŽāĻžāύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤
āύāϤā§āύ āĻŦāĻŋāĻļā§āĻŦā§:
- āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĢāĻžāĻāϞ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŽāϰā§āĻĨāύāĨ¤ GCM āĻŽā§āĻĄā§ āĻāύāĻā§āϰāĻŋāĻĒāĻļāύā§āϰ āĻāύā§āϝ AES-256 āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ⧠āĻā§āĻŦāϞ āĻĒā§āϰāϧāĻžāύ āĻĄā§āĻāĻž āĻĢāĻžāĻāϞāĻ āύāϝāĻŧ, WAL āϞāĻ āĻāĻŦāĻ āĻ āϏā§āĻĨāĻžāϝāĻŧā§ āĻĢāĻžāĻāϞāĻ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻĨāĻžāĻā§āĨ¤ ENCRYPTION_KEY āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ ATTACH āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ āĻā§āĻā§āϞāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ ANC_db (ENCRYPTION_KEY 'quack_quack') ATTACH āĻāϰā§āύ;
- MERGE INTO āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻāύā§āϝ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŽāϰā§āĻĨāύ, āϝāĻž INSERT âĻ ON CONFLICT āϏā§āĻā§āĻāĻŽā§āύā§āĻā§āϰ āĻŦāĻŋāĻāϞā§āĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§, āĻāϰ āĻāύā§āϝ āĻā§āύāĻ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻž āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻā§āĻāĻžāĻŽāϤ āĻŽāĻžāϰā§āĻ āĻļāϰā§āϤā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰā§āĨ¤ MERGE INTO āĻāĻŽāĻžāύā§āĻĄ āĻāĻĒāύāĻžāĻā§ āĻļāϰā§āϤāϏāĻžāĻĒā§āĻā§āώ SQL āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āϝāĻž āĻāĻāĻāĻŋ āĻāĻāĻ āϏā§āĻā§āĻāĻŽā§āύā§āĻā§ INSERT, UPDATE āĻāĻŦāĻ DELETE āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋāĻā§ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, MERGE āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻāĻĒāύāĻŋ āĻĻā§āĻāĻŋ āĻā§āĻŦāĻŋāϞ āĻŽāĻžāϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āϰā§āĻāϰā§āĻĄ āϏāύā§āύāĻŋāĻŦā§āĻļ āĻāϰāĻžāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύāĻā§āϞāĻŋ āĻāĻĒāĻĄā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ deletes(item_id, delete_threshold) AS (VALUES (10, 3000)) āĻāϰ āϏāĻžāĻĨā§ MERGE INTO Stock āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŽā§āĻā§ āĻĢā§āϞāĻž āĻšāϝāĻŧ USING (item_id) WHEN MATCHED AND balance <delete_threshold THEN DELETE RETURNING merge_action, *;
- āĻ ā§āϝāĻžāĻĒāĻžāĻāĻŋ āĻāĻāϏāĻŦāĻžāϰā§āĻ āĻĢāϰā§āĻŽā§āϝāĻžāĻā§ āĻā§āĻŦāĻŋāϞā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āϞā§āĻāĻžāϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§āϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ (āĻāĻā§, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒāĻ āύ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒ āϏāĻŽāϰā§āĻĨāĻŋāϤ āĻāĻŋāϞ), āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻāϏāĻŦāĻžāϰā§āĻ āĻĨā§āĻā§ āĻĄāĻžāĻāĻĄāĻŋāĻŦāĻŋāϤ⧠āĻĄā§āĻāĻž āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āĻāĻŦāĻ āĻāϰ āĻŦāĻŋāĻĒāϰā§āϤā§āĻāĨ¤
- āĻāĻŽāĻžāύā§āĻĄ āϞāĻžāĻāύ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻāĻāĻŋ āĻ āĻĒāĻžāϰā§āĻļāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻ āĻā§āϰāĻāϤāĻŋ āύāĻŋāϰā§āĻĻā§āĻļāĻ āϏāĻš āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āϏāĻŽāĻžāĻĒā§āϤāĻŋāϰ āĻāύā§āϝ āĻ āĻŦāĻļāĻŋāώā§āĻ āϏāĻŽāϝāĻŧ āĻĒā§āϰā§āĻŦāĻžāĻāĻžāϏ āĻĻā§āϝāĻŧāĨ¤
- FILL window āĻĢāĻžāĻāĻļāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻ āϰā§āĻĄāĻžāϰ āĻāϰāĻž āĻāĻāύā§āĻĄā§āϤ⧠āĻ āύā§āĻĒāϏā§āĻĨāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋāĻā§ āĻāύā§āĻāĻžāϰāĻĒā§āϞā§āĻ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ FROM (VALUES (1, 1), (2, NULL), (3, 42)) t(c1, c2) SELECT fill(c2) OVER (ORDER BY c1) f; 1 21 42
- āĻā§āϰāĻžāĻĄā§āĻāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āϏā§āĻĨāĻžāĻĒāύā§āϰ āĻāύā§āϝ āĻā§āϰāĻžāĻĄā§āĻāĻž āĻāĻžāύā§āĻā§āĻāϰ āĻ ā§āϝāĻžāĻĄ-āĻ āύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻ āĻ ā§āϝāĻžāĻĄ-āĻ āύ āĻāĻĒāύāĻžāĻā§ āĻā§āĻŦāĻŋāϞāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤā§, āĻā§āϝāĻŧā§āϰāĻŋāĻā§āϞāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāϤ⧠āĻāĻŦāĻ āϏāϰāĻžāϏāϰāĻŋ āĻā§āϰāĻžāĻĄā§āĻāĻžāϤ⧠DuckDB āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠SQL āĻāĻŽāĻžāύā§āĻĄāĻā§āϞāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤
- āĻāύ-āĻŽā§āĻŽā§āϰāĻŋ āĻā§āĻŦāĻŋāϞ āĻā§āĻāĻĒāϝāĻŧā§āύā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϏāĻŽāϰā§āĻĨāύ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āĻāĻŽā§āĻĒā§āϰā§āĻļāύ āϏāĻŽāϰā§āĻĨāύ āϏāĻā§āώāĻŽ āĻāϰā§āĨ¤ āĻā§āĻāĻĒāϝāĻŧā§āύā§āĻāĻŋāĻ āĻŽā§āĻā§ āĻĢā§āϞāĻž āϏāĻžāϰāĻŋāĻā§āϞāĻŋāĻ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻŽā§āĻā§ āĻĢā§āϞāĻžāϰ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§āϰ āĻĒāϰ⧠āϏā§āĻĨāĻžāύ āĻĒā§āύāϰā§āĻĻā§āϧāĻžāϰ āĻāϰā§āĨ¤ ATTACH ':memory:' AS memory_compressed (COMPRESS);
- āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§: āϏāϰā§āĻāĻŋāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύāĻā§ āĻāĻāĻāĻŋ k-āĻāϝāĻŧā§ āĻŽāĻžāϰā§āĻ āϏāϰā§āĻ āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽā§ āϏā§āϝā§āĻāĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻĄā§āĻāĻž āĻāϞāĻžāĻāϞ āĻšā§āϰāĻžāϏ āĻāϰā§āĨ¤ āĻāĻŽāύ āĻā§āĻŦāĻŋāϞ āĻāĻā§āϏāĻĒā§āϰā§āĻļāύ (CTEs) āĻāĻāύ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧāĨ¤
āĻāϤā§āϏ: opennet.ru
