diff --git a/ChangeLog b/ChangeLog index df7146de..bed38cb0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17681,7 +17681,7 @@ * Changed the width of the 'HOSTVARS.REMARK' field to 191. * Changed the width of the 'IMPORTER_LINES.TITLE' field to 191. * Changed the width of the 'IMPORTER_LINES.TRACK_STRING' field to 191. - * Changed the width of the 'INPUTS.NODE_HOSTNAME' field to 191. + * Changed the width of the 'INPUTS.NODE_HOSTNAME' field to 176. * Changed the width of the 'LOGS.ORIGIN_USER' field to 191. * Changed the width of the 'LOGS.LOCK_USER_NAME' field to 191. * Changed the width of the 'LOG_LINES.COMMENT' field to 191. @@ -17692,7 +17692,7 @@ * Changed the width of the 'MATRICES.GPIO_DEVICE' field to 191. * Changed the width of the 'NOWNEXT_PLUGINS.PLUGIN_PATH' field to 191. * Changed the width of the 'NOWNEXT_PLUGINS.PLUGIN_ARG' field to 191. - * Changed the width of the 'OUTPUTS.NODE_HOSTNAME' field to 191. + * Changed the width of the 'OUTPUTS.NODE_HOSTNAME' field to 176. * Changed the width of the 'PODCASTS.ITEM_TITLE' field to 191. * Changed the width of the 'PODCASTS.ITEM_LINK' field to 191. * Changed the width of the 'PODCASTS.ITEM_COMMENTS' field to 191. @@ -17720,6 +17720,8 @@ * Changed the width of the 'SERVICES.TFC_WIN_PATH' field to 191. * Changed the width of the 'SERVICES.MUS_PATH' field to 191. * Changed the width of the 'SERVICES_MUS_WIN_PATH' field to 191. + * Changed the width of the 'STACK_LINES.ARTIST' field to 191. + * Changed the width of the 'STACK_LINES.SCHED_CODES' field to 191. * Changed the width of the 'STATIONS.USER_NAME' field to 191. * Changed the width of the 'STATIONS.DEFAULT_NAME' field to 191. * Changed the width of the 'STATIONS.EDITOR_PATH' field to 191. @@ -17733,6 +17735,8 @@ * Changed the width of the 'USER_SERVICE_PERMS.USER_NAME' field to 191. * Changed the width of the 'WEBAPI_AUTHS.LOGIN_NAME' field to 191. * Changed the width of the 'WEB_CONNECTIONS.LOGIN_NAME' field to 191. + * Changed the charset/collation of the DB to + 'utf8mb4'/'utf8mb4_general_ci'. * Incremented the database version to 297. * Changed the default DB charset to 'utf8mb4'. * Changed the default DB collation to 'utf8mb4_general_ci'. @@ -17743,3 +17747,10 @@ 2018-10-03 Fred Gleason * Updated 'UPGRADING' to include information for v3.x. * Updated 'INSTALL'. +2018-10-08 Fred Gleason + * Removed the 'Charset=' and 'Collation=' parameters from the + '[mySQL]' section of rd.conf(5). + * Removed support for the --mysql-charset=' and '--mysql-collation=' + switches in rddbmgr(8). + * Refactored handling of character set and collation attributes + in rddbmgr(8) to treat them as immutable parts of the DB schema. diff --git a/conf/rd.conf-sample b/conf/rd.conf-sample index 50c10ef8..6d3f1cfb 100644 --- a/conf/rd.conf-sample +++ b/conf/rd.conf-sample @@ -29,13 +29,9 @@ Driver=QMYSQL3 ; The interval between 'keep-alive' queries to the MySQL server (seconds) HeartbeatInterval=360 -; The following three settings control the attributes of new DB tables +; The following setting controls the attributes of new DB tables ; created by Rivendell. ;Engine=MyISAM -; 'Charset' and 'Collation' should *not* changed except for development -; purposes. -;Charset=utf8mb4 -;Collation=utf8mb4_general_ci [AudioStore] MountSource= diff --git a/docs/manpages/rddbmgr.xml b/docs/manpages/rddbmgr.xml index 2e3246af..f5b97645 100644 --- a/docs/manpages/rddbmgr.xml +++ b/docs/manpages/rddbmgr.xml @@ -6,7 +6,7 @@ rddbmgr 8 - June 2018 + October 2018 Linux Audio Manual @@ -151,30 +151,6 @@ - - charset - - - Configure new tables to use character set - charset. - Default is to use the corresponding value found in the - [mySQL] section of - rd.conf5. - - - - - collation - - - Configure new tables to use collation - collation. - Default is to use the corresponding value found in the - [mySQL] section of - rd.conf5. - - - @@ -484,6 +460,15 @@ do not exist in the reverted schema will be irrecoverably lost! + + + Schema versions earlier than 297 + (Rivendell version 3.0.0) utilize + the Latin1 character set; reverting + a database containing non-Latin1 characters to these schema versions + will cause irreversible corruption of those characters! + + See Also diff --git a/docs/tables/inputs.txt b/docs/tables/inputs.txt index babeaced..9c7df746 100644 --- a/docs/tables/inputs.txt +++ b/docs/tables/inputs.txt @@ -14,6 +14,6 @@ FEED_NAME varchar(8) CHANNEL_MODE int(11) ENGINE_NUM int(11) DEVICE_NUM int(11) -NODE_HOSTNAME varchar(191) +NODE_HOSTNAME varchar(176) NODE_TCP_PORT int(11) NODE_SLOT int(11) diff --git a/docs/tables/outputs.txt b/docs/tables/outputs.txt index 0c43a619..9b3c2089 100644 --- a/docs/tables/outputs.txt +++ b/docs/tables/outputs.txt @@ -12,6 +12,6 @@ NUMBER int(11) NAME varchar(64) ENGINE_NUM int(11) DEVICE_NUM int(11) -NODE_HOSTNAME varchar(191) +NODE_HOSTNAME varchar(176) NODE_TCP_PORT int(11) NODE_SLOT int(11) diff --git a/docs/tables/stack_lines.txt b/docs/tables/stack_lines.txt index 4c66d5d6..2b3b4440 100644 --- a/docs/tables/stack_lines.txt +++ b/docs/tables/stack_lines.txt @@ -8,6 +8,6 @@ ID int(10) unsigned Primary key, auto_increment SCHED_STACK_ID int(10) unsigned SERVICE_NAME varchar(10) From SERVICES.NAME CART int(10) unsigned From CART.NUMBER -ARTIST varchar(255) From CART.ARTIST -SCHED_CODES varchar(255) +ARTIST varchar(191) From CART.ARTIST +SCHED_CODES varchar(191) SCHEDULED_AT datetime diff --git a/lib/rdconfig.cpp b/lib/rdconfig.cpp index 4e3a858a..d5657b83 100644 --- a/lib/rdconfig.cpp +++ b/lib/rdconfig.cpp @@ -188,18 +188,6 @@ QString RDConfig::mysqlEngine() const } -QString RDConfig::mysqlCharset() const -{ - return conf_mysql_charset; -} - - -QString RDConfig::mysqlCollation() const -{ - return conf_mysql_collation; -} - - QString RDConfig::createTablePostfix() const { return conf_create_table_postfix; @@ -590,18 +578,8 @@ void RDConfig::load() DEFAULT_MYSQL_HEARTBEAT_INTERVAL); conf_mysql_engine= profile->stringValue("mySQL","Engine",DEFAULT_MYSQL_ENGINE); - conf_mysql_charset= - profile->stringValue("mySQL","Charset",DEFAULT_MYSQL_CHARSET); - conf_mysql_collation= - profile->stringValue("mySQL","Collation",DEFAULT_MYSQL_COLLATION); - /* - conf_create_table_postfix=QString(" engine ")+conf_mysql_engine+" "+ - "character set "+conf_mysql_charset+" "+ - "collate "+conf_mysql_collation; - */ conf_create_table_postfix= - RDConfig::createTablePostfix(conf_mysql_engine,conf_mysql_charset, - conf_mysql_collation); + RDConfig::createTablePostfix(conf_mysql_engine); facility=profile->stringValue("Logs","Facility",DEFAULT_LOG_FACILITY).lower(); if(facility=="syslog") { @@ -709,8 +687,6 @@ void RDConfig::clear() conf_mysql_driver=""; conf_mysql_heartbeat_interval=DEFAULT_MYSQL_HEARTBEAT_INTERVAL; conf_mysql_engine=DEFAULT_MYSQL_ENGINE; - conf_mysql_charset=DEFAULT_MYSQL_CHARSET; - conf_mysql_collation=DEFAULT_MYSQL_COLLATION; conf_create_table_postfix=""; conf_log_facility=RDConfig::LogSyslog; conf_log_directory=""; @@ -775,10 +751,7 @@ QString RDConfig::userAgent(const QString &modname) } -QString RDConfig::createTablePostfix(const QString &engine, - const QString &charset, - const QString &collation) +QString RDConfig::createTablePostfix(const QString &engine) { - return QString(" engine ")+engine+" "+"character set "+charset+" "+ - "collate "+collation; + return QString(" engine ")+engine+" "; } diff --git a/lib/rdconfig.h b/lib/rdconfig.h index 0d31fcfd..41900d11 100644 --- a/lib/rdconfig.h +++ b/lib/rdconfig.h @@ -61,8 +61,6 @@ class RDConfig QString mysqlDriver() const; int mysqlHeartbeatInterval() const; QString mysqlEngine() const; - QString mysqlCharset() const; - QString mysqlCollation() const; QString createTablePostfix() const; RDConfig::LogFacility logFacility() const; QString logDirectory() const; @@ -120,9 +118,7 @@ class RDConfig void load(); void clear(); static QString userAgent(const QString &modname); - static QString createTablePostfix(const QString &engine, - const QString &charset, - const QString &collation); + static QString createTablePostfix(const QString &engine); private: QString conf_filename; @@ -133,8 +129,6 @@ class RDConfig QString conf_mysql_password; QString conf_mysql_driver; QString conf_mysql_engine; - QString conf_mysql_charset; - QString conf_mysql_collation; QString conf_create_table_postfix; int conf_mysql_heartbeat_interval; RDConfig::LogFacility conf_log_facility; diff --git a/lib/rddb.cpp b/lib/rddb.cpp index 381e41c6..cb1d653d 100644 --- a/lib/rddb.cpp +++ b/lib/rddb.cpp @@ -163,8 +163,7 @@ bool RDOpenDb (int *schema,QString *err_str,RDConfig *config) } } new RDDbHeartbeat(config->mysqlHeartbeatInterval()); - sql=QString("set NAMES '")+config->mysqlCharset()+"'"+ - "COLLATE '"+config->mysqlCollation()+"'"; + sql=QString("set NAMES utf8mb4 collate utf8mb4_general_ci"); q=new QSqlQuery(sql); delete q; diff --git a/utils/rddbmgr/check.cpp b/utils/rddbmgr/check.cpp index e3455d48..a2d8c795 100644 --- a/utils/rddbmgr/check.cpp +++ b/utils/rddbmgr/check.cpp @@ -156,17 +156,15 @@ void MainObject::CheckTableAttributes() RDSqlQuery::apply(sql); } } - if(q->value(2).toString().toLower()!=db_mysql_collation.toLower()) { - printf(" Table \"%s\" uses charset/collation %s/%s, should be %s/%s. Fix? (y/N) ", + if(q->value(2).toString().toLower()!="utf8mb4_general_ci") { + printf(" Table \"%s\" uses charset/collation %s/%s, should be utf8mb4/utf8mb4_general_ci. Fix? (y/N) ", (const char *)q->value(0).toString().toUtf8(), (const char *)charset.toUtf8(), - (const char *)q->value(2).toString().toUtf8(), - (const char *)db_mysql_charset.toUtf8(), - (const char *)db_mysql_collation.toUtf8()); + (const char *)q->value(2).toString().toUtf8()); fflush(NULL); if(UserResponse()) { - RewriteTable(q->value(0).toString(),charset,db_mysql_charset, - db_mysql_collation); + RewriteTable(q->value(0).toString(),charset,"utf8mb4", + "utf8mb4_general_ci"); } } } @@ -183,18 +181,15 @@ void MainObject::CheckTableAttributes() q=new RDSqlQuery(sql); while(q->next()) { if(q->value(0).toString()==db_mysql_database) { - if((q->value(1).toString().toLower()!=db_mysql_charset.toLower())|| - (q->value(2).toString().toLower()!=db_mysql_collation.toLower())) { - printf(" Database uses default charset/collation %s/%s, should be %s/%s. Fix? (y/N) ", + if((q->value(1).toString().toLower()!="utf8mb4")|| + (q->value(2).toString().toLower()!="utf8mb4_general_ci")) { + printf(" Database uses default charset/collation %s/%s, should be utf8mb4/utf8mb4_general_ci. Fix? (y/N) ", (const char *)q->value(1).toString().toUtf8(), - (const char *)q->value(2).toString().toUtf8(), - (const char *)db_mysql_charset.toUtf8(), - (const char *)db_mysql_collation.toUtf8()); + (const char *)q->value(2).toString().toUtf8()); fflush(NULL); if(UserResponse()) { sql=QString("alter database `")+db_mysql_database+"` "+ - "character set "+db_mysql_charset+" "+ - "collate "+db_mysql_collation; + "character set utf8mb4 collate utf8mb4_general_ci"; RDSqlQuery::apply(sql); } } @@ -216,7 +211,11 @@ void MainObject::RewriteTable(const QString &tblname,const QString &old_charset, } QString filename=tempdir+"/table.sql"; QString out_filename=tempdir+"/table-out.sql"; - printf("using: %s\n",(const char *)tempdir.toUtf8()); + /* + printf("table \"%s\" using: %s\n", + (const char *)tblname.toUtf8(), + (const char *)tempdir.toUtf8()); + */ // // Dump Table diff --git a/utils/rddbmgr/create.cpp b/utils/rddbmgr/create.cpp index ecd01863..a78e6d12 100644 --- a/utils/rddbmgr/create.cpp +++ b/utils/rddbmgr/create.cpp @@ -109,6 +109,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "EDIT_PODCAST_PRIV enum('N','Y') not null default 'N',"+ "DELETE_PODCAST_PRIV enum('N','Y') not null default 'N',"+ "INDEX FULL_NAME_IDX (FULL_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -160,6 +161,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ALSA_VERSION char(16),"+ "INDEX DESCRIPTION_IDX (DESCRIPTION),"+ "index IPV4_ADDRESS_IDX (IPV4_ADDRESS))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -227,6 +229,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "index PENDING_STATION_IDX(PENDING_STATION),"+ "index PENDING_PID_IDX(PENDING_STATION,PENDING_PID),"+ "index PENDING_DATETIME_IDX(PENDING_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -291,6 +294,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "index END_DATETIME_IDX (END_DATETIME),"+ "index ISCI_IDX (ISCI),"+ "index ISRC_IDX (ISRC))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -328,6 +332,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "index CART_NUMBER_IDX (CART_NUMBER),"+ "index DESCRIPTION_IDX (DESCRIPTION),"+ "index OUTCUE_IDX (OUTCUE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -374,8 +379,6 @@ bool MainObject::CreateNewDb(QString *err_msg) const "TFC_LEN_MINUTES_LENGTH int,"+ "TFC_LEN_SECONDS_OFFSET int,"+ "TFC_LEN_SECONDS_LENGTH int,"+ - // "TFC_LENGTH_OFFSET int,"+ - // "TFC_LENGTH_LENGTH int,"+ "TFC_DATA_OFFSET int,"+ "TFC_DATA_LENGTH int,"+ "TFC_EVENT_ID_OFFSET int,"+ @@ -407,14 +410,13 @@ bool MainObject::CreateNewDb(QString *err_msg) const "MUS_LEN_MINUTES_LENGTH int,"+ "MUS_LEN_SECONDS_OFFSET int,"+ "MUS_LEN_SECONDS_LENGTH int,"+ - // "MUS_LENGTH_OFFSET int,"+ - // "MUS_LENGTH_LENGTH int,"+ "MUS_DATA_OFFSET int,"+ "MUS_DATA_LENGTH int,"+ "MUS_EVENT_ID_OFFSET int,"+ "MUS_EVENT_ID_LENGTH int,"+ "MUS_ANNC_TYPE_OFFSET int,"+ "MUS_ANNC_TYPE_LENGTH int)"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -440,6 +442,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "COLOR char(7),"+ "index IDX_REPORT_TFC (REPORT_TFC),"+ "index IDX_REPORT_MUS (REPORT_MUS))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -454,6 +457,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SERVICE_NAME char(10),"+ "index GROUP_IDX (GROUP_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -491,6 +495,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "LIMIT_SEARCH int default 1,"+ "SEARCH_LIMITED enum('N','Y') default 'Y',"+ "index STATION_IDX (STATION,INSTANCE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -505,6 +510,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "TRIGGER_CODE int unsigned,"+ "OFFSET int unsigned,"+ "index CUT_NAME_IDX (CUT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -527,6 +533,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "index STATION_NAME_IDX (STATION_NAME),"+ "index ACTIVE_IDX (ACTIVE),"+ "index PORT_ID_IDX (PORT_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -555,6 +562,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SWITCH_DELAY int default 0,"+ "index STATION_NAME_IDX (STATION_NAME),"+ "index CHANNEL_IDX (CHANNEL))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -616,6 +624,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ENABLE_METADATA enum('N','Y') default 'N',"+ "FEED_ID int default -1,"+ "index STATION_NAME_IDX (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -659,6 +668,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "index END_DATE_IDX (END_DATE),"+ "index TYPE_IDX(TYPE,LOG_EXISTS),"+ "index LOCK_GUID_IDX(LOCK_GUID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -671,6 +681,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "DB int not null primary key,"+ "LAST_MAINT_DATETIME datetime default \"1970-01-01 00:00:00\","+ "LAST_ISCI_XREFERENCE datetime default \"1970-01-01 00:00:00\")"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -713,6 +724,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SHOW_COUNTERS enum('N','Y') default 'N',"+ "AUDITION_PREROLL int default 10000,"+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -733,6 +745,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "DEFAULT_COLOR char(7),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO),"+ "index SAVE_IDX (TYPE,OWNER,PANEL_NO,ROW_NO,COLUMN_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -773,6 +786,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "FADERS int default 0,"+ "DISPLAYS int default 0,"+ "index MATRIX_IDX (STATION_NAME,MATRIX))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -796,6 +810,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "NODE_SLOT int,"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER),"+ "index NODE_IDX (STATION_NAME,MATRIX,NUMBER,NODE_HOSTNAME,NODE_TCP_PORT))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -817,6 +832,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "NODE_SLOT int,"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER),"+ "index NODE_IDX (STATION_NAME,MATRIX,NUMBER,NODE_HOSTNAME,NODE_TCP_PORT))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -833,6 +849,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "MACRO_CART int default 0,"+ "OFF_MACRO_CART int default 0,"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -867,6 +884,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "HOR_DIST INT(10) unsigned,"+ "NESTED_EVENT char(64),"+ "REMARKS char(255))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -881,6 +899,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ARTISTSEP int(10) unsigned,"+ "COLOR char(7),"+ "REMARKS char(255))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -894,6 +913,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SERVICE char(10),"+ "CART_NUMBER int unsigned,"+ "index SERVICE_IDX (SERVICE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -909,6 +929,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "VARVALUE char(255),"+ "REMARK char(255),"+ "index NAME_IDX (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -923,6 +944,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SERVICE_NAME char(10),"+ "index STATION_IDX (STATION_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -957,6 +979,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "START_TIME time,"+ "END_TIME time,"+ "index IDX_NAME (NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -970,6 +993,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "REPORT_NAME char(64) not null,"+ "SERVICE_NAME char(10),"+ "index IDX_REPORT_NAME (REPORT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -983,6 +1007,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "REPORT_NAME char(64) not null,"+ "STATION_NAME char(64),"+ "index IDX_REPORT_NAME (REPORT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -996,6 +1021,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "REPORT_NAME char(64) not null,"+ "GROUP_NAME char(10),"+ "index IDX_REPORT_NAME (REPORT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1010,6 +1036,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SERVICE_NAME char(10),"+ "index STATION_IDX (CLOCK_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1024,6 +1051,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SERVICE_NAME char(10),"+ "index STATION_IDX (EVENT_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1038,6 +1066,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "GROUP_NAME char(10),"+ "index USER_IDX (USER_NAME),"+ "index GROUP_IDX (GROUP_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1058,6 +1087,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "RELAY_NUM int default -1,"+ "BUSS_NUM int default -1,"+ "index STATION_MATRIX_IDX (STATION_NAME,MATRIX_NUM,VGUEST_TYPE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1088,6 +1118,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "RIPPER_LEVEL int default -1300,"+ "DEFAULT_TRANS_TYPE int default 0,"+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1101,6 +1132,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "STATION char(64) not null,"+ "ERROR_RML char(255),"+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1112,6 +1144,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const sql=QString("create table if not exists SCHED_CODES")+ "(CODE varchar(10) not null primary key,"+ "DESCRIPTION varchar(255))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1146,6 +1179,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "CREATE_ENDDATE_OFFSET int default 0,"+ "SET_USER_DEFINED char(255),"+ "index STATION_NAME_IDX (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1167,6 +1201,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SKIN_PATH char(255) default \""+ RDEscapeString(RD_DEFAULT_RDPANEL_SKIN)+"\","+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1187,6 +1222,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "DEFAULT_COLOR char(7),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO),"+ "index SAVE_IDX (TYPE,OWNER,PANEL_NO,ROW_NO,COLUMN_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1202,6 +1238,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "PANEL_NO int not null,"+ "NAME char(64),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1217,6 +1254,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "PANEL_NO int not null,"+ "NAME char(64),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1259,6 +1297,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "REDIRECT_PATH char(255),"+ "MEDIA_LINK_MODE int default 0,"+ "index KEY_NAME_IDX(KEY_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1286,6 +1325,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ORIGIN_DATETIME datetime,"+ "EFFECTIVE_DATETIME datetime,"+ "index FEED_ID_IDX(FEED_ID,ORIGIN_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1300,6 +1340,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "VAR_NAME char(16),"+ "CAPTION char(64),"+ "index FEED_ID_IDX(FEED_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1314,6 +1355,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "KEY_NAME char(8),"+ "index USER_IDX (USER_NAME),"+ "index KEYNAME_IDX (KEY_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1327,6 +1369,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "LOGIN_NAME char(255),"+ "IP_ADDRESS char(16),"+ "TIME_STAMP datetime)"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1345,6 +1388,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "TCP_PORT int,"+ "DESCRIPTION char(255),"+ "index STATION_IDX (STATION_NAME,MATRIX))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1360,6 +1404,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "COMMAND_LINE char(255),"+ "DEFAULT_EXTENSION char(16),"+ "index NAME_IDX(NAME,STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1388,6 +1433,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ENCODER_ID int not null,"+ "BITRATES int not null,"+ "index ENCODER_ID_IDX(ENCODER_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1401,6 +1447,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ENCODER_ID int not null,"+ "CHANNELS int not null,"+ "index ENCODER_ID_IDX(ENCODER_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1414,6 +1461,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ENCODER_ID int not null,"+ "SAMPLERATES int not null,"+ "index ENCODER_ID_IDX(ENCODER_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1430,6 +1478,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "MACRO_CART int default 0,"+ "OFF_MACRO_CART int default 0,"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1444,6 +1493,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "FILE_PATH char(255) not null,"+ "FILE_DATETIME datetime,"+ "index FILE_PATH_IDX (DROPBOX_ID,FILE_PATH))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1459,6 +1509,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "PLUGIN_PATH char(255),"+ "PLUGIN_ARG char(255),"+ "index STATION_IDX (STATION_NAME,LOG_MACHINE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1479,6 +1530,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "TEMP_CART_GROUP char(10),"+ "SHOW_USER_LIST enum('N','Y') not null default 'Y',"+ "NOTIFICATION_ADDRESS char(15) default \""+RD_NOTIFICATION_ADDRESS+"\")"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1513,6 +1565,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "EVENT_ID_LENGTH int,"+ "ANNC_TYPE_OFFSET int,"+ "ANNC_TYPE_LENGTH int)"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1541,6 +1594,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ENABLE_METADATA enum('N','Y') default 'N',"+ "NORMALIZATION_LEVEL int default 0,"+ "index TYPE_ID_IDX (TYPE_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1555,6 +1609,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "GROUP_NAME char(10) not null,"+ "index REPLICATOR_NAME_IDX(REPLICATOR_NAME),"+ "index GROUP_NAME_IDX(GROUP_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1571,6 +1626,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "ITEM_DATETIME datetime not null,"+ "REPOST enum('N','Y') default 'N',"+ "unique REPLICATOR_NAME_IDX(REPLICATOR_NAME,CART_NUMBER,POSTED_FILENAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1585,6 +1641,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "CUT_NAME char(12) not null,"+ "ITEM_DATETIME datetime not null,"+ "unique REPLICATOR_NAME_IDX(REPLICATOR_NAME,CUT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1607,6 +1664,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "index CART_NUMBER_IDX(CART_NUMBER),"+ "index TYPE_IDX(TYPE,LATEST_DATE),"+ "index LATEST_DATE_IDX(LATEST_DATE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1622,6 +1680,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "KEY_ID int,"+ "KEY_VALUE char(64),"+ "KEY_LABEL char(64))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1636,6 +1695,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "DESCRIPTION char(64),"+ "COMMAND_LINE text not null,"+ "index IDX_STATION_NAME (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1661,6 +1721,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "INPUT_PORT int not null default 0,"+ "OUTPUT_PORT int not null default 0,"+ "index STATION_NAME_IDX(STATION_NAME,SLOT_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1677,6 +1738,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "IP_ADDRESS char(15),"+ "SOURCE_NUMBER int,"+ "index STATION_NAME_IDX(STATION_NAME,MATRIX))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1703,6 +1765,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "STOP_GPO_MATRIX int not null default -1,"+ "STOP_GPO_LINE int not null default -1,"+ "index STATION_NAME_IDX(STATION_NAME,INSTANCE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1729,6 +1792,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "STOP_GPO_MATRIX int not null default -1,"+ "STOP_GPO_LINE int not null default -1,"+ "index STATION_NAME_IDX(STATION_NAME,INSTANCE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1744,6 +1808,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "START_MODE int not null default 0,"+ "OP_MODE int not null default 2,"+ "index STATION_NAME_IDX(STATION_NAME,MACHINE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1758,6 +1823,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "SCHED_CODE char(11) not null," "index DROPBOX_ID_IDX(DROPBOX_ID),"+ "index SCHED_CODE_IDX(SCHED_CODE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1775,6 +1841,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "EDGE int not null,"+ "EVENT_DATETIME datetime not null,"+ "index STATION_NAME_IDX(STATION_NAME,MATRIX,TYPE,EVENT_DATETIME,EDGE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1789,6 +1856,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "NUMBER int not null,"+ "POINT int not null,"+ "index CUT_NAME_IDX(CUT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1804,6 +1872,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "NUMBER int not null,"+ "CART_NUMBER int unsigned not null default 0,"+ "index STATION_NAME_IDX(STATION_NAME,CHANNEL))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1819,6 +1888,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "CLOCK_NAME char(64) default null,"+ "index SERVICE_NAME_IDX(SERVICE_NAME,HOUR),"+ "index CLOCK_NAME_IDX(CLOCK_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1833,6 +1903,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "IPV4_ADDRESS char(16) not null,"+ "EXPIRATION_DATETIME datetime not null,"+ "index TICKET_IDX(TICKET,IPV4_ADDRESS,EXPIRATION_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1846,6 +1917,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "USER_NAME char(255) not null,"+ "SERVICE_NAME char(10) not null,"+ "index USER_NAME_IDX(USER_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1872,6 +1944,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "UDP_STRING char(255),"+ "LOG_RML char(255),"+ "index STATION_NAME_IDX(STATION_NAME,MACHINE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1890,6 +1963,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "OUTPUTS int not null default -1,"+ "CLOCK_SOURCE int not null default 0,"+ "unique index STATION_NAME_IDX(STATION_NAME,CARD_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1907,6 +1981,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "TYPE int not null default 0," "MODE int not null default 0,"+ "unique index STATION_NAME_IDX(STATION_NAME,CARD_NUMBER,PORT_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1922,6 +1997,7 @@ bool MainObject::CreateNewDb(QString *err_msg) const "PORT_NUMBER int not null,"+ "LEVEL int not null default 0,"+ "unique index STATION_NAME_IDX(STATION_NAME,CARD_NUMBER,PORT_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -2402,6 +2478,7 @@ bool MainObject::InititalizeNewDb(const QString &station_name,bool gen_audio, "index COUNT_IDX (COUNT),"+ "index CART_NUMBER_IDX (CART_NUMBER),"+ "index LABEL_IDX (LABEL))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -2751,6 +2828,7 @@ bool MainObject::CreateReconciliationTable(const QString &svc_name, "EXT_EVENT_ID char(8),"+ "EXT_ANNC_TYPE char(8),"+ "index EVENT_DATETIME_IDX(EVENT_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; diff --git a/utils/rddbmgr/modify.cpp b/utils/rddbmgr/modify.cpp index 38c26b20..4b8830e7 100644 --- a/utils/rddbmgr/modify.cpp +++ b/utils/rddbmgr/modify.cpp @@ -20,14 +20,15 @@ #include +#include + #include #include +#include #include "rddbmgr.h" -//Added by qt3to4: -#include -bool MainObject::Modify(QString *err_msg,int set_schema) const +bool MainObject::Modify(QString *err_msg,int set_schema) { *err_msg="ok"; @@ -68,3 +69,50 @@ int MainObject::GetCurrentSchema() const } +bool MainObject::ModifyCharset(const QString &charset, + const QString &collation) +{ + QString sql; + RDSqlQuery *q; + + // + // Per-table Attributes + // + sql=QString("select ")+ + "TABLE_NAME,"+ // 00 + "TABLE_COLLATION "+ // 01 + "from information_schema.TABLES where "+ + "TABLE_SCHEMA='"+RDEscapeString(db_mysql_database)+"'"; + q=new RDSqlQuery(sql,false); + while(q->next()) { + QStringList f0=q->value(1).toString().split("_"); + QString prev_charset=f0.at(0); + if(q->value(1).toString().toLower()!=collation) { + RewriteTable(q->value(0).toString(),prev_charset,charset,collation); + } + } + delete q; + + // + // Database Attributes + // + sql=QString("select ")+ + "SCHEMA_NAME,"+ // 00 + "DEFAULT_CHARACTER_SET_NAME,"+ // 01 + "DEFAULT_COLLATION_NAME "+ // 02 + "from information_schema.SCHEMATA"; + q=new RDSqlQuery(sql); + while(q->next()) { + if(q->value(0).toString()==db_mysql_database) { + if((q->value(1).toString().toLower()!=charset)|| + (q->value(2).toString().toLower()!=collation)) { + sql=QString("alter database `")+db_mysql_database+"` "+ + "character set "+charset+" collate "+collation; + RDSqlQuery::apply(sql); + } + } + } + delete q; + return true; +} + diff --git a/utils/rddbmgr/rddbmgr.cpp b/utils/rddbmgr/rddbmgr.cpp index 1c728f3a..07aa3053 100644 --- a/utils/rddbmgr/rddbmgr.cpp +++ b/utils/rddbmgr/rddbmgr.cpp @@ -72,8 +72,6 @@ MainObject::MainObject(QObject *parent) db_mysql_database=db_config->mysqlDbname(); db_mysql_driver=db_config->mysqlDriver(); db_mysql_engine=db_config->mysqlEngine(); - db_mysql_charset=db_config->mysqlCharset(); - db_mysql_collation=db_config->mysqlCollation(); station_name=db_config->stationName(); InitializeSchemaMap(); @@ -142,14 +140,6 @@ MainObject::MainObject(QObject *parent) db_mysql_engine=cmd->value(i); cmd->setProcessed(i,true); } - if(cmd->key(i)=="--mysql-charset") { - db_mysql_charset=cmd->value(i); - cmd->setProcessed(i,true); - } - if(cmd->key(i)=="--mysql-collation") { - db_mysql_collation=cmd->value(i); - cmd->setProcessed(i,true); - } if(cmd->key(i)=="--set-schema") { set_schema=cmd->value(i).toInt(&ok); if((!ok)||(set_schema<=0)) { @@ -283,8 +273,6 @@ MainObject::MainObject(QObject *parent) fprintf(stderr," Database: %s\n",(const char *)db_mysql_database); fprintf(stderr," Driver: %s\n",(const char *)db_mysql_driver); fprintf(stderr," Engine: %s\n",(const char *)db_mysql_engine); - fprintf(stderr," Charset: %s\n",(const char *)db_mysql_charset); - fprintf(stderr," Collation: %s\n",(const char *)db_mysql_collation); } // @@ -300,9 +288,7 @@ MainObject::MainObject(QObject *parent) (const char *)db.lastError().text()); exit(1); } - db_table_create_postfix= - RDConfig::createTablePostfix(db_mysql_engine,db_mysql_charset, - db_mysql_collation); + db_table_create_postfix=RDConfig::createTablePostfix(db_mysql_engine); // // Resolve Target Schema diff --git a/utils/rddbmgr/rddbmgr.h b/utils/rddbmgr/rddbmgr.h index 0cfcc0e0..d8b49529 100644 --- a/utils/rddbmgr/rddbmgr.h +++ b/utils/rddbmgr/rddbmgr.h @@ -78,13 +78,14 @@ class MainObject : public QObject // // modify.cpp // - bool Modify(QString *err_msg,int set_schema) const; + bool Modify(QString *err_msg,int set_schema); int GetCurrentSchema() const; + bool ModifyCharset(const QString &charset,const QString &collation); // // updateschema.cpp // - bool UpdateSchema(int cur_schema,int set_schema,QString *err_msg) const; + bool UpdateSchema(int cur_schema,int set_schema,QString *err_msg); void AverageCuts89(unsigned cartnum) const; void TotalMacros89(unsigned cartnum) const; void CreateAuxFieldsTable143(const QString &key_name) const; @@ -96,7 +97,7 @@ class MainObject : public QObject // // revertschema.cpp // - bool RevertSchema(int cur_schema,int set_schema,QString *err_msg) const; + bool RevertSchema(int cur_schema,int set_schema,QString *err_msg); // // schemamap.cpp @@ -120,8 +121,6 @@ class MainObject : public QObject QString db_mysql_database; QString db_mysql_driver; QString db_mysql_engine; - QString db_mysql_charset; - QString db_mysql_collation; bool db_verbose; bool db_yes; bool db_no; diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 39b90f68..b1d8c19b 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -23,7 +23,7 @@ #include "rddbmgr.h" -bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) const +bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) { QString sql; RDSqlQuery *q; @@ -38,9 +38,21 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co // + // NEW SCHEMA REVERSIONS GO HERE... + + + // + // Maintainer's Note: + // + // All tables created above this point should use a character set + // of 'utf8mb4' and a collation of 'utf8mb4_general_ci'. + // + // // Revert 297 // + ModifyCharset("latin1","latin1_swedish_ci"); + if((cur_schema==297)&&(set_schemavalue(0).toString()+"_PRE"; tablename.replace(" ","_"); sql=QString("create table if not exists `")+tablename+"` ("+ - "ID int not null primary key,"+ - "COUNT int not null,"+ - "TYPE int default 0,"+ - "SOURCE int not null,"+ - "START_TIME int,"+ - "GRACE_TIME int default 0,"+ - "CART_NUMBER int UNSIGNED not null default 0,"+ - "TIME_TYPE int not null,"+ - "POST_POINT enum('N','Y') default 'N',"+ - "TRANS_TYPE int not null,"+ - "START_POINT int not null default -1,"+ - "END_POINT int not null default -1,"+ - "FADEUP_POINT int default -1,"+ - QString().sprintf("FADEUP_GAIN int default %d,",RD_FADE_DEPTH)+ - "FADEDOWN_POINT int default -1,"+ - QString().sprintf("FADEDOWN_GAIN int default %d,",RD_FADE_DEPTH)+ - "SEGUE_START_POINT int not null default -1,"+ - "SEGUE_END_POINT int not null default -1,"+ - QString().sprintf("SEGUE_GAIN int default %d,",RD_FADE_DEPTH)+ - "DUCK_UP_GAIN int default 0,"+ - "DUCK_DOWN_GAIN int default 0,"+ - "COMMENT CHAR(255),"+ - "LABEL CHAR(64),"+ - "ORIGIN_USER char(255),"+ - "ORIGIN_DATETIME datetime,"+ - "EVENT_LENGTH int default -1,"+ - "LINK_EVENT_NAME char(64),"+ - "LINK_START_TIME int,"+ - "LINK_LENGTH int default 0,"+ - "LINK_START_SLOP int default 0,"+ - "LINK_END_SLOP int default 0,"+ - "LINK_ID int default -1,"+ - "LINK_EMBEDDED enum('N','Y') default 'N',"+ - "EXT_START_TIME time,"+ - "EXT_LENGTH int,"+ - "EXT_CART_NAME char(32),"+ - "EXT_DATA char(32),"+ - "EXT_EVENT_ID char(32),"+ - "EXT_ANNC_TYPE char(8),"+ - "index COUNT_IDX (COUNT),"+ - "index CART_NUMBER_IDX (CART_NUMBER),"+ - "index LABEL_IDX (LABEL))"+ - db_table_create_postfix; + "ID int not null primary key,"+ + "COUNT int not null,"+ + "TYPE int default 0,"+ + "SOURCE int not null,"+ + "START_TIME int,"+ + "GRACE_TIME int default 0,"+ + "CART_NUMBER int UNSIGNED not null default 0,"+ + "TIME_TYPE int not null,"+ + "POST_POINT enum('N','Y') default 'N',"+ + "TRANS_TYPE int not null,"+ + "START_POINT int not null default -1,"+ + "END_POINT int not null default -1,"+ + "FADEUP_POINT int default -1,"+ + QString().sprintf("FADEUP_GAIN int default %d,",RD_FADE_DEPTH)+ + "FADEDOWN_POINT int default -1,"+ + QString().sprintf("FADEDOWN_GAIN int default %d,",RD_FADE_DEPTH)+ + "SEGUE_START_POINT int not null default -1,"+ + "SEGUE_END_POINT int not null default -1,"+ + QString().sprintf("SEGUE_GAIN int default %d,",RD_FADE_DEPTH)+ + "DUCK_UP_GAIN int default 0,"+ + "DUCK_DOWN_GAIN int default 0,"+ + "COMMENT CHAR(255),"+ + "LABEL CHAR(64),"+ + "ORIGIN_USER char(255),"+ + "ORIGIN_DATETIME datetime,"+ + "EVENT_LENGTH int default -1,"+ + "LINK_EVENT_NAME char(64),"+ + "LINK_START_TIME int,"+ + "LINK_LENGTH int default 0,"+ + "LINK_START_SLOP int default 0,"+ + "LINK_END_SLOP int default 0,"+ + "LINK_ID int default -1,"+ + "LINK_EMBEDDED enum('N','Y') default 'N',"+ + "EXT_START_TIME time,"+ + "EXT_LENGTH int,"+ + "EXT_CART_NAME char(32),"+ + "EXT_DATA char(32),"+ + "EXT_EVENT_ID char(32),"+ + "EXT_ANNC_TYPE char(8),"+ + "index COUNT_IDX (COUNT),"+ + "index CART_NUMBER_IDX (CART_NUMBER),"+ + "index LABEL_IDX (LABEL))"+ + " charset latin1 collate latin1_swedish_ci"+ + db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; } @@ -2130,49 +2158,50 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co tablename=q->value(0).toString()+"_POST"; tablename.replace(" ","_"); sql=QString("create table if not exists `")+tablename+"` ("+ - "ID int not null primary key,"+ - "COUNT int not null,"+ - "TYPE int default 0,"+ - "SOURCE int not null,"+ - "START_TIME int,"+ - "GRACE_TIME int default 0,"+ - "CART_NUMBER int UNSIGNED not null default 0,"+ - "TIME_TYPE int not null,"+ - "POST_POINT enum('N','Y') default 'N',"+ - "TRANS_TYPE int not null,"+ - "START_POINT int not null default -1,"+ - "END_POINT int not null default -1,"+ - "FADEUP_POINT int default -1,"+ - QString().sprintf("FADEUP_GAIN int default %d,",RD_FADE_DEPTH)+ - "FADEDOWN_POINT int default -1,"+ - QString().sprintf("FADEDOWN_GAIN int default %d,",RD_FADE_DEPTH)+ - "SEGUE_START_POINT int not null default -1,"+ - "SEGUE_END_POINT int not null default -1,"+ - QString().sprintf("SEGUE_GAIN int default %d,",RD_FADE_DEPTH)+ - "DUCK_UP_GAIN int default 0,"+ - "DUCK_DOWN_GAIN int default 0,"+ - "COMMENT CHAR(255),"+ - "LABEL CHAR(64),"+ - "ORIGIN_USER char(255),"+ - "ORIGIN_DATETIME datetime,"+ - "EVENT_LENGTH int default -1,"+ - "LINK_EVENT_NAME char(64),"+ - "LINK_START_TIME int,"+ - "LINK_LENGTH int default 0,"+ - "LINK_START_SLOP int default 0,"+ - "LINK_END_SLOP int default 0,"+ - "LINK_ID int default -1,"+ - "LINK_EMBEDDED enum('N','Y') default 'N',"+ - "EXT_START_TIME time,"+ - "EXT_LENGTH int,"+ - "EXT_CART_NAME char(32),"+ - "EXT_DATA char(32),"+ - "EXT_EVENT_ID char(32),"+ - "EXT_ANNC_TYPE char(8),"+ - "index COUNT_IDX (COUNT),"+ - "index CART_NUMBER_IDX (CART_NUMBER),"+ - "index LABEL_IDX (LABEL))"+ - db_table_create_postfix; + "ID int not null primary key,"+ + "COUNT int not null,"+ + "TYPE int default 0,"+ + "SOURCE int not null,"+ + "START_TIME int,"+ + "GRACE_TIME int default 0,"+ + "CART_NUMBER int UNSIGNED not null default 0,"+ + "TIME_TYPE int not null,"+ + "POST_POINT enum('N','Y') default 'N',"+ + "TRANS_TYPE int not null,"+ + "START_POINT int not null default -1,"+ + "END_POINT int not null default -1,"+ + "FADEUP_POINT int default -1,"+ + QString().sprintf("FADEUP_GAIN int default %d,",RD_FADE_DEPTH)+ + "FADEDOWN_POINT int default -1,"+ + QString().sprintf("FADEDOWN_GAIN int default %d,",RD_FADE_DEPTH)+ + "SEGUE_START_POINT int not null default -1,"+ + "SEGUE_END_POINT int not null default -1,"+ + QString().sprintf("SEGUE_GAIN int default %d,",RD_FADE_DEPTH)+ + "DUCK_UP_GAIN int default 0,"+ + "DUCK_DOWN_GAIN int default 0,"+ + "COMMENT CHAR(255),"+ + "LABEL CHAR(64),"+ + "ORIGIN_USER char(255),"+ + "ORIGIN_DATETIME datetime,"+ + "EVENT_LENGTH int default -1,"+ + "LINK_EVENT_NAME char(64),"+ + "LINK_START_TIME int,"+ + "LINK_LENGTH int default 0,"+ + "LINK_START_SLOP int default 0,"+ + "LINK_END_SLOP int default 0,"+ + "LINK_ID int default -1,"+ + "LINK_EMBEDDED enum('N','Y') default 'N',"+ + "EXT_START_TIME time,"+ + "EXT_LENGTH int,"+ + "EXT_CART_NAME char(32),"+ + "EXT_DATA char(32),"+ + "EXT_EVENT_ID char(32),"+ + "EXT_ANNC_TYPE char(8),"+ + "index COUNT_IDX (COUNT),"+ + "index CART_NUMBER_IDX (CART_NUMBER),"+ + "index LABEL_IDX (LABEL))"+ + " charset latin1 collate latin1_swedish_ci"+ + db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; } @@ -2254,6 +2283,7 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co "EXT_EVENT_ID char(8),"+ "EXT_ANNC_TYPE char(8),"+ "index EVENT_DATETIME_IDX(EVENT_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -2359,96 +2389,97 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co QString tablename=q->value(0).toString()+"_LOG"; tablename.replace(" ","_"); sql=QString("create table if not exists `")+tablename+"` ("+ - "ID int not null primary key,"+ - "COUNT int not null,"+ - "TYPE int default 0,"+ - "SOURCE int not null,"+ - "START_TIME int,"+ - "GRACE_TIME int default 0,"+ - "CART_NUMBER int UNSIGNED not null default 0,"+ - "TIME_TYPE int not null,"+ - "POST_POINT enum('N','Y') default 'N',"+ - "TRANS_TYPE int not null,"+ - "START_POINT int not null default -1,"+ - "END_POINT int not null default -1,"+ - "FADEUP_POINT int default -1,"+ - QString().sprintf("FADEUP_GAIN int default %d,",RD_FADE_DEPTH)+ - "FADEDOWN_POINT int default -1,"+ - QString().sprintf("FADEDOWN_GAIN int default %d,",RD_FADE_DEPTH)+ - "SEGUE_START_POINT int not null default -1,"+ - "SEGUE_END_POINT int not null default -1,"+ - QString().sprintf("SEGUE_GAIN int default %d,",RD_FADE_DEPTH)+ - "DUCK_UP_GAIN int default 0,"+ - "DUCK_DOWN_GAIN int default 0,"+ - "COMMENT CHAR(255),"+ - "LABEL CHAR(64),"+ - "ORIGIN_USER char(255),"+ - "ORIGIN_DATETIME datetime,"+ - "EVENT_LENGTH int default -1,"+ - "LINK_EVENT_NAME char(64),"+ - "LINK_START_TIME int,"+ - "LINK_LENGTH int default 0,"+ - "LINK_START_SLOP int default 0,"+ - "LINK_END_SLOP int default 0,"+ - "LINK_ID int default -1,"+ - "LINK_EMBEDDED enum('N','Y') default 'N',"+ - "EXT_START_TIME time,"+ - "EXT_LENGTH int,"+ - "EXT_CART_NAME char(32),"+ - "EXT_DATA char(32),"+ - "EXT_EVENT_ID char(32),"+ - "EXT_ANNC_TYPE char(8),"+ - "index COUNT_IDX (COUNT),"+ - "index CART_NUMBER_IDX (CART_NUMBER),"+ - "index LABEL_IDX (LABEL))"+ - db_table_create_postfix; - if(!RDSqlQuery::apply(sql,err_msg)) { - return false; - } + "ID int not null primary key,"+ + "COUNT int not null,"+ + "TYPE int default 0,"+ + "SOURCE int not null,"+ + "START_TIME int,"+ + "GRACE_TIME int default 0,"+ + "CART_NUMBER int UNSIGNED not null default 0,"+ + "TIME_TYPE int not null,"+ + "POST_POINT enum('N','Y') default 'N',"+ + "TRANS_TYPE int not null,"+ + "START_POINT int not null default -1,"+ + "END_POINT int not null default -1,"+ + "FADEUP_POINT int default -1,"+ + QString().sprintf("FADEUP_GAIN int default %d,",RD_FADE_DEPTH)+ + "FADEDOWN_POINT int default -1,"+ + QString().sprintf("FADEDOWN_GAIN int default %d,",RD_FADE_DEPTH)+ + "SEGUE_START_POINT int not null default -1,"+ + "SEGUE_END_POINT int not null default -1,"+ + QString().sprintf("SEGUE_GAIN int default %d,",RD_FADE_DEPTH)+ + "DUCK_UP_GAIN int default 0,"+ + "DUCK_DOWN_GAIN int default 0,"+ + "COMMENT CHAR(255),"+ + "LABEL CHAR(64),"+ + "ORIGIN_USER char(255),"+ + "ORIGIN_DATETIME datetime,"+ + "EVENT_LENGTH int default -1,"+ + "LINK_EVENT_NAME char(64),"+ + "LINK_START_TIME int,"+ + "LINK_LENGTH int default 0,"+ + "LINK_START_SLOP int default 0,"+ + "LINK_END_SLOP int default 0,"+ + "LINK_ID int default -1,"+ + "LINK_EMBEDDED enum('N','Y') default 'N',"+ + "EXT_START_TIME time,"+ + "EXT_LENGTH int,"+ + "EXT_CART_NAME char(32),"+ + "EXT_DATA char(32),"+ + "EXT_EVENT_ID char(32),"+ + "EXT_ANNC_TYPE char(8),"+ + "index COUNT_IDX (COUNT),"+ + "index CART_NUMBER_IDX (CART_NUMBER),"+ + "index LABEL_IDX (LABEL))"+ + " charset latin1 collate latin1_swedish_ci"+ + db_table_create_postfix; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } - sql=QString("select ")+ - "LINE_ID,"+ // 00 - "COUNT,"+ // 01 - "TYPE,"+ // 02 - "SOURCE,"+ // 03 - "START_TIME,"+ // 04 - "GRACE_TIME,"+ // 05 - "CART_NUMBER,"+ // 06 - "TIME_TYPE,"+ // 07 - "POST_POINT,"+ // 08 - "TRANS_TYPE,"+ // 09 - "START_POINT,"+ // 10 - "END_POINT,"+ // 11 - "FADEUP_POINT,"+ // 12 - "FADEUP_GAIN,"+ // 13 - "FADEDOWN_POINT,"+ // 14 - "FADEDOWN_GAIN,"+ // 15 - "SEGUE_START_POINT,"+ // 16 - "SEGUE_END_POINT,"+ // 17 - "SEGUE_GAIN,"+ // 18 - "DUCK_UP_GAIN,"+ // 19 - "DUCK_DOWN_GAIN,"+ // 20 - "COMMENT,"+ // 21 - "LABEL,"+ // 22 - "ORIGIN_USER,"+ // 23 - "ORIGIN_DATETIME,"+ // 24 - "EVENT_LENGTH,"+ // 25 - "LINK_EVENT_NAME,"+ // 26 - "LINK_START_TIME,"+ // 27 - "LINK_LENGTH,"+ // 28 - "LINK_START_SLOP,"+ // 29 - "LINK_END_SLOP,"+ // 30 - "LINK_ID,"+ // 31 - "LINK_EMBEDDED,"+ // 32 - "EXT_START_TIME,"+ // 33 - "EXT_LENGTH,"+ // 34 - "EXT_CART_NAME,"+ // 35 - "EXT_DATA,"+ // 36 - "EXT_EVENT_ID,"+ // 37 - "EXT_ANNC_TYPE "+ // 38 - "from LOG_LINES where "+ - "LOG_NAME=\""+RDEscapeString(q->value(0).toString())+"\" "+ - "order by COUNT"; + sql=QString("select ")+ + "LINE_ID,"+ // 00 + "COUNT,"+ // 01 + "TYPE,"+ // 02 + "SOURCE,"+ // 03 + "START_TIME,"+ // 04 + "GRACE_TIME,"+ // 05 + "CART_NUMBER,"+ // 06 + "TIME_TYPE,"+ // 07 + "POST_POINT,"+ // 08 + "TRANS_TYPE,"+ // 09 + "START_POINT,"+ // 10 + "END_POINT,"+ // 11 + "FADEUP_POINT,"+ // 12 + "FADEUP_GAIN,"+ // 13 + "FADEDOWN_POINT,"+ // 14 + "FADEDOWN_GAIN,"+ // 15 + "SEGUE_START_POINT,"+ // 16 + "SEGUE_END_POINT,"+ // 17 + "SEGUE_GAIN,"+ // 18 + "DUCK_UP_GAIN,"+ // 19 + "DUCK_DOWN_GAIN,"+ // 20 + "COMMENT,"+ // 21 + "LABEL,"+ // 22 + "ORIGIN_USER,"+ // 23 + "ORIGIN_DATETIME,"+ // 24 + "EVENT_LENGTH,"+ // 25 + "LINK_EVENT_NAME,"+ // 26 + "LINK_START_TIME,"+ // 27 + "LINK_LENGTH,"+ // 28 + "LINK_START_SLOP,"+ // 29 + "LINK_END_SLOP,"+ // 30 + "LINK_ID,"+ // 31 + "LINK_EMBEDDED,"+ // 32 + "EXT_START_TIME,"+ // 33 + "EXT_LENGTH,"+ // 34 + "EXT_CART_NAME,"+ // 35 + "EXT_DATA,"+ // 36 + "EXT_EVENT_ID,"+ // 37 + "EXT_ANNC_TYPE "+ // 38 + "from LOG_LINES where "+ + "LOG_NAME=\""+RDEscapeString(q->value(0).toString())+"\" "+ + "order by COUNT"; q1=new RDSqlQuery(sql); while(q1->next()) { sql=QString("insert into `")+tablename+"` set "+ @@ -2822,6 +2853,7 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co "OUTPUT_7_LEVEL int default 0,"+ "index STATION_NAME_IDX (STATION_NAME),"+ "index CARD_NUMBER_IDX (CARD_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; diff --git a/utils/rddbmgr/updateschema.cpp b/utils/rddbmgr/updateschema.cpp index 32397f4b..39a0ca66 100644 --- a/utils/rddbmgr/updateschema.cpp +++ b/utils/rddbmgr/updateschema.cpp @@ -27,7 +27,7 @@ #include "rddbmgr.h" -bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) const +bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) { QString sql; RDSqlQuery *q; @@ -58,6 +58,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "PANEL_STREAM1 int default -1,"+ "PANEL_PORT1 int default -1,"+ "index STATION_IDX (STATION,INSTANCE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -307,6 +308,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "CART int,"+ "DEFAULT_COLOR char(6),"+ "index OWNER_IDX (OWNER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -341,6 +343,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "CART int,"+ "DEFAULT_COLOR char(6),"+ "index OWNER_IDX (OWNER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -366,6 +369,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "DEFAULT_COLOR char(6),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO),"+ "index SAVE_IDX (TYPE,OWNER,PANEL_NO,ROW_NO,COLUMN_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -402,6 +406,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "GPIS int not null,"+ "GPOS int not null,"+ "index MATRIX_IDX (STATION_NAME,MATRIX))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -418,6 +423,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NAME char(64),"+ "FEED_NAME char(8),"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -433,6 +439,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NUMBER int not null,"+ "NAME char(64),"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -478,6 +485,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "index THU_IDX (STATION_NAME,THU),"+ "index FRI_IDX (STATION_NAME,FRI),"+ "index SAT_IDX (STATION_NAME,SAT))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -609,6 +617,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NUMBER int not null,"+ "MACRO_CART int default -1,"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -791,6 +800,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "FIRST_TRANS_TYPE int default 0,"+ "DEFAULT_TRANS_TYPE int default 0,"+ "COLOR char(7))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -830,6 +840,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NAME char(64) not null primary key,"+ "SHORT_NAME char(8),"+ "COLOR char(7))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -967,6 +978,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SERVICE char(10),"+ "CART_NUMBER int unsigned,"+ "index SERVICE_IDX (SERVICE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1005,6 +1017,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "VARVALUE char(255),"+ "REMARK char(255),"+ "index NAME_IDX (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1054,6 +1067,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SERVICE_NAME char(10),"+ "index STATION_IDX (STATION_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1156,6 +1170,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "EXPORT_PATH char(255),"+ "WIN_EXPORT_PATH char(255),"+ "index IDX_NAME (NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1165,6 +1180,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "REPORT_NAME char(64) not null,"+ "SERVICE_NAME char(10),"+ "index IDX_REPORT_NAME (REPORT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1174,6 +1190,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "REPORT_NAME char(64) not null,"+ "STATION_NAME char(64),"+ "index IDX_REPORT_NAME (REPORT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1344,6 +1361,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SERVICE_NAME char(10),"+ "index CLOCK_IDX (CLOCK_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1374,6 +1392,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SERVICE_NAME char(10),"+ "index EVENT_IDX (EVENT_NAME),"+ "index SERVICE_IDX (SERVICE_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1422,6 +1441,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "GROUP_NAME char(10),"+ "index USER_IDX (USER_NAME),"+ "index GROUP_IDX (GROUP_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -1613,6 +1633,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "RELAY_NUM int default -1,"+ "BUSS_NUM int default -1,"+ "index STATION_MATRIX_IDX (STATION_NAME,MATRIX_NUM,VGUEST_TYPE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -2175,6 +2196,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "START_CART int unsigned default 0,"+ "END_CART int unsigned default 0,"+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -2244,6 +2266,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "EXT_EVENT_ID char(8),"+ "EXT_ANNC_TYPE char(8),"+ "index EVENT_DATETIME_IDX(EVENT_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3447,6 +3470,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "STATION char(64) not null,"+ "ERROR_RML char(255),"+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3487,6 +3511,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co sql=QString("create table if not exists SCHED_CODES (")+ "CODE varchar(10) not null primary key,"+ "DESCRIPTION varchar(255))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3563,6 +3588,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "FIX_BROKEN_FORMATS enum('N','Y') default 'N',"+ "LOG_PATH char(255),"+ "index STATION_NAME_IDX (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3651,6 +3677,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "PANEL_PAUSE_ENABLED enum('N','Y') default 'N',"+ "DEFAULT_SERVICE char(10),"+ "index STATION_IDX (STATION))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3671,6 +3698,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "DEFAULT_COLOR char(7),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO),"+ "index SAVE_IDX (TYPE,OWNER,PANEL_NO,ROW_NO,COLUMN_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3699,6 +3727,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "PANEL_NO int not null,"+ "NAME char(64),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3714,6 +3743,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "PANEL_NO int not null,"+ "NAME char(64),"+ "index LOAD_IDX (TYPE,OWNER,PANEL_NO))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3811,6 +3841,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ORIGIN_DATETIME datetime,"+ "ENABLE_AUTOPOST enum('N','Y') default 'N',"+ "index KEY_NAME_IDX(KEY_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3829,6 +3860,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SHELF_LIFE int,"+ "ORIGIN_DATETIME datetime,"+ "index FEED_ID_IDX(FEED_ID,ORIGIN_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3854,6 +3886,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "VAR_NAME char(16),"+ "CAPTION char(64),"+ "index FEED_ID_IDX(FEED_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -3927,6 +3960,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "KEY_NAME char(8),"+ "index USER_IDX (USER_NAME),"+ "index KEYNAME_IDX (KEY_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4017,6 +4051,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "LOGIN_NAME char(8),"+ "IP_ADDRESS char(16),"+ "TIME_STAMP datetime)"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4053,6 +4088,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "TCP_PORT int,"+ "DESCRIPTION char(255),"+ "index STATION_IDX (STATION_NAME,MATRIX))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4271,6 +4307,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "COMMAND_LINE char(255),"+ "DEFAULT_EXTENSION char(16),"+ "index NAME_IDX(NAME,STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4294,6 +4331,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ENCODER_ID int not null,"+ "BITRATES int not null,"+ "index ENCODER_ID_IDX(ENCODER_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4307,6 +4345,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ENCODER_ID int not null,"+ "CHANNELS int not null,"+ "index ENCODER_ID_IDX(ENCODER_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4320,6 +4359,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ENCODER_ID int not null,"+ "SAMPLERATES int not null,"+ "index ENCODER_ID_IDX(ENCODER_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4350,6 +4390,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NUMBER int not null,"+ "MACRO_CART int default 0,"+ "index MATRIX_IDX (STATION_NAME,MATRIX,NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4391,6 +4432,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "PLUGIN_PATH char(255),"+ "PLUGIN_ARG char(255),"+ "index STATION_IDX (STATION_NAME,LOG_MACHINE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4406,6 +4448,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "FILE_PATH char(255) not null,"+ "FILE_DATETIME datetime,"+ "index FILE_PATH_IDX (DROPBOX_ID,FILE_PATH))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4676,6 +4719,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co sql=QString("create table if not exists SYSTEM (")+ "ID int auto_increment not null primary key,"+ "DUP_CART_TITLES enum('N','Y') not null default 'Y')"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -4795,6 +4839,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "EVENT_ID_LENGTH int,"+ "ANNC_TYPE_OFFSET int,"+ "ANNC_TYPE_LENGTH int)"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5036,6 +5081,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ENABLE_METADATA enum('N','Y') default 'N',"+ "NORMALIZATION_LEVEL int unsigned default 0,"+ "index TYPE_ID_IDX (TYPE_ID))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5047,6 +5093,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "GROUP_NAME char(10) not null,"+ "index REPLICATOR_NAME_IDX(REPLICATOR_NAME),"+ "index GROUP_NAME_IDX(GROUP_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5070,6 +5117,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "CART_NUMBER int unsigned not null,"+ "ITEM_DATETIME datetime not null,"+ "unique REPLICATOR_NAME_IDX(REPLICATOR_NAME,CART_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5085,6 +5133,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ITEM_DATETIME datetime not null,"+ "index REPLICATOR_NAME_IDX(REPLICATOR_NAME),"+ "index CUT_NAME_IDX(CUT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5106,6 +5155,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "CREATIVE_TITLE char(30),"+ "REGION_NAME char(80),"+ "index CART_NUMBER_IDX(CART_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5165,6 +5215,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "KEY_ID int,"+ "KEY_VALUE char(64),"+ "KEY_LABEL char(64))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5270,6 +5321,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "REPORT_NAME char(64) not null,"+ "GROUP_NAME char(10),"+ "index IDX_REPORT_NAME (REPORT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5312,6 +5364,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "DESCRIPTION char(64),"+ "COMMAND_LINE char(255) not null,"+ "index IDX_STATION_NAME (STATION_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5336,6 +5389,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "INPUT_PORT int not null default 0,"+ "OUTPUT_PORT int not null default 0,"+ "index STATION_NAME_IDX(STATION_NAME,SLOT_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5454,6 +5508,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SLOT int not null,"+ "SOURCE_NUMBER int,"+ "index STATION_NAME_IDX(STATION_NAME,MATRIX))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5493,6 +5548,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "STOP_GPO_MATRIX int not null default -1,"+ "STOP_GPO_LINE int not null default -1,"+ "index STATION_NAME_IDX(STATION_NAME,INSTANCE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5539,6 +5595,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "STOP_GPO_MATRIX int not null default -1,"+ "STOP_GPO_LINE int not null default -1,"+ "index STATION_NAME_IDX(STATION_NAME,INSTANCE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5855,6 +5912,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "START_MODE int not null default 0,"+ "OP_MODE int not null default 2,"+ "index STATION_NAME_IDX(STATION_NAME,MACHINE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -5993,6 +6051,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SCHED_CODE char(11) not null," "index DROPBOX_ID_IDX(DROPBOX_ID),"+ "index SCHED_CODE_IDX(SCHED_CODE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6011,6 +6070,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "EDGE int not null,"+ "EVENT_DATETIME datetime not null,"+ "index STATION_NAME_IDX(STATION_NAME,MATRIX,TYPE,EVENT_DATETIME,EDGE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6138,6 +6198,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NUMBER int not null,"+ "POINT int not null,"+ "index CUT_NAME_IDX(CUT_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6150,6 +6211,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "NUMBER int not null,"+ "CART_NUMBER int unsigned not null default 0,"+ "index STATION_NAME_IDX(STATION_NAME,CHANNEL))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6220,6 +6282,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "CLOCK_NAME char(64) default null,"+ "index SERVICE_NAME_IDX(SERVICE_NAME,HOUR),"+ "index CLOCK_NAME_IDX(CLOCK_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6266,6 +6329,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "IPV4_ADDRESS char(16) not null,"+ "EXPIRATION_DATETIME datetime not null,"+ "index TICKET_IDX(TICKET,IPV4_ADDRESS,EXPIRATION_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6472,6 +6536,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "USER_NAME char(255) not null,"+ "SERVICE_NAME char(10) not null,"+ "index USER_NAME_IDX(USER_NAME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6592,6 +6657,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "UDP_STRING char(255),"+ "LOG_RML char(255),"+ "index STATION_NAME_IDX(STATION_NAME,MACHINE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6765,6 +6831,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "INPUTS int not null default -1,"+ "OUTPUTS int not null default -1,"+ "unique index STATION_NAME_IDX(STATION_NAME,CARD_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6841,6 +6908,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "TYPE int not null default 0," "MODE int not null default 0,"+ "unique index STATION_NAME_IDX(STATION_NAME,CARD_NUMBER,PORT_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -6892,6 +6960,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "PORT_NUMBER int not null,"+ "LEVEL int not null default 0,"+ "unique index STATION_NAME_IDX(STATION_NAME,CARD_NUMBER,PORT_NUMBER))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7214,6 +7283,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "unique index LOG_NAME_IDX (LOG_NAME,COUNT),"+ "index CART_NUMBER_IDX (CART_NUMBER),"+ "index LABEL_IDX (LABEL))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7375,6 +7445,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "EXT_EVENT_ID char(8),"+ "EXT_ANNC_TYPE char(8),"+ "index SERVICE_NAME_EVENT_DATETIME_IDX(SERVICE_NAME,EVENT_DATETIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7499,6 +7570,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "TRANS_TYPE int not null,"+ "MARKER_COMMENT char(255),"+ "unique index EVENT_NAME_TYPE_COUNT_IDX (EVENT_NAME,TYPE,COUNT))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7609,6 +7681,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "START_TIME int not null,"+ "LENGTH int not null,"+ "unique index CLOCK_NAME_START_TIME_IDX (CLOCK_NAME,START_TIME))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7668,6 +7741,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "OR_AFTER varchar(10),"+ "OR_AFTER_II varchar(10),"+ "unique index CLOCK_NAME_CODE_IDX(CLOCK_NAME,CODE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7733,6 +7807,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "SCHEDULED_AT datetime default '1752-09-14 00:00:00',"+ "index SERVICE_NAME_IDX(SERVICE_NAME),"+ "index SCHED_STACK_ID_IDX(SERVICE_NAME,SCHED_STACK_ID,SCHED_CODES))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7805,6 +7880,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "ACCESS_DATE date not null,"+ "ACCESS_COUNT int unsigned not null default 0,"+ "unique index KEY_NAME_CAST_ID_DATE_IDX(FEED_KEY_NAME,CAST_ID,ACCESS_DATE))"+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -7867,6 +7943,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co "EVENT_USED enum('N','Y') default 'N',"+ "index STATION_NAME_PROCESS_ID_IDX (STATION_NAME,PROCESS_ID),"+ "unique index START_TIME_IDX (STATION_NAME,PROCESS_ID,START_HOUR,START_SECS,LINE_ID)) "+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; if(!RDSqlQuery::apply(sql,err_msg)) { return false; @@ -8631,7 +8708,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co return false; } sql=QString("alter table INPUTS ")+ - "modify column NODE_HOSTNAME varchar(191)"; + "modify column NODE_HOSTNAME varchar(176)"; if(!RDSqlQuery::apply(sql,err_msg)) { return false; } @@ -8896,7 +8973,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co return false; } sql=QString("alter table OUTPUTS ")+ - "modify column NODE_HOSTNAME varchar(191)"; + "modify column NODE_HOSTNAME varchar(176)"; if(!RDSqlQuery::apply(sql,err_msg)) { return false; } @@ -9436,6 +9513,16 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co if(!RDSqlQuery::apply(sql,err_msg)) { return false; } + sql=QString("alter table STACK_LINES ")+ + "modify column ARTIST varchar(191) not null"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table STACK_LINES ")+ + "modify column SCHED_CODES varchar(191) not null"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } sql=QString("alter table STATIONS ")+ "modify column NAME varchar(64) not null"; @@ -9649,9 +9736,19 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co return false; } + ModifyCharset("utf8mb4","utf8mb4_general_ci"); + WriteSchemaVersion(++cur_schema); } + // + // Maintainer's Note: + // + // All tables created below this point should use a character set + // of 'utf8mb4' and a collation of 'utf8mb4_general_ci'. + // + + // NEW SCHEMA UPDATES GO HERE... // @@ -9774,6 +9871,7 @@ void MainObject::CreateAuxFieldsTable143(const QString &key_name) const keyname.replace(" ","_"); QString sql=QString("create table if not exists `")+ keyname+"_FIELDS` (CAST_ID int unsigned not null primary key) "+ + " charset latin1 collate latin1_swedish_ci"+ db_table_create_postfix; RDSqlQuery *q=new RDSqlQuery(sql); delete q; @@ -9793,7 +9891,9 @@ void MainObject::CreateFeedLog151(const QString &key_name) const "CAST_ID int unsigned,"+ "ACCESS_DATE date,"+ "ACCESS_COUNT int unsigned default 0,"+ - "index CAST_ID_IDX(CAST_ID,ACCESS_DATE))"; + "index CAST_ID_IDX(CAST_ID,ACCESS_DATE))"+ + " charset latin1 collate latin1_swedish_ci"+ + db_table_create_postfix; q=new RDSqlQuery(sql); delete q; }