title: Pandas read_sql columns not working when using index_col - returns all columns instead
body: <p>I'm using <code>pandas.read_sql()</code> command to get data from my postgresql database.
  The SQL query is created generically with many columns from which I only want to get specific columns using one column as index.
  Creating an example table <code>test_table</code> like this:</p>
  
  <pre><code>column1 column2 column3
  1       2       3
  2       4       6
  3       6       9
  </code></pre>
  
  <p>I tried to use the <code>index_col</code> and <code>columns</code> parameter from <code>pandas.read_sql()</code> to get <code>column1</code> as index and <code>column2</code> as data (and neglecting <code>column3</code>!). But it always returns the whole table. Also when writing <code>columns=['column1', 'column2']</code> nothing changes...</p>
  
  <p>I'm using python 2.7.6 with pandas 0.17.1 - Thanks for help!</p>
  
  <p><strong>Example Code:</strong></p>
  
  <pre><code>import pandas
  import psycopg2
  import sqlalchemy
  
  
  def connect():
      connString = (
          "dbname=test_db "
          "host=localhost "
          "port=5432 "
          "user=postgres "
          "password=password"
      )
      return psycopg2.connect(connString)
  
  engine = sqlalchemy.create_engine(
              'postgresql://',
              creator=connect)
  sql = (
      'SELECT '
      'column1, '
      'column2, '
      'column3 '
      'FROM test_table'
  )
  data = pandas.read_sql(
      sql,
      engine,
      index_col=['column1'],
      columns=['column2'])
  print(data)
  </code></pre>