DBMS SQLite 3.30 ์ถœ์‹œ

๊ฒŒ์‹œ ๋จ ์„๋ฐฉํ•˜๋‹ค SQLite 3.30.0, ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ค๊ณ„๋œ ๊ฒฝ๋Ÿ‰ DBMS์ž…๋‹ˆ๋‹ค. SQLite ์ฝ”๋“œ๋Š” ๊ณต๊ฐœ ๋„๋ฉ”์ธ์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ชฉ์ ์œผ๋กœ๋“  ์ œํ•œ ์—†์ด ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SQLite ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ์ • ์ง€์›์€ Adobe, Oracle, Mozilla, Bentley ๋ฐ Bloomberg์™€ ๊ฐ™์€ ํšŒ์‚ฌ๋ฅผ ํฌํ•จํ•˜๋Š” ํŠน๋ณ„ํžˆ ๋งŒ๋“ค์–ด์ง„ ์ปจ์†Œ์‹œ์—„์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ:

  • "๋ผ๋Š” ํ‘œํ˜„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.FILTERยป ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ง‘๊ณ„ ํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋กœ๋งŒ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "ORDER BY" ๋ธ”๋ก์€ "NULL์ด ๋จผ์ €"๊ทธ๋ฆฌ๊ณ "๋งˆ์ง€๋ง‰์— NULL์ด ์žˆ์Œยป ์ •๋ ฌ ์‹œ NULL ๊ฐ’์ด ์žˆ๋Š” ์š”์†Œ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…๋ น ".๋‹ค์‹œ ๋ฎ๋‹คยป ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์†์ƒ๋œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์žฅ ์ค‘ ์œ ๋น„ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค ์ธ๋ฑ์‹ฑ ํ‘œํ˜„์‹;
  • PRAGMA index_info ๋ฐ PRAGMA index_xinfo๋Š” "WITHOUT ROWID" ๋ชจ๋“œ์—์„œ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์˜ ์ €์žฅ์†Œ ๋ ˆ์ด์•„์›ƒ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • API ์ถ”๊ฐ€ sqlite3_drop_modules(), ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์˜ ์ž๋™ ๋กœ๋“œ๋ฅผ ๊ธˆ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • writable_schema ๋ชจ๋“œ๊ฐ€ ์•„๋‹Œ ์ƒํƒœ์—์„œ ์—ฐ๊ฒฐ ์‹œ sqlite_master ํ…Œ์ด๋ธ”์˜ type, name, tbl_name ์ปฌ๋Ÿผ์ด ์†์ƒ๋œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ํŒŒ์„œ๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • PRAGMA function_list, PRAGMA module_list ๋ฐ PRAGMA pragma_list ๋ช…๋ น์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋นŒ๋“œ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด "-DSQLITE_OMIT_INTROSPECTION_PRAGMAS"๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •์˜ SQL ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ SQLITE_DIRECTONLY ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ œ์•ˆ๋˜์–ด ํŠธ๋ฆฌ๊ฑฐ ๋ฐ ๋ทฐ ๋‚ด์—์„œ ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€