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。)