protected int findColumnStrict(String col) throws IllegalArgumentException {
    if (col == null) {
      throw new IllegalArgumentException("Got null column name.");
    }
    int val = columnNames.indexOf(col);
    if (val < 0) {
      throw new IllegalArgumentException("Invalid column: " + col);
    }
    return val + 1;
  }