cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: MySQL engine = NDBCLUSTER
Date Thu, 08 May 2008 08:11:07 GMT
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


Mime
View raw message