#return;
# EXEC
- $i = 0;
- foreach ($this->sql_exec() as $s) {
+ $i = 0; foreach ($this->sql_exec() as $s) {
if (($i++) == 0) echo "\n-- EXEC\n";
echo rtrim($s,';').";\n";
}
+ $i = 0; foreach ((array)$this->method('sql.pre') as $s) {
+ if (($i++) == 0) echo "\n-- SQL.PRE\n";
+ echo rtrim($s,';').";\n";
+ }
+
# DUMP
foreach ($tables as $t) {
}
}
+ $i = 0; foreach ((array)$this->method('sql.post') as $s) {
+ if (($i++) == 0) echo "\n-- SQL.POST\n";
+ echo rtrim($s,';').";\n";
+ }
+
return true;
}
/*
'databases' => "SELECT d.datname as 'Name',
pg_catalog.pg_get_userbyid(d.datdba) as 'Owner',
- pg_catalog.pg_encoding_to_char(d.encoding) as 'Encoding',
+ pg_catalog.pg_encoding_d.encoding) as 'Encoding',
d.datcollate as 'Collate',
d.datctype as 'Ctype',
pg_catalog.array_to_string(d.datacl, E'\n') AS 'Access privileges',
JOIN pg_catalog.pg_tablespace t on d.dattablespace = t.oid
ORDER BY 1",
*/
-'databases' => 'SELECT datname as name,pg_catalog.pg_get_userbyid(datdba) as owner,pg_catalog.pg_encoding_to_char(encoding) as encoding, datcollate as "collate",datctype as "Ctype" FROM pg_catalog.pg_database',
+'databases' => 'SELECT datname as name,pg_catalog.pg_get_userbyid(datdba) as owner,pg_catalog.pg_encoding_encoding) as encoding, datcollate as "collate",datctype as "Ctype" FROM pg_catalog.pg_database',
'sql.drop' => 'DROP <TYPE> IF EXISTS "<NAME>" CASCADE',
'tables' => "SELECT table_name as name,LOWER(CASE table_type WHEN 'BASE TABLE' THEN 'TABLE' ELSE table_type END) as type,table_type FROM information_schema.tables WHERE table_type in('BASE TABLE','VIEW') AND table_schema NOT IN ('pg_catalog', 'information_schema')",
'table.sql.index' => [
"SELECT
c.relname as name
- ,a.attname as field
+ ,array_to_string(array_agg(coalesce(a.attname,'')),',') as field
,(CASE indisunique WHEN 't' THEN 1 ELSE 0 END) as unique
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE NOT indisprimary AND c.relkind IN ('i','s','') AND n.nspname !~ '^pg_toast'
AND EXISTS (SELECT 1 FROM pg_catalog.pg_class c2 WHERE i.indrelid = c2.oid AND c2.relname = '<NAME>')
AND pg_catalog.pg_table_is_visible(c.oid)
+GROUP BY i.indrelid,c.relname,indisunique
ORDER BY i.indrelid
"
],
+
'table.fields' => array (
'fct' => create_function('&$r',join('',array(
'if (!isset($r["pg_default"])) return;',
if ( empty($this->h1) ) $this->h1 = !empty($nav) ? join($this->sep,$nav) : $this->title;
// Call
- foreach ($this->to_array($this->call) as $call) {
+ foreach ((array)($this->call) as $call) {
if (is_scalar($call)) {
$this->$call();
echo $v;
}
- public static function to_array($v) {
- return (is_array($v) ? $v : [$v]);
- }
-
public static function title2filename($title,$content_type='') {
$ext = $content_type ? self::mime2ext($content_type) : '';
$title = self::no_accent($title);
$head .= '<meta name="viewport" content="width=device-width, initial-scale=1" />'.NB_EOL;
- foreach (self::to_array($this->css) as $v) {
+ foreach ((array)($this->css) as $v) {
$head .= '<link type="text/css" rel="stylesheet" href="' . $v . '" />'.NB_EOL;
}
. ' --></style>' . NB_EOL
;
- foreach ($this->to_array($this->js) as $v) {
+ foreach ((array)($this->js) as $v) {
$head .= '<script src="' . $v . '" type="text/javascript"></script>' . NB_EOL;
}
if ($this->js_code) $head .= ''
}
- foreach ($this->to_array($this->head) as $h) $head .= $h.NB_EOL;
+ foreach ((array)($this->head) as $h) $head .= $h.NB_EOL;
if ($head) {
$head = '<head>'.NB_EOL.$head.'</head>'.NB_EOL;