postgres fixes, cron, statistics, todo

This commit is contained in:
Ulf Gebhardt 2016-01-17 19:33:14 +01:00
parent 4bb9c4e779
commit cfb4ac0d1e
19 changed files with 72 additions and 25 deletions

View File

@ -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;';

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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';

View File

@ -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,'.

View File

@ -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.';';
}

View File

@ -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

View File

@ -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,'.

View File

@ -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;';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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'.

View File

@ -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';

View File

@ -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';

View File

@ -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;';

View File

@ -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'.

View File

@ -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