Version 20.51.43: Mar 24, 2021 Log API database table renamed.

This commit is contained in:
acanas 2021-03-24 13:51:21 +01:00
parent a1ffed3be1
commit 1c7e403eee
5 changed files with 140 additions and 91 deletions

View File

@ -926,6 +926,16 @@ CREATE TABLE IF NOT EXISTS log (
PARTITION p2050 VALUES LESS THAN MAXVALUE
);
--
-- Table log_api: stores the log of calls to API (web service) from plugins
--
CREATE TABLE IF NOT EXISTS log_api (
LogCod INT NOT NULL,
PlgCod INT NOT NULL,
FunCod INT NOT NULL,
UNIQUE INDEX(LogCod),
INDEX(PlgCod),
INDEX(FunCod));
--
-- Table log_banners: stores the log of clicked banners
--
CREATE TABLE IF NOT EXISTS log_banners (
@ -973,16 +983,6 @@ CREATE TABLE IF NOT EXISTS log_search (
SearchStr VARCHAR(2047) NOT NULL,
UNIQUE INDEX(LogCod));
--
-- Table log_ws: stores the log of calls to web service from plugins
--
CREATE TABLE IF NOT EXISTS log_ws (
LogCod INT NOT NULL,
PlgCod INT NOT NULL,
FunCod INT NOT NULL,
UNIQUE INDEX(LogCod),
INDEX(PlgCod),
INDEX(FunCod));
--
-- Table ntf_mail_domains: stores e-mail domains to which sending of notifications is allowed
--
CREATE TABLE IF NOT EXISTS ntf_mail_domains (

View File

@ -600,13 +600,17 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
*/
#define Log_PLATFORM_VERSION "SWAD 20.51.42 (2021-03-24)"
#define Log_PLATFORM_VERSION "SWAD 20.51.43 (2021-03-24)"
#define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
Version 20.51.43: Mar 24, 2021 Log API database table renamed. (308698 lines)
1 change necessary in database:
RENAME TABLE log_ws TO log_api;
Version 20.51.42: Mar 24, 2021 Exam logs database tables renamed. (308703 lines)
2 changes necessary in database:
RENAME TABLE exa_log_session TO exa_log_sessions;

View File

@ -1937,6 +1937,27 @@ mysql> DESCRIBE log;
"PARTITION p2050 VALUES LESS THAN MAXVALUE"
")");
/***** Table log_api *****/
/*
mysql> DESCRIBE log_api;
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| LogCod | int(11) | NO | PRI | NULL | |
| PlgCod | int(11) | NO | MUL | NULL | |
| FunCod | int(11) | NO | MUL | NULL | |
+--------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)
*/
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_api ("
"LogCod INT NOT NULL,"
"PlgCod INT NOT NULL,"
"FunCod INT NOT NULL,"
"UNIQUE INDEX(LogCod),"
"INDEX(PlgCod),"
"INDEX(FunCod))");
/***** Table log_banners *****/
/*
mysql> DESCRIBE log_banners;
@ -2035,27 +2056,6 @@ mysql> DESCRIBE log_search;
"SearchStr VARCHAR(2047) NOT NULL," // Sch_MAX_BYTES_STRING_TO_FIND
"UNIQUE INDEX(LogCod))");
/***** Table log_ws *****/
/*
mysql> DESCRIBE log_ws;
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| LogCod | int(11) | NO | PRI | NULL | |
| PlgCod | int(11) | NO | MUL | NULL | |
| FunCod | int(11) | NO | MUL | NULL | |
+--------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)
*/
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_ws ("
"LogCod INT NOT NULL,"
"PlgCod INT NOT NULL,"
"FunCod INT NOT NULL,"
"UNIQUE INDEX(LogCod),"
"INDEX(PlgCod),"
"INDEX(FunCod))");
/***** Table ntf_mail_domains *****/
/*
mysql> DESCRIBE ntf_mail_domains;

View File

@ -159,7 +159,7 @@ void Log_LogAccess (const char *Comments)
if (Gbl.WebService.IsWebService)
/* Log web service plugin and function */
DB_QueryINSERT ("can not log access (comments)",
"INSERT INTO log_ws"
"INSERT INTO log_api"
" (LogCod,PlgCod,FunCod)"
" VALUES"
" (%ld,%ld,%u)",

View File

@ -945,34 +945,43 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
{
case Sta_CLICKS_CRS_DETAILED_LIST:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE LogCod,UsrCod,Role,"
"UNIX_TIMESTAMP(ClickTime) AS F,ActCod FROM %s",
"SELECT SQL_NO_CACHE LogCod,"
"UsrCod,"
"Role,"
"UNIX_TIMESTAMP(ClickTime) AS F,"
"ActCod"
" FROM %s",
LogTable);
break;
case Sta_CLICKS_CRS_PER_USR:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE UsrCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE UsrCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_DAY:
case Sta_CLICKS_GBL_PER_DAY:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE "
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y%%m%%d') AS Day,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y%%m%%d') AS Day,"
"%s"
" FROM %s",
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_DAY_AND_HOUR:
case Sta_CLICKS_GBL_PER_DAY_AND_HOUR:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE "
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y%%m%%d') AS Day,"
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%H') AS Hour,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y%%m%%d') AS Day,"
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%H') AS Hour,"
"%s"
" FROM %s",
BrowserTimeZone,
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_WEEK:
case Sta_CLICKS_GBL_PER_WEEK:
@ -980,100 +989,136 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
With %X%V the weeks are counted from sunday to saturday. */
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
(Gbl.Prefs.FirstDayOfWeek == 0) ?
"SELECT SQL_NO_CACHE " // Weeks start on monday
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%x%%v') AS Week,"
"%s FROM %s" :
"SELECT SQL_NO_CACHE " // Weeks start on sunday
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%X%%V') AS Week,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%x%%v') AS Week,"// Weeks start on monday
"%s"
" FROM %s" :
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%X%%V') AS Week,"// Weeks start on sunday
"%s"
" FROM %s",
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_MONTH:
case Sta_CLICKS_GBL_PER_MONTH:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE "
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y%%m') AS Month,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y%%m') AS Month,"
"%s"
" FROM %s",
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_YEAR:
case Sta_CLICKS_GBL_PER_YEAR:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE "
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y') AS Year,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%Y') AS Year,"
"%s"
" FROM %s",
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_HOUR:
case Sta_CLICKS_GBL_PER_HOUR:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE "
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%H') AS Hour,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%H') AS Hour,"
"%s"
" FROM %s",
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_MINUTE:
case Sta_CLICKS_GBL_PER_MINUTE:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE "
"DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%H%%i') AS Minute,"
"%s FROM %s",
"SELECT SQL_NO_CACHE DATE_FORMAT(CONVERT_TZ(ClickTime,@@session.time_zone,'%s'),'%%H%%i') AS Minute,"
"%s"
" FROM %s",
BrowserTimeZone,
StrQueryCountType,LogTable);
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_CRS_PER_ACTION:
case Sta_CLICKS_GBL_PER_ACTION:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE ActCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE ActCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_PLUGIN:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE log_ws.PlgCod,%s AS Num FROM %s,log_ws",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE log_api.PlgCod,"
"%s AS Num"
" FROM %s,"
"log_api",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_API_FUNCTION:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE log_ws.FunCod,%s AS Num FROM %s,log_ws",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE log_api.FunCod,"
"%s AS Num"
" FROM %s,"
"log_api",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_BANNER:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE log_banners.BanCod,%s AS Num FROM %s,log_banners",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE log_banners.BanCod,"
"%s AS Num"
" FROM %s,"
"log_banners",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_COUNTRY:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE CtyCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE CtyCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_INSTITUTION:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE InsCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE InsCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_CENTER:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE CtrCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE CtrCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_DEGREE:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE DegCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE DegCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
case Sta_CLICKS_GBL_PER_COURSE:
snprintf (Query,Sta_MAX_BYTES_QUERY_ACCESS + 1,
"SELECT SQL_NO_CACHE CrsCod,%s AS Num FROM %s",
StrQueryCountType,LogTable);
"SELECT SQL_NO_CACHE CrsCod,"
"%s AS Num"
" FROM %s",
StrQueryCountType,
LogTable);
break;
}
sprintf (QueryAux," WHERE %s.ClickTime"
" BETWEEN FROM_UNIXTIME(%ld) AND FROM_UNIXTIME(%ld)",
" BETWEEN FROM_UNIXTIME(%ld)"
" AND FROM_UNIXTIME(%ld)",
LogTable,
(long) Gbl.DateRange.TimeUTC[Dat_START_TIME],
(long) Gbl.DateRange.TimeUTC[Dat_END_TIME ]);
@ -1199,7 +1244,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
{
case Sta_CLICKS_GBL_PER_PLUGIN:
case Sta_CLICKS_GBL_PER_API_FUNCTION:
sprintf (QueryAux," AND %s.LogCod=log_ws.LogCod",
sprintf (QueryAux," AND %s.LogCod=log_api.LogCod",
LogTable);
Str_Concat (Query,QueryAux,Sta_MAX_BYTES_QUERY_ACCESS);
break;
@ -1319,12 +1364,12 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Str_Concat (Query,QueryAux,Sta_MAX_BYTES_QUERY_ACCESS);
break;
case Sta_CLICKS_GBL_PER_PLUGIN:
Str_Concat (Query," GROUP BY log_ws.PlgCod"
Str_Concat (Query," GROUP BY log_api.PlgCod"
" ORDER BY Num DESC",
Sta_MAX_BYTES_QUERY_ACCESS);
break;
case Sta_CLICKS_GBL_PER_API_FUNCTION:
Str_Concat (Query," GROUP BY log_ws.FunCod"
Str_Concat (Query," GROUP BY log_api.FunCod"
" ORDER BY Num DESC",
Sta_MAX_BYTES_QUERY_ACCESS);
break;