diff --git a/sql/swad.sql b/sql/swad.sql index 8367d572..cadd30e9 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -1065,8 +1065,8 @@ CREATE TABLE IF NOT EXISTS timetable_crs ( Hour TINYINT NOT NULL, Duration TINYINT NOT NULL, ClassType ENUM('libre','teoria','practicas') NOT NULL, - Place VARCHAR(127) NOT NULL, - GroupName VARCHAR(255) NOT NULL, + Place VARCHAR(511) NOT NULL, + GroupName VARCHAR(2047) NOT NULL, INDEX(CrsCod,GrpCod)); -- -- Table timetable_tut: stores the timetables of office hours of the teachers @@ -1076,7 +1076,7 @@ CREATE TABLE IF NOT EXISTS timetable_tut ( Day ENUM('L','M','X','J','V','S','D') NOT NULL, Hour TINYINT NOT NULL, Duration TINYINT NOT NULL, - Place VARCHAR(127) NOT NULL, + Place VARCHAR(511) NOT NULL, INDEX(UsrCod)); -- -- Table tst_answers: stores the answers to the questions in tests diff --git a/swad_changelog.h b/swad_changelog.h index 30b7d3c5..5f7405dd 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -209,13 +209,19 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.155.25 (2017-03-13)" +#define Log_PLATFORM_VERSION "SWAD 16.155.26 (2017-03-13)" #define CSS_FILE "swad16.147.css" #define JS_FILE "swad16.144.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 /* + Version 16.155.26:Mar 13, 2017 Adjusting size of database fields. (217009 lines) + 3 changes necessary in database: +ALTER TABLE timetable_crs CHANGE COLUMN Place Place VARCHAR(511) NOT NULL; +ALTER TABLE timetable_crs CHANGE COLUMN GroupName GroupName VARCHAR(2047) NOT NULL; +ALTER TABLE timetable_tut CHANGE COLUMN Place Place VARCHAR(511) NOT NULL; + Version 16.155.25:Mar 13, 2017 Adjusting size of database fields. (216995 lines) 1 change necessary in database. ALTER TABLE surveys CHANGE COLUMN Title Title VARCHAR(2047) NOT NULL; diff --git a/swad_database.c b/swad_database.c index cab07b70..f2a09a7d 100644 --- a/swad_database.c +++ b/swad_database.c @@ -2181,11 +2181,11 @@ mysql> DESCRIBE svy_answers; 4 rows in set (0.00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_answers (" - "QstCod INT NOT NULL," - "AnsInd TINYINT NOT NULL," - "NumUsrs INT NOT NULL DEFAULT 0," - "Answer TEXT NOT NULL," - "UNIQUE INDEX(QstCod,AnsInd))"); + "QstCod INT NOT NULL," + "AnsInd TINYINT NOT NULL," + "NumUsrs INT NOT NULL DEFAULT 0," + "Answer TEXT NOT NULL," // Cns_MAX_BYTES_TEXT + "UNIQUE INDEX(QstCod,AnsInd))"); /***** Table svy_grp *****/ /* @@ -2199,9 +2199,9 @@ mysql> DESCRIBE svy_grp; 2 rows in set (0.01 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_grp (" - "SvyCod INT NOT NULL," - "GrpCod INT NOT NULL," - "UNIQUE INDEX(SvyCod,GrpCod))"); + "SvyCod INT NOT NULL," + "GrpCod INT NOT NULL," + "UNIQUE INDEX(SvyCod,GrpCod))"); /***** Table svy_questions *****/ /* @@ -2218,13 +2218,13 @@ mysql> DESCRIBE svy_questions; 5 rows in set (0.00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_questions (" - "QstCod INT NOT NULL AUTO_INCREMENT," - "SvyCod INT NOT NULL," - "QstInd INT NOT NULL DEFAULT 0," - "AnsType ENUM ('unique_choice','multiple_choice') NOT NULL," - "Stem TEXT NOT NULL," - "UNIQUE INDEX(QstCod)," - "INDEX(SvyCod))"); + "QstCod INT NOT NULL AUTO_INCREMENT," + "SvyCod INT NOT NULL," + "QstInd INT NOT NULL DEFAULT 0," + "AnsType ENUM ('unique_choice','multiple_choice') NOT NULL," + "Stem TEXT NOT NULL," // Cns_MAX_BYTES_TEXT + "UNIQUE INDEX(QstCod)," + "INDEX(SvyCod))"); /***** Table svy_users *****/ /* @@ -2238,9 +2238,9 @@ mysql> DESCRIBE svy_users; 2 rows in set (0.00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_users (" - "SvyCod INT NOT NULL," - "UsrCod INT NOT NULL," - "UNIQUE INDEX(SvyCod,UsrCod))"); + "SvyCod INT NOT NULL," + "UsrCod INT NOT NULL," + "UNIQUE INDEX(SvyCod,UsrCod))"); /***** Table timetable_crs *****/ /* @@ -2254,21 +2254,21 @@ mysql> DESCRIBE timetable_crs; | Hour | tinyint(4) | NO | | NULL | | | Duration | tinyint(4) | NO | | NULL | | | ClassType | enum('libre','teoria','practicas') | NO | | NULL | | -| Place | varchar(127) | NO | | NULL | | -| GroupName | varchar(255) | NO | | NULL | | +| Place | varchar(511) | NO | | NULL | | +| GroupName | varchar(2047) | NO | | NULL | | +-----------+------------------------------------+------+-----+---------+-------+ -8 rows in set (0.01 sec) +8 rows in set (0,00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS timetable_crs (" - "CrsCod INT NOT NULL DEFAULT -1," - "GrpCod INT NOT NULL DEFAULT -1," - "Day ENUM('L','M','X','J','V','S','D') NOT NULL," - "Hour TINYINT NOT NULL," - "Duration TINYINT NOT NULL," - "ClassType ENUM('libre','teoria','practicas') NOT NULL," - "Place VARCHAR(127) NOT NULL," - "GroupName VARCHAR(255) NOT NULL," - "INDEX(CrsCod,GrpCod))"); + "CrsCod INT NOT NULL DEFAULT -1," + "GrpCod INT NOT NULL DEFAULT -1," + "Day ENUM('L','M','X','J','V','S','D') NOT NULL," + "Hour TINYINT NOT NULL," + "Duration TINYINT NOT NULL," + "ClassType ENUM('libre','teoria','practicas') NOT NULL," + "Place VARCHAR(511) NOT NULL," // TT_MAX_BYTES_PLACE + "GroupName VARCHAR(2047) NOT NULL," // Grp_MAX_BYTES_GROUP_NAME + "INDEX(CrsCod,GrpCod))"); /***** Table timetable_tut *****/ /* @@ -2280,17 +2280,17 @@ mysql> DESCRIBE timetable_tut; | Day | enum('L','M','X','J','V','S','D') | NO | | NULL | | | Hour | tinyint(4) | NO | | NULL | | | Duration | tinyint(4) | NO | | NULL | | -| Place | varchar(127) | NO | | NULL | | +| Place | varchar(511) | NO | | NULL | | +----------+-----------------------------------+------+-----+---------+-------+ -5 rows in set (0.01 sec) +5 rows in set (0,00 sec) */ DB_CreateTable ("CREATE TABLE IF NOT EXISTS timetable_tut (" - "UsrCod INT NOT NULL," - "Day ENUM('L','M','X','J','V','S','D') NOT NULL," - "Hour TINYINT NOT NULL," - "Duration TINYINT NOT NULL," - "Place VARCHAR(127) NOT NULL," - "INDEX(UsrCod))"); + "UsrCod INT NOT NULL," + "Day ENUM('L','M','X','J','V','S','D') NOT NULL," + "Hour TINYINT NOT NULL," + "Duration TINYINT NOT NULL," + "Place VARCHAR(511) NOT NULL," // TT_MAX_BYTES_PLACE + "INDEX(UsrCod))"); /***** Table tst_answers *****/ /* diff --git a/swad_timetable.c b/swad_timetable.c index a8115b5d..bacdec7d 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -130,7 +130,8 @@ static void TT_TimeTableDrawDaysCells (void); static unsigned TT_TimeTableCalculateColsToDraw (unsigned Day,unsigned Hour); static void TT_DrawCellAlignTimeTable (void); static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,unsigned ColSpan, - long CrsCod,TT_HourType_t HourType,TT_ClassType_t ClassType,unsigned Duration,char *Group,long GrpCod,char *Place); + long CrsCod,TT_HourType_t HourType,TT_ClassType_t ClassType, + unsigned Duration,char *Group,long GrpCod,char *Place); /*****************************************************************************/ /*********** Show whether only my groups or all groups are shown *************/ @@ -456,11 +457,16 @@ void TT_ShowTimeTable (long UsrCod) static void TT_WriteCrsTimeTableIntoDB (long CrsCod) { - char Query[1024]; - unsigned Hour,Day,Column; + char Query[512 + + TT_MAX_BYTES_PLACE + + Grp_MAX_BYTES_GROUP_NAME]; + unsigned Hour; + unsigned Day; + unsigned Column; /***** Remove former timetable *****/ - sprintf (Query,"DELETE FROM timetable_crs WHERE CrsCod='%ld'",CrsCod); + sprintf (Query,"DELETE FROM timetable_crs WHERE CrsCod='%ld'", + CrsCod); DB_QueryDELETE (Query,"can not remove former timetable"); /***** Go across the timetable inserting classes into database *****/ @@ -498,11 +504,13 @@ static void TT_WriteCrsTimeTableIntoDB (long CrsCod) static void TT_WriteTutTimeTableIntoDB (long UsrCod) { - char Query[1024]; + char Query[512 + + TT_MAX_BYTES_PLACE]; unsigned Hour,Day,Column; /***** Remove former timetable *****/ - sprintf (Query,"DELETE FROM timetable_tut WHERE UsrCod='%ld'",UsrCod); + sprintf (Query,"DELETE FROM timetable_tut WHERE UsrCod='%ld'", + UsrCod); DB_QueryDELETE (Query,"can not remove former timetable"); /***** Loop over timetable *****/ @@ -1106,7 +1114,8 @@ static void TT_DrawCellAlignTimeTable (void) /*****************************************************************************/ static void TT_TimeTableDrawCell (unsigned Day,unsigned Hour,unsigned Column,unsigned ColSpan, - long CrsCod,TT_HourType_t HourType,TT_ClassType_t ClassType,unsigned Duration,char *Group,long GrpCod,char *Place) + long CrsCod,TT_HourType_t HourType,TT_ClassType_t ClassType, + unsigned Duration,char *Group,long GrpCod,char *Place) { extern const char *Txt_unknown_removed_course; extern const char *Txt_TIMETABLE_CLASS_TYPES[TT_NUM_CLASS_TYPES];