Hi Borut,
On May 8, 2008, at 8:55 AM, Borut Bolčina wrote:
Andrus,
Please don't ignore that there are a lot people on this list with
large combined Cayenne knowledge, not just me. So that's not a one-on-
one conversation.
If I am using AutoAdapter and DbGenerator for table creation with
MySQL 5
and table_type variable in MySQL is set to MyISAM, then according to
http://cayenne.apache.org/doc/api/org/apache/cayenne/dba/mysql/MySQLAdapter.htmlI
thought the CREATE TABLE string when the generator is run would cause
the
engine to be MyISAM or whatever the table_type is set to, but it
gives me
InnoDB:
INFO [28 Apr 2008 11:14:57.877] Detected and installed adapter:
org.apache.cayenne.dba.mysql.MySQLAdapter
INFO [28 Apr 2008 11:14:57.884] CREATE TABLE currency_rate (country
VARCHAR(255) NOT NULL, currency_code VARCHAR(255) NOT NULL,
currency_name
VARCHAR(255) NOT NULL, currency_number INT NOT NULL, date DATETIME
NULL, id
INT NOT NULL, rate DECIMAL(19, 4) NOT NULL, PRIMARY KEY (id)) ENG
INE=InnoDB
Now, we are planning to use NDBCLUSTER table types and if this auto
detection does not work, what is the way to set engine type via API?
Looks like a limitation of MySQLSniffer. It does this to detect MySQL
default behavior:
ResultSet rs = statement.executeQuery("SHOW VARIABLES LIKE
'table_type'");
if (rs.next()) {
String tableType = rs.getString(2);
supportFK = tableType != null &&
tableType.toUpperCase().equals("INNODB");
}
But doesn't go far enough to actually use it as a table type in
'createTable'. Shouldn't be too hard to fix. Appreciate a Jira for it.
Andrus