Code Duplication    Length = 17-39 lines in 8 locations

src/database/databasetraits/DatabaseTrait.php 1 location

@@ 429-454 (lines=26) @@
426
     *
427
     * @return \PHPPgAdmin\ADORecordSet A recordset
428
     */
429
    public function getLocks()
430
    {
431
        $conf = $this->conf;
432
433
        if (!$conf['show_system']) {
434
            $where = 'AND pn.nspname NOT LIKE $$pg\_%$$';
435
        } else {
436
            $where = "AND nspname !~ '^pg_t(emp_[0-9]+|oast)$'";
437
        }
438
439
        $sql = "
440
            SELECT
441
                pn.nspname, pc.relname AS tablename, pl.pid, pl.mode, pl.granted, pl.virtualtransaction,
442
                (select transactionid from pg_catalog.pg_locks l2 where l2.locktype='transactionid'
443
                    and l2.mode='ExclusiveLock' and l2.virtualtransaction=pl.virtualtransaction) as transaction
444
            FROM
445
                pg_catalog.pg_locks pl,
446
                pg_catalog.pg_class pc,
447
                pg_catalog.pg_namespace pn
448
            WHERE
449
                pl.relation = pc.oid AND pc.relnamespace=pn.oid
450
            {$where}
451
            ORDER BY pid,nspname,tablename";
452
453
        return $this->selectSet($sql);
454
    }
455
456
    /**
457
     * Sends a cancel or kill command to a process.

src/database/databasetraits/SchemaTrait.php 1 location

@@ 21-44 (lines=24) @@
18
     *
19
     * @return \PHPPgAdmin\ADORecordSet All schemas, sorted alphabetically
20
     */
21
    public function getSchemas()
22
    {
23
        $conf = $this->conf;
24
25
        if (!$conf['show_system']) {
26
            $where = "WHERE nspname NOT LIKE 'pg@_%' ESCAPE '@' AND nspname != 'information_schema'";
27
        } else {
28
            $where = "WHERE nspname !~ '^pg_t(emp_[0-9]+|oast)$'";
29
        }
30
31
        $sql = "
32
            SELECT pn.nspname,
33
                   pu.rolname AS nspowner,
34
                   pg_catalog.obj_description(pn.oid, 'pg_namespace') AS nspcomment,
35
                   pg_size_pretty(SUM(pg_total_relation_size(pg_class.oid))) as schema_size
36
            FROM pg_catalog.pg_namespace pn
37
            LEFT JOIN pg_catalog.pg_class  ON relnamespace = pn.oid
38
            LEFT JOIN pg_catalog.pg_roles pu ON (pn.nspowner = pu.oid)
39
            {$where}
40
            GROUP BY pn.nspname, pu.rolname, pg_catalog.obj_description(pn.oid, 'pg_namespace')
41
            ORDER BY nspname";
42
43
        return $this->selectSet($sql);
44
    }
45
46
    /**
47
     * Sets the current working schema.  Will also set Class variable.

src/database/databasetraits/TypeTrait.php 1 location

@@ 430-468 (lines=39) @@
427
     *
428
     * @return \PHPPgAdmin\ADORecordSet All casts
429
     */
430
    public function getCasts()
431
    {
432
        $conf = $this->conf;
433
434
        if ($conf['show_system']) {
435
            $where = '';
436
        } else {
437
            $where = '
438
                AND n1.nspname NOT LIKE $$pg\_%$$
439
                AND n2.nspname NOT LIKE $$pg\_%$$
440
                AND n3.nspname NOT LIKE $$pg\_%$$
441
            ';
442
        }
443
444
        $sql = "
445
            SELECT
446
                c.castsource::pg_catalog.regtype AS castsource,
447
                c.casttarget::pg_catalog.regtype AS casttarget,
448
                CASE WHEN c.castfunc=0 THEN NULL
449
                ELSE c.castfunc::pg_catalog.regprocedure END AS castfunc,
450
                c.castcontext,
451
                obj_description(c.oid, 'pg_cast') as castcomment
452
            FROM
453
                (pg_catalog.pg_cast c LEFT JOIN pg_catalog.pg_proc p ON c.castfunc=p.oid JOIN pg_catalog.pg_namespace n3 ON p.pronamespace=n3.oid),
454
                pg_catalog.pg_type t1,
455
                pg_catalog.pg_type t2,
456
                pg_catalog.pg_namespace n1,
457
                pg_catalog.pg_namespace n2
458
            WHERE
459
                c.castsource=t1.oid
460
                AND c.casttarget=t2.oid
461
                AND t1.typnamespace=n1.oid
462
                AND t2.typnamespace=n2.oid
463
                {$where}
464
            ORDER BY 1, 2
465
        ";
466
467
        return $this->selectSet($sql);
468
    }
469
470
    /**
471
     * Returns a list of all conversions in the database.

src/database/Postgres.php 1 location

@@ 382-403 (lines=22) @@
379
     *
380
     * @return \PHPPgAdmin\ADORecordSet A recordset
381
     */
382
    public function getLanguages($all = false)
383
    {
384
        $conf = $this->conf;
385
386
        if ($conf['show_system'] || $all) {
387
            $where = '';
388
        } else {
389
            $where = 'WHERE lanispl';
390
        }
391
392
        $sql = "
393
			SELECT
394
				lanname, lanpltrusted,
395
				lanplcallfoid::pg_catalog.regproc AS lanplcallf
396
			FROM
397
				pg_catalog.pg_language
398
			{$where}
399
			ORDER BY lanname
400
		";
401
402
        return $this->selectSet($sql);
403
    }
404
405
    /**
406
     * Executes an SQL script as a series of SQL statements.  Returns

src/database/Postgres74.php 2 locations

@@ 262-278 (lines=17) @@
259
     *
260
     * @return \PHPPgAdmin\ADORecordSet A recordset
261
     */
262
    public function getLocks()
263
    {
264
        $conf = $this->conf;
265
266
        if (!$conf['show_system']) {
267
            $where = "AND pn.nspname NOT LIKE 'pg\\\\_%'";
268
        } else {
269
            $where = "AND nspname !~ '^pg_t(emp_[0-9]+|oast)$'";
270
        }
271
272
        $sql = "SELECT pn.nspname, pc.relname AS tablename, pl.transaction, pl.pid, pl.mode, pl.granted
273
		FROM pg_catalog.pg_locks pl, pg_catalog.pg_class pc, pg_catalog.pg_namespace pn
274
		WHERE pl.relation = pc.oid AND pc.relnamespace=pn.oid {$where}
275
		ORDER BY nspname,tablename";
276
277
        return $this->selectSet($sql);
278
    }
279
280
    /**
281
     * Returns the current database encoding.
@@ 564-602 (lines=39) @@
561
     *
562
     * @return \PHPPgAdmin\ADORecordSet All casts
563
     */
564
    public function getCasts()
565
    {
566
        $conf = $this->conf;
567
568
        if ($conf['show_system']) {
569
            $where = '';
570
        } else {
571
            $where = "
572
				AND n1.nspname NOT LIKE 'pg\\\\_%'
573
				AND n2.nspname NOT LIKE 'pg\\\\_%'
574
				AND n3.nspname NOT LIKE 'pg\\\\_%'
575
			";
576
        }
577
578
        $sql = "
579
			SELECT
580
				c.castsource::pg_catalog.regtype AS castsource,
581
				c.casttarget::pg_catalog.regtype AS casttarget,
582
				CASE WHEN c.castfunc=0 THEN NULL
583
				ELSE c.castfunc::pg_catalog.regprocedure END AS castfunc,
584
				c.castcontext,
585
				obj_description(c.oid, 'pg_cast') as castcomment
586
			FROM
587
				(pg_catalog.pg_cast c LEFT JOIN pg_catalog.pg_proc p ON c.castfunc=p.oid JOIN pg_catalog.pg_namespace n3 ON p.pronamespace=n3.oid),
588
				pg_catalog.pg_type t1,
589
				pg_catalog.pg_type t2,
590
				pg_catalog.pg_namespace n1,
591
				pg_catalog.pg_namespace n2
592
			WHERE
593
				c.castsource=t1.oid
594
				AND c.casttarget=t2.oid
595
				AND t1.typnamespace=n1.oid
596
				AND t2.typnamespace=n2.oid
597
				{$where}
598
			ORDER BY 1, 2
599
		";
600
601
        return $this->selectSet($sql);
602
    }
603
604
    public function hasAlterColumnType()
605
    {

src/database/Postgres80.php 1 location

@@ 109-128 (lines=20) @@
106
     *
107
     * @return \PHPPgAdmin\ADORecordSet All schemas, sorted alphabetically
108
     */
109
    public function getSchemas()
110
    {
111
        $conf = $this->conf;
112
113
        if (!$conf['show_system']) {
114
            $where = "WHERE nspname NOT LIKE 'pg@_%' ESCAPE '@' AND nspname != 'information_schema'";
115
        } else {
116
            $where = "WHERE nspname !~ '^pg_t(emp_[0-9]+|oast)$'";
117
        }
118
119
        $sql = "
120
			SELECT pn.nspname, pu.usename AS nspowner,
121
				pg_catalog.obj_description(pn.oid, 'pg_namespace') AS nspcomment
122
			FROM pg_catalog.pg_namespace pn
123
				LEFT JOIN pg_catalog.pg_user pu ON (pn.nspowner = pu.usesysid)
124
			{$where}
125
			ORDER BY nspname";
126
127
        return $this->selectSet($sql);
128
    }
129
130
    /**
131
     * Return all information relating to a schema.

src/database/Postgres82.php 1 location

@@ 56-72 (lines=17) @@
53
     *
54
     * @return \PHPPgAdmin\ADORecordSet A recordset
55
     */
56
    public function getLocks()
57
    {
58
        $conf = $this->conf;
59
60
        if (!$conf['show_system']) {
61
            $where = 'AND pn.nspname NOT LIKE $$pg\_%$$';
62
        } else {
63
            $where = "AND nspname !~ '^pg_t(emp_[0-9]+|oast)$'";
64
        }
65
66
        $sql = "SELECT pn.nspname, pc.relname AS tablename, pl.transaction, pl.pid, pl.mode, pl.granted
67
		FROM pg_catalog.pg_locks pl, pg_catalog.pg_class pc, pg_catalog.pg_namespace pn
68
		WHERE pl.relation = pc.oid AND pc.relnamespace=pn.oid {$where}
69
		ORDER BY nspname,tablename";
70
71
        return $this->selectSet($sql);
72
    }
73
74
    // Sequence functions
75