From 3cf60dc368e87525353886689e19f461f80b5861 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Thu, 29 Jul 2021 17:18:40 -0400 Subject: [PATCH] 2021-07-29 Fred Gleason * Added a pseudo-schema change to force checking of schedule code rules (commented out). * Incremented the database version to 348. * Changed the 'RDAIRPLAY_EXIT_PASSWORD' field from 'varchar(41)' to 'varchar(48)'. * Incremented the database version to 349. * Added an 'AUDIO_INPUTS.LABEL' field to the database. * Added an 'AUDIO_OUTPUTS.LABEL' field to the database. * Incremented the database version to 350. Signed-off-by: Fred Gleason --- ChangeLog | 10 ++++++ lib/dbversion.h | 2 +- utils/rddbmgr/printstatus.cpp | 2 +- utils/rddbmgr/revertschema.cpp | 38 ++++++++++++++++++++ utils/rddbmgr/schemamap.cpp | 2 +- utils/rddbmgr/updateschema.cpp | 66 ++++++++++++++++++++++++++++++++++ 6 files changed, 117 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7e11bc5e..cb02bced 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20781,3 +20781,13 @@ the '--set-string-title=' switch was used. 2021-07-29 Fred Gleason * Added a 'special use' warning to 'README'. +2021-07-29 Fred Gleason + * Added a pseudo-schema change to force checking of schedule code + rules (commented out). + * Incremented the database version to 348. + * Changed the 'RDAIRPLAY_EXIT_PASSWORD' field from 'varchar(41)' + to 'varchar(48)'. + * Incremented the database version to 349. + * Added an 'AUDIO_INPUTS.LABEL' field to the database. + * Added an 'AUDIO_OUTPUTS.LABEL' field to the database. + * Incremented the database version to 350. diff --git a/lib/dbversion.h b/lib/dbversion.h index b4cd10d0..c36292c1 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 347 +#define RD_VERSION_DATABASE 350 #endif // DBVERSION_H diff --git a/utils/rddbmgr/printstatus.cpp b/utils/rddbmgr/printstatus.cpp index 7d3521fd..f45b7115 100644 --- a/utils/rddbmgr/printstatus.cpp +++ b/utils/rddbmgr/printstatus.cpp @@ -44,7 +44,7 @@ bool MainObject::PrintStatus(QString *err_msg) const return true; } - printf("Rivendell database, schema %d [%s]\n",schema, + printf("Rivendell database, schema %d [%s] (WARNING, CUSTOMIZED!)\n",schema, (const char *)GetSchemaVersion(schema)); *err_msg="ok"; diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 0d825909..ca7df4f7 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -40,6 +40,44 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) // NEW SCHEMA REVERSIONS GO HERE... + + // + // Revert 350 + // + if((cur_schema==350)&&(set_schemacur_schema)) { + // CheckSchedCodeRules(false); // Bypassed, as it's a 'fake' change. + WriteSchemaVersion(++cur_schema); + } + + if((cur_schema<349)&&(set_schema>cur_schema)) { + sql=QString("alter table `RDAIRPLAY` ")+ + "modify column `EXIT_PASSWORD` varchar(48)"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + WriteSchemaVersion(++cur_schema); + } + + if((cur_schema<350)&&(set_schema>cur_schema)) { + sql=QString("alter table `AUDIO_INPUTS` ")+ + "add column `LABEL` varchar(4) after `PORT_NUMBER`"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table `AUDIO_OUTPUTS` ")+ + "add column `LABEL` varchar(4) after `PORT_NUMBER`"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + // + // Maintainer's Note: + // + // Use hard-coded maximum card/port quantities (24 four for each) here, + // in case the #define'd values change in future! + // + sql=QString("select `NAME` from `STATIONS`"); + q=new RDSqlQuery(sql); + while(q->next()) { + for(int i=0;i<24;i++) { + for(int j=0;j<24;j++) { + sql=QString("update `AUDIO_INPUTS` set ")+ + "`LABEL`='"+RDEscapeString(QString().sprintf("M%d",j+1))+"' where "+ + "`STATION_NAME`='"+RDEscapeString(q->value(0).toString())+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",i)+ + QString().sprintf("`PORT_NUMBER`=%d",j); + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + sql=QString("update `AUDIO_OUTPUTS` set ")+ + "`LABEL`='"+RDEscapeString(QString().sprintf("M%d",j+1))+"' where "+ + "`STATION_NAME`='"+RDEscapeString(q->value(0).toString())+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",i)+ + QString().sprintf("`PORT_NUMBER`=%d",j); + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + } + } + } + + WriteSchemaVersion(++cur_schema); + } + + // NEW SCHEMA UPDATES GO HERE...