Skip to content

Commit 91e518b

Browse files
Implement cluster-capable schema retrieval
1 parent 976c663 commit 91e518b

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

connection/cluster/ClusterDatabase.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,29 @@ public String name() {
7777

7878
@Override
7979
public String schema() {
80-
// TODO: select the leader database
81-
return databases.values().iterator().next().schema();
80+
ClusterClient.FailsafeTask<String> task = client.createFailsafeTask(
81+
name,
82+
parameter -> databases.get(parameter.replica().address()).schema()
83+
);
84+
return task.runAnyReplica();
8285
}
8386

8487
@Override
8588
public String typeSchema() {
86-
// TODO: select the leader database
87-
return databases.values().iterator().next().typeSchema();
89+
ClusterClient.FailsafeTask<String> task = client.createFailsafeTask(
90+
name,
91+
parameter -> databases.get(parameter.replica().address()).typeSchema()
92+
);
93+
return task.runAnyReplica();
8894
}
8995

9096
@Override
9197
public String ruleSchema() {
92-
// TODO: select the leader database
93-
return databases.values().iterator().next().ruleSchema();
98+
ClusterClient.FailsafeTask<String> task = client.createFailsafeTask(
99+
name,
100+
parameter -> databases.get(parameter.replica().address()).ruleSchema()
101+
);
102+
return task.runAnyReplica();
94103
}
95104

96105
@Override

0 commit comments

Comments
 (0)