2018-08-16 Fred Gleason <fredg@paravelsystems.com>

* Removed obsolete DB checks from rddbmgr(8).
This commit is contained in:
Fred Gleason 2018-08-16 15:20:04 +00:00
parent be35efdd86
commit aeedeef9af
3 changed files with 2 additions and 283 deletions

View File

@ -17442,3 +17442,5 @@
* Fixed style inconsistencies in dialogs within rdsoftkeys(1).
2018-08-16 Fred Gleason <fredg@paravelsystems.com>
* Fixed style inconsistencies in dialogs within rmlsend(1).
2018-08-16 Fred Gleason <fredg@paravelsystems.com>
* Removed obsolete DB checks from rddbmgr(8).

View File

@ -26,8 +26,6 @@
#include <sys/types.h>
#include <qdir.h>
//Added by qt3to4:
#include <QSqlQuery>
#include <dbversion.h>
#include <rdcart.h>
@ -63,23 +61,6 @@ bool MainObject::Check(QString *err_msg) const
CheckOrphanedTracks();
printf("done.\n\n");
//
// Check RDLogManager Consistency
//
printf("Checking RDLogManager events...\n");
CheckEvents();
printf("done.\n\n");
printf("Checking RDLogManager clocks...\n");
CheckClocks();
printf("done.\n\n");
//
// Check for orphaned tables
//
printf("Checking for orphaned tables...\n");
CheckOrphanedTables();
printf("done.\n\n");
//
// Check for stale reservations
//
@ -241,197 +222,6 @@ void MainObject::CheckOrphanedTracks() const
}
void MainObject::CheckClocks() const
{
//
// FIXME: This entire check needs to be rewritten!
//
/*
QString sql;
QSqlQuery *q;
QSqlQuery *q1;
QSqlQuery *q2;
QSqlQuery *q3;
QString eventname;
sql="select NAME from CLOCKS";
q=new QSqlQuery(sql);
while(q->next()) {
//
// Check the CLK Table
//
sql=QString("select EVENT_NAME,ID from ")+
RDClock::tableName(q->value(0).toString());
q1=new QSqlQuery(sql);
if(q1->isActive()) {
//
// Check the clock -> event linkage
//
while(q1->next()) {
sql=QString().sprintf("select NAME from EVENTS where NAME=\"%s\"",
(const char *)q1->value(0).toString());
q2=new QSqlQuery(sql);
if(q2->first()) {
if(q1->value(0)!=q2->value(0)) { // Make sure the cases match!
printf(" Clock %s's linkage to event %s is broken -- fix (y/N)? ",
(const char *)q->value(0).toString(),
(const char *)q2->value(0).toString());
fflush(NULL);
if(UserResponse()) {
sql=QString("update ")+
RDClock::tableName(q->value(0).toString())+
" set EVENT_NAME=\""+RDEscapeString(q2->value(0).toString())+
"\""+QString().sprintf(" where ID=%d",q1->value(1).toInt());
q3=new QSqlQuery(sql);
delete q3;
}
}
}
delete q2;
}
}
else {
printf(" Clock %s is missing the CLK table -- fix (y/N)? ",
(const char *)q->value(0).toString());
fflush(NULL);
if(UserResponse()) {
sql=RDCreateClockTableSql(RDClock::tableName(q->value(0).toString()),
db_config);
q2=new QSqlQuery(sql);
delete q2;
}
}
delete q1;
}
delete q;
*/
}
void MainObject::CheckEvents() const
{
//
// FIXME: This whole check needs to be rewritten!
//
/*
QString sql;
QSqlQuery *q;
QSqlQuery *q1;
QSqlQuery *q2;
QString eventname;
sql="select NAME from EVENTS";
q=new QSqlQuery(sql);
while(q->next()) {
eventname=q->value(0).toString();
eventname.replace(" ","_");
//
// Check the PRE Table
//
sql=QString().sprintf ("select ID from %s_PRE",(const char *)eventname);
q1=new QSqlQuery(sql);
if(q1->size()<0) {
printf(" Event %s is missing the PRE table -- fix (y/N)? ",
(const char *)q->value(0).toString());
fflush(NULL);
if(UserResponse()) {
sql=RDCreateLogTableSql(eventname+"_PRE",db_config);
q2=new QSqlQuery(sql);
delete q2;
}
}
delete q1;
//
// Check the POST Table
//
sql=QString().sprintf ("select ID from %s_POST",(const char *)eventname);
q1=new QSqlQuery(sql);
if(!q1->isActive()) {
printf(" Event %s is missing the POST table -- fix (y/N)? ",
(const char *)q->value(0).toString());
fflush(NULL);
if(UserResponse()) {
sql=RDCreateLogTableSql(eventname+"_POST",db_config);
q2=new QSqlQuery(sql);
delete q2;
}
}
delete q1;
}
delete q;
*/
}
void MainObject::CheckOrphanedTables() const
{
QSqlQuery *table_q;
QSqlQuery *q;
QString sql;
//
// Generate Table Query
//
sql="show tables";
table_q=new QSqlQuery(sql);
//
// Look for orphaned clocks
//
sql="select NAME from CLOCKS";
q=new QSqlQuery(sql);
CleanTables("CLK",table_q,q);
CleanTables("RULES",table_q,q);
delete q;
//
// Look for orphaned events
//
sql="select NAME from EVENTS";
q=new QSqlQuery(sql);
CleanTables("PRE",table_q,q);
CleanTables("POST",table_q,q);
delete q;
//
// Look for orphaned logs
//
sql="select NAME from LOGS";
q=new QSqlQuery(sql);
CleanTables("LOG",table_q,q);
CleanTables("STACK",table_q,q);
delete q;
//
// Look for orphaned services
//
sql="select NAME from SERVICES";
q=new QSqlQuery(sql);
CleanTables("SRT",table_q,q);
delete q;
//
// Look for orphaned feeds
//
sql="select KEY_NAME from FEEDS";
q=new QSqlQuery(sql);
CleanTables("FIELDS",table_q,q);
CleanTables("FLG",table_q,q);
delete q;
//
// Look for stale and obsolete tables
//
CleanTables("IMP",table_q);
CleanTables("REC",table_q);
delete table_q;
}
void MainObject::CheckCutCounts() const
{
QString sql;
@ -788,71 +578,6 @@ void MainObject::SetCutLength(const QString &cutname,int len) const
}
void MainObject::CleanTables(const QString &ext,QSqlQuery *table_q,
QSqlQuery *name_q) const
{
QString sql;
QSqlQuery *q1;
table_q->seek(-1);
while(table_q->next()) {
if(!IsTableLinked(name_q,ext,table_q->value(0).toString())) {
printf(" Table %s is orphaned -- delete (y/N)? ",
(const char *)RDEscapeString(table_q->value(0).toString()));
fflush(NULL);
if(UserResponse()) {
sql=QString().sprintf("drop table %s",
(const char *)RDEscapeString(table_q->value(0).toString()));
q1=new QSqlQuery(sql);
delete q1;
}
}
}
}
void MainObject::CleanTables(const QString &ext,QSqlQuery *table_q) const
{
QString sql;
QSqlQuery *q1;
table_q->seek(-1);
while(table_q->next()) {
if(table_q->value(0).toString().right(ext.length())==ext) {
printf(" Table %s is orphaned -- delete (y/N)? ",
(const char *)table_q->value(0).toString());
fflush(NULL);
if(UserResponse()) {
sql=QString().sprintf("drop table %s",
(const char *)RDEscapeString(table_q->value(0).toString()));
q1=new QSqlQuery(sql);
delete q1;
}
}
}
}
bool MainObject::IsTableLinked(QSqlQuery *name_q,const QString &ext,
const QString &table) const
{
QString tablename;
if(table.right(ext.length())!=ext) {
return true;
}
name_q->seek(-1);
while(name_q->next()) {
tablename=name_q->value(0).toString()+"_"+ext;
tablename.replace(" ","_");
if(tablename==table) {
return true;
}
}
return false;
}
bool MainObject::UserResponse() const
{
char c=0;

View File

@ -43,9 +43,6 @@ class MainObject : public QObject
bool Check(QString *err_msg) const;
void RelinkAudio(const QString &srcdir) const;
void CheckOrphanedTracks() const;
void CheckClocks() const;
void CheckEvents() const;
void CheckOrphanedTables() const;
void CheckCutCounts() const;
void CheckPendingCarts() const;
void CheckOrphanedCarts() const;
@ -56,11 +53,6 @@ class MainObject : public QObject
void RehashCart(unsigned cartnum) const;
void RehashCut(const QString &cutnum) const;
void SetCutLength(const QString &cutname,int len) const;
void CleanTables(const QString &ext,QSqlQuery *table_q,
QSqlQuery *name_q) const;
void CleanTables(const QString &ext,QSqlQuery *table_q) const;
bool IsTableLinked(QSqlQuery *name_q,const QString &ext,
const QString &table) const;
void RemoveCart(unsigned cartnum);
bool CopyFile(const QString &destfile,const QString &srcfile) const;
bool UserResponse() const;