はじめに
にゃーん。趣味でポスグレをやっている者だ。
この記事はPostgreSQL 16 全部ぬこ Advent Calendar 2022 5日目の記事です。
今回はpsqlの小ネタ、ALTER TABLEコマンドのタブ補完の追加について書いてみます。
概要
| 項目 | 内容 |
|---|---|
| タイトル | Tab completion for identity columns in ALTER TABLE |
| Topic | Clients |
| ステータス | commited |
| Last Modified | 2022-11-01 |
| 概要 |
ALTER TABLEコマンド のIDENTITY列への操作に関するタブ補完を追加。 |
変更内容
ALTER TABLEコマンドのIDENTITY列に関するいくつかのタブ補完が強化されました。
タブ補完確認のための設定
以下のような単純なテーブルを作成します。
idという列にはNOT NULL制約をつけておきます。
=# CREATE TABLE foo (id int NOT NULL, data text);
CREATE TABLE
=# \d foo
Table "public.foo"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | not null |
data | text | | |
=#
この状態で以下の以下のALTER TABLEのタブ補完機能の差を見てみます。
PostgreSQL 15まで
ALTER TABLE foo ALTER COLUMN id SET
この状態でTABを押すと以下の補完候補が出力されます。
( COMPRESSION DEFAULT NOT NULL STATISTICS STORAGE
PostgreSQL 16
ALTER TABLE foo ALTER COLUMN id SET
この状態でTABを押すと以下の補完候補が出力されます。
( COMPRESSION DEFAULT INCREMENT MINVALUE NOT NULL STATISTICS
CACHE CYCLE GENERATED MAXVALUE NO START STORAGE
PostgreSQL 15と比較すると、INCREMENT, MINVALUE, CYCLE, GENERATED, MAXVALUE, NO, STARTという語がTAB補完の候補として増えています。
おわりに
PostgreSQL 16でもpsqlへの改善は継続します。今回上げたコミットのように、タブ補完については、まだまだ強化の余地が残っているのかもしれませんね。
そして、改めてALTER TABLEコマンドは複雑ということを思い知らされました・・・。