fix(agents): add url params for cassandra driver
This commit is contained in:
parent
ee34a17e82
commit
1d64d66184
|
|
@ -163,7 +163,13 @@ public final class CassandraAgent extends AbstractJdbcAgent {
|
|||
String baseUrl = "jdbc:cassandra://" + params.getHost() + ":" + params.getPort();
|
||||
String keyspace = coalesce(params.getDatabase()).trim();
|
||||
// Cassandra rejects an empty keyspace path; omit it so DBX can connect first and list keyspaces.
|
||||
return keyspace.isEmpty() ? baseUrl : baseUrl + "/" + keyspace;
|
||||
String url = keyspace.isEmpty() ? baseUrl : baseUrl + "/" + keyspace;
|
||||
// Multi-DC clusters require localdatacenter=<dc>
|
||||
String extraParams = coalesce(params.getUrl_params()).trim();
|
||||
while (extraParams.startsWith("?") || extraParams.startsWith("&")) {
|
||||
extraParams = extraParams.substring(1);
|
||||
}
|
||||
return extraParams.isEmpty() ? url : url + "?" + extraParams;
|
||||
}
|
||||
|
||||
private static List<String> targetColumns(String options) {
|
||||
|
|
|
|||
|
|
@ -31,4 +31,22 @@ class CassandraAgentTest extends JdbcFakeExecutionBehaviorTest {
|
|||
|
||||
assertEquals("jdbc:cassandra://127.0.0.1:9042/app_keyspace", CassandraAgent.buildUrl(params));
|
||||
}
|
||||
|
||||
@Test
|
||||
void appendsUrlParamsForMultiDcLocalDatacenter() {
|
||||
ConnectParams params = new ConnectParams(
|
||||
"127.0.0.1", 9042, "app_keyspace", "cassandra", "cassandra", "localdatacenter=dc1", "", false
|
||||
);
|
||||
|
||||
assertEquals("jdbc:cassandra://127.0.0.1:9042/app_keyspace?localdatacenter=dc1", CassandraAgent.buildUrl(params));
|
||||
}
|
||||
|
||||
@Test
|
||||
void stripsLeadingQuestionMarkFromUrlParams() {
|
||||
ConnectParams params = new ConnectParams(
|
||||
"127.0.0.1", 9042, "", "cassandra", "cassandra", "?localdatacenter=dc1", "", false
|
||||
);
|
||||
|
||||
assertEquals("jdbc:cassandra://127.0.0.1:9042?localdatacenter=dc1", CassandraAgent.buildUrl(params));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4575,7 +4575,9 @@ function openExternalUrl(url: string) {
|
|||
? 'CLIENT_LOCALE=en_US.utf8;DB_LOCALE=en_US.utf8'
|
||||
: form.db_type === 'spark'
|
||||
? 'catalog=paimon_catalog'
|
||||
: 'sslmode=disable'
|
||||
: form.db_type === 'cassandra'
|
||||
? 'localdatacenter=dc1'
|
||||
: 'sslmode=disable'
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue