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.keygen.DialectGeneratedKeyOption;
29 import org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.transaction.DialectTransactionOption;
30 import org.apache.shardingsphere.infra.database.mysql.metadata.database.option.MySQLDataTypeOption;
31
32 import java.sql.Connection;
33
34
35
36
37 public final class MySQLDatabaseMetaData implements DialectDatabaseMetaData {
38
39 @Override
40 public QuoteCharacter getQuoteCharacter() {
41 return QuoteCharacter.BACK_QUOTE;
42 }
43
44 @Override
45 public IdentifierPatternType getIdentifierPatternType() {
46 return IdentifierPatternType.KEEP_ORIGIN;
47 }
48
49 @Override
50 public NullsOrderType getDefaultNullsOrderType() {
51 return NullsOrderType.LOW;
52 }
53
54 @Override
55 public DialectDataTypeOption getDataTypeOption() {
56 return new MySQLDataTypeOption();
57 }
58
59 @Override
60 public DialectColumnOption getColumnOption() {
61 return new DialectColumnOption(false);
62 }
63
64 @Override
65 public DialectConnectionOption getConnectionOption() {
66 return new DialectConnectionOption(true, true);
67 }
68
69 @Override
70 public DialectTransactionOption getTransactionOption() {
71 return new DialectTransactionOption(false, false, true, false, true, Connection.TRANSACTION_REPEATABLE_READ, false);
72 }
73
74 @Override
75 public DialectJoinOption getJoinOption() {
76 return new DialectJoinOption(true, true);
77 }
78
79 @Override
80 public DialectGeneratedKeyOption getGeneratedKeyOption() {
81 return new DialectGeneratedKeyOption(true);
82 }
83
84 @Override
85 public String getDatabaseType() {
86 return "MySQL";
87 }
88 }