modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql91DatabaseType.java | 16
+++++++++-
modules/core/dbutils/src/test/java/org/rhq/core/db/AbstractDatabaseTestUtil.java | 2
-
modules/core/dbutils/src/test/java/org/rhq/core/db/DatabaseTest.java | 16
++++++++--
3 files changed, 30 insertions(+), 4 deletions(-)
New commits:
commit cc09ffea0ecd929349f5f4720a7e088d053bf276
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Wed Sep 28 10:46:13 2011 +0200
BZ 741855 - use standard conforming escapes in Postgres 9.1+
diff --git
a/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql91DatabaseType.java
b/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql91DatabaseType.java
index d4f97cc..ce5728e 100644
--- a/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql91DatabaseType.java
+++ b/modules/core/dbutils/src/main/java/org/rhq/core/db/Postgresql91DatabaseType.java
@@ -19,7 +19,7 @@
package org.rhq.core.db;
/**
- * Postgres 9.1 database which extends the Postgres 8.4 database.
+ * Postgres 9.1 database which extends the Postgres database.
* It is important to extend 8.3+ and not any previous version as the
* code will enable async commit in some place for instanceof 8.3
*
@@ -43,4 +43,18 @@ public class Postgresql91DatabaseType extends Postgresql90DatabaseType
{
public String getVersion() {
return "9.1";
}
+
+ /**
+ * Postgres 9.1 is using a standard conforming escape character out of the box
+ * unlike earlier versions of Postgres, which means we need to follow this
convention
+ * here.
+ * @return escape char
+ */
+ @Override
+ public String getEscapeCharacter() {
+ String result =
System.getProperty("rhq.server.database.escape-character");
+
+ return (null == result) ? "\\" : result;
+ }
+
}
\ No newline at end of file
diff --git
a/modules/core/dbutils/src/test/java/org/rhq/core/db/AbstractDatabaseTestUtil.java
b/modules/core/dbutils/src/test/java/org/rhq/core/db/AbstractDatabaseTestUtil.java
index 656d5a6..ed15de6 100644
--- a/modules/core/dbutils/src/test/java/org/rhq/core/db/AbstractDatabaseTestUtil.java
+++ b/modules/core/dbutils/src/test/java/org/rhq/core/db/AbstractDatabaseTestUtil.java
@@ -188,7 +188,7 @@ public class AbstractDatabaseTestUtil {
e);
}
- System.err.println(database + " is not available. DatabaseTest.nofail is
set - skipping test");
+ System.err.println(database + " is not available (" + e.toString()
+ "). DatabaseTest.nofail is set - skipping test");
}
// just do some simple things with the connection to make sure we can use this
diff --git a/modules/core/dbutils/src/test/java/org/rhq/core/db/DatabaseTest.java
b/modules/core/dbutils/src/test/java/org/rhq/core/db/DatabaseTest.java
index c2bb4f5..c1953e8 100644
--- a/modules/core/dbutils/src/test/java/org/rhq/core/db/DatabaseTest.java
+++ b/modules/core/dbutils/src/test/java/org/rhq/core/db/DatabaseTest.java
@@ -259,6 +259,8 @@ public class DatabaseTest extends AbstractDatabaseTestUtil {
DatabaseType oracle10 = new Oracle10DatabaseType();
DatabaseType postgres7 = new Postgresql7DatabaseType();
DatabaseType postgres8 = new Postgresql8DatabaseType();
+ DatabaseType postgres90 = new Postgresql90DatabaseType();
+ DatabaseType postgres91 = new Postgresql91DatabaseType();
DatabaseType h2_11 = new H2v11DatabaseType();
assert DatabaseTypeFactory.isOracle(oracle8);
@@ -274,10 +276,19 @@ public class DatabaseTest extends AbstractDatabaseTestUtil {
assert DatabaseTypeFactory.isPostgres(postgres7);
assert !DatabaseTypeFactory.isOracle(postgres7);
assert !DatabaseTypeFactory.isH2(postgres7);
+
assert DatabaseTypeFactory.isPostgres(postgres8);
assert !DatabaseTypeFactory.isOracle(postgres8);
assert !DatabaseTypeFactory.isH2(postgres8);
+ assert DatabaseTypeFactory.isPostgres(postgres90);
+ assert !DatabaseTypeFactory.isOracle(postgres90);
+ assert !DatabaseTypeFactory.isH2(postgres8);
+
+ assert DatabaseTypeFactory.isPostgres(postgres91);
+ assert !DatabaseTypeFactory.isOracle(postgres91);
+ assert !DatabaseTypeFactory.isH2(postgres91);
+
assert DatabaseTypeFactory.isH2(h2_11);
assert !DatabaseTypeFactory.isPostgres(h2_11);
assert !DatabaseTypeFactory.isOracle(h2_11);
@@ -341,8 +352,9 @@ public class DatabaseTest extends AbstractDatabaseTestUtil {
assert DatabaseTypeFactory.isPostgres(conn);
assert DatabaseTypeFactory.isPostgres(dbtype);
assert dbtype.getVendor().equals("postgresql") : dbtype;
- assert dbtype.getVersion().startsWith("8") : dbtype;
- assert dbtype.getName().startsWith("postgresql8") : dbtype;
+ String version = dbtype.getVersion();
+ assert version.startsWith("8") || version.startsWith("9") :
dbtype;
+ assert dbtype.getName().startsWith("postgresql") : dbtype;
assertPostgresTypes(dbtype);
}
Show replies by date