Nette\Database\Drivers\PgSqlDriver::getColumns PHP Method

getColumns() public method

Returns metadata for all columns in a table.
public getColumns ( $table )
    public function getColumns($table)
    {
        $columns = [];
        foreach ($this->connection->query("\n\t\t\tSELECT\n\t\t\t\ta.attname::varchar AS name,\n\t\t\t\tc.relname::varchar AS table,\n\t\t\t\tupper(t.typname) AS nativetype,\n\t\t\t\tCASE WHEN a.atttypmod = -1 THEN NULL ELSE a.atttypmod -4 END AS size,\n\t\t\t\tFALSE AS unsigned,\n\t\t\t\tNOT (a.attnotnull OR t.typtype = 'd' AND t.typnotnull) AS nullable,\n\t\t\t\tpg_catalog.pg_get_expr(ad.adbin, 'pg_catalog.pg_attrdef'::regclass)::varchar AS default,\n\t\t\t\tcoalesce(co.contype = 'p' AND strpos(ad.adsrc, 'nextval') = 1, FALSE) AS autoincrement,\n\t\t\t\tcoalesce(co.contype = 'p', FALSE) AS primary,\n\t\t\t\tsubstring(pg_catalog.pg_get_expr(ad.adbin, 'pg_catalog.pg_attrdef'::regclass) from 'nextval[(]''\"?([^''\"]+)') AS sequence\n\t\t\tFROM\n\t\t\t\tpg_catalog.pg_attribute AS a\n\t\t\t\tJOIN pg_catalog.pg_class AS c ON a.attrelid = c.oid\n\t\t\t\tJOIN pg_catalog.pg_type AS t ON a.atttypid = t.oid\n\t\t\t\tLEFT JOIN pg_catalog.pg_attrdef AS ad ON ad.adrelid = c.oid AND ad.adnum = a.attnum\n\t\t\t\tLEFT JOIN pg_catalog.pg_constraint AS co ON co.connamespace = c.relnamespace AND contype = 'p' AND co.conrelid = c.oid AND a.attnum = ANY(co.conkey)\n\t\t\tWHERE\n\t\t\t\tc.relkind IN ('r', 'v')\n\t\t\t\tAND c.oid = {$this->connection->quote($this->delimiteFQN($table))}::regclass\n\t\t\t\tAND a.attnum > 0\n\t\t\t\tAND NOT a.attisdropped\n\t\t\tORDER BY\n\t\t\t\ta.attnum\n\t\t") as $row) {
            $column = (array) $row;
            $column['vendor'] = $column;
            unset($column['sequence']);
            $columns[] = $column;
        }
        return $columns;
    }