DBIx::Class::Schema::Loader generates column names made of lowercase only for Oracle databases. This is OK if the database doesn't contain column names (or table names) which are reserved words. If a column has a reserved word name like date or timestamp, it should be enclosed in double quotes in order to be able to use it, like "date" or "timestamp". If all the columns are lowercased, the program will try to use the columns as they are, without knowing which of them should be enclosed between quotes and the program will give an error telling that a column name is not valid. If we add the quote_char option with the char '"' as the quoting char, all the columns will be quoted. If they will contain lowercase letters, the special word columns like "date" or "timestamp" will be OK, but the other columns won't be OK. If the column names will contain only uppercase letters, the reserved words columns won't be OK because "date" and "DATE" is not the same thing. COLUMN == column == "COLUMN" but != "column" There may be more solutions (if there isn't another solution already available that I don't know about): Use the columns in the Result classes as: "column_name" "\"specialword\"" or specify the real name of the column in the "original" hashref. or specify with a new key that the current column should be lowercased or uppercased.