lots of pg fixes
This commit is contained in:
parent
8f4e7540ae
commit
0e7783c75e
@ -2,7 +2,7 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_CRON_GET extends \SYSTEM\DB\QP {
|
class SYS_CRON_GET extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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;';
|
'SELECT * FROM '.\SYSTEM\SQL\system_cron::NAME_PG.' WHERE class = $1;';
|
||||||
}
|
}
|
||||||
public static function mysql(){return
|
public static function mysql(){return
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_CRON_LAST_VISIT extends \SYSTEM\DB\QQ {
|
class SYS_CRON_LAST_VISIT extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
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;';
|
'SELECT last_run FROM '.\SYSTEM\SQL\system_cron::NAME_PG.' ORDER BY last_run DESC LIMIT 1;';
|
||||||
}
|
}
|
||||||
public static function mysql(){return
|
public static function mysql(){return
|
||||||
|
|||||||
@ -35,5 +35,5 @@ class ResultPostgres extends \SYSTEM\DB\Result{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function seek($row_number){
|
public function seek($row_number){
|
||||||
return pg_data_seek($this->res,$row_number);}
|
return pg_result_seek($this->res,$row_number);}
|
||||||
}
|
}
|
||||||
@ -2,7 +2,7 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_CACHE extends \SYSTEM\DB\QQ {
|
class SYS_SAIMOD_CACHE extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
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;';
|
'SELECT *, encode(data,\'base64\') FROM system.cache ORDER BY "ID" ASC LIMIT 100;';
|
||||||
}
|
}
|
||||||
public static function mysql(){return
|
public static function mysql(){return
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_CACHE_COUNT extends \SYSTEM\DB\QQ {
|
class SYS_SAIMOD_CACHE_COUNT extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
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';
|
'SELECT COUNT(*) as "count" FROM system.cache';
|
||||||
}
|
}
|
||||||
public static function mysql(){return
|
public static function mysql(){return
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_CRON extends \SYSTEM\DB\QQ {
|
class SYS_SAIMOD_CRON extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
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;';
|
'SELECT * FROM '.\SYSTEM\SQL\system_cron::NAME_PG.' ORDER BY class;';
|
||||||
}
|
}
|
||||||
public static function mysql(){return
|
public static function mysql(){return
|
||||||
|
|||||||
@ -2,6 +2,16 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_LOG_ANALYTICS extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_LOG_ANALYTICS extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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
|
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,'
|
'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,'
|
.'count(*) as count,'
|
||||||
|
|||||||
@ -2,12 +2,13 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_LOG_FILTER extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_LOG_FILTER extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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.
|
'SELECT * FROM '.\SYSTEM\SQL\system_log::NAME_PG.
|
||||||
' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.
|
' LEFT JOIN '.\SYSTEM\SQL\system_user::NAME_PG.
|
||||||
' ON '.\SYSTEM\SQL\system_log::NAME_PG.'.'.\SYSTEM\SQL\system_log::FIELD_USER.
|
' 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.
|
' = '.\SYSTEM\SQL\system_user::NAME_PG.'.'.\SYSTEM\SQL\system_user::FIELD_ID.
|
||||||
' WHERE '.\SYSTEM\SQL\system_log::FIELD_CLASS.' LIKE $1'.
|
' 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;';
|
' 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
|
public static function mysql(){return
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_LOG_FILTERS extends \SYSTEM\DB\QQ {
|
class SYS_SAIMOD_LOG_FILTERS extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
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.
|
'SELECT '.\SYSTEM\SQL\system_log::FIELD_CLASS.
|
||||||
' FROM '.\SYSTEM\SQL\system_log::NAME_PG.
|
' FROM '.\SYSTEM\SQL\system_log::NAME_PG.
|
||||||
' GROUP BY '.\SYSTEM\SQL\system_log::FIELD_CLASS.
|
' GROUP BY '.\SYSTEM\SQL\system_log::FIELD_CLASS.
|
||||||
|
|||||||
@ -2,10 +2,11 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_LOG_FILTER_COUNT extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_LOG_FILTER_COUNT extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
public static function get_class(){return \get_class();}
|
||||||
public static function pqsql(){return
|
public static function pgsql(){return
|
||||||
'SELECT COUNT(*) as count FROM '.\SYSTEM\SQL\system_log::NAME_PG.
|
'SELECT COUNT(*) as count'.
|
||||||
' WHERE '.\SYSTEM\SQL\system_log::FIELD_CLASS.
|
' FROM '.\SYSTEM\SQL\system_log::NAME_PG.
|
||||||
' LIKE $1;';
|
' 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
|
public static function mysql(){return
|
||||||
'SELECT COUNT(*) as count'.
|
'SELECT COUNT(*) as count'.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ namespace SYSTEM\SQL;
|
|||||||
class SYS_SAIMOD_SECURITY_USERS extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_SECURITY_USERS extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
public static function get_class(){return \get_class();}
|
||||||
public static function pgsql(){return
|
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
|
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;';
|
'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;';
|
||||||
|
|||||||
@ -3,7 +3,7 @@ namespace SYSTEM\SQL;
|
|||||||
class SYS_SAIMOD_SECURITY_USER_COUNT extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_SECURITY_USER_COUNT extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
public static function get_class(){return \get_class();}
|
||||||
public static function pgsql(){return
|
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
|
public static function mysql(){return
|
||||||
'SELECT count(*) as count FROM system_user WHERE username LIKE ? OR email LIKE ?;';
|
'SELECT count(*) as count FROM system_user WHERE username LIKE ? OR email LIKE ?;';
|
||||||
|
|||||||
@ -2,6 +2,13 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_TEXT_COUNT extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_TEXT_COUNT extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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
|
public static function mysql(){return
|
||||||
'SELECT COUNT(*) as `count`'.
|
'SELECT COUNT(*) as `count`'.
|
||||||
' FROM system_text'.
|
' FROM system_text'.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ namespace SYSTEM\SQL;
|
|||||||
class SYS_SAIMOD_TEXT_TAGS extends \SYSTEM\DB\QQ {
|
class SYS_SAIMOD_TEXT_TAGS extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
public static function get_class(){return \get_class();}
|
||||||
public static function pgsql(){return
|
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
|
public static function mysql(){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;';
|
||||||
|
|||||||
@ -2,6 +2,16 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_TEXT_TEXT extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_TEXT_TEXT extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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
|
public static function mysql(){return
|
||||||
'SELECT system_text_tag.tag, system_text.*, a.username as author_name, ae.username as author_edit_name'.
|
'SELECT system_text_tag.tag, system_text.*, a.username as author_name, ae.username as author_edit_name'.
|
||||||
' FROM system_text_tag'.
|
' FROM system_text_tag'.
|
||||||
|
|||||||
@ -2,6 +2,17 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_TODO_COUNT extends \SYSTEM\DB\QP {
|
class SYS_SAIMOD_TODO_COUNT extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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
|
public static function mysql(){return
|
||||||
'SELECT COUNT(*) as count FROM('.
|
'SELECT COUNT(*) as count FROM('.
|
||||||
'SELECT todo.id FROM '.\SYSTEM\SQL\system_todo::NAME_MYS.' as todo'.
|
'SELECT todo.id FROM '.\SYSTEM\SQL\system_todo::NAME_MYS.' as todo'.
|
||||||
|
|||||||
@ -2,6 +2,21 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SAIMOD_TODO_STATS_USERS extends \SYSTEM\DB\QQ {
|
class SYS_SAIMOD_TODO_STATS_USERS extends \SYSTEM\DB\QQ {
|
||||||
public static function get_class(){return \get_class();}
|
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
|
public static function mysql(){return
|
||||||
'SELECT *, state_closed/(state_open+state_closed) as best '.
|
'SELECT *, state_closed/(state_open+state_closed) as best '.
|
||||||
'FROM ('.
|
'FROM ('.
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
namespace SYSTEM\SQL;
|
namespace SYSTEM\SQL;
|
||||||
class SYS_SECURITY_LOGIN_SHA1 extends \SYSTEM\DB\QP {
|
class SYS_SECURITY_LOGIN_SHA1 extends \SYSTEM\DB\QP {
|
||||||
public static function get_class(){return \get_class();}
|
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.
|
'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))'.
|
' 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.' = $2;';
|
' AND '.\SYSTEM\SQL\system_user::FIELD_PASSWORD_SHA.' = $3;';
|
||||||
}
|
}
|
||||||
public static function mysql(){return
|
public static function mysql(){return
|
||||||
'SELECT * FROM '.\SYSTEM\SQL\system_user::NAME_MYS.
|
'SELECT * FROM '.\SYSTEM\SQL\system_user::NAME_MYS.
|
||||||
|
|||||||
9
sql/qt/pgsql/schema/system_todo_assign.sql
Normal file
9
sql/qt/pgsql/schema/system_todo_assign.sql
Normal 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
|
||||||
|
);
|
||||||
Loading…
x
Reference in New Issue
Block a user