| @@ 1025-1044 (lines=20) @@ | ||
| 1022 | * |
|
| 1023 | * @return All schemas, sorted alphabetically |
|
| 1024 | */ |
|
| 1025 | public function getSchemas() |
|
| 1026 | { |
|
| 1027 | $conf = $this->conf; |
|
| 1028 | ||
| 1029 | if (!$conf['show_system']) { |
|
| 1030 | $where = "WHERE nspname NOT LIKE 'pg@_%' ESCAPE '@' AND nspname != 'information_schema'"; |
|
| 1031 | } else { |
|
| 1032 | $where = "WHERE nspname !~ '^pg_t(emp_[0-9]+|oast)$'"; |
|
| 1033 | } |
|
| 1034 | ||
| 1035 | $sql = " |
|
| 1036 | SELECT pn.nspname, pu.rolname AS nspowner, |
|
| 1037 | pg_catalog.obj_description(pn.oid, 'pg_namespace') AS nspcomment |
|
| 1038 | FROM pg_catalog.pg_namespace pn |
|
| 1039 | LEFT JOIN pg_catalog.pg_roles pu ON (pn.nspowner = pu.oid) |
|
| 1040 | {$where} |
|
| 1041 | ORDER BY nspname"; |
|
| 1042 | ||
| 1043 | return $this->selectSet($sql); |
|
| 1044 | } |
|
| 1045 | ||
| 1046 | /** |
|
| 1047 | * Sets the current working schema. Will also set Class variable. |
|
| @@ 6098-6136 (lines=39) @@ | ||
| 6095 | * |
|
| 6096 | * @return All casts |
|
| 6097 | */ |
|
| 6098 | public function getCasts() |
|
| 6099 | { |
|
| 6100 | $conf = $this->conf; |
|
| 6101 | ||
| 6102 | if ($conf['show_system']) { |
|
| 6103 | $where = ''; |
|
| 6104 | } else { |
|
| 6105 | $where = ' |
|
| 6106 | AND n1.nspname NOT LIKE $$pg\_%$$ |
|
| 6107 | AND n2.nspname NOT LIKE $$pg\_%$$ |
|
| 6108 | AND n3.nspname NOT LIKE $$pg\_%$$ |
|
| 6109 | '; |
|
| 6110 | } |
|
| 6111 | ||
| 6112 | $sql = " |
|
| 6113 | SELECT |
|
| 6114 | c.castsource::pg_catalog.regtype AS castsource, |
|
| 6115 | c.casttarget::pg_catalog.regtype AS casttarget, |
|
| 6116 | CASE WHEN c.castfunc=0 THEN NULL |
|
| 6117 | ELSE c.castfunc::pg_catalog.regprocedure END AS castfunc, |
|
| 6118 | c.castcontext, |
|
| 6119 | obj_description(c.oid, 'pg_cast') as castcomment |
|
| 6120 | FROM |
|
| 6121 | (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), |
|
| 6122 | pg_catalog.pg_type t1, |
|
| 6123 | pg_catalog.pg_type t2, |
|
| 6124 | pg_catalog.pg_namespace n1, |
|
| 6125 | pg_catalog.pg_namespace n2 |
|
| 6126 | WHERE |
|
| 6127 | c.castsource=t1.oid |
|
| 6128 | AND c.casttarget=t2.oid |
|
| 6129 | AND t1.typnamespace=n1.oid |
|
| 6130 | AND t2.typnamespace=n2.oid |
|
| 6131 | {$where} |
|
| 6132 | ORDER BY 1, 2 |
|
| 6133 | "; |
|
| 6134 | ||
| 6135 | return $this->selectSet($sql); |
|
| 6136 | } |
|
| 6137 | ||
| 6138 | /** |
|
| 6139 | * Returns a list of all conversions in the database. |
|
| @@ 7329-7350 (lines=22) @@ | ||
| 7326 | * |
|
| 7327 | * @return \PHPPgAdmin\Database\A recordset |
|
| 7328 | */ |
|
| 7329 | public function getLanguages($all = false) |
|
| 7330 | { |
|
| 7331 | $conf = $this->conf; |
|
| 7332 | ||
| 7333 | if ($conf['show_system'] || $all) { |
|
| 7334 | $where = ''; |
|
| 7335 | } else { |
|
| 7336 | $where = 'WHERE lanispl'; |
|
| 7337 | } |
|
| 7338 | ||
| 7339 | $sql = " |
|
| 7340 | SELECT |
|
| 7341 | lanname, lanpltrusted, |
|
| 7342 | lanplcallfoid::pg_catalog.regproc AS lanplcallf |
|
| 7343 | FROM |
|
| 7344 | pg_catalog.pg_language |
|
| 7345 | {$where} |
|
| 7346 | ORDER BY lanname |
|
| 7347 | "; |
|
| 7348 | ||
| 7349 | return $this->selectSet($sql); |
|
| 7350 | } |
|
| 7351 | ||
| 7352 | /** |
|
| 7353 | * Creates a new aggregate in the database. |
|
| @@ 8897-8922 (lines=26) @@ | ||
| 8894 | * |
|
| 8895 | * @return A recordset |
|
| 8896 | */ |
|
| 8897 | public function getLocks() |
|
| 8898 | { |
|
| 8899 | $conf = $this->conf; |
|
| 8900 | ||
| 8901 | if (!$conf['show_system']) { |
|
| 8902 | $where = 'AND pn.nspname NOT LIKE $$pg\_%$$'; |
|
| 8903 | } else { |
|
| 8904 | $where = "AND nspname !~ '^pg_t(emp_[0-9]+|oast)$'"; |
|
| 8905 | } |
|
| 8906 | ||
| 8907 | $sql = " |
|
| 8908 | SELECT |
|
| 8909 | pn.nspname, pc.relname AS tablename, pl.pid, pl.mode, pl.granted, pl.virtualtransaction, |
|
| 8910 | (select transactionid from pg_catalog.pg_locks l2 where l2.locktype='transactionid' |
|
| 8911 | and l2.mode='ExclusiveLock' and l2.virtualtransaction=pl.virtualtransaction) as transaction |
|
| 8912 | FROM |
|
| 8913 | pg_catalog.pg_locks pl, |
|
| 8914 | pg_catalog.pg_class pc, |
|
| 8915 | pg_catalog.pg_namespace pn |
|
| 8916 | WHERE |
|
| 8917 | pl.relation = pc.oid AND pc.relnamespace=pn.oid |
|
| 8918 | {$where} |
|
| 8919 | ORDER BY pid,nspname,tablename"; |
|
| 8920 | ||
| 8921 | return $this->selectSet($sql); |
|
| 8922 | } |
|
| 8923 | ||
| 8924 | /** |
|
| 8925 | * Sends a cancel or kill command to a process. |
|
| @@ 252-268 (lines=17) @@ | ||
| 249 | * |
|
| 250 | * @return A recordset |
|
| 251 | */ |
|
| 252 | public function getLocks() |
|
| 253 | { |
|
| 254 | $conf = $this->conf; |
|
| 255 | ||
| 256 | if (!$conf['show_system']) { |
|
| 257 | $where = "AND pn.nspname NOT LIKE 'pg\\\\_%'"; |
|
| 258 | } else { |
|
| 259 | $where = "AND nspname !~ '^pg_t(emp_[0-9]+|oast)$'"; |
|
| 260 | } |
|
| 261 | ||
| 262 | $sql = "SELECT pn.nspname, pc.relname AS tablename, pl.transaction, pl.pid, pl.mode, pl.granted |
|
| 263 | FROM pg_catalog.pg_locks pl, pg_catalog.pg_class pc, pg_catalog.pg_namespace pn |
|
| 264 | WHERE pl.relation = pc.oid AND pc.relnamespace=pn.oid {$where} |
|
| 265 | ORDER BY nspname,tablename"; |
|
| 266 | ||
| 267 | return $this->selectSet($sql); |
|
| 268 | } |
|
| 269 | ||
| 270 | /** |
|
| 271 | * Returns the current database encoding. |
|
| @@ 585-623 (lines=39) @@ | ||
| 582 | * |
|
| 583 | * @return All casts |
|
| 584 | */ |
|
| 585 | public function getCasts() |
|
| 586 | { |
|
| 587 | $conf = $this->conf; |
|
| 588 | ||
| 589 | if ($conf['show_system']) { |
|
| 590 | $where = ''; |
|
| 591 | } else { |
|
| 592 | $where = " |
|
| 593 | AND n1.nspname NOT LIKE 'pg\\\\_%' |
|
| 594 | AND n2.nspname NOT LIKE 'pg\\\\_%' |
|
| 595 | AND n3.nspname NOT LIKE 'pg\\\\_%' |
|
| 596 | "; |
|
| 597 | } |
|
| 598 | ||
| 599 | $sql = " |
|
| 600 | SELECT |
|
| 601 | c.castsource::pg_catalog.regtype AS castsource, |
|
| 602 | c.casttarget::pg_catalog.regtype AS casttarget, |
|
| 603 | CASE WHEN c.castfunc=0 THEN NULL |
|
| 604 | ELSE c.castfunc::pg_catalog.regprocedure END AS castfunc, |
|
| 605 | c.castcontext, |
|
| 606 | obj_description(c.oid, 'pg_cast') as castcomment |
|
| 607 | FROM |
|
| 608 | (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), |
|
| 609 | pg_catalog.pg_type t1, |
|
| 610 | pg_catalog.pg_type t2, |
|
| 611 | pg_catalog.pg_namespace n1, |
|
| 612 | pg_catalog.pg_namespace n2 |
|
| 613 | WHERE |
|
| 614 | c.castsource=t1.oid |
|
| 615 | AND c.casttarget=t2.oid |
|
| 616 | AND t1.typnamespace=n1.oid |
|
| 617 | AND t2.typnamespace=n2.oid |
|
| 618 | {$where} |
|
| 619 | ORDER BY 1, 2 |
|
| 620 | "; |
|
| 621 | ||
| 622 | return $this->selectSet($sql); |
|
| 623 | } |
|
| 624 | ||
| 625 | public function hasAlterColumnType() |
|
| 626 | { |
|
| @@ 102-121 (lines=20) @@ | ||
| 99 | * |
|
| 100 | * @return All schemas, sorted alphabetically |
|
| 101 | */ |
|
| 102 | public function getSchemas() |
|
| 103 | { |
|
| 104 | $conf = $this->conf; |
|
| 105 | ||
| 106 | if (!$conf['show_system']) { |
|
| 107 | $where = "WHERE nspname NOT LIKE 'pg@_%' ESCAPE '@' AND nspname != 'information_schema'"; |
|
| 108 | } else { |
|
| 109 | $where = "WHERE nspname !~ '^pg_t(emp_[0-9]+|oast)$'"; |
|
| 110 | } |
|
| 111 | ||
| 112 | $sql = " |
|
| 113 | SELECT pn.nspname, pu.usename AS nspowner, |
|
| 114 | pg_catalog.obj_description(pn.oid, 'pg_namespace') AS nspcomment |
|
| 115 | FROM pg_catalog.pg_namespace pn |
|
| 116 | LEFT JOIN pg_catalog.pg_user pu ON (pn.nspowner = pu.usesysid) |
|
| 117 | {$where} |
|
| 118 | ORDER BY nspname"; |
|
| 119 | ||
| 120 | return $this->selectSet($sql); |
|
| 121 | } |
|
| 122 | ||
| 123 | /** |
|
| 124 | * Return all information relating to a schema. |
|
| @@ 49-65 (lines=17) @@ | ||
| 46 | * |
|
| 47 | * @return A recordset |
|
| 48 | */ |
|
| 49 | public function getLocks() |
|
| 50 | { |
|
| 51 | $conf = $this->conf; |
|
| 52 | ||
| 53 | if (!$conf['show_system']) { |
|
| 54 | $where = 'AND pn.nspname NOT LIKE $$pg\_%$$'; |
|
| 55 | } else { |
|
| 56 | $where = "AND nspname !~ '^pg_t(emp_[0-9]+|oast)$'"; |
|
| 57 | } |
|
| 58 | ||
| 59 | $sql = "SELECT pn.nspname, pc.relname AS tablename, pl.transaction, pl.pid, pl.mode, pl.granted |
|
| 60 | FROM pg_catalog.pg_locks pl, pg_catalog.pg_class pc, pg_catalog.pg_namespace pn |
|
| 61 | WHERE pl.relation = pc.oid AND pc.relnamespace=pn.oid {$where} |
|
| 62 | ORDER BY nspname,tablename"; |
|
| 63 | ||
| 64 | return $this->selectSet($sql); |
|
| 65 | } |
|
| 66 | ||
| 67 | // Sequence functions |
|
| 68 | ||