私の勘違いでなければ、
通常の PostgreSQL の場合、character varying(N) などの N は「文字数単位」ですが、PostgreSQL 8.0.2 から派生した Amazon Redshift の場合は「バイト単位」になるようです。
PostgreSQL ドキュメント 「Character Types」 より抜粋
SQL defines two primary character types: character varying(n) and character(n), where n is a positive integer. Both of these types can store strings up to n characters (not bytes) in length.
Redshift ドキュメント 「Character Types」 より抜粋
CHAR and VARCHAR data types are defined in terms of bytes, not characters.
ですので、UTF-8 で文字データを格納するとした場合、UTF-8 では一文字のバイト数が最大 4 バイトになることを考慮して、「最大文字数 × 4」でカラムを定義しないといけないでしょうね。例えば、最大 100 文字を格納したいのであれば、character varying(400) というカラム定義になります。Unicode や UTF-8 については、「Unicode 理解度簡易チェック」や「文字数、UTF-8 でのバイト数、サロゲートペアの数を数える」も参照してください。
Redshift には、その他にも驚くような PostgreSQL との差異があるので、例えば Primary Key や Unique 制約が無視されたり Index を作れなかったりするので、「Redshift を単なる PostgreSQL の派生物」だと思ってスキーマ設計していると、はまりますね。