はじめに
にゃーん。趣味でポスグレをやっている者だ。
この記事は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コマンドは複雑ということを思い知らされました・・・。