@@ -1713,3 +1713,160 @@ func TestLargeResultSet(t *testing.T) {
17131713 t .Errorf ("Last row incorrect: %+v" , results [999 ])
17141714 }
17151715}
1716+
1717+ func TestBeforeQueryTableUnscoped (t * testing.T ) {
1718+ beforequeryuserunscoped := []User {
1719+ {Name : "beforequery_user_unscoped" , Age : 1 },
1720+ {Name : "beforequery_user2_unscoped" , Age : 2 },
1721+ {Name : "beforequery_user3_unscoped" , Age : 3 },
1722+ {Name : "beforequery_user4_unscoped" , Age : 4 },
1723+ {Name : "beforequery_user5_unscoped" , Age : 5 },
1724+ {Name : "beforequery_user6_unscoped" , Age : 6 },
1725+ {Name : "beforequery_user7_unscoped" , Age : 7 },
1726+ }
1727+ DB .Save (& beforequeryuserunscoped )
1728+
1729+ var fetched1 []User
1730+ err1 := DB .Table ("\" users\" u" ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user_unscoped" ).Find (& fetched1 ).Error
1731+ if err1 != nil {
1732+ t .Fatalf ("Failed to query with table alias 'users u': %v" , err1 )
1733+ }
1734+ if len (fetched1 ) != 1 || fetched1 [0 ].Name != "beforequery_user_unscoped" {
1735+ t .Errorf ("Expected to fetch 'beforequery_user_unscoped' with table alias, got: %+v" , fetched1 )
1736+ }
1737+
1738+ var fetched2 []User
1739+ err2 := DB .Table (`users` ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user2_unscoped" ).Find (& fetched2 ).Error
1740+ if err2 != nil {
1741+ t .Fatalf ("Failed to query with backtick table name '`users`': %v" , err2 )
1742+ }
1743+ if len (fetched2 ) != 1 || fetched2 [0 ].Name != "beforequery_user2_unscoped" {
1744+ t .Errorf ("Expected to fetch 'beforequery_user2_unscoped' with backtick table, got: %+v" , fetched2 )
1745+ }
1746+
1747+ var fetched3 []User
1748+ err3 := DB .Table ("(SELECT * FROM \" users\" ) temp" ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user3_unscoped" ).Find (& fetched3 ).Error
1749+ if err3 != nil {
1750+ t .Fatalf ("Failed to query with subquery table: %v" , err3 )
1751+ }
1752+ if len (fetched3 ) != 1 || fetched3 [0 ].Name != "beforequery_user3_unscoped" {
1753+ t .Errorf ("Expected to fetch 'beforequery_user3_unscoped' with subquery table, got: %+v" , fetched3 )
1754+ }
1755+
1756+ var fetched4 []User
1757+ err4 := DB .Table ("(SELECT * FROM \" users\" )" ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user4_unscoped" ).Find (& fetched4 ).Error
1758+ if err4 != nil {
1759+ t .Fatalf ("Failed to query with subquery table: %v" , err4 )
1760+ }
1761+ if len (fetched4 ) != 1 || fetched4 [0 ].Name != "beforequery_user4_unscoped" {
1762+ t .Errorf ("Expected to fetch 'beforequery_user4_unscoped' with subquery table, got: %+v" , fetched4 )
1763+ }
1764+
1765+ var fetched5 []User
1766+ err5 := DB .Table ("\" users\" " ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user5_unscoped" ).Find (& fetched5 ).Error
1767+ if err5 != nil {
1768+ t .Fatalf ("Failed to query with subquery table: %v" , err5 )
1769+ }
1770+ if len (fetched5 ) != 1 || fetched5 [0 ].Name != "beforequery_user5_unscoped" {
1771+ t .Errorf ("Expected to fetch 'beforequery_user5_unscoped' with subquery table, got: %+v" , fetched5 )
1772+ }
1773+
1774+ var fetched6 []User
1775+ err6 := DB .Table (`"users" "u"` ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user6_unscoped" ).Find (& fetched6 ).Error
1776+ if err6 != nil {
1777+ t .Fatalf ("Failed to query with subquery table: %v" , err6 )
1778+ }
1779+ if len (fetched6 ) != 1 || fetched6 [0 ].Name != "beforequery_user6_unscoped" {
1780+ t .Errorf ("Expected to fetch 'beforequery_user6_unscoped' with subquery table, got: %+v" , fetched6 )
1781+ }
1782+
1783+ var fetched7 []User
1784+ err7 := DB .Table (`"users" u` ).Unscoped ().Where ("\" name\" = ?" , "beforequery_user7_unscoped" ).Find (& fetched7 ).Error
1785+ if err7 != nil {
1786+ t .Fatalf ("Failed to query with subquery table: %v" , err7 )
1787+ }
1788+ if len (fetched7 ) != 1 || fetched7 [0 ].Name != "beforequery_user7_unscoped" {
1789+ t .Errorf ("Expected to fetch 'beforequery_user7_unscoped' with subquery table, got: %+v" , fetched7 )
1790+ }
1791+
1792+ }
1793+
1794+ func TestBeforeQueryTable (t * testing.T ) {
1795+ t .Skip ()
1796+ beforequeryuser := []User {
1797+ {Name : "beforequery_user" , Age : 11 },
1798+ {Name : "beforequery_user2" , Age : 12 },
1799+ {Name : "beforequery_user3" , Age : 13 },
1800+ {Name : "beforequery_user4" , Age : 14 },
1801+ {Name : "beforequery_user5" , Age : 15 },
1802+ {Name : "beforequery_user6" , Age : 16 },
1803+ {Name : "beforequery_user7" , Age : 17 },
1804+ }
1805+ DB .Save (& beforequeryuser )
1806+
1807+ // https://github.com/oracle-samples/gorm-oracle/issues/36
1808+ var fetched1 []User
1809+ err1 := DB .Table ("\" users\" u" ).Where ("\" name\" = ?" , "beforequery_user" ).Find (& fetched1 ).Error
1810+ if err1 != nil {
1811+ t .Fatalf ("Failed to query with table alias 'users u': %v" , err1 )
1812+ }
1813+ if len (fetched1 ) != 1 || fetched1 [0 ].Name != "beforequery_user" {
1814+ t .Errorf ("Expected to fetch 'beforequery_user' with table alias, got: %+v" , fetched1 )
1815+ }
1816+
1817+ var fetched2 []User
1818+ err2 := DB .Table (`users` ).Where ("\" name\" = ?" , "beforequery_user2" ).Find (& fetched2 ).Error
1819+ if err2 != nil {
1820+ t .Fatalf ("Failed to query with backtick table name '`users`': %v" , err2 )
1821+ }
1822+ if len (fetched2 ) != 1 || fetched2 [0 ].Name != "beforequery_user2" {
1823+ t .Errorf ("Expected to fetch 'beforequery_user2' with backtick table, got: %+v" , fetched2 )
1824+ }
1825+
1826+ // https://github.com/oracle-samples/gorm-oracle/issues/70
1827+ var fetched3 []User
1828+ err3 := DB .Table ("(SELECT * FROM \" users\" ) temp" ).Where ("\" name\" = ?" , "beforequery_user3" ).Find (& fetched3 ).Error
1829+ if err3 != nil {
1830+ t .Fatalf ("Failed to query with subquery table: %v" , err3 )
1831+ }
1832+ if len (fetched3 ) != 1 || fetched3 [0 ].Name != "beforequery_user3" {
1833+ t .Errorf ("Expected to fetch 'beforequery_user3' with subquery table, got: %+v" , fetched3 )
1834+ }
1835+
1836+ var fetched4 []User
1837+ err4 := DB .Table ("(SELECT * FROM \" users\" )" ).Where ("\" name\" = ?" , "beforequery_user4" ).Find (& fetched4 ).Error
1838+ if err4 != nil {
1839+ t .Fatalf ("Failed to query with subquery table: %v" , err4 )
1840+ }
1841+ if len (fetched4 ) != 1 || fetched4 [0 ].Name != "beforequery_user4" {
1842+ t .Errorf ("Expected to fetch 'beforequery_user4' with subquery table, got: %+v" , fetched4 )
1843+ }
1844+
1845+ var fetched5 []User
1846+ err5 := DB .Table ("\" users\" " ).Where ("\" name\" = ?" , "beforequery_user5" ).Find (& fetched5 ).Error
1847+ if err5 != nil {
1848+ t .Fatalf ("Failed to query with subquery table: %v" , err5 )
1849+ }
1850+ if len (fetched5 ) != 1 || fetched5 [0 ].Name != "beforequery_user5" {
1851+ t .Errorf ("Expected to fetch 'beforequery_user5' with subquery table, got: %+v" , fetched5 )
1852+ }
1853+
1854+ var fetched6 []User
1855+ err6 := DB .Table (`"users" "u"` ).Where ("\" name\" = ?" , "beforequery_user6" ).Find (& fetched6 ).Error
1856+ if err6 != nil {
1857+ t .Fatalf ("Failed to query with subquery table: %v" , err6 )
1858+ }
1859+ if len (fetched6 ) != 1 || fetched6 [0 ].Name != "beforequery_user6" {
1860+ t .Errorf ("Expected to fetch 'beforequery_user6' with subquery table, got: %+v" , fetched6 )
1861+ }
1862+
1863+ // https://github.com/oracle-samples/gorm-oracle/issues/36
1864+ var fetched7 []User
1865+ err7 := DB .Table (`"users" u` ).Where ("\" name\" = ?" , "beforequery_user7" ).Find (& fetched7 ).Error
1866+ if err7 != nil {
1867+ t .Fatalf ("Failed to query with subquery table: %v" , err7 )
1868+ }
1869+ if len (fetched7 ) != 1 || fetched7 [0 ].Name != "beforequery_user7" {
1870+ t .Errorf ("Expected to fetch 'beforequery_user7' with subquery table, got: %+v" , fetched7 )
1871+ }
1872+ }
0 commit comments