翻訳ページ
このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。
MD5
文字列の MD5 ダイジェストを 32 文字の小文字の 16 進数として返します。StackQL v1.0 以降で利用できます。
構文
SELECT MD5(expression) FROM <multipartIdentifier>;
引数
expression
文字列、またはテキストに型変換される値。引数が NULL の場合は NULL を返します。
戻り値
32 文字の小文字の 16 進数文字列を返します。
MD5はフィンガープリントと変更検出のために提供されています。パスワード用途やセキュリティプリミティブではありません。PostgreSQL バックエンドでは、データベース自身のmd5関数が使用されます。
例
派生値のフィンガープリントを取得する
変数は型付きの値として置換され、整数はテキストに変換されてサフィックスと連結され、小文字に変換した結果に対してダイジェストが計算されます。同じ入力からは常に同じ 32 文字の 16 進数文字列が生成されるため、この値は安定したキーとして使用できます。
SET some_id = 42;
SET suffix = 'East';
SELECT md5(lower(CONVERT($some_id, TEXT) || '-' || $suffix)) AS digest;
構成の変更を検出する
シリアル化された JSON 列をハッシュ化すると、保存して実行間で比較できる短い値が得られます。ダイジェストが前回の実行と異なるバケットは IAM 構成が変更されており、ドキュメント全体を保存したり差分を取ったりする必要はありません。
SELECT name, md5(json_extract(iamConfiguration, '$')) AS iam_digest
FROM google.storage.buckets
WHERE project = 'stackql-demo';