#1467296 patch for bug #1454529
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / adapters / PostgresAdapter.java
index 8389bf1..c31b5fe 100644 (file)
@@ -1,28 +1,35 @@
 package com.quantum.adapters;
 
-import com.quantum.sql.SQLHelper;
+import java.util.HashMap;
+import java.util.Map;
+
 import com.quantum.util.QuantumUtil;
 import com.quantum.util.sql.TypesHelper;
 
 
 public class PostgresAdapter extends DatabaseAdapter {
-    public String getShowTableQuery(String qualifier, boolean isDefault) {
+       protected PostgresAdapter() {
+               super(AdapterFactory.POSTGRES);
+       }
+       public String getShowTableQuery(String qualifier) {
         return "SELECT SCHEMANAME, TABLENAME FROM PG_TABLES WHERE SCHEMANAME = '" 
             + qualifier + "'";
     }
-    public String getShowViewQuery(String qualifier, boolean isDefault) {
+    public String getShowViewQuery(String qualifier) {
         return "SELECT SCHEMANAME, VIEWNAME FROM PG_VIEWS WHERE SCHEMANAME = '" 
             + qualifier + "'";
     }
-    public String getShowSequenceQuery(String qualifier, boolean isDefault) {
-        return "SELECT SCHEMANAME, relname FROM pg_class WHERE relkind = 'S'" +
-            "AND SCHEMANAME = '" + qualifier + "'";
+    public String getShowSequenceQuery(String qualifier) {
+       return "select pg_namespace.nspname, relname " +
+                       "from pg_class, pg_namespace where relkind = 'S' " +
+                       "and relnamespace = pg_namespace.oid " +
+                       "and pg_namespace.nspname = '" + qualifier + "'";
     }
        public String getNextValue(String sequence, String owner) {
-               return "SELECT NEXTVAL('" + SQLHelper.getQualifiedName(owner, sequence) + "')";
+               return "SELECT NEXTVAL('" + getQualifiedName(owner, sequence) + "')";
        }
        public String getPrevValue(String sequence, String owner) {
-               return "SELECT * FROM " + SQLHelper.getQualifiedName(owner, sequence);
+               return "SELECT * FROM " + getQualifiedName(owner, sequence);
        }
 
        /**
@@ -46,17 +53,21 @@ public class PostgresAdapter extends DatabaseAdapter {
                return super.quote(string, type, typeString);
        }
 
+       public String getTableQuery(String table) {
+               return "SELECT * FROM " + filterTableName(table); //$NON-NLS-1$
+       }
     /**
      * @see com.quantum.adapters.DatabaseAdapter#filterTableName(java.lang.String)
      */
     public String filterTableName(String tableName) {
         // If there is no mixed case, better not quote, it's prettier on display
-        if (tableName.equals(tableName.toUpperCase())) return tableName;
-        // We quote the table name (and only the table name) because it has mixed case
+       // Postgresql defaults to lower case identifiers
+        if (tableName.equals(tableName.toLowerCase())) return tableName;
+        // We quote the table name because it has mixed case
         if (QuantumUtil.getSchemaName(tableName).equals("")) {
-            return "\"" + tableName +"\""; //$NON-NLS-1$
+            return "\"" + tableName + "\""; //$NON-NLS-1$
         } else {
-            return QuantumUtil.getSchemaName(tableName) + ".\"" + 
+            return "\"" + QuantumUtil.getSchemaName(tableName) + "\".\"" + 
                     QuantumUtil.getTableName(tableName) + "\"";
         }
     }
@@ -67,4 +78,10 @@ public class PostgresAdapter extends DatabaseAdapter {
         return "public";
     }
 
+       public Map getDefaultConnectionParameters() {
+               Map map = new HashMap();
+               map.put("port", "5432");
+               map.put("hostname", "localhost");
+               return map;
+       }
 }
\ No newline at end of file