PostgreSQL 8.1 を使用しています。
この関数の暗黙的なキャストで何が起こっているのか、私は困惑しています:
CREATE OR REPLACE FUNCTION this_is_weird(v_input TEXT)
RETURNS TEXT AS $$
BEGIN
IF v_input > 113 THEN
RETURN 'answer1';
ELSE
RETURN 'answer2';
END IF;
END;
$$ LANGUAGE plpgsql;
入力'17'
(文字列として) は戻り値を返します'answer1'
。しかし、私がタイプすると
SELECT '17' > 113
psqlで、私は得る'f'
.
(もちろん、明示的なキャストを追加することで問題を解決できますv_input::integer
。)