以下の手順に従って、テーブルに挿入される値は対象とする列のデータ型に強制されます。対象に正確に一致するかどうかをチェックします。なければ、式を対象の型に強制してみます。2つの型がバイナリ互換性があるものとして認識される、もしくは変換関数がある場合、これは成功します。式がunknown型リテラルの場合、リテラル文字列の内容は対象の型の入力変換ルーチンに与えられます。対象が固定長な型(たとえばcharやvarchar型)ならば、対象の型用の大きさを調整する関数を探します。大きさを調整する関数は、同じ名前の型で、1つ目がその型、2つ目が整数という2つの引数をとり、同じ型を返すという関数です。1つが見つかれば、適用され、列の宣言された長さを2番目のパラメータとして渡します。varchar格納型の変換varchar(20)として宣言された対象の列への以下の問い合わせでは、対象の大きさが正確に調整されることが保証します。リテラルがtextに解決されたということです。bpchar("空白(blank)が埋められる(padded)文字(char)"。これは文字データ型の内部名です。バイナリ互換性があることを認識しているので、この型強制は暗黙のものであり、実際の関数呼び出しは挿入しません)。最後に、大きさを調整する関数bpchar(bpchar,integer)がシステムカタログの中から見つかり、演算子の結果と格納する列の長さを適用します。この型特有の関数は必要とされ長さを検査し、空白の埋め込みを行います。UNION構成要素とCASE。