| 1073 | } |
| 1074 | |
| 1075 | void NBackup::cleanHistory() |
| 1076 | { |
| 1077 | if (m_cleanHistKind == NONE) |
| 1078 | return; |
| 1079 | |
| 1080 | string sql; |
| 1081 | if (m_cleanHistKind == DAYS) |
| 1082 | { |
| 1083 | sql.printf( |
| 1084 | "DELETE FROM RDB$BACKUP_HISTORY WHERE RDB$TIMESTAMP < DATEADD(1 - %i DAY TO CURRENT_DATE)", |
| 1085 | m_keepHistValue); |
| 1086 | } |
| 1087 | else |
| 1088 | { |
| 1089 | sql.printf( |
| 1090 | "DELETE FROM RDB$BACKUP_HISTORY WHERE RDB$TIMESTAMP <= " |
| 1091 | "(SELECT RDB$TIMESTAMP FROM RDB$BACKUP_HISTORY ORDER BY RDB$TIMESTAMP DESC " |
| 1092 | "OFFSET %i ROWS FETCH FIRST 1 ROW ONLY)", |
| 1093 | m_keepHistValue); |
| 1094 | } |
| 1095 | |
| 1096 | if (isc_dsql_execute_immediate(status, &newdb, &trans, 0, sql.c_str(), SQL_DIALECT_CURRENT, NULL)) |
| 1097 | pr_error(status, "execute history delete"); |
| 1098 | } |
| 1099 | |
| 1100 | void NBackup::get_database_size() |
| 1101 | { |