1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.infra.database.mysql.metadata.database;
19
20 import org.apache.shardingsphere.infra.database.core.metadata.database.enums.NullsOrderType;
21 import org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
22 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.DialectDatabaseMetaData;
23 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.IdentifierPatternType;
24 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.column.DialectColumnOption;
25 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.connection.DialectConnectionOption;
26 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.datatype.DialectDataTypeOption;
27 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.join.DialectJoinOption;
28 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.transaction.DialectTransactionOption;
29 import org.apache.shardingsphere.infra.database.mysql.metadata.database.option.MySQLDataTypeOption;
30
31 import java.sql.Connection;
32
33
34
35
36 public final class MySQLDatabaseMetaData implements DialectDatabaseMetaData {
37
38 @Override
39 public QuoteCharacter getQuoteCharacter() {
40 return QuoteCharacter.BACK_QUOTE;
41 }
42
43 @Override
44 public IdentifierPatternType getIdentifierPatternType() {
45 return IdentifierPatternType.KEEP_ORIGIN;
46 }
47
48 @Override
49 public NullsOrderType getDefaultNullsOrderType() {
50 return NullsOrderType.LOW;
51 }
52
53 @Override
54 public DialectDataTypeOption getDataTypeOption() {
55 return new MySQLDataTypeOption();
56 }
57
58 @Override
59 public DialectColumnOption getColumnOption() {
60 return new DialectColumnOption(false);
61 }
62
63 @Override
64 public DialectConnectionOption getConnectionOption() {
65 return new DialectConnectionOption(true, true);
66 }
67
68 @Override
69 public DialectTransactionOption getTransactionOption() {
70 return new DialectTransactionOption(false, false, true, false, true, Connection.TRANSACTION_REPEATABLE_READ);
71 }
72
73 @Override
74 public DialectJoinOption getJoinOption() {
75 return new DialectJoinOption(true, true);
76 }
77
78 @Override
79 public String getDatabaseType() {
80 return "MySQL";
81 }
82 }