Skip to content

Commit 4077463

Browse files
authored
Adapt to breaking changes to SHOW DATABASES (#3)
SHOW DATABASES has a couple of breaking changes in 5.x * role is now simply 'primary' or 'secondary' * writer is used to determine the leader
1 parent f99c214 commit 4077463

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

common/src/main/java/apoc/util/Util.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -687,9 +687,9 @@ public static boolean isWriteableInstance( GraphDatabaseAPI db )
687687
{
688688
var socketAddress = db.getDependencyResolver().resolveDependency( Config.class ).get( BoltConnector.advertised_address ).toString();
689689
GraphDatabaseService systemDb = db.getDependencyResolver().resolveDependency( DatabaseManagementService.class ).database( SYSTEM_DATABASE_NAME );
690-
String role = systemDb.executeTransactionally( "SHOW DATABASE $databaseName WHERE address = $socketAddress",
691-
Map.of( "databaseName", db.databaseName(), "socketAddress", socketAddress ), result -> Iterators.single( result.columnAs( "role" ) ) );
692-
return role.equalsIgnoreCase( "LEADER" ) || role.equalsIgnoreCase( "standalone" );
690+
Boolean writer = systemDb.executeTransactionally( "SHOW DATABASE $databaseName WHERE address = $socketAddress",
691+
Map.of( "databaseName", db.databaseName(), "socketAddress", socketAddress ), result -> Iterators.single( result.columnAs( "writer" ) ) );
692+
return writer;
693693
}
694694

695695
/**

core/src/test/java/apoc/util/UtilTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,8 @@ public void testMerge() {
114114
db.executeTransactionally("MATCH (n:Test) DETACH DELETE n");
115115
}
116116
}
117+
@Test
118+
public void testIsWritableInstance() {
119+
assertTrue(Util.isWriteableInstance(db));
120+
}
117121
}

0 commit comments

Comments
 (0)