From cfb4ac0d1eb81df0c6fc638d5d830dd8642517d1 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 17 Jan 2016 19:33:14 +0100 Subject: [PATCH 1/3] postgres fixes, cron, statistics, todo --- cache/qq/SYS_CACHE_DELETE.php | 2 +- cron/qq/SYS_CRON_LIST.php | 2 +- cron/qq/SYS_CRON_UPD.php | 2 +- log/qq/SYS_LOG_DEL.php | 2 +- log/qq/SYS_LOG_OLDEST.php | 4 ++-- .../qq/SYS_SAIMOD_TODO_ASSIGNEES.php | 10 ++++++++++ .../qq/SYS_SAIMOD_TODO_CLOSE_ALL.php | 2 +- .../qq/SYS_SAIMOD_TODO_COUNT.php | 10 +++++----- .../qq/SYS_SAIMOD_TODO_LIST.php | 19 +++++++++++++++++++ .../SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN.php | 4 ++-- ...YS_SAIMOD_TODO_STATS_COUNT_DOTO_REPORT.php | 4 ++-- .../SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER.php | 4 ++-- .../SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN.php | 4 ++-- ...MOD_TODO_STATS_COUNT_TODO_NOT_ASSIGNED.php | 5 +++++ ...YS_SAIMOD_TODO_STATS_COUNT_TODO_REPORT.php | 4 ++-- .../SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER.php | 4 ++-- .../qq/SYS_SAIMOD_TODO_STATS_USERS.php | 2 +- .../qq/SYS_SAIMOD_TODO_TODO.php | 11 +++++++++++ sql/qt/pgsql/schema/system_todo.sql | 2 ++ 19 files changed, 72 insertions(+), 25 deletions(-) diff --git a/cache/qq/SYS_CACHE_DELETE.php b/cache/qq/SYS_CACHE_DELETE.php index 390cf39..e3eb320 100644 --- a/cache/qq/SYS_CACHE_DELETE.php +++ b/cache/qq/SYS_CACHE_DELETE.php @@ -2,7 +2,7 @@ namespace SYSTEM\SQL; class SYS_CACHE_DELETE extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} - public static function pqsql(){return + public static function pgsql(){return 'DELETE FROM system.cache'. ' WHERE "CacheID" = $1 AND'. ' "Ident" = $2;'; diff --git a/cron/qq/SYS_CRON_LIST.php b/cron/qq/SYS_CRON_LIST.php index a6d94c1..3cc60e8 100644 --- a/cron/qq/SYS_CRON_LIST.php +++ b/cron/qq/SYS_CRON_LIST.php @@ -2,7 +2,7 @@ namespace SYSTEM\SQL; class SYS_CRON_LIST 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.';'; } public static function mysql(){return diff --git a/cron/qq/SYS_CRON_UPD.php b/cron/qq/SYS_CRON_UPD.php index c9e1bde..c1a1117 100644 --- a/cron/qq/SYS_CRON_UPD.php +++ b/cron/qq/SYS_CRON_UPD.php @@ -2,7 +2,7 @@ namespace SYSTEM\SQL; class SYS_CRON_UPD extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} - public static function pqsql(){return + public static function pgsql(){return 'UPDATE '.\SYSTEM\SQL\system_cron::NAME_PG.' SET '.\SYSTEM\SQL\system_cron::FIELD_STATUS.' = $1,'.\SYSTEM\SQL\system_cron::FIELD_LAST_RUN.' = to_timestamp($2) WHERE '.\SYSTEM\SQL\system_cron::FIELD_CLASS.' = $3;'; } public static function mysql(){return diff --git a/log/qq/SYS_LOG_DEL.php b/log/qq/SYS_LOG_DEL.php index 6bfe21a..10ec961 100644 --- a/log/qq/SYS_LOG_DEL.php +++ b/log/qq/SYS_LOG_DEL.php @@ -2,7 +2,7 @@ namespace SYSTEM\SQL; class SYS_LOG_DEL extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} - public static function pqsql(){return + public static function pgsql(){return 'DELETE FROM '.\SYSTEM\SQL\system_log::NAME_PG.' WHERE "ID" = $1;'; } public static function mysql(){return diff --git a/log/qq/SYS_LOG_OLDEST.php b/log/qq/SYS_LOG_OLDEST.php index 5e8fe8e..ebcf28b 100644 --- a/log/qq/SYS_LOG_OLDEST.php +++ b/log/qq/SYS_LOG_OLDEST.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_LOG_OLDEST extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT EXTRACT(MONTH FROM time)::INTEGER as month, EXTRACT(YEAR FROM time)::INTEGER as year FROM '.\SYSTEM\SQL\system_log::NAME_PG.' ORDER BY time ASC LIMIT 1'; + public static function pgsql(){return +'SELECT EXTRACT(MONTH FROM time)::INTEGER as month, EXTRACT(YEAR FROM time)::INTEGER as year FROM '.\SYSTEM\SQL\system_log::NAME_PG.' ORDER BY time ASC LIMIT 1'; } public static function mysql(){return 'SELECT MONTH(time) as month, YEAR(time) as year FROM '.\SYSTEM\SQL\system_log::NAME_MYS.' ORDER BY time ASC LIMIT 1'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_ASSIGNEES.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_ASSIGNEES.php index 4a7feac..d2b07ea 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_ASSIGNEES.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_ASSIGNEES.php @@ -2,6 +2,16 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_ASSIGNEES extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} + public static function pgsql(){return +' SELECT assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_TODO.' as todo_id,'. + ' assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as assignee,'. + ' assignee.'.\SYSTEM\SQL\system_user::FIELD_ID.' as assignee_id'. +' FROM '.\SYSTEM\SQL\system_todo_assign::NAME_PG.' as assign'. +' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.' as assignee ON assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.'=assignee.'.\SYSTEM\SQL\system_user::FIELD_ID. +' WHERE assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_TODO.' = $1'. +' ORDER BY case when assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $2 then 1 else 2 end'. +' LIMIT 10'; + } public static function mysql(){return ' SELECT assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_TODO.' as todo_id,'. ' assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as assignee,'. diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_CLOSE_ALL.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_CLOSE_ALL.php index 405e0ea..5ce1474 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_CLOSE_ALL.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_CLOSE_ALL.php @@ -2,7 +2,7 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_CLOSE_ALL extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return + public static function pgsql(){return 'UPDATE '.\SYSTEM\SQL\system_todo::NAME_PG.' SET '.\SYSTEM\SQL\system_todo::FIELD_STATE.'='.\SYSTEM\SQL\system_todo::FIELD_STATE_CLOSED. ' WHERE "'.\SYSTEM\SQL\system_todo::FIELD_TYPE.'"='.\SYSTEM\SQL\system_todo::FIELD_TYPE_EXCEPTION.';'; } diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_COUNT.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_COUNT.php index a8720bb..7bb4e2e 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_COUNT.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_COUNT.php @@ -4,13 +4,13 @@ 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. +'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_PG.' as creator ON todo.'.\SYSTEM\SQL\system_todo::FIELD_USER.'=creator.'.\SYSTEM\SQL\system_user::FIELD_ID. +' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.' 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'. +' GROUP BY todo."ID"'. ') as a;'; } public static function mysql(){return diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php index 9c943b4..348f7a5 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php @@ -2,6 +2,25 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_LIST extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} + public static function pgsql(){return +'SELECT DISTINCT ON (todo_id) * FROM('. + ' SELECT todo."'.\SYSTEM\SQL\system_todo::FIELD_ID.'" as todo_id,'. + ' todo.'.\SYSTEM\SQL\system_todo::FIELD_TYPE.', todo.'.\SYSTEM\SQL\system_todo::FIELD_CLASS.', todo.'.\SYSTEM\SQL\system_todo::FIELD_TIME.', todo.'.\SYSTEM\SQL\system_todo::FIELD_COUNT.', todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.', todo.'.\SYSTEM\SQL\system_todo::FIELD_REQUEST_URI.', todo.'.\SYSTEM\SQL\system_todo::FIELD_FILE.', todo.'.\SYSTEM\SQL\system_todo::FIELD_LINE.', todo.'.\SYSTEM\SQL\system_todo::FIELD_SERVER_NAME.', todo.'.\SYSTEM\SQL\system_todo::FIELD_SERVER_PORT.', todo.'.\SYSTEM\SQL\system_todo::FIELD_QUERYTIME.', todo.'.\SYSTEM\SQL\system_todo::FIELD_IP.', todo.'.\SYSTEM\SQL\system_todo::FIELD_PRIORITY.','. + ' creator.'.\SYSTEM\SQL\system_user::FIELD_ID.' as creator_id,'. + ' creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.','. + ' assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as assignee,'. + ' assignee.'.\SYSTEM\SQL\system_user::FIELD_ID.' as assignee_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_PG.' as creator ON todo.'.\SYSTEM\SQL\system_todo::FIELD_USER.'=creator.'.\SYSTEM\SQL\system_user::FIELD_ID. + ' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.' as assignee ON assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.'=assignee.'.\SYSTEM\SQL\system_user::FIELD_ID. + ' WHERE todo.'.\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)'. + ' ORDER BY case when assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $5 then 1 else 2 end'. +') as a'; + //' ORDER BY a.'.\SYSTEM\SQL\system_todo::FIELD_PRIORITY.' DESC, a.'.\SYSTEM\SQL\system_todo::FIELD_TYPE.' DESC, a.'.\SYSTEM\SQL\system_todo::FIELD_COUNT.' DESC, a.'.\SYSTEM\SQL\system_todo::FIELD_TIME.' DESC'; + //sorry postgres but ur rly bad! + } public static function mysql(){return 'SELECT * FROM('. ' SELECT todo.'.\SYSTEM\SQL\system_todo::FIELD_ID.' as todo_id,'. diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN.php index b9571df..c016bcb 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_DOTO_GEN extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 1 AND `type` = 0;'; + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo WHERE state = 1 AND type = 0;'; } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 1 AND `type` = 0;'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_REPORT.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_REPORT.php index f97632a..60f2db6 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_REPORT.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_REPORT.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_DOTO_REPORT extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 1 AND `type` = 2'; + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo WHERE state = 1 AND type = 2'; } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 1 AND `type` = 2'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER.php index 286a7cf..7f277fc 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_DOTO_USER extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 1 AND `type` = 1'; + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo WHERE state = 1 AND type = 1'; } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 1 AND `type` = 1'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN.php index 8f031a5..0a617d1 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_TODO_GEN extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 0 AND `type` = 0'; + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo WHERE state = 0 AND type = 0'; } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 0 AND `type` = 0'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_NOT_ASSIGNED.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_NOT_ASSIGNED.php index 82b7cf5..db9896b 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_NOT_ASSIGNED.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_NOT_ASSIGNED.php @@ -2,6 +2,11 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_TODO_NOT_ASSIGNED extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo'. +' LEFT JOIN system.todo_assign ON system.todo."ID" = system.todo_assign.todo'. +' WHERE state = 0 AND type = 1 AND system.todo_assign.user IS NULL;'; + } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo'. ' LEFT JOIN system_todo_assign ON system_todo.id = system_todo_assign.todo'. diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_REPORT.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_REPORT.php index 9dd6cbd..938bb5f 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_REPORT.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_REPORT.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_TODO_REPORT extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 0 AND `type` = 2'; + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo WHERE state = 0 AND type = 2'; } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 0 AND `type` = 2'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER.php index d2c4ee6..5aaa20d 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER.php @@ -2,8 +2,8 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_STATS_COUNT_TODO_USER extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return -'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 0 AND `type` = 1'; + public static function pgsql(){return +'SELECT COUNT(*) as count FROM system.todo WHERE state = 0 AND type = 1'; } public static function mysql(){return 'SELECT COUNT(*) as `count` FROM system_todo WHERE state = 0 AND `type` = 1'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_USERS.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_USERS.php index 67f9114..abedae0 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_USERS.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_STATS_USERS.php @@ -12,7 +12,7 @@ class SYS_SAIMOD_TODO_STATS_USERS extends \SYSTEM\DB\QQ { '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 '. + 'GROUP BY system.user.username '. 'ORDER BY count DESC'. ') a '. 'ORDER BY best DESC;'; diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO.php index a3711d3..e01e3a9 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO.php @@ -2,6 +2,17 @@ namespace SYSTEM\SQL; class SYS_SAIMOD_TODO_TODO extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} + public static function pgsql(){return +'SELECT DISTINCT ON ("'.\SYSTEM\SQL\system_todo::FIELD_ID.'") * FROM('. + ' SELECT todo.*, assignee.'.\SYSTEM\SQL\system_user::FIELD_ID.' as assignee_id, assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as assignee, creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as username'. + ' 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_PG.' as creator ON todo.'.\SYSTEM\SQL\system_todo::FIELD_USER.' = creator.'.\SYSTEM\SQL\system_user::FIELD_ID. + ' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.' as assignee ON assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = assignee.'.\SYSTEM\SQL\system_user::FIELD_ID. + ' WHERE todo."'.\SYSTEM\SQL\system_todo::FIELD_ID.'" = $1'. + ' ORDER BY case when assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $2 then 1 else 2 end'. +') as a'; + } public static function mysql(){return 'SELECT * FROM('. ' SELECT todo.*, assignee.'.\SYSTEM\SQL\system_user::FIELD_ID.' as assignee_id, assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as assignee, creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' as username'. diff --git a/sql/qt/pgsql/schema/system_todo.sql b/sql/qt/pgsql/schema/system_todo.sql index 41c5972..a068ca9 100644 --- a/sql/qt/pgsql/schema/system_todo.sql +++ b/sql/qt/pgsql/schema/system_todo.sql @@ -22,6 +22,8 @@ CREATE TABLE system.todo "type" integer NOT NULL DEFAULT 0, "count" integer NOT NULL DEFAULT 1, "state" integer NOT NULL DEFAULT 0, + "priority" integer NOT NULL DEFAULT 0, + "time_closed" timestamp with time zone DEFAULT NULL, CONSTRAINT system_todo_pk_id PRIMARY KEY ("ID"), CONSTRAINT system_todo_fk_user FOREIGN KEY ("user") REFERENCES system."user" (id) MATCH SIMPLE From 0cf54538ea61a038d76ba6392cf694bfd7a1010b Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 17 Jan 2016 20:19:56 +0100 Subject: [PATCH 2/3] pg fix for log extraction --- log/qq/SYS_LOG_MONTH.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/log/qq/SYS_LOG_MONTH.php b/log/qq/SYS_LOG_MONTH.php index f85b05f..22ab034 100644 --- a/log/qq/SYS_LOG_MONTH.php +++ b/log/qq/SYS_LOG_MONTH.php @@ -2,7 +2,10 @@ namespace SYSTEM\SQL; class SYS_LOG_MONTH extends \SYSTEM\DB\QP { public static function get_class(){return \get_class();} + public static function pgsql(){return +'SELECT * FROM '.\SYSTEM\SQL\system_log::NAME_PG.' WHERE EXTRACT(MONTH FROM time)::INTEGER = $1 AND EXTRACT(YEAR FROM time)::INTEGER = $2 ORDER BY time ASC LIMIT 10000;'; + } public static function mysql(){return -'SELECT * FROM '.\SYSTEM\SQL\system_log::NAME_MYS.' WHERE MONTH(time) = ? AND YEAR(time) = ? ORDER BY time DESC LIMIT 10000;'; +'SELECT * FROM '.\SYSTEM\SQL\system_log::NAME_MYS.' WHERE MONTH(time) = ? AND YEAR(time) = ? ORDER BY time ASC LIMIT 10000;'; } } \ No newline at end of file From ee6e7cdde814dac4ca5c4a581781a9d115d7f652 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 18 Jan 2016 01:04:13 +0100 Subject: [PATCH 3/3] pg fix delete cache --- cache/qq/SYS_CACHE_DELETE_ALL.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cache/qq/SYS_CACHE_DELETE_ALL.php b/cache/qq/SYS_CACHE_DELETE_ALL.php index 12a24ad..53c0dec 100644 --- a/cache/qq/SYS_CACHE_DELETE_ALL.php +++ b/cache/qq/SYS_CACHE_DELETE_ALL.php @@ -2,7 +2,7 @@ namespace SYSTEM\SQL; class SYS_CACHE_DELETE_ALL extends \SYSTEM\DB\QQ { public static function get_class(){return \get_class();} - public static function pqsql(){return + public static function pgsql(){return 'DELETE FROM system.cache;'; } public static function mysql(){return