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
This archive was generated by hypermail 2.0.0 : Thu May 08 2008 - 04:11:40 EDT