diff --git a/sql/cambios.sql b/sql/cambios.sql index 84eefd759..4bcad1f35 100644 --- a/sql/cambios.sql +++ b/sql/cambios.sql @@ -13189,8 +13189,8 @@ CREATE TABLE IF NOT EXISTS log ( INDEX(UsrCod), INDEX(ClickTime,Role) ) ENGINE=InnoDB -PARTITION BY RANGE (YEAR(ClickTime)) -( + PARTITION BY RANGE (YEAR(ClickTime)) + ( PARTITION p2004 VALUES LESS THAN (2005), PARTITION p2005 VALUES LESS THAN (2006), PARTITION p2006 VALUES LESS THAN (2007), @@ -13292,8 +13292,8 @@ INSERT INTO log SELECT * FROM log_full WHERE ClickTime>='20161201' AND ClickTime INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2017; Hecho INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2018; Hecho -INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2019; -# hasta aquí ya hecho en openswad.org, aún no en swad.ugr.es +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2019; Hecho +# hasta aquí ya hecho # Actualizar los últimos antes de dar el cambiazo: INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2020; diff --git a/sql/swad.sql b/sql/swad.sql index 84c3f18a9..c00c87164 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -748,23 +748,9 @@ CREATE TABLE IF NOT EXISTS links ( WWW VARCHAR(255) NOT NULL, UNIQUE INDEX(LnkCod)); -- --- Table log_banners: stores the log of clicked banners --- -CREATE TABLE IF NOT EXISTS log_banners ( - LogCod INT NOT NULL, - BanCod INT NOT NULL, - UNIQUE INDEX(LogCod),INDEX(BanCod)); --- --- Table log_comments: stores the comments about errors associated to the log --- -CREATE TABLE IF NOT EXISTS log_comments ( - LogCod INT NOT NULL, - Comments TEXT NOT NULL, - UNIQUE INDEX(LogCod)); --- -- Table log: stores the log of all clicks -- -CREATE TABLE IF NOT EXISTS log_full ( +CREATE TABLE IF NOT EXISTS log ( LogCod INT NOT NULL AUTO_INCREMENT, ActCod INT NOT NULL DEFAULT -1, CtyCod INT NOT NULL DEFAULT -1, @@ -778,7 +764,7 @@ CREATE TABLE IF NOT EXISTS log_full ( TimeToGenerate INT NOT NULL, TimeToSend INT NOT NULL, IP CHAR(15) NOT NULL, - UNIQUE INDEX(LogCod), + PRIMARY KEY(LogCod,ClickTime), INDEX(ActCod), INDEX(CtyCod), INDEX(InsCod), @@ -786,7 +772,72 @@ CREATE TABLE IF NOT EXISTS log_full ( INDEX(DegCod), INDEX(CrsCod), INDEX(UsrCod), - INDEX(ClickTime,Role)); + INDEX(ClickTime,Role) + ) ENGINE=InnoDB + PARTITION BY RANGE (YEAR(ClickTime)) + ( + PARTITION p2004 VALUES LESS THAN (2005), + PARTITION p2005 VALUES LESS THAN (2006), + PARTITION p2006 VALUES LESS THAN (2007), + PARTITION p2007 VALUES LESS THAN (2008), + PARTITION p2008 VALUES LESS THAN (2009), + PARTITION p2009 VALUES LESS THAN (2010), + PARTITION p2010 VALUES LESS THAN (2011), + PARTITION p2011 VALUES LESS THAN (2012), + PARTITION p2012 VALUES LESS THAN (2013), + PARTITION p2013 VALUES LESS THAN (2014), + PARTITION p2014 VALUES LESS THAN (2015), + PARTITION p2015 VALUES LESS THAN (2016), + PARTITION p2016 VALUES LESS THAN (2017), + PARTITION p2017 VALUES LESS THAN (2018), + PARTITION p2018 VALUES LESS THAN (2019), + PARTITION p2019 VALUES LESS THAN (2020), + PARTITION p2020 VALUES LESS THAN (2021), + PARTITION p2021 VALUES LESS THAN (2022), + PARTITION p2022 VALUES LESS THAN (2023), + PARTITION p2023 VALUES LESS THAN (2024), + PARTITION p2024 VALUES LESS THAN (2025), + PARTITION p2025 VALUES LESS THAN (2026), + PARTITION p2026 VALUES LESS THAN (2027), + PARTITION p2027 VALUES LESS THAN (2028), + PARTITION p2028 VALUES LESS THAN (2029), + PARTITION p2029 VALUES LESS THAN (2030), + PARTITION p2030 VALUES LESS THAN (2031), + PARTITION p2031 VALUES LESS THAN (2032), + PARTITION p2032 VALUES LESS THAN (2033), + PARTITION p2033 VALUES LESS THAN (2034), + PARTITION p2034 VALUES LESS THAN (2035), + PARTITION p2035 VALUES LESS THAN (2036), + PARTITION p2036 VALUES LESS THAN (2037), + PARTITION p2037 VALUES LESS THAN (2038), + PARTITION p2038 VALUES LESS THAN (2039), + PARTITION p2039 VALUES LESS THAN (2040), + PARTITION p2040 VALUES LESS THAN (2041), + PARTITION p2041 VALUES LESS THAN (2042), + PARTITION p2042 VALUES LESS THAN (2043), + PARTITION p2043 VALUES LESS THAN (2044), + PARTITION p2044 VALUES LESS THAN (2045), + PARTITION p2045 VALUES LESS THAN (2046), + PARTITION p2046 VALUES LESS THAN (2047), + PARTITION p2047 VALUES LESS THAN (2048), + PARTITION p2048 VALUES LESS THAN (2049), + PARTITION p2049 VALUES LESS THAN (2050), + PARTITION p2050 VALUES LESS THAN MAXVALUE + ); +-- +-- Table log_banners: stores the log of clicked banners +-- +CREATE TABLE IF NOT EXISTS log_banners ( + LogCod INT NOT NULL, + BanCod INT NOT NULL, + UNIQUE INDEX(LogCod),INDEX(BanCod)); +-- +-- Table log_comments: stores the comments about errors associated to the log +-- +CREATE TABLE IF NOT EXISTS log_comments ( + LogCod INT NOT NULL, + Comments TEXT NOT NULL, + UNIQUE INDEX(LogCod)); -- -- Table log_recent: stores the log of the most recent clicks, used to speed up queries related to log -- diff --git a/swad_changelog.h b/swad_changelog.h index 25e0b2396..6f61ab4ed 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.162 (2020-04-04)" +#define Log_PLATFORM_VERSION "SWAD 19.163 (2020-04-05)" #define CSS_FILE "swad19.146.css" #define JS_FILE "swad19.153.js" /* @@ -528,6 +528,29 @@ Param // TODO: Oresti Baños: cambiar ojos por candados en descriptores para prohibir/permitir y dejar los ojos para poder elegir descriptores // TODO: Integrar pull requests con traducciones del alemán del usuario eruedin en GitHub + Version 19.163: Apr 05, 2020 Log table is now partitioned by years. (284617 lines) + 20 changes necessary in database: +CREATE TABLE IF NOT EXISTS log (LogCod INT NOT NULL AUTO_INCREMENT,ActCod INT NOT NULL DEFAULT -1,CtyCod INT NOT NULL DEFAULT -1,InsCod INT NOT NULL DEFAULT -1,CtrCod INT NOT NULL DEFAULT -1,DegCod INT NOT NULL DEFAULT -1,CrsCod INT NOT NULL DEFAULT -1,UsrCod INT NOT NULL DEFAULT -1,Role TINYINT NOT NULL,ClickTime DATETIME NOT NULL,TimeToGenerate INT NOT NULL,TimeToSend INT NOT NULL,IP CHAR(15) NOT NULL,PRIMARY KEY(LogCod,ClickTime),INDEX(ActCod),INDEX(CtyCod),INDEX(InsCod),INDEX(CtrCod),INDEX(DegCod),INDEX(CrsCod),INDEX(UsrCod),INDEX(ClickTime,Role)) ENGINE=InnoDB PARTITION BY RANGE (YEAR(ClickTime)) (PARTITION p2004 VALUES LESS THAN (2005),PARTITION p2005 VALUES LESS THAN (2006),PARTITION p2006 VALUES LESS THAN (2007),PARTITION p2007 VALUES LESS THAN (2008),PARTITION p2008 VALUES LESS THAN (2009),PARTITION p2009 VALUES LESS THAN (2010),PARTITION p2010 VALUES LESS THAN (2011),PARTITION p2011 VALUES LESS THAN (2012),PARTITION p2012 VALUES LESS THAN (2013),PARTITION p2013 VALUES LESS THAN (2014),PARTITION p2014 VALUES LESS THAN (2015),PARTITION p2015 VALUES LESS THAN (2016),PARTITION p2016 VALUES LESS THAN (2017),PARTITION p2017 VALUES LESS THAN (2018),PARTITION p2018 VALUES LESS THAN (2019),PARTITION p2019 VALUES LESS THAN (2020),PARTITION p2020 VALUES LESS THAN (2021),PARTITION p2021 VALUES LESS THAN (2022),PARTITION p2022 VALUES LESS THAN (2023),PARTITION p2023 VALUES LESS THAN (2024),PARTITION p2024 VALUES LESS THAN (2025),PARTITION p2025 VALUES LESS THAN (2026),PARTITION p2026 VALUES LESS THAN (2027),PARTITION p2027 VALUES LESS THAN (2028),PARTITION p2028 VALUES LESS THAN (2029),PARTITION p2029 VALUES LESS THAN (2030),PARTITION p2030 VALUES LESS THAN (2031),PARTITION p2031 VALUES LESS THAN (2032),PARTITION p2032 VALUES LESS THAN (2033),PARTITION p2033 VALUES LESS THAN (2034),PARTITION p2034 VALUES LESS THAN (2035),PARTITION p2035 VALUES LESS THAN (2036),PARTITION p2036 VALUES LESS THAN (2037),PARTITION p2037 VALUES LESS THAN (2038),PARTITION p2038 VALUES LESS THAN (2039),PARTITION p2039 VALUES LESS THAN (2040),PARTITION p2040 VALUES LESS THAN (2041),PARTITION p2041 VALUES LESS THAN (2042),PARTITION p2042 VALUES LESS THAN (2043),PARTITION p2043 VALUES LESS THAN (2044),PARTITION p2044 VALUES LESS THAN (2045),PARTITION p2045 VALUES LESS THAN (2046),PARTITION p2046 VALUES LESS THAN (2047),PARTITION p2047 VALUES LESS THAN (2048),PARTITION p2048 VALUES LESS THAN (2049),PARTITION p2049 VALUES LESS THAN (2050),PARTITION p2050 VALUES LESS THAN MAXVALUE); +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) < 2005; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2005; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2006; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2007; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2008; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2009; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2010; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2011; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2012; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2013; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2014; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2015; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2016; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2017; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2018; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2019; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) = 2020; +INSERT INTO log SELECT * FROM log_full WHERE YEAR(ClickTime) > 2020; +RENAME TABLE log_full TO log_old; + Version 19.162: Apr 04, 2020 Code refactoring in tests. (284492 lines) Version 19.161: Apr 04, 2020 Code refactoring in tests. (284529 lines) Version 19.160.1: Apr 03, 2020 Score calculated is removed from each test question. (284817 lines) diff --git a/swad_database.c b/swad_database.c index 7f6c6cf79..e153dc286 100644 --- a/swad_database.c +++ b/swad_database.c @@ -1625,6 +1625,104 @@ mysql> DESCRIBE links; "WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW "UNIQUE INDEX(LnkCod))"); + /***** Table log *****/ +/* +mysql> DESCRIBE log; ++----------------+------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++----------------+------------+------+-----+---------+----------------+ +| LogCod | int(11) | NO | PRI | NULL | auto_increment | +| ActCod | int(11) | NO | MUL | -1 | | +| CtyCod | int(11) | NO | MUL | -1 | | +| InsCod | int(11) | NO | MUL | -1 | | +| CtrCod | int(11) | NO | MUL | -1 | | +| DegCod | int(11) | NO | MUL | -1 | | +| CrsCod | int(11) | NO | MUL | -1 | | +| UsrCod | int(11) | NO | MUL | -1 | | +| Role | tinyint(4) | NO | | NULL | | +| ClickTime | datetime | NO | PRI | NULL | | +| TimeToGenerate | int(11) | NO | | NULL | | +| TimeToSend | int(11) | NO | | NULL | | +| IP | char(15) | NO | | NULL | | ++----------------+------------+------+-----+---------+----------------+ +13 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 (" + "LogCod INT NOT NULL AUTO_INCREMENT," + "ActCod INT NOT NULL DEFAULT -1," + "CtyCod INT NOT NULL DEFAULT -1," + "InsCod INT NOT NULL DEFAULT -1," + "CtrCod INT NOT NULL DEFAULT -1," + "DegCod INT NOT NULL DEFAULT -1," + "CrsCod INT NOT NULL DEFAULT -1," + "UsrCod INT NOT NULL DEFAULT -1," + "Role TINYINT NOT NULL," + "ClickTime DATETIME NOT NULL," + "TimeToGenerate INT NOT NULL," + "TimeToSend INT NOT NULL," + "IP CHAR(15) NOT NULL," + "PRIMARY KEY(LogCod,ClickTime)," + "INDEX(ActCod)," + "INDEX(CtyCod)," + "INDEX(InsCod)," + "INDEX(CtrCod)," + "INDEX(DegCod)," + "INDEX(CrsCod)," + "INDEX(UsrCod)," + "INDEX(ClickTime,Role)" + ") ENGINE=InnoDB" + " PARTITION BY RANGE (YEAR(ClickTime))" + " (" + "PARTITION p2004 VALUES LESS THAN (2005)," + "PARTITION p2005 VALUES LESS THAN (2006)," + "PARTITION p2006 VALUES LESS THAN (2007)," + "PARTITION p2007 VALUES LESS THAN (2008)," + "PARTITION p2008 VALUES LESS THAN (2009)," + "PARTITION p2009 VALUES LESS THAN (2010)," + "PARTITION p2010 VALUES LESS THAN (2011)," + "PARTITION p2011 VALUES LESS THAN (2012)," + "PARTITION p2012 VALUES LESS THAN (2013)," + "PARTITION p2013 VALUES LESS THAN (2014)," + "PARTITION p2014 VALUES LESS THAN (2015)," + "PARTITION p2015 VALUES LESS THAN (2016)," + "PARTITION p2016 VALUES LESS THAN (2017)," + "PARTITION p2017 VALUES LESS THAN (2018)," + "PARTITION p2018 VALUES LESS THAN (2019)," + "PARTITION p2019 VALUES LESS THAN (2020)," + "PARTITION p2020 VALUES LESS THAN (2021)," + "PARTITION p2021 VALUES LESS THAN (2022)," + "PARTITION p2022 VALUES LESS THAN (2023)," + "PARTITION p2023 VALUES LESS THAN (2024)," + "PARTITION p2024 VALUES LESS THAN (2025)," + "PARTITION p2025 VALUES LESS THAN (2026)," + "PARTITION p2026 VALUES LESS THAN (2027)," + "PARTITION p2027 VALUES LESS THAN (2028)," + "PARTITION p2028 VALUES LESS THAN (2029)," + "PARTITION p2029 VALUES LESS THAN (2030)," + "PARTITION p2030 VALUES LESS THAN (2031)," + "PARTITION p2031 VALUES LESS THAN (2032)," + "PARTITION p2032 VALUES LESS THAN (2033)," + "PARTITION p2033 VALUES LESS THAN (2034)," + "PARTITION p2034 VALUES LESS THAN (2035)," + "PARTITION p2035 VALUES LESS THAN (2036)," + "PARTITION p2036 VALUES LESS THAN (2037)," + "PARTITION p2037 VALUES LESS THAN (2038)," + "PARTITION p2038 VALUES LESS THAN (2039)," + "PARTITION p2039 VALUES LESS THAN (2040)," + "PARTITION p2040 VALUES LESS THAN (2041)," + "PARTITION p2041 VALUES LESS THAN (2042)," + "PARTITION p2042 VALUES LESS THAN (2043)," + "PARTITION p2043 VALUES LESS THAN (2044)," + "PARTITION p2044 VALUES LESS THAN (2045)," + "PARTITION p2045 VALUES LESS THAN (2046)," + "PARTITION p2046 VALUES LESS THAN (2047)," + "PARTITION p2047 VALUES LESS THAN (2048)," + "PARTITION p2048 VALUES LESS THAN (2049)," + "PARTITION p2049 VALUES LESS THAN (2050)," + "PARTITION p2050 VALUES LESS THAN MAXVALUE" + ")"); + /***** Table log_banners *****/ /* mysql> DESCRIBE log_banners; @@ -1654,58 +1752,12 @@ mysql> DESCRIBE log_comments; +----------+---------+------+-----+---------+-------+ 2 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_comments (" "LogCod INT NOT NULL," "Comments TEXT NOT NULL," "UNIQUE INDEX(LogCod))"); - /***** Table log_full *****/ -/* -mysql> DESCRIBE log_full; -+----------------+------------+------+-----+---------+----------------+ -| Field | Type | Null | Key | Default | Extra | -+----------------+------------+------+-----+---------+----------------+ -| LogCod | int(11) | NO | PRI | NULL | auto_increment | -| ActCod | int(11) | NO | MUL | -1 | | -| CtyCod | int(11) | NO | MUL | -1 | | -| InsCod | int(11) | NO | MUL | -1 | | -| CtrCod | int(11) | NO | MUL | -1 | | -| DegCod | int(11) | NO | MUL | -1 | | -| CrsCod | int(11) | NO | MUL | -1 | | -| UsrCod | int(11) | NO | MUL | -1 | | -| Role | tinyint(4) | NO | | NULL | | -| ClickTime | datetime | NO | MUL | NULL | | -| TimeToGenerate | int(11) | NO | | NULL | | -| TimeToSend | int(11) | NO | | NULL | | -| IP | char(15) | NO | | NULL | | -+----------------+------------+------+-----+---------+----------------+ -13 rows in set (0.01 sec) -*/ -// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables. - DB_CreateTable ("CREATE TABLE IF NOT EXISTS log (" - "LogCod INT NOT NULL AUTO_INCREMENT," - "ActCod INT NOT NULL DEFAULT -1," - "CtyCod INT NOT NULL DEFAULT -1," - "InsCod INT NOT NULL DEFAULT -1," - "CtrCod INT NOT NULL DEFAULT -1," - "DegCod INT NOT NULL DEFAULT -1," - "CrsCod INT NOT NULL DEFAULT -1," - "UsrCod INT NOT NULL DEFAULT -1," - "Role TINYINT NOT NULL," - "ClickTime DATETIME NOT NULL," - "TimeToGenerate INT NOT NULL," - "TimeToSend INT NOT NULL," - "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP - "UNIQUE INDEX(LogCod)," - "INDEX(ActCod)," - "INDEX(CtyCod)," - "INDEX(InsCod)," - "INDEX(CtrCod)," - "INDEX(DegCod)," - "INDEX(CrsCod)," - "INDEX(UsrCod)," - "INDEX(ClickTime,Role))"); - /***** Table log_recent *****/ /* mysql> DESCRIBE log_recent; diff --git a/swad_log.c b/swad_log.c index 263e2e350..17d8977d7 100644 --- a/swad_log.c +++ b/swad_log.c @@ -80,10 +80,10 @@ void Log_LogAccess (const char *Comments) Gbl.Usrs.Me.Role.Logged; /***** Insert access into database *****/ - /* Log access in historical log (log_full) */ + /* Log access in historical log */ LogCod = - DB_QueryINSERTandReturnCode ("can not log access (full)", - "INSERT INTO log_full " + DB_QueryINSERTandReturnCode ("can not log access", + "INSERT INTO log " "(ActCod,CtyCod,InsCod,CtrCod,DegCod,CrsCod,UsrCod," "Role,ClickTime,TimeToGenerate,TimeToSend,IP)" " VALUES " diff --git a/swad_profile.c b/swad_profile.c index 9f393b291..7c4438611 100644 --- a/swad_profile.c +++ b/swad_profile.c @@ -1048,7 +1048,7 @@ static void Prf_GetFirstClickFromLogAndStoreAsUsrFigure (long UsrCod) /***** Get first click from log table *****/ if (DB_QuerySELECT (&mysql_res,"can not get user's first click", "SELECT UNIX_TIMESTAMP(" - "(SELECT MIN(ClickTime) FROM log_full" + "(SELECT MIN(ClickTime) FROM log" " WHERE UsrCod=%ld)" ")", UsrCod)) @@ -1091,7 +1091,7 @@ static void Prf_GetNumClicksAndStoreAsUsrFigure (long UsrCod) /***** Get number of clicks from database *****/ UsrFigures.NumClicks = (long) DB_QueryCOUNT ("can not get number of clicks", - "SELECT COUNT(*) FROM log_full" + "SELECT COUNT(*) FROM log" " WHERE UsrCod=%ld", UsrCod); diff --git a/swad_report.c b/swad_report.c index 66e2517e3..b61776821 100644 --- a/swad_report.c +++ b/swad_report.c @@ -787,7 +787,7 @@ static void Rep_WriteSectionHitsPerAction (struct Rep_Report *Report) /***** Make the query *****/ NumRows = DB_QuerySELECT (&mysql_res,"can not get clicks", "SELECT SQL_NO_CACHE ActCod,COUNT(*) AS N" - " FROM log_full" + " FROM log" " WHERE ClickTime>=FROM_UNIXTIME(%ld)" " AND UsrCod=%ld" " GROUP BY ActCod ORDER BY N DESC LIMIT %u", @@ -933,7 +933,7 @@ static void Rep_GetMaxHitsPerYear (struct Rep_Report *Report) "YEAR(CONVERT_TZ(ClickTime,@@session.time_zone,'UTC')) AS Year," "%u AS Role," "COUNT(*) AS N" - " FROM log_full" + " FROM log" " WHERE ClickTime>=FROM_UNIXTIME(%ld)" " AND UsrCod=%ld" " AND CrsCod<=0" @@ -946,7 +946,7 @@ static void Rep_GetMaxHitsPerYear (struct Rep_Report *Report) "YEAR(CONVERT_TZ(ClickTime,@@session.time_zone,'UTC')) AS Year," "Role," "COUNT(*) AS N" - " FROM log_full" + " FROM log" " WHERE ClickTime>=FROM_UNIXTIME(%ld)" " AND UsrCod=%ld" " AND Role>=%u" // Student @@ -1016,15 +1016,15 @@ static void Rep_GetAndWriteMyCurrentCrss (Rol_Role_t Role, /***** Get courses of a user from database *****/ NumCrss = (unsigned) DB_QuerySELECT (&mysql_res,"can not get courses of a user", - "SELECT crs_usr.CrsCod,log_full.CrsCod,COUNT(*) AS N" - " FROM crs_usr LEFT JOIN log_full ON" - " (crs_usr.CrsCod=log_full.CrsCod" - " AND crs_usr.UsrCod=log_full.UsrCod" - " AND crs_usr.Role=log_full.Role)" + "SELECT crs_usr.CrsCod,log.CrsCod,COUNT(*) AS N" + " FROM crs_usr LEFT JOIN log ON" + " (crs_usr.CrsCod=log.CrsCod" + " AND crs_usr.UsrCod=log.UsrCod" + " AND crs_usr.Role=log.Role)" " WHERE crs_usr.UsrCod=%ld" " AND crs_usr.Role=%u" " GROUP BY crs_usr.CrsCod" - " ORDER BY N DESC,log_full.CrsCod DESC", + " ORDER BY N DESC,log.CrsCod DESC", Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) Role); /***** List the courses (one row per course) *****/ @@ -1103,7 +1103,7 @@ static void Rep_GetAndWriteMyHistoricCrss (Rol_Role_t Role, NumCrss = (unsigned) DB_QuerySELECT (&mysql_res,"can not get courses of a user", "SELECT CrsCod,COUNT(*) AS N" - " FROM log_full" + " FROM log" " WHERE UsrCod=%ld AND Role=%u AND CrsCod>0" " GROUP BY CrsCod" " HAVING N>%u" @@ -1241,7 +1241,7 @@ static void Rep_ShowMyHitsPerYear (bool AnyCourse,long CrsCod,Rol_Role_t Role, NumRows = DB_QuerySELECT (&mysql_res,"can not get clicks", "SELECT SQL_NO_CACHE " "YEAR(CONVERT_TZ(ClickTime,@@session.time_zone,'UTC')) AS Year," - "COUNT(*) FROM log_full" + "COUNT(*) FROM log" " WHERE ClickTime>=FROM_UNIXTIME(%ld)" " AND UsrCod=%ld%s%s" " GROUP BY Year DESC", diff --git a/swad_statistic.c b/swad_statistic.c index 262df87ba..5b9d57ad9 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -720,7 +720,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse) then use recent log table, else use historic log table */ LogTable = (Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.Now.Date) <= Cfg_DAYS_IN_RECENT_LOG) ? "log_recent" : - "log_full"; + "log"; /***** Get the type of stat of clicks ******/ DetailedOrGrouped = (Sta_ClicksDetailedOrGrouped_t)