diff --git a/src/helma/objectmodel/db/DbMapping.java b/src/helma/objectmodel/db/DbMapping.java index 7d46ccfe..4294e79d 100644 --- a/src/helma/objectmodel/db/DbMapping.java +++ b/src/helma/objectmodel/db/DbMapping.java @@ -1200,6 +1200,21 @@ public final class DbMapping { return false; } + /** + * Is the database behind this a PostgreSQL db? + * + * @return true if the dbsource is using a PostgreSQL JDBC driver + */ + public boolean isPostgreSQL() { + if (dbSource != null) { + return dbSource.isPostgreSQL(); + } + if (parentMapping != null) { + return parentMapping.isPostgreSQL(); + } + return false; + } + /** * Return a string representation for this DbMapping * diff --git a/src/helma/objectmodel/db/DbSource.java b/src/helma/objectmodel/db/DbSource.java index f4193633..7ad09904 100644 --- a/src/helma/objectmodel/db/DbSource.java +++ b/src/helma/objectmodel/db/DbSource.java @@ -35,7 +35,7 @@ public class DbSource { private ResourceProperties props; protected String url; private String driver; - private boolean isOracle, isMySQL; + private boolean isOracle, isMySQL, isPostgreSQL; private long lastRead = 0L; private Hashtable dbmappings = new Hashtable(); @@ -115,6 +115,7 @@ public class DbSource { isOracle = driver.startsWith("oracle.jdbc.driver"); isMySQL = driver.startsWith("com.mysql.jdbc") || driver.startsWith("org.gjt.mm.mysql"); + isPostgreSQL = driver.equals("org.postgresql.Driver"); // test if driver class is available Class.forName(driver); @@ -195,6 +196,14 @@ public class DbSource { return isMySQL; } + /** + * Check if this DbSource represents a PostgreSQL database + * + * @return true if we're using a PostgreSQL JDBC driver + */ + public boolean isPostgreSQL() { + return isPostgreSQL; + } /** * Register a dbmapping by its table name. *