1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.db.protocol.postgresql.packet.handshake;
19
20 import lombok.Getter;
21 import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
22 import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacketPayload;
23
24 import java.util.HashMap;
25 import java.util.Map;
26
27
28
29
30 public final class PostgreSQLComStartupPacket extends PostgreSQLPacket {
31
32 private static final String DATABASE_NAME_KEY = "database";
33
34 private static final String USER_NAME_KEY = "user";
35
36 private static final String CLIENT_ENCODING_KEY = "client_encoding";
37
38 @Getter
39 private final int version;
40
41 private final Map<String, String> parametersMap = new HashMap<>();
42
43 public PostgreSQLComStartupPacket(final PostgreSQLPacketPayload payload) {
44 payload.skipReserved(4);
45 version = payload.readInt4();
46 while (payload.bytesBeforeZero() > 0) {
47 parametersMap.put(payload.readStringNul(), payload.readStringNul());
48 }
49 }
50
51
52
53
54
55
56 public String getDatabase() {
57 return parametersMap.get(DATABASE_NAME_KEY);
58 }
59
60
61
62
63
64
65 public String getUsername() {
66 return parametersMap.get(USER_NAME_KEY);
67 }
68
69
70
71
72
73
74 public String getClientEncoding() {
75 return parametersMap.getOrDefault(CLIENT_ENCODING_KEY, "UTF8");
76 }
77
78 @Override
79 protected void write(final PostgreSQLPacketPayload payload) {
80 }
81 }