gRPC: ResultSet serialization of commands is missing alias (original) (raw)

Given a type defined in this way:

    CREATE VERTEX TYPE article ;
    CREATE PROPERTY article.id ILONG;
    CREATE PROPERTY article.author IF NOT EXISTS STRING;

and this query:

UPDATE article SET title = "My third article updated" RETURN AFTER *, author AS _author WHERE id = 3

Use the RemoteDatabase client to execute the query the alias _author is correctly populated

RemoteDatabase remoteDatabase = new RemoteDatabase("localhost", 2480,"testdb "root","password);
ResultSet resultSet = remoteDatabase.command("sql", "UPDATE article  SET title = "My third article updated" RETURN AFTER *, author AS _author WHERE id = 3");
resultSet.stream().forEach(r-> System.out.println(" _author = " + r.getProperty("_author")));

Using the RemoteGrpcDatabase the _author is not populated

RemoteGrpcDatabase database = new RemoteGrpcDatabase(server, "localhost", 50051, 2480, "testDatabase, "root", "password");
ResultSet resultSet = database.command("sql", "UPDATE article  SET title = "My third article updated" RETURN AFTER *, author AS _author WHERE id = 3);
resultSet.stream().forEach(r-> System.out.println(" _author = " + r.getProperty("_author")));

Cause

In ArcadeDbGrpcService the method public void executeCommand(ExecuteCommandRequest request, StreamObserver<ExecuteCommandResponse> responseObserver) doesn't use the new serialization method introduced to fix #2854

Solutions

Fix the service to use the new serialization method