DBMS SQLite 3.42 āĻāĻŦāĻ‚ DuckDB 0.8.0 āĻāĻ° āĻ°āĻŋāĻ˛āĻŋāĻœāĨ¤ SQLite-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻš CG/SQL

SQLite 3.42 āĻāĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛āĻžāĻ—-āĻ‡āĻ¨ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŸāĻ“āĻ¯āĻŧā§‡āĻŸ DBMS, āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ SQLite āĻ•ā§‹āĻĄ āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻĄā§‹āĻŽā§‡āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻŽāĻ¨ āĻ¸ā§€āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ SQLite āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°ā§āĻĨāĻŋāĻ• āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ¨āĻ¸ā§‹āĻ°ā§āĻŸāĻŋāĻ¯āĻŧāĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ Adobe, Oracle, Mozilla, Bentley āĻāĻŦāĻ‚ Bloomberg āĻāĻ° āĻŽāĻ¤ā§‹ āĻ•ā§‹āĻŽā§āĻĒāĻžāĻ¨āĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ…āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž:

  • FTS5 āĻĒā§‚āĻ°ā§āĻŖ-āĻĒāĻžāĻ ā§āĻ¯ āĻ¸ā§‚āĻšā§€āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯, āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤-āĻŽā§āĻ›ā§āĻ¨ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻžāĻ° āĻĒāĻ°ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻĄā§‡āĻŸāĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°ā§‡āĨ¤
  • JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨ JSON5 āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ā§ˇ
  • āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻ¨āĻžāĻ°āĨ¤ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸ-āĻ…āĻĢ-āĻ­āĻŋāĻ‰ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ¸āĻ•ā§āĻˇāĻŽāĨ¤ āĻ¸āĻžāĻŦāĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋāĻ¤ā§‡ āĻ…āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ•āĻ˛āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚ āĻŦāĻžāĻĻ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻĒā§āĻļ-āĻĄāĻžāĻ‰āĻ¨ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤
  • āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻĒāĻœā§āĻœāĻ¨āĻ• āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¯ā§‡āĻŽāĻ¨ ".testctrl" āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§‡ CLI-āĻ¤ā§‡ "--unsafe-testing" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻŽā§‹āĻĄā§‡ ("--āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ"), ".āĻ˛āĻ— āĻ…āĻ¨" āĻāĻŦāĻ‚ ".āĻ˛āĻ— āĻ…āĻĢ" āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ā§ˇ "—" āĻŦāĻŋāĻ­āĻžāĻœāĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻžāĻ° āĻĒāĻ°ā§‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ‡āĻ¨āĻĢāĻŋāĻ¨āĻŋāĻŸāĻŋ āĻāĻŦāĻ‚ NaN āĻŽāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§āĻ•ā§āĻ¤ ":inf" āĻāĻŦāĻ‚ ":nan" āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨-āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ SQL āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•ā§āĻ°āĻ¸, āĻĒā§‚āĻ°ā§āĻŖ, āĻ­āĻŋāĻ¤āĻ°ā§‡āĻ°, āĻŦāĻžāĻŽ, āĻĒā§āĻ°āĻžāĻ•ā§ƒāĻ¤āĻŋāĻ•, āĻŦāĻžāĻ‡āĻ°ā§‡āĻ° āĻāĻŦāĻ‚ āĻĄāĻžāĻ¨ āĻ•ā§€āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ›ā§‡āĻĻ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ
  • āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ PRAGMA āĻ…āĻ–āĻŖā§āĻĄāĻ¤āĻž_āĻšā§‡āĻ• āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ NOT NULL āĻļāĻ°ā§āĻ¤ āĻ¸āĻš āĻ•āĻ˛āĻžāĻŽā§‡ NaN āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻšā§‡āĻ• āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§.
  • āĻ¸ā§‡āĻļāĻ¨ āĻ¸āĻ‚āĻ¯ā§‹āĻœāĻ¨ ROWID āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻŦāĻžāĻ§āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤
  • "āĻ¸āĻžāĻŦāĻ¸ā§‡āĻ•" āĻ¸āĻ‚āĻļā§‹āĻ§āĻ•āĻŸāĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻ­āĻ—ā§āĻ¨āĻžāĻ‚āĻļ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻŋāĻ–ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • 2000 āĻĨā§‡āĻ•ā§‡ 1000 āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻāĻŦāĻ‚ JSON āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤ āĻ—āĻ­ā§€āĻ°āĻ¤āĻž āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, DuckDB 0.8.0 DBMS āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž SQLite āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°ā§‡, āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĄā§‡āĻŸāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ…āĻ‚āĻļāĻ•ā§‡ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°ā§‡ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ• āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻāĻŦāĻ‚ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¸āĻš āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻŦāĻž āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻ°āĻž āĻŦāĻĄāĻŧ āĻŸā§‡āĻŦāĻŋāĻ˛āĨ¤ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ­āĻžāĻˇāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ‰āĻĒāĻ­āĻžāĻˇāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻœāĻŸāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻĻā§€āĻ°ā§āĻ˜āĻŽā§‡āĻ¯āĻŧāĻžāĻĻā§€ āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻœāĻŸāĻŋāĻ˛ āĻĒā§āĻ°āĻ•āĻžāĻ°ā§‡āĻ° (āĻ…ā§āĻ¯āĻžāĻ°ā§‡, āĻ•āĻžāĻ āĻžāĻŽā§‹, āĻ‡āĻ‰āĻ¨āĻŋāĻ¯āĻŧāĻ¨), āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻāĻ•āĻ¯ā§‹āĻ—ā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻ¨, āĻāĻŦāĻ‚ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻž CSV, JSON āĻāĻŦāĻ‚ Parquet āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻĢāĻžāĻ‡āĻ˛āĨ¤ PostgreSQL DBMS āĻĨā§‡āĻ•ā§‡ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤

SQLite āĻĨā§‡āĻ•ā§‡ āĻļā§‡āĻ˛ āĻ•ā§‹āĻĄ āĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ PostgreSQL āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, MonetDB āĻĨā§‡āĻ•ā§‡ āĻ¤āĻžāĻ°āĻŋāĻ– āĻ—āĻŖāĻŋāĻ¤ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨, āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ (āĻ¸ā§‡āĻ—āĻŽā§‡āĻ¨ā§āĻŸ āĻŸā§āĻ°āĻŋ āĻ…ā§āĻ¯āĻžāĻ—ā§āĻ°āĻŋāĻ—ā§‡āĻļāĻ¨ āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡), āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻ•ā§āĻ¸āĻĒā§āĻ°ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°āĨ¤ RE2 āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡, āĻāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻžāĻ°, MVCC āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛ āĻŽā§‡āĻ•āĻžāĻ¨āĻŋāĻœāĻŽ āĻāĻ•āĻ¯ā§‹āĻ—ā§‡ āĻ•āĻžāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ (āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻ­āĻžāĻ°ā§āĻ¸āĻ¨ āĻ•āĻ¨āĻ•āĻžāĻ°ā§‡āĻ¨ā§āĻ¸āĻŋ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛), āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻšāĻžāĻ‡āĻĒāĻžāĻ°-āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨āĻŋāĻ‚ āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ•ā§āĻŸāĻ°āĻžāĻ‡āĻœāĻĄ āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ‡āĻžā§āĻœāĻŋāĻ¨, āĻ¯āĻž āĻŦāĻĄāĻŧ āĻ¸ā§‡āĻŸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻāĻ• āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻāĻ•āĻŦāĻžāĻ°ā§‡ āĻŽāĻžāĻ¨āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ•ā§‹āĻĄ MIT āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

DuckDB āĻāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡:

  • āĻ¸āĻžāĻ°āĻŋāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ•āĻ˛āĻžāĻŽā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋ "PIVOT" āĻāĻŦāĻ‚ "UNPIVOT" āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡āĨ¤
  • āĻĄā§‡āĻŸāĻž āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻŦāĻ‚ āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ•āĻ°āĻŖāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, Parquet, CSV āĻāĻŦāĻ‚ JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ CSV āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽ āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻĨā§āĻ°ā§‡āĻĄā§‡āĻĄ āĻ°āĻžāĻ‡āĻŸāĻŋāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§ˇ
  • āĻĢāĻžāĻ‡āĻ˛ āĻĒāĻžāĻĨ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ‰āĻĒāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°āĻ¤ā§‡ "**" āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ¯ā§‡āĻŽāĻ¨ "'data/glob/crawl/stackoverflow/**/*.csv';") āĻĨā§‡āĻ•ā§‡āĨ¤
  • āĻŸāĻžāĻ‡āĻŽ āĻ¸āĻŋāĻ°āĻŋāĻœ (āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻŽāĻžāĻ¨ā§‡āĻ° āĻ¸ā§āĻ˛āĻžāĻ‡āĻ¸) āĻ†āĻ•āĻžāĻ°ā§‡ āĻĄā§‡āĻŸāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŽāĻžāĻ°ā§āĻœ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ (āĻ¯ā§‹āĻ—āĻĻāĻžāĻ¨) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ°ā§‡āĻ•āĻ°ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ¨āĻĻāĻŖā§āĻĄāĻŸāĻŋ āĻ¸āĻ āĻŋāĻ• āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ†āĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ• āĻŽāĻŋāĻ˛ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻŋ āĻ°ā§‡āĻ•āĻ°ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¸āĻŽāĻ¯āĻŧ āĻ¯āĻž 1 āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡āĻ° āĻŦā§‡āĻļāĻŋ āĻ¨āĻ¯āĻŧ)āĨ¤
  • āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŽā§‡āĻŸāĻžāĻĄā§‡āĻŸāĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĻŋāĻ¤ āĻ˛ā§‹āĻĄāĻŋāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ•āĻ¯āĻŧā§‡āĻ• āĻĄāĻœāĻ¨ āĻŦāĻžāĻ° DBMS āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻ—āĻ¤āĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹ āĻ¸āĻŽā§āĻ­āĻŦ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤
  • āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • Apache āĻ¤ā§€āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ ADBC ​​(Arrow Database Connectivity) API-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ¸ā§āĻ‡āĻĢāĻŸ āĻ•ā§‹āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨ā§āĻŸāĻŋāĻ—ā§āĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻĄāĻŋāĻ­āĻŋāĻļāĻ¨ ("/") āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°ā§‡āĻ° āĻ†āĻšāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻāĻ–āĻ¨ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦāĻŋāĻ­āĻžāĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ° "//" āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ "SET integer_division=true;" āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ†āĻšāĻ°āĻŖ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤
  • āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻžāĻ˛ āĻ°ā§‡āĻ•āĻ°ā§āĻĄāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ "NULLS FIRST" āĻĨā§‡āĻ•ā§‡ "NULLS LAST" āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ…āĻ°ā§āĻĨāĻžā§Ž NULL āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻļā§āĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻļā§‡āĻˇā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤ "SET default_null_order='nulls_first';" āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹ āĻ†āĻšāĻ°āĻŖ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, Facebook āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻ•āĻžāĻļāĻŋāĻ¤ CG/SQL āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ, āĻ¯āĻž SQLite-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•ā§‹āĻĄ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ CG/SQL āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ T-SQL (Transact-SQL) āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ‰āĻĒāĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ C āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ SQLite-āĻ āĻĄā§‡āĻŸāĻž āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ‰ā§ŽāĻĒāĻ¨ā§āĻ¨ āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŋ āĻ•ā§‹āĻĄā§‡ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻœāĻŸāĻŋāĻ˛ āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ SQLite C API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŋ, āĻœāĻžāĻ­āĻž āĻāĻŦāĻ‚ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸāĻŋāĻ­-āĻ¸āĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¸āĻŋ āĻ¤ā§‡ āĻ˛ā§‡āĻ–āĻž āĻāĻŦāĻ‚ āĻāĻŽāĻ†āĻ‡āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨