lots of pg fixes

This commit is contained in:
Ulf Gebhardt 2016-01-13 19:10:28 +01:00
parent 8f4e7540ae
commit 0e7783c75e
19 changed files with 82 additions and 18 deletions

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SQL;
class SYS_CRON_GET extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT * FROM '.\SYSTEM\SQL\system_cron::NAME_PG.' WHERE class = $1;';
}
public static function mysql(){return

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SQL;
class SYS_CRON_LAST_VISIT extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT last_run FROM '.\SYSTEM\SQL\system_cron::NAME_PG.' ORDER BY last_run DESC LIMIT 1;';
}
public static function mysql(){return

View File

@ -35,5 +35,5 @@ class ResultPostgres extends \SYSTEM\DB\Result{
}
public function seek($row_number){
return pg_data_seek($this->res,$row_number);}
return pg_result_seek($this->res,$row_number);}
}

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_CACHE extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT *, encode(data,\'base64\') FROM system.cache ORDER BY "ID" ASC LIMIT 100;';
}
public static function mysql(){return

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_CACHE_COUNT extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT COUNT(*) as "count" FROM system.cache';
}
public static function mysql(){return

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_CRON extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT * FROM '.\SYSTEM\SQL\system_cron::NAME_PG.' ORDER BY class;';
}
public static function mysql(){return

View File

@ -2,6 +2,16 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_LOG_ANALYTICS extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT to_char(to_timestamp(extract(epoch from '.\SYSTEM\SQL\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\SQL\system_log::FIELD_TIME.')::int % $1)), \'YYYY/MM/DD HH24:MI:SS\') as day,'
.'count(*) as count,'
.'count(distinct '.\SYSTEM\SQL\system_log::FIELD_USER.') as user_unique,'
.'count(distinct '.\SYSTEM\SQL\system_log::FIELD_IP.') as ip_unique'
.' FROM '.\SYSTEM\SQL\system_log::NAME_PG
.' GROUP BY day'
.' ORDER BY day DESC'
.' LIMIT 1;';
}
public static function mysql(){return
'SELECT DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP('.\SYSTEM\SQL\system_log::FIELD_TIME.') - MOD(UNIX_TIMESTAMP('.\SYSTEM\SQL\system_log::FIELD_TIME.'),?)),"%Y/%m/%d %H:%i:%s") as day,'
.'count(*) as count,'

View File

@ -2,12 +2,13 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_LOG_FILTER extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT * FROM '.\SYSTEM\SQL\system_log::NAME_PG.
' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.
' ON '.\SYSTEM\SQL\system_log::NAME_PG.'.'.\SYSTEM\SQL\system_log::FIELD_USER.
' = '.\SYSTEM\SQL\system_user::NAME_PG.'.'.\SYSTEM\SQL\system_user::FIELD_ID.
' WHERE '.\SYSTEM\SQL\system_log::FIELD_CLASS.' LIKE $1'.
' AND ('.\SYSTEM\SQL\system_log::FIELD_MESSAGE.' LIKE $2 OR '.\SYSTEM\SQL\system_log::FIELD_FILE.' LIKE $3 OR '.\SYSTEM\SQL\system_log::FIELD_IP.' LIKE $4)'.
' ORDER BY '.\SYSTEM\SQL\system_log::FIELD_TIME.' DESC, '.\SYSTEM\SQL\system_log::NAME_PG.'."'.\SYSTEM\SQL\system_log::FIELD_ID.'" DESC;';
}
public static function mysql(){return

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_LOG_FILTERS extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT '.\SYSTEM\SQL\system_log::FIELD_CLASS.
' FROM '.\SYSTEM\SQL\system_log::NAME_PG.
' GROUP BY '.\SYSTEM\SQL\system_log::FIELD_CLASS.

View File

@ -2,10 +2,11 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_LOG_FILTER_COUNT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pqsql(){return
'SELECT COUNT(*) as count FROM '.\SYSTEM\SQL\system_log::NAME_PG.
' WHERE '.\SYSTEM\SQL\system_log::FIELD_CLASS.
' LIKE $1;';
public static function pgsql(){return
'SELECT COUNT(*) as count'.
' FROM '.\SYSTEM\SQL\system_log::NAME_PG.
' WHERE '.\SYSTEM\SQL\system_log::FIELD_CLASS.' LIKE $1'.
' AND ('.\SYSTEM\SQL\system_log::FIELD_MESSAGE.' LIKE $2 OR '.\SYSTEM\SQL\system_log::FIELD_FILE.' LIKE $3 OR '.\SYSTEM\SQL\system_log::FIELD_IP.' LIKE $4);';
}
public static function mysql(){return
'SELECT COUNT(*) as count'.

View File

@ -3,7 +3,7 @@ namespace SYSTEM\SQL;
class SYS_SAIMOD_SECURITY_USERS extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT id,username,email,joindate,locale, EXTRACT(EPOCH FROM last_active) as last_active, account_flag FROM system.user WHERE username LIKE $1 OR email LIKE $1 ORDER BY last_active DESC;';
'SELECT id,username,email,joindate,locale, EXTRACT(EPOCH FROM last_active) as last_active, account_flag FROM system.user WHERE username LIKE $1 OR email LIKE $2 ORDER BY last_active DESC;';
}
public static function mysql(){return
'SELECT id,username,email,joindate,locale,unix_timestamp(last_active)as last_active, account_flag FROM system_user WHERE username LIKE ? OR email LIKE ? ORDER BY last_active DESC;';

View File

@ -3,7 +3,7 @@ namespace SYSTEM\SQL;
class SYS_SAIMOD_SECURITY_USER_COUNT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT count(*) as count FROM system.user WHERE username LIKE $1 OR email LIKE $1;';
'SELECT count(*) as count FROM system.user WHERE username LIKE $1 OR email LIKE $2;';
}
public static function mysql(){return
'SELECT count(*) as count FROM system_user WHERE username LIKE ? OR email LIKE ?;';

View File

@ -2,6 +2,13 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TEXT_COUNT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT COUNT(*) as count'.
' FROM system.text'.
' LEFT JOIN system.user as a ON system.text.author = a.id'.
' LEFT JOIN system.user as ae ON system.text.author_edit = ae.id'.
' WHERE (a.username LIKE $1 OR ae.username LIKE $2 OR text LIKE $3);';
}
public static function mysql(){return
'SELECT COUNT(*) as `count`'.
' FROM system_text'.

View File

@ -3,7 +3,7 @@ namespace SYSTEM\SQL;
class SYS_SAIMOD_TEXT_TAGS extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT "tag", COUNT(*) as "count" FROM system_text_tag GROUP BY "tag" ORDER BY "tag" ASC;';
'SELECT "tag", COUNT(*) as "count" FROM system.text_tag GROUP BY "tag" ORDER BY "tag" ASC;';
}
public static function mysql(){return
'SELECT `tag`, COUNT(*) as `count` FROM system_text_tag GROUP BY `tag` ORDER BY `tag` ASC;';

View File

@ -2,6 +2,16 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TEXT_TEXT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT system.text_tag.tag, system.text.*, a.username as author_name, ae.username as author_edit_name'.
' FROM system.text_tag'.
' LEFT JOIN system.text ON system.text_tag.id = system.text.id'.
' LEFT JOIN system.user as a ON system.text.author = a.id'.
' LEFT JOIN system.user as ae ON system.text.author_edit = ae.id'.
' WHERE (a.username LIKE $1 OR ae.username LIKE $2 OR text LIKE $3)'.
' GROUP BY id, lang'.
' ORDER BY time_edit DESC;';
}
public static function mysql(){return
'SELECT system_text_tag.tag, system_text.*, a.username as author_name, ae.username as author_edit_name'.
' FROM system_text_tag'.

View File

@ -2,6 +2,17 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_COUNT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT COUNT(*) as count FROM('.
'SELECT todo.id FROM '.\SYSTEM\SQL\system_todo::NAME_PG.' as todo'.
' LEFT JOIN '.\SYSTEM\SQL\system_todo_assign::NAME_PG.' as assign ON todo.'.\SYSTEM\SQL\system_todo::FIELD_ID.'=assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_TODO.
' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_MYS.' as creator ON todo.'.\SYSTEM\SQL\system_todo::FIELD_USER.'=creator.'.\SYSTEM\SQL\system_user::FIELD_ID.
' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_MYS.' as assignee ON assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.'=assignee.'.\SYSTEM\SQL\system_user::FIELD_ID.
' WHERE '.\SYSTEM\SQL\system_todo::FIELD_STATE.'=$1'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $2 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $3 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4)'.
' GROUP BY todo.id'.
') as a;';
}
public static function mysql(){return
'SELECT COUNT(*) as count FROM('.
'SELECT todo.id FROM '.\SYSTEM\SQL\system_todo::NAME_MYS.' as todo'.

View File

@ -2,6 +2,21 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_STATS_USERS extends \SYSTEM\DB\QQ {
public static function get_class(){return \get_class();}
public static function pgsql(){return
'SELECT *, state_closed/(state_open+state_closed) as best '.
'FROM ('.
'SELECT username,'.
' sum(case when state = 0 then 1 else 0 end) state_open, '.
' sum(case when state = 1 then 1 else 0 end) state_closed, '.
' COUNT(*) as count '.
'FROM system.todo_assign '.
'LEFT JOIN system.todo ON system.todo_assign.todo = system.todo."ID" '.
'LEFT JOIN system.user ON system.todo_assign.user = system.user.id '.
'GROUP BY system.todo_assign.user '.
'ORDER BY count DESC'.
') a '.
'ORDER BY best DESC;';
}
public static function mysql(){return
'SELECT *, state_closed/(state_open+state_closed) as best '.
'FROM ('.

View File

@ -2,10 +2,10 @@
namespace SYSTEM\SQL;
class SYS_SECURITY_LOGIN_SHA1 extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pqsql(){return
public static function pgsql(){return
'SELECT * FROM '.\SYSTEM\SQL\system_user::NAME_PG.
' WHERE (lower('.\SYSTEM\SQL\system_user::FIELD_USERNAME.') LIKE lower($1) OR lower('.\SYSTEM\SQL\system_user::FIELD_EMAIL.') LIKE lower($1))'.
' AND '.\SYSTEM\SQL\system_user::FIELD_PASSWORD_SHA.' = $2;';
' WHERE (lower('.\SYSTEM\SQL\system_user::FIELD_USERNAME.') LIKE lower($1) OR lower('.\SYSTEM\SQL\system_user::FIELD_EMAIL.') LIKE lower($2))'.
' AND '.\SYSTEM\SQL\system_user::FIELD_PASSWORD_SHA.' = $3;';
}
public static function mysql(){return
'SELECT * FROM '.\SYSTEM\SQL\system_user::NAME_MYS.

View File

@ -0,0 +1,9 @@
CREATE TABLE system.todo_assign (
"todo" integer NOT NULL,
"user" integer NOT NULL,
"time" timestamp with time zone NOT NULL,
CONSTRAINT system_todo_assign_pk_todo_user PRIMARY KEY ("todo", "user")
)
WITH (
OIDS=FALSE
);