From cd4a90a0846a408f6ddc7e8767018f5bd6694879 Mon Sep 17 00:00:00 2001 From: Ayoub Aarrasse Date: Tue, 14 Oct 2025 14:58:57 +0100 Subject: [PATCH 1/3] regex fix to support table name with alias --- oracle/query.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/oracle/query.go b/oracle/query.go index ca63b0a..2cbaefc 100644 --- a/oracle/query.go +++ b/oracle/query.go @@ -46,9 +46,9 @@ import ( ) // Identifies the table name alias provided as -// "\"users\" \"u\"" and "\"users\" u". Gorm already handles +// "\"users\" \"u\"" and "\"users\" u" and "\"users\"". Gorm already handles // the other formats like "users u", "users AS u" etc. -var tableRegexp = regexp.MustCompile(`^"(\w+)"\s+"?(\w+)"?$`) +var tableRegexp = regexp.MustCompile(`^"(\w+)"(?:\s+"?(\w+)"?)?$`) func BeforeQuery(db *gorm.DB) { if db == nil || db.Statement == nil || db.Statement.TableExpr == nil { @@ -64,6 +64,7 @@ func BeforeQuery(db *gorm.DB) { } } } + return } // MismatchedCaseHandler handles Oracle Case Insensitivity. From 77d5ef230968954eb14ceebdd847fbd86158ac4a Mon Sep 17 00:00:00 2001 From: Ayoub Aarrasse Date: Tue, 14 Oct 2025 21:33:55 +0100 Subject: [PATCH 2/3] removing dead code --- oracle/query.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/oracle/query.go b/oracle/query.go index 2cbaefc..d72b8e7 100644 --- a/oracle/query.go +++ b/oracle/query.go @@ -46,9 +46,9 @@ import ( ) // Identifies the table name alias provided as -// "\"users\" \"u\"" and "\"users\" u" and "\"users\"". Gorm already handles +// "\"users\" \"u\"" and "\"users\" u". Gorm already handles // the other formats like "users u", "users AS u" etc. -var tableRegexp = regexp.MustCompile(`^"(\w+)"(?:\s+"?(\w+)"?)?$`) +var tableRegexp = regexp.MustCompile(`^"(\w+)"\s+"?(\w+)"?$`) func BeforeQuery(db *gorm.DB) { if db == nil || db.Statement == nil || db.Statement.TableExpr == nil { @@ -59,12 +59,9 @@ func BeforeQuery(db *gorm.DB) { if results := tableRegexp.FindStringSubmatch(name); len(results) == 3 { if results[2] != "" { db.Statement.Table = results[2] - } else { - db.Statement.Table = results[1] } } } - return } // MismatchedCaseHandler handles Oracle Case Insensitivity. From 66057ee4b127e0deae5a5f584d86d353dd530e91 Mon Sep 17 00:00:00 2001 From: Ayoub Aarrasse Date: Tue, 14 Oct 2025 21:45:57 +0100 Subject: [PATCH 3/3] removing unnecessary condition --- oracle/query.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/oracle/query.go b/oracle/query.go index d72b8e7..d765d9a 100644 --- a/oracle/query.go +++ b/oracle/query.go @@ -57,9 +57,7 @@ func BeforeQuery(db *gorm.DB) { name := db.Statement.TableExpr.SQL if strings.Contains(name, " ") || strings.Contains(name, "`") { if results := tableRegexp.FindStringSubmatch(name); len(results) == 3 { - if results[2] != "" { - db.Statement.Table = results[2] - } + db.Statement.Table = results[2] } } }