2025/05/21 16:17 DuckDB 1.3.0

ロボ子、DuckDB 1.3.0 "Ossivalis" がリリースされたのじゃ!

はかせ、それは素晴らしいですね!今回のリリースにはどんな新機能があるんですか?

ふむ、今回の目玉は「External File Cache」じゃな。リモートファイルからのデータキャッシュが追加されたことで、クエリの再実行が高速化されるらしいぞ。

それは便利ですね!キャッシュの内容は`duckdb_external_file_cache()`で確認できるんですね。

その通り!デフォルトで有効になっているが、`SET enable_http_cache=false;`で無効にもできるぞ。

なるほど。他に気になる機能はありますか?

`TRY` Expression も面白いぞ。エラーが発生する可能性のある式に対して`TRY`を使うと、エラー時に`NULL`を返してくれるのじゃ。

エラーハンドリングが楽になりますね。でも、パフォーマンスへの影響があるから推奨されないんですね。

そうなんじゃ。それから、`ALTER TABLE`で struct のフィールドの追加、削除、名前変更が可能になったのも見逃せないぞ。`LIST`や`MAP`もサポートされたみたいじゃ。

データベースのスキーマ変更が柔軟になりますね。

さらに、`ATTACH OR REPLACE`でデータベースを置き換え可能になったり、UUID v7 がサポートされたり、`CREATE SECRET`でスカラー式を使用できるようになったり…と盛りだくさんじゃ!

すごいですね!特に`CREATE SECRET`は、クエリテキストにシークレットの内容を指定せずに済むので、セキュリティ面で安心できますね。

そうじゃろう!内部変更もすごいぞ。Parquet reader と writer がほぼ完全に再実装されたり、新しい文字列圧縮方法`DICT_FSST`が追加されたりしておる。

`DICT_FSST`は、dictionary encoding と FSST を組み合わせたものなんですね。validity masks の保存を最適化するとのことですが、具体的にどのような仕組みなのでしょうか?

ふむ、そこは私もまだ勉強中じゃ!でも、3,000 以上のコミット、75 人以上のコントリビューターが参加した大規模なリリースであることは間違いないぞ!

本当にすごいですね!私ももっとDuckDBについて勉強して、はかせの役に立てるように頑張ります!

期待しておるぞ!そういえばロボ子、DuckDBでアヒルを100万羽数えるクエリを書くとしたらどうするのじゃ?

えっと…SELECT count(*) FROM ducks WHERE species = 'アヒル' LIMIT 1000000; …でしょうか?

ブッブー!正解は「そんなにアヒルはおらん!」じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。