1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended;
19
20 import lombok.RequiredArgsConstructor;
21 import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
22 import org.apache.shardingsphere.db.protocol.postgresql.packet.command.query.extended.PostgreSQLAggregatedResponsesPacket;
23 import org.apache.shardingsphere.proxy.frontend.command.executor.CommandExecutor;
24
25 import java.sql.SQLException;
26 import java.util.Collection;
27 import java.util.Collections;
28 import java.util.LinkedList;
29 import java.util.List;
30
31 @RequiredArgsConstructor
32 public final class PostgreSQLAggregatedCommandExecutor implements CommandExecutor {
33
34 private final List<CommandExecutor> executors;
35
36 @Override
37 public Collection<DatabasePacket> execute() throws SQLException {
38 List<DatabasePacket> result = new LinkedList<>();
39 for (CommandExecutor each : executors) {
40 try {
41 result.addAll(each.execute());
42 } finally {
43 each.close();
44 }
45 }
46 return Collections.singleton(new PostgreSQLAggregatedResponsesPacket(result));
47 }
48 }