From c552667268e01717d965f5f323ac594a091e6a5b Mon Sep 17 00:00:00 2001
From: Mahdi Dibaiee <mdibaiee@pm.me>
Date: Fri, 14 Mar 2025 14:52:51 +0000
Subject: [PATCH] source-oracle: skip retention checks for new databases

---
 source-oracle/prerequisites.go | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/source-oracle/prerequisites.go b/source-oracle/prerequisites.go
index 23d4515266..5407ab3ab2 100644
--- a/source-oracle/prerequisites.go
+++ b/source-oracle/prerequisites.go
@@ -30,7 +30,22 @@ func (db *oracleDatabase) prerequisiteArchiveLogRetention(ctx context.Context) e
 	if err := db.switchToCDB(ctx); err != nil {
 		return err
 	}
-	var row = db.conn.QueryRowContext(ctx, "SELECT MIN(FIRST_TIME) FROM V$ARCHIVED_LOG A WHERE A.NAME IS NOT NULL")
+	var row = db.conn.QueryRowContext(ctx, "select created from v$database")
+	var databaseAge time.Time
+	if err := row.Scan(&databaseAge); err != nil {
+		return fmt.Errorf("querying database age from DBA_OBJECTS: %w", err)
+	}
+
+	log.WithFields(log.Fields{
+		"created": databaseAge,
+	}).Debug("database age")
+
+	if time.Since(databaseAge) < (time.Hour * 24) {
+		log.Warn("database age is less than 24 hours, skipping retention checks")
+		return nil
+	}
+
+	row = db.conn.QueryRowContext(ctx, "SELECT MIN(FIRST_TIME) FROM V$ARCHIVED_LOG A WHERE A.NAME IS NOT NULL")
 	var minTimestamp time.Time
 	if err := row.Scan(&minTimestamp); err != nil {
 		return fmt.Errorf("querying minimum archived log timestamp from V$ARCHIVED_LOG: %w", err)