/** * Return true if the database version is at least as high as the test number given, taking * into account major and minor versions. e.g. test if database is at least 9.2 * @param testVersionStr a postgres version number of dot separated integers * @return true if the database is the version specified or later */ public boolean isVersionAtLeast(String testVersionStr) { List<Integer> dbVersion = versionStringToInts(getVersion()); List<Integer> testVersion = versionStringToInts(testVersionStr); for (int i = 0; i < testVersion.size(); i++) { if (dbVersion.size() > i) { if (dbVersion.get(i) < testVersion.get(i)) { return false; } } else if (i > 0 && (testVersion.get(i - 1).equals(dbVersion.get(i - 1)))) { // if previous numbers were equal and all remaining digits of the test version are // zero the we're at least that version e.g. 9.3 is at least 9.3.0 but not 9.3.0.1 for (Integer remaining : testVersion.subList(i, testVersion.size())) { if (remaining > 0) { return false; } } } } return true; }
/** * Return true if the database version is at least as high as the test number given, taking * into account major and minor versions. e.g. test if database is at least 9.2 * @param testVersionStr a postgres version number of dot separated integers * @return true if the database is the version specified or later */ public boolean isVersionAtLeast(String testVersionStr) { List<Integer> dbVersion = versionStringToInts(getVersion()); List<Integer> testVersion = versionStringToInts(testVersionStr); for (int i = 0; i < testVersion.size(); i++) { if (dbVersion.size() > i) { if (dbVersion.get(i) < testVersion.get(i)) { return false; } } else if (i > 0 && (testVersion.get(i - 1).equals(dbVersion.get(i - 1)))) { // if previous numbers were equal and all remaining digits of the test version are // zero the we're at least that version e.g. 9.3 is at least 9.3.0 but not 9.3.0.1 for (Integer remaining : testVersion.subList(i, testVersion.size())) { if (remaining > 0) { return false; } } } } return true; }