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;
19
20 import lombok.RequiredArgsConstructor;
21 import org.apache.shardingsphere.db.protocol.postgresql.packet.identifier.PostgreSQLIdentifierPacket;
22 import org.apache.shardingsphere.db.protocol.postgresql.packet.identifier.PostgreSQLIdentifierTag;
23 import org.apache.shardingsphere.db.protocol.postgresql.packet.identifier.PostgreSQLMessagePacketType;
24 import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacketPayload;
25
26 import java.util.Collection;
27
28
29
30
31 @RequiredArgsConstructor
32 public final class PostgreSQLRowDescriptionPacket extends PostgreSQLIdentifierPacket {
33
34 private final Collection<PostgreSQLColumnDescription> columnDescriptions;
35
36 @Override
37 protected void write(final PostgreSQLPacketPayload payload) {
38 payload.writeInt2(columnDescriptions.size());
39 for (PostgreSQLColumnDescription each : columnDescriptions) {
40 payload.writeStringNul(each.getColumnName());
41 payload.writeInt4(each.getTableOID());
42 payload.writeInt2(each.getColumnIndex());
43 payload.writeInt4(each.getTypeOID());
44 payload.writeInt2(each.getColumnLength());
45 payload.writeInt4(each.getTypeModifier());
46 payload.writeInt2(each.getDataFormat());
47 }
48 }
49
50 @Override
51 public PostgreSQLIdentifierTag getIdentifier() {
52 return PostgreSQLMessagePacketType.ROW_DESCRIPTION;
53 }
54 }