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.