diff --git a/ChangeLog b/ChangeLog index 08bae36c..821a3b87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24970,3 +24970,6 @@ 2025-03-19 Fred Gleason * Fixed a bug in the 'hpiplayout-test' test harness that caused the build to fail when HPI support was disabled. +2025-04-07 Fred Gleason + * Dropped the 'RDAIRPLAY.INSTANCE' field from the database. + * Incremented the database version to 376. diff --git a/lib/dbversion.h b/lib/dbversion.h index 04748dfc..71c83315 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 375 +#define RD_VERSION_DATABASE 376 #endif // DBVERSION_H diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 2414eb7e..978ed524 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -40,6 +40,25 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) // NEW SCHEMA REVERSIONS GO HERE... + // + // Revert 376 + // + if((cur_schema == 376) && (set_schema < cur_schema)) + { + DropIndex("RDAIRPLAY","STATION_IDX"); + sql=QString("alter table `RDAIRPLAY` ")+ + "add column `INSTANCE` int unsigned after `STATION`"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table `RDAIRPLAY` add index `STATION_IDX` (`STATION`,`INSTANCE`)"); + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + WriteSchemaVersion(--cur_schema); + } + // // Revert 375 // diff --git a/utils/rddbmgr/schemamap.cpp b/utils/rddbmgr/schemamap.cpp index 7b585575..7492e0bc 100644 --- a/utils/rddbmgr/schemamap.cpp +++ b/utils/rddbmgr/schemamap.cpp @@ -164,6 +164,7 @@ void MainObject::InitializeSchemaMap() { global_version_map["4.1"]=371; global_version_map["4.2"]=374; global_version_map["4.3"]=375; + global_version_map["4.4"]=376; } diff --git a/utils/rddbmgr/updateschema.cpp b/utils/rddbmgr/updateschema.cpp index 718c9ce8..6362ab8b 100644 --- a/utils/rddbmgr/updateschema.cpp +++ b/utils/rddbmgr/updateschema.cpp @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include #include #include @@ -11853,6 +11855,46 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) WriteSchemaVersion(++cur_schema); } + if((cur_schema<376)&&(set_schema>cur_schema)) { + // + // De-duplicate Host Entries + // + QMultiMap id_map; + sql=QString("select ")+ + "`STATION`,"+ // 00 + "`ID` "+ // 01 + "from `RDAIRPLAY`"; + RDSqlQuery *q=new RDSqlQuery(sql); + while(q->next()) { + id_map.insert(q->value(0).toString(),q->value(1).toInt()); + } + delete q; + QStringList keys=id_map.uniqueKeys(); + for(int i=0;i ids=id_map.values(keys.at(i)); + for(int j=1;j