KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > riotfamily > revolt > dialect > MySqlDialect


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1
3  * The contents of this file are subject to the Mozilla Public License Version
4  * 1.1 (the "License"); you may not use this file except in compliance with
5  * the License. You may obtain a copy of the License at
6  * http://www.mozilla.org/MPL/
7  *
8  * Software distributed under the License is distributed on an "AS IS" basis,
9  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10  * for the specific language governing rights and limitations under the
11  * License.
12  *
13  * The Original Code is Riot.
14  *
15  * The Initial Developer of the Original Code is
16  * Neteye GmbH.
17  * Portions created by the Initial Developer are Copyright (C) 2006
18  * the Initial Developer. All Rights Reserved.
19  *
20  * Contributor(s):
21  * Felix Gnass [fgnass at neteye dot de]
22  *
23  * ***** END LICENSE BLOCK ***** */

24 package org.riotfamily.revolt.dialect;
25
26 import org.riotfamily.revolt.Script;
27 import org.riotfamily.revolt.definition.Column;
28 import org.riotfamily.revolt.definition.Index;
29 import org.riotfamily.revolt.support.TypeMap;
30
31 /**
32  * @author Felix Gnass [fgnass at neteye dot de]
33  *
34  */

35 public class MySqlDialect extends Sql92Dialect {
36
37     protected void registerTypes() {
38         registerType(TypeMap.BIT, "TINYINT(1)");
39         registerType(TypeMap.TINYINT, "SMALLINT");
40         registerType(TypeMap.SMALLINT, "SMALLINT");
41         registerType(TypeMap.INTEGER, "INTEGER");
42         registerType(TypeMap.BIGINT, "BIGINT");
43         registerType(TypeMap.FLOAT, "FLOAT");
44         registerType(TypeMap.REAL, "REAL");
45         registerType(TypeMap.DOUBLE, "DOUBLE");
46         registerType(TypeMap.NUMERIC, "NUMERIC");
47         registerType(TypeMap.DECIMAL, "DECIMAL");
48         registerType(TypeMap.CHAR, "CHAR", true);
49         registerType(TypeMap.VARCHAR, "VARCHAR", true);
50         registerType(TypeMap.LONGVARCHAR, "TEXT");
51         registerType(TypeMap.DATE, "DATE");
52         registerType(TypeMap.TIME, "TIME");
53         registerType(TypeMap.TIMESTAMP, "TIMESTAMP");
54         registerType(TypeMap.BINARY, "BINARY", true);
55         registerType(TypeMap.VARBINARY, "VARBINARY", true);
56         registerType(TypeMap.LONGVARBINARY, "VARBINARY");
57         registerType(TypeMap.BLOB, "BLOB");
58         registerType(TypeMap.CLOB, "TEXT");
59     }
60
61     public boolean supports(String JavaDoc databaseProductName,
62             int majorVersion, int minorVersion) {
63
64         return "MySQL".equals(databaseProductName);
65     }
66     
67     protected void addColumnDefinition(Script sql, Column column) {
68         super.addColumnDefinition(sql, column);
69         if (column.isAutoIncrement()) {
70             sql.append("AUTO_INCREMENT");
71         }
72     }
73     
74     public Script createAutoIncrementSequence(String JavaDoc name) {
75         return null;
76     }
77     
78     public Script renameTable(String JavaDoc name, String JavaDoc renameTo) {
79         return alterTable(name).append("RENAME TO").append(quote(renameTo));
80     }
81
82     public Script renameColumn(String JavaDoc table, String JavaDoc name, String JavaDoc renameTo) {
83         return alterTable(table).append("CHANGE COLUMN").append(name)
84                 .append(renameTo);
85     }
86
87     public Script modifyColumn(String JavaDoc table, Column column) {
88         Script sql = alterTable(table).append("CHANGE COLUMN");
89         addColumnDefinition(sql, column);
90         return sql;
91     }
92
93     public Script createIndex(String JavaDoc table, Index index) {
94         Script sql = alterTable(table).append("ADD INDEX").append(index.getName());
95         addColumnNames(sql, index.getColumns());
96         return sql;
97     }
98
99     public Script dropIndex(String JavaDoc table, String JavaDoc name) {
100         return alterTable(table).append("DROP INDEX").append(name);
101     }
102     
103     protected String JavaDoc convertBackticksToIdentifierDelimiter(String JavaDoc s) {
104         return s;
105     }
106 }
107
Popular Tags