title: Any downsides of using data type "text" for storing strings?
body: <p>According to the <a href="http://www.postgresql.org/docs/current/interactive/datatype-character.html." rel="noreferrer">PostgreSQL Documentation</a>, they support 3 data-types for character data:</p>
  <pre class="lang-none prettyprint-override"><code>character varying(n), varchar(n)  variable-length with limit
  character(n), char(n)             fixed-length, blank padded
  text                              variable unlimited length
  </code></pre>
  <p>In my application, I came across few unpleasant scenarios where insert/update queries failed as the desired text to be inserted exceeded the <code>varchar(n)</code> or <code>char(n)</code> limit.</p>
  <p>For such cases, changing the data type of such columns to <code>text</code> sufficed.</p>
  <p>My questions are:</p>
  <ul>
  <li>If we generalize and change the data type of every character storing column to <code>text</code>, is there any downside in terms of performance/memory?</li>
  <li>If a column with data type <code>text</code> stores 10 or less characters every time, should I go for <code>text</code> or <code>varchar(10)</code>?</li>
  <li>If I go for <code>text</code> what's the downside?</li>
  </ul>