You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2020/10/16 06:41:00 UTC

[shardingsphere] branch master updated: #7792, fix postgresql insert statement result (#7804)

This is an automated email from the ASF dual-hosted git repository.

menghaoran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new b8302de  #7792, fix postgresql insert statement result (#7804)
b8302de is described below

commit b8302dece09bc43f45220f26b2b26bdbc51298c0
Author: Zhang Yonglun <zh...@apache.org>
AuthorDate: Fri Oct 16 14:40:38 2020 +0800

    #7792, fix postgresql insert statement result (#7804)
---
 .../packet/generic/PostgreSQLCommandCompletePacket.java |  6 +++++-
 .../generic/PostgreSQLCommandCompletePacketTest.java    | 17 +++++++++++++++--
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacket.java b/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacket.java
index b401503..317fb5d 100644
--- a/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacket.java
+++ b/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacket.java
@@ -46,6 +46,10 @@ public final class PostgreSQLCommandCompletePacket implements PostgreSQLPacket {
     
     @Override
     public void write(final PostgreSQLPacketPayload payload) {
-        payload.writeStringNul(sqlCommand + " " + rowCount);
+        if ("INSERT".equals(sqlCommand)) {
+            payload.writeStringNul(sqlCommand + " 0 " + rowCount);
+        } else {
+            payload.writeStringNul(sqlCommand + " " + rowCount);
+        }
     }
 }
diff --git a/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacketTest.java b/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacketTest.java
index 0a302d8..e5ce8dd 100644
--- a/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacketTest.java
+++ b/shardingsphere-db-protocol/shardingsphere-db-protocol-postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLCommandCompletePacketTest.java
@@ -28,8 +28,8 @@ import static org.junit.Assert.assertThat;
 public final class PostgreSQLCommandCompletePacketTest {
     
     @Test
-    public void assertReadWrite() {
-        String sqlCommand = "SELECT * FROM t_order LIMIT 1";
+    public void assertSelectReadWrite() {
+        String sqlCommand = "SELECT";
         long rowCount = 1;
         String expectedString = sqlCommand + " " + rowCount;
         int expectedStringLength = expectedString.length();
@@ -39,4 +39,17 @@ public final class PostgreSQLCommandCompletePacketTest {
         packet.write(payload);
         assertThat(payload.readStringNul(), is(expectedString));
     }
+    
+    @Test
+    public void assertInsertReadWrite() {
+        String sqlCommand = "INSERT";
+        long rowCount = 1;
+        String expectedString = sqlCommand + " 0 " + rowCount;
+        int expectedStringLength = expectedString.length();
+        PostgreSQLPacketPayload payload = new PostgreSQLPacketPayload(ByteBufTestUtils.createByteBuf(expectedStringLength + 1));
+        PostgreSQLCommandCompletePacket packet = new PostgreSQLCommandCompletePacket(sqlCommand, rowCount);
+        assertThat(packet.getMessageType(), is(PostgreSQLCommandPacketType.COMMAND_COMPLETE.getValue()));
+        packet.write(payload);
+        assertThat(payload.readStringNul(), is(expectedString));
+    }
 }