It is valid to have multiple Rows for the same Stmt http://code.google.com/p/go/issues/detail?id=3734
(t *testing.T)
| 1788 | // It is valid to have multiple Rows for the same Stmt |
| 1789 | // http://code.google.com/p/go/issues/detail?id=3734 |
| 1790 | func TestStmtMultiRows(t *testing.T) { |
| 1791 | runTestsParallel(t, dsn, func(dbt *DBTest, _ string) { |
| 1792 | stmt, err := dbt.db.Prepare("SELECT 1 UNION SELECT 0") |
| 1793 | if err != nil { |
| 1794 | dbt.Fatal(err) |
| 1795 | } |
| 1796 | |
| 1797 | rows1, err := stmt.Query() |
| 1798 | if err != nil { |
| 1799 | stmt.Close() |
| 1800 | dbt.Fatal(err) |
| 1801 | } |
| 1802 | defer rows1.Close() |
| 1803 | |
| 1804 | rows2, err := stmt.Query() |
| 1805 | if err != nil { |
| 1806 | stmt.Close() |
| 1807 | dbt.Fatal(err) |
| 1808 | } |
| 1809 | defer rows2.Close() |
| 1810 | |
| 1811 | var out bool |
| 1812 | |
| 1813 | // 1 |
| 1814 | if !rows1.Next() { |
| 1815 | dbt.Fatal("first rows1.Next failed") |
| 1816 | } else { |
| 1817 | err = rows1.Err() |
| 1818 | if err != nil { |
| 1819 | dbt.Fatal(err) |
| 1820 | } |
| 1821 | |
| 1822 | err = rows1.Scan(&out) |
| 1823 | if err != nil { |
| 1824 | dbt.Fatalf("error on rows.Scan(): %s", err.Error()) |
| 1825 | } |
| 1826 | if out != true { |
| 1827 | dbt.Errorf("true != %t", out) |
| 1828 | } |
| 1829 | } |
| 1830 | |
| 1831 | if !rows2.Next() { |
| 1832 | dbt.Fatal("first rows2.Next failed") |
| 1833 | } else { |
| 1834 | err = rows2.Err() |
| 1835 | if err != nil { |
| 1836 | dbt.Fatal(err) |
| 1837 | } |
| 1838 | |
| 1839 | err = rows2.Scan(&out) |
| 1840 | if err != nil { |
| 1841 | dbt.Fatalf("error on rows.Scan(): %s", err.Error()) |
| 1842 | } |
| 1843 | if out != true { |
| 1844 | dbt.Errorf("true != %t", out) |
| 1845 | } |
| 1846 | } |
| 1847 |