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.command.query.simple;
19
20 import lombok.Getter;
21 import org.apache.shardingsphere.db.protocol.packet.sql.SQLReceivedPacket;
22 import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacket;
23 import org.apache.shardingsphere.db.protocol.postgresql.packet.command.PostgreSQLCommandPacketType;
24 import org.apache.shardingsphere.db.protocol.postgresql.packet.identifier.PostgreSQLIdentifierTag;
25 import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacketPayload;
26 import org.apache.shardingsphere.infra.hint.HintValueContext;
27 import org.apache.shardingsphere.infra.hint.SQLHintUtils;
28
29
30
31
32 public final class PostgreSQLComQueryPacket extends PostgreSQLCommandPacket implements SQLReceivedPacket {
33
34 private final String sql;
35
36 @Getter
37 private final HintValueContext hintValueContext;
38
39 public PostgreSQLComQueryPacket(final PostgreSQLPacketPayload payload) {
40 payload.readInt4();
41 String originSQL = payload.readStringNul();
42 hintValueContext = SQLHintUtils.extractHint(originSQL);
43 sql = SQLHintUtils.removeHint(originSQL);
44 }
45
46 @Override
47 protected void write(final PostgreSQLPacketPayload payload) {
48 }
49
50 @Override
51 public String getSQL() {
52 return sql;
53 }
54
55 @Override
56 public PostgreSQLIdentifierTag getIdentifier() {
57 return PostgreSQLCommandPacketType.SIMPLE_QUERY;
58 }
59 }