check for precence of the query function for each db connector. PG fixes for todo

This commit is contained in:
Ulf Gebhardt 2016-02-15 02:41:46 +01:00
parent e6404a4b5e
commit f85ffeb1a8
12 changed files with 154 additions and 6 deletions

View File

@ -6,6 +6,8 @@ class QI {
$dbinfo = \SYSTEM\system::getSystemDBInfo();}
if($dbinfo instanceof \SYSTEM\DB\DBInfoPG){
if(!\is_callable(static::get_class().'::files_pgsql')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no files_pgsql implementation present.');}
$files = static::files_pgsql();
$command = 'psql'.
' -U ' . $dbinfo->m_user.
@ -13,6 +15,8 @@ class QI {
' -a '.
' -f ${file} 2>&1';
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoMYS){
if(!\is_callable(static::get_class().'::files_mysql')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no files_mysql implementation present.');}
$files = static::files_mysql();
$command = 'mysql'.
' --host=' . $dbinfo->m_host.

View File

@ -8,12 +8,20 @@ class QP {
$con = new \SYSTEM\DB\Connection($dbinfo);
try{
if($dbinfo instanceof \SYSTEM\DB\DBInfoPG){
if(!\is_callable(static::get_class().'::pgsql')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no pgsql implementation present.');}
return $con->prepare(static::get_class(),static::pgsql(),$params);
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoMYS){
if(!\is_callable(static::get_class().'::mysql')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no mysql implementation present.');}
return $con->prepare(static::get_class(),static::mysql(),$params);
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoAMQP){
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoAMQP && is_callable(static::amqp())){
if(!\is_callable(static::get_class().'::amqp')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no amqp implementation present.');}
return $con->prepare(static::get_class(),static::amqp(),$params);
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoSQLite){
if(!\is_callable(static::get_class().'::sqlite')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no sqlite implementation present.');}
return $con->prepare(static::get_class(),static::sqlite(),$params);
}
} catch (\Exception $e){

View File

@ -9,12 +9,20 @@ class QQ {
try{
if($dbinfo instanceof \SYSTEM\DB\DBInfoPG){
if(!\is_callable(static::get_class().'::pgsql')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no pgsql implementation present.');}
return $con->query(static::pgsql());
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoMYS){
if(!\is_callable(static::get_class().'::mysql')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no mysql implementation present.');}
return $con->query(static::mysql());
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoAMQP){
if(!\is_callable(static::get_class().'::amqp')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no amqp implementation present.');}
return $con->query(static::amqp());
} else if ($dbinfo instanceof \SYSTEM\DB\DBInfoSQLite){
if(!\is_callable(static::get_class().'::sqlite')){
throw new \SYSTEM\LOG\ERROR(static::get_class().' failed: no sqlite implementation present.');}
return $con->query(static::sqlite());
}
} catch (\Exception $e){

View File

@ -2,6 +2,18 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_COUNT_FREE 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_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 assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' IS NULL'.
' 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,18 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_COUNT_MINE 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_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 assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $2'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $3 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $5)'.
' 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,18 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_COUNT_OTHERS 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_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 NOT assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $2'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $3 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $5)'.
' GROUP BY todo."ID"'.
') as a;';
}
public static function mysql(){return
'SELECT COUNT(*) as count FROM ('.
' SELECT todo.id'.

View File

@ -2,6 +2,18 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_COUNT_TYPE 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_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_TYPE.' = $2'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $3 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $5)'.
' GROUP BY todo."ID"'.
') as a;';
}
public static function mysql(){return
'SELECT COUNT(*) as count FROM ('.
' SELECT todo.id'.

View File

@ -2,13 +2,14 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_EDIT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function pqsql(){return
'UPDATE '.\SYSTEM\SQL\system_todo::NAME_PG.' SET '.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.'= $1'.
' WHERE "'.\SYSTEM\SQL\system_todo::FIELD_ID.'"= $2;';
public static function pgsql(){return
'UPDATE '.\SYSTEM\SQL\system_todo::NAME_PG.' SET '.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.'= $1,'
.\SYSTEM\SQL\system_todo::FIELD_MESSAGE_HASH.'= encode(digest($2, \'sha1\'), \'hex\')'.
'WHERE "'.\SYSTEM\SQL\system_todo::FIELD_ID.'"= $3;';
}
public static function mysql(){return
'UPDATE '.\SYSTEM\SQL\system_todo::NAME_MYS.' SET '.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.'= ?, '
'UPDATE '.\SYSTEM\SQL\system_todo::NAME_MYS.' SET '.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.'= ?,'
.\SYSTEM\SQL\system_todo::FIELD_MESSAGE_HASH.'= SHA1(?)'.
' WHERE '.\SYSTEM\SQL\system_todo::FIELD_ID.'= ?;';
'WHERE '.\SYSTEM\SQL\system_todo::FIELD_ID.'= ?;';
}
}

View File

@ -2,6 +2,26 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_LIST_FREE 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 assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' IS NULL'.
' 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,6 +2,25 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_LIST_MINE 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 assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $2'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $3 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $5)'.
') 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,6 +2,26 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_LIST_OTHERS 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 NOT assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $2'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $3 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $5)'.
' ORDER BY case when assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $6 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,6 +2,26 @@
namespace SYSTEM\SQL;
class SYS_SAIMOD_TODO_LIST_TYPE 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_USE.'=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_TYPE.' = $2'.
' AND (todo.'.\SYSTEM\SQL\system_todo::FIELD_MESSAGE.' LIKE $3 OR creator.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $4 OR assignee.'.\SYSTEM\SQL\system_user::FIELD_USERNAME.' LIKE $5)'.
' ORDER BY case when assign.'.\SYSTEM\SQL\system_todo_assign::FIELD_USER.' = $6 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,'.