From 03c16cb1ae49ba61642b78dade6d942714059d29 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Fri, 20 Dec 2024 16:40:55 -0500 Subject: [PATCH] 2024-12-20 Fred Gleason * Added code at the 275=>276 schema transition in rddbmgr(8) to clean up corrupted meta-tables. Signed-off-by: Fred Gleason --- ChangeLog | 3 +++ utils/rddbmgr/rddbmgr.h | 1 + utils/rddbmgr/updateschema.cpp | 45 +++++++++++++++++++++++++++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5b7c358d..fd9d7ca9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24944,3 +24944,6 @@ 2024-12-13 Fred Gleason * Fixed regression in the build system that caused sections of the HTML version of Operations Guide to be missing. +2024-12-20 Fred Gleason + * Added code at the 275=>276 schema transition in rddbmgr(8) to + clean up corrupted meta-tables. diff --git a/utils/rddbmgr/rddbmgr.h b/utils/rddbmgr/rddbmgr.h index d81fd027..b312fa16 100644 --- a/utils/rddbmgr/rddbmgr.h +++ b/utils/rddbmgr/rddbmgr.h @@ -112,6 +112,7 @@ class MainObject : public QObject bool UpdateLogTable186(const QString &table,QString *err_msg) const; bool ConvertTimeField186(const QString &table,const QString &field, QString *err_msg) const; + bool NormalizeMetatables276(const QString &table_ext,QString *err_msg) const; bool ConvertArtistSep307(QString *err_msg) const; bool StackLineTitles347(QString *err_msg) const; diff --git a/utils/rddbmgr/updateschema.cpp b/utils/rddbmgr/updateschema.cpp index 8f33fd15..62ba4970 100644 --- a/utils/rddbmgr/updateschema.cpp +++ b/utils/rddbmgr/updateschema.cpp @@ -6845,7 +6845,12 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) WriteSchemaVersion(++cur_schema); } - if((cur_schema<276)&&(set_schema>cur_schema)) { + if((cur_schema<276)&&(set_schema>cur_schema)) { + NormalizeMetatables276("CLK",err_msg); + NormalizeMetatables276("RULES",err_msg); + NormalizeMetatables276("PRE",err_msg); + NormalizeMetatables276("POST",err_msg); + NormalizeMetatables276("SRT",err_msg); sql=QString("alter table `SYSTEM` ")+ "add column `NOTIFICATION_ADDRESS` char(15) default '"+ RD_NOTIFICATION_ADDRESS+"' after `SHOW_USER_LIST`"; @@ -11702,6 +11707,44 @@ bool MainObject::ConvertTimeField186(const QString &table,const QString &field, return true; } + +bool MainObject::NormalizeMetatables276(const QString &table_ext, + QString *err_msg) const +{ + QStringList tables; + QString sql=QString("show tables"); + RDSqlQuery *q=new RDSqlQuery(sql); + while(q->next()) { + tables.push_back(q->value(0).toString()); + } + delete q; + + for(int i=0;i