check for precence of the query function for each db connector. PG fixes for todo
This commit is contained in:
parent
e6404a4b5e
commit
f85ffeb1a8
@ -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.
|
||||
|
||||
10
db/qq/QP.php
10
db/qq/QP.php
@ -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){
|
||||
|
||||
@ -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){
|
||||
|
||||
@ -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'.
|
||||
|
||||
@ -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'.
|
||||
|
||||
@ -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'.
|
||||
|
||||
@ -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'.
|
||||
|
||||
@ -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.'= ?;';
|
||||
}
|
||||
}
|
||||
@ -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,'.
|
||||
|
||||
@ -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,'.
|
||||
|
||||
@ -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,'.
|
||||
|
||||
@ -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,'.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user