[Schmitzm-commits] r1832 - trunk/schmitzm-db/src/main/java/de/schmitzm/postgres
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Sun Jan 22 01:37:52 CET 2012
Author: alfonx
Date: 2012-01-22 01:37:51 +0100 (Sun, 22 Jan 2012)
New Revision: 1832
Modified:
trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java
Log:
/**
* Liefdert eine Liste alle Spaltennamen in einer Tabelle.
*
* ACHTUNG! Diese Methode schaut gerade nur auf den Tabellennamen! Das SChema wird ignoriert. Es gibt also probleme,
* wenn der selbe Tabellenname noch in einem anderen Schema existiert.
*
* @param tableName
* darf auch schema-informationen enthalten.
* @throws SQLException
*/
public List<String> listColumnsInTable(Connection c, String tableName) throws SQLException {
Modified: trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java
===================================================================
--- trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java 2012-01-21 20:19:22 UTC (rev 1831)
+++ trunk/schmitzm-db/src/main/java/de/schmitzm/postgres/PGUtil.java 2012-01-22 00:37:51 UTC (rev 1832)
@@ -259,6 +259,44 @@
}
/**
+ * Liefdert eine Liste alle Spaltennamen in einer Tabelle.
+ *
+ * ACHTUNG! Diese Methode schaut gerade nur auf den Tabellennamen! Das SChema wird ignoriert. Es gibt also probleme,
+ * wenn der selbe Tabellenname noch in einem anderen Schema existiert.
+ *
+ * @param tableName
+ * darf auch schema-informationen enthalten.
+ * @throws SQLException
+ */
+ public List<String> listColumnsInTable(Connection c, String tableName) throws SQLException {
+ List<String> cols = new ArrayList<String>();
+
+ String schema = "public";
+
+ if (tableName.contains(".")) {
+ final String[] split = tableName.split("\\.");
+ schema = split[0];
+ tableName = split[1];
+ }
+
+ String sql = "SELECT a.attnum, a.attname AS field, t.typname AS type,"
+ + " a.attlen AS length, a.atttypmod AS length_var,"
+ + " a.attnotnull AS not_null, a.atthasdef as has_default"
+ + " FROM pg_class c, pg_attribute a, pg_type t" + " WHERE c.relname = '" + tableName + "'"
+ + " AND a.attnum > 0" + " AND a.attrelid = c.oid" + " AND a.atttypid = t.oid"
+ + " ORDER BY a.attnum;";
+ ResultSet rs = c.createStatement().executeQuery(sql);
+ try {
+ while (rs.next()) {
+ cols.add(rs.getString(1));
+ }
+ } finally {
+ rs.close();
+ }
+ return cols;
+ }
+
+ /**
* Liefert <code>true</code> wenn der Benutzername im DBMS Superuser ist.
*/
public static boolean isSuperuser(Connection c, String username) throws SQLException {
More information about the Schmitzm-commits
mailing list