Postgres10   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 47
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A getTables() 0 30 2
1
<?php
2
3
/**
4
 * PHPPgAdmin 6.1.3
5
 */
6
7
namespace PHPPgAdmin\Database;
8
9
/**
10
 * @file
11
 * PostgreSQL 10.x support
12
 *
13
 * @todo add support for identify columns
14
 *
15
 * @see https://blog.2ndquadrant.com/postgresql-10-identity-columns/
16
 */
17
18
/**
19
 * Class to add support for Postgres10.
20
 */
21
class Postgres10 extends Postgres96
22
{
23
    /**
24
     * @var float
25
     */
26
    public $major_version = 10;
27
28
    /**
29
     * @var class-string
0 ignored issues
show
Documentation Bug introduced by
The doc comment class-string at position 0 could not be parsed: Unknown type name 'class-string' at position 0 in class-string.
Loading history...
30
     */
31
    public $help_classname = \PHPPgAdmin\Help\PostgresDoc10::class;
32
33
    /**
34
     * Return all tables in current database (and schema).
35
     *
36
     * @return int|\PHPPgAdmin\ADORecordSet All tables, sorted alphabetically
37
     */
38
    public function getTables()
39
    {
40
        $c_schema = $this->_schema;
41
        $this->clean($c_schema);
42
43
        $sql = "
44
                SELECT c.relname,
45
                    pg_catalog.pg_get_userbyid(c.relowner) AS relowner,
46
                    pg_catalog.obj_description(c.oid, 'pg_class') AS relcomment,
47
                    reltuples::bigint as reltuples,
48
                    pt.spcname as tablespace, ";
49
50
        /*
51
         * Either display_sizes is true for tables and schemas,
52
         * or we must check if said config is an associative array
53
         */
54
        if ($this->conf['display_sizes']['tables']) {
55
            $sql .= ' pg_size_pretty(pg_total_relation_size(c.oid)) as table_size ';
56
        } else {
57
            $sql .= "   'N/A' as table_size ";
58
        }
59
60
        $sql .= " FROM pg_catalog.pg_class c
61
                LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
62
                LEFT JOIN  pg_catalog.pg_tablespace pt ON  pt.oid=c.reltablespace
63
                WHERE c.relkind IN ('r','p')
64
                AND nspname='{$c_schema}'
65
                ORDER BY c.relname";
66
67
        return $this->selectSet($sql);
68
    }
69
}
70