1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor;
19
20 import lombok.Getter;
21 import lombok.RequiredArgsConstructor;
22 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
23 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
24 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.raw.metadata.RawQueryResultColumnMetaData;
25 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.raw.metadata.RawQueryResultMetaData;
26 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.raw.type.RawMemoryQueryResult;
27 import org.apache.shardingsphere.infra.merge.result.MergedResult;
28 import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult;
29 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
30 import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminQueryExecutor;
31 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowProcedureStatusStatement;
32
33 import java.sql.Types;
34 import java.util.ArrayList;
35 import java.util.Collections;
36 import java.util.List;
37
38
39
40
41 @RequiredArgsConstructor
42 @Getter
43 public final class ShowProcedureStatusExecutor implements DatabaseAdminQueryExecutor {
44
45 private final MySQLShowProcedureStatusStatement showProcedureStatusStatement;
46
47 private QueryResultMetaData queryResultMetaData;
48
49 private MergedResult mergedResult;
50
51 @Override
52 public void execute(final ConnectionSession connectionSession) {
53 queryResultMetaData = createQueryResultMetaData();
54 mergedResult = new TransparentMergedResult(getQueryResult());
55 }
56
57 private QueryResult getQueryResult() {
58 return new RawMemoryQueryResult(queryResultMetaData, Collections.emptyList());
59 }
60
61 private QueryResultMetaData createQueryResultMetaData() {
62 List<RawQueryResultColumnMetaData> columns = new ArrayList<>();
63 columns.add(new RawQueryResultColumnMetaData("", "Db", "Db", Types.VARCHAR, "VARCHAR", 255, 0));
64 columns.add(new RawQueryResultColumnMetaData("", "Name", "Name", Types.VARCHAR, "VARCHAR", 255, 0));
65 columns.add(new RawQueryResultColumnMetaData("", "Type", "Type", Types.VARCHAR, "VARCHAR", 64, 0));
66 columns.add(new RawQueryResultColumnMetaData("", "Definer", "Definer", Types.VARCHAR, "VARCHAR", 64, 0));
67 columns.add(new RawQueryResultColumnMetaData("", "Modified", "Modified", Types.VARCHAR, "VARCHAR", 64, 0));
68 columns.add(new RawQueryResultColumnMetaData("", "Created", "Created", Types.VARCHAR, "VARCHAR", 64, 0));
69 columns.add(new RawQueryResultColumnMetaData("", "Security_type", "Security_type", Types.VARCHAR, "VARCHAR", 64, 0));
70 columns.add(new RawQueryResultColumnMetaData("", "Comment", "Comment", Types.VARCHAR, "VARCHAR", 120, 0));
71 columns.add(new RawQueryResultColumnMetaData("", "character_set_client", "character_set_client", Types.VARCHAR, "VARCHAR", 20, 0));
72 columns.add(new RawQueryResultColumnMetaData("", "collation_connection", "collation_connection", Types.VARCHAR, "VARCHAR", 20, 0));
73 columns.add(new RawQueryResultColumnMetaData("", "Database_Collation", "Database_Collation", Types.VARCHAR, "VARCHAR", 20, 0));
74 return new RawQueryResultMetaData(columns);
75 }
76 }