@@ -1713,3 +1713,160 @@ func TestLargeResultSet(t *testing.T) {
1713
1713
t .Errorf ("Last row incorrect: %+v" , results [999 ])
1714
1714
}
1715
1715
}
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