Changeset 2075

Show
Ignore:
Timestamp:
02/18/2008 02:13:05 PM (11 months ago)
Author:
zombor
Message:

Fixing #412. Thanks rusty_angel.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/system/libraries/drivers/Database/Pgsql.php

    r1931 r2075  
    8888        public function escape_table($table) 
    8989        { 
    90                 return '"'.str_replace('.', '"."', $table).'"'; 
     90                return '\''.str_replace('.', '"."', $table).'\''; 
    9191        } 
    9292 
     
    259259                // WOW...REALLY?!? 
    260260                // Taken from http://www.postgresql.org/docs/7.4/interactive/catalogs.html 
    261                 return 'SELECT 
     261                $query = $this->query('SELECT 
    262262  -- Field 
    263263  pg_attribute.attname AS "Field", 
     
    276276  -- Default 
    277277  CASE pg_type.typname 
    278     WHEN \'varchar\' THEN substring(pg_attrdef.adsrc from \'^\'(.*)\'.*$\') 
     278    WHEN \'varchar\' THEN substring(pg_attrdef.adsrc from \'^(.*).*$\') 
    279279    ELSE pg_attrdef.adsrc 
    280280  END AS "Default" 
     
    287287    ON (pg_class.oid=pg_attrdef.adrelid AND pg_attribute.attnum=pg_attrdef.adnum) 
    288288WHERE pg_class.relname=\''.$this->escape_table($table).'\' AND pg_attribute.attnum>=1 AND NOT pg_attribute.attisdropped 
    289 ORDER BY pg_attribute.attnum'; 
     289ORDER BY pg_attribute.attnum'); 
     290                $fields = array(); 
     291                foreach ($query as $row) 
     292                { 
     293                        $fields[$row->Field]=$row->Type; 
     294                } 
     295 
     296                return $fields; 
    290297 
    291298        }