Code Duplication    Length = 16-34 lines in 4 locations

src/database/databasetraits/IndexTrait.php 2 locations

@@ 21-38 (lines=18) @@
18
     *
19
     * @return bool true if the table has been already clustered
20
     */
21
    public function alreadyClustered($table)
22
    {
23
        $c_schema = $this->_schema;
24
        $this->clean($c_schema);
25
        $this->clean($table);
26
27
        $sql = "SELECT i.indisclustered
28
			FROM pg_catalog.pg_class c, pg_catalog.pg_index i
29
			WHERE c.relname = '{$table}'
30
				AND c.oid = i.indrelid AND i.indisclustered
31
				AND c.relnamespace = (SELECT oid FROM pg_catalog.pg_namespace
32
					WHERE nspname='{$c_schema}')
33
				";
34
35
        $v = $this->selectSet($sql);
36
37
        return !($v->RecordCount() == 0);
38
    }
39
40
    /**
41
     * Creates an index.
@@ 622-655 (lines=34) @@
619
     *
620
     * @return int|\PHPPgAdmin\ADORecordSet A recordset or -1 in case of error
621
     */
622
    public function getReferrers($table)
623
    {
624
        $this->clean($table);
625
626
        $status = $this->beginTransaction();
627
        if ($status != 0) {
628
            return -1;
629
        }
630
631
        $c_schema = $this->_schema;
632
        $this->clean($c_schema);
633
634
        $sql = "
635
			SELECT
636
				pn.nspname,
637
				pl.relname,
638
				pc.conname,
639
				pg_catalog.pg_get_constraintdef(pc.oid) AS consrc
640
			FROM
641
				pg_catalog.pg_constraint pc,
642
				pg_catalog.pg_namespace pn,
643
				pg_catalog.pg_class pl
644
			WHERE
645
				pc.connamespace = pn.oid
646
				AND pc.conrelid = pl.oid
647
				AND pc.contype = 'f'
648
				AND confrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname='{$table}'
649
					AND relnamespace = (SELECT oid FROM pg_catalog.pg_namespace
650
					WHERE nspname='{$c_schema}'))
651
			ORDER BY 1,2,3
652
		";
653
654
        return $this->selectSet($sql);
655
    }
656
657
    abstract public function fieldClean(&$str);
658

src/database/databasetraits/TriggerTrait.php 1 location

@@ 22-37 (lines=16) @@
19
     *
20
     * @return \PHPPgAdmin\ADORecordSet A recordset
21
     */
22
    public function getTrigger($table, $trigger)
23
    {
24
        $c_schema = $this->_schema;
25
        $this->clean($c_schema);
26
        $this->clean($table);
27
        $this->clean($trigger);
28
29
        $sql = "
30
            SELECT * FROM pg_catalog.pg_trigger t, pg_catalog.pg_class c
31
            WHERE t.tgrelid=c.oid AND c.relname='{$table}' AND t.tgname='{$trigger}'
32
                AND c.relnamespace=(
33
                    SELECT oid FROM pg_catalog.pg_namespace
34
                    WHERE nspname='{$c_schema}')";
35
36
        return $this->selectSet($sql);
37
    }
38
39
    /**
40
     * Creates a trigger.

src/database/Postgres80.php 1 location

@@ 181-205 (lines=25) @@
178
     *
179
     * @return \PHPPgAdmin\ADORecordSet A recordset
180
     */
181
    public function getAggregate($name, $basetype)
182
    {
183
        $c_schema = $this->_schema;
184
        $this->clean($c_schema);
185
        $this->clean($name);
186
        $this->clean($basetype);
187
188
        $sql = "
189
			SELECT p.proname,
190
				CASE p.proargtypes[0]
191
					WHEN 'pg_catalog.\"any\"'::pg_catalog.regtype THEN NULL
192
					ELSE pg_catalog.format_type(p.proargtypes[0], NULL)
193
				END AS proargtypes, a.aggtransfn, format_type(a.aggtranstype, NULL) AS aggstype,
194
				a.aggfinalfn, a.agginitval, u.usename, pg_catalog.obj_description(p.oid, 'pg_proc') AS aggrcomment
195
			FROM pg_catalog.pg_proc p, pg_catalog.pg_namespace n, pg_catalog.pg_user u, pg_catalog.pg_aggregate a
196
			WHERE n.oid = p.pronamespace AND p.proowner=u.usesysid AND p.oid=a.aggfnoid
197
				AND p.proisagg AND n.nspname='{$c_schema}'
198
				AND p.proname='{$name}'
199
				AND CASE p.proargtypes[0]
200
					WHEN 'pg_catalog.\"any\"'::pg_catalog.regtype THEN ''
201
					ELSE pg_catalog.format_type(p.proargtypes[0], NULL)
202
				END ='{$basetype}'";
203
204
        return $this->selectSet($sql);
205
    }
206
207
    // Sequence functions
208