Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Update speedtest1.c with new testset "trigger" based on the tests in speed4p.test. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
7b7fa5fa0dd0dcef759ce1e22ade3a4e |
User & Date: | dan 2018-04-03 20:00:09.543 |
Context
2018-04-03
| ||
20:44 | Fix an error message in speedtest1.c and make the "trigger" testset sensitive to the --size parameter. (check-in: 5a6fd9e015 user: drh tags: trunk) | |
20:00 | Update speedtest1.c with new testset "trigger" based on the tests in speed4p.test. (check-in: 7b7fa5fa0d user: dan tags: trunk) | |
17:05 | Fix a few small test script issues affecting SQLITE_TEMP_STORE=3 builds. (check-in: e171f3722f user: dan tags: trunk) | |
Changes
Changes to test/speedtest1.c.
︙ | ︙ | |||
1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 | for(i=0; i<n; i++){ x1 = speedtest1_random()%nRow; sqlite3_bind_int(g.pStmt, 1, x1); speedtest1_run(); } speedtest1_end_test(); } /* ** A testset used for debugging speedtest1 itself. */ void testset_debug1(void){ unsigned i, n; unsigned x1, x2; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 | for(i=0; i<n; i++){ x1 = speedtest1_random()%nRow; sqlite3_bind_int(g.pStmt, 1, x1); speedtest1_run(); } speedtest1_end_test(); } /* */ void testset_trigger(void){ int jj, ii; char zNum[2000]; /* A number name */ const int NROW = 50000; const int NROW2 = 10000; speedtest1_exec( "BEGIN;" "CREATE TABLE t1(rowid INTEGER PRIMARY KEY, i INTEGER, t TEXT);" "CREATE TABLE t2(rowid INTEGER PRIMARY KEY, i INTEGER, t TEXT);" "CREATE TABLE t3(rowid INTEGER PRIMARY KEY, i INTEGER, t TEXT);" "CREATE VIEW v1 AS SELECT rowid, i, t FROM t1;" "CREATE VIEW v2 AS SELECT rowid, i, t FROM t2;" "CREATE VIEW v3 AS SELECT rowid, i, t FROM t3;" ); for(jj=1; jj<=3; jj++){ speedtest1_prepare("INSERT INTO t%d VALUES(NULL,?1,?2)", jj); for(ii=0; ii<NROW; ii++){ int x1 = speedtest1_random() % NROW; speedtest1_numbername(x1, zNum, sizeof(zNum)); sqlite3_bind_int(g.pStmt, 1, x1); sqlite3_bind_text(g.pStmt, 2, zNum, -1, SQLITE_STATIC); speedtest1_run(); } } speedtest1_exec( "CREATE INDEX i1 ON t1(t);" "CREATE INDEX i2 ON t2(t);" "CREATE INDEX i3 ON t3(t);" "COMMIT;" ); speedtest1_begin_test(100, "speed4p-join1"); speedtest1_prepare( "SELECT * FROM t1, t2, t3 WHERE t1.oid = t2.oid AND t2.oid = t3.oid" ); speedtest1_run(); speedtest1_end_test(); speedtest1_begin_test(110, "speed4p-join2"); speedtest1_prepare( "SELECT * FROM t1, t2, t3 WHERE t1.t = t2.t AND t2.t = t3.t" ); speedtest1_run(); speedtest1_end_test(); speedtest1_begin_test(120, "speed4p-view1"); for(jj=1; jj<=3; jj++){ speedtest1_prepare("SELECT * FROM v%d WHERE rowid = ?", jj); for(ii=0; ii<NROW2; ii+=3){ sqlite3_bind_int(g.pStmt, 1, ii*3); speedtest1_run(); } } speedtest1_end_test(); speedtest1_begin_test(130, "speed4p-table1"); for(jj=1; jj<=3; jj++){ speedtest1_prepare("SELECT * FROM t%d WHERE rowid = ?", jj); for(ii=0; ii<NROW2; ii+=3){ sqlite3_bind_int(g.pStmt, 1, ii*3); speedtest1_run(); } } speedtest1_end_test(); speedtest1_begin_test(140, "speed4p-table1"); for(jj=1; jj<=3; jj++){ speedtest1_prepare("SELECT * FROM t%d WHERE rowid = ?", jj); for(ii=0; ii<NROW2; ii+=3){ sqlite3_bind_int(g.pStmt, 1, ii*3); speedtest1_run(); } } speedtest1_end_test(); speedtest1_begin_test(150, "speed4p-subselect1"); speedtest1_prepare("SELECT " "(SELECT t FROM t1 WHERE rowid = ?1)," "(SELECT t FROM t2 WHERE rowid = ?1)," "(SELECT t FROM t3 WHERE rowid = ?1)" ); for(jj=0; jj<NROW2; jj++){ sqlite3_bind_int(g.pStmt, 1, jj*3); speedtest1_run(); } speedtest1_end_test(); speedtest1_begin_test(160, "speed4p-rowid-update"); speedtest1_exec("BEGIN"); speedtest1_prepare("UPDATE t1 SET i=i+1 WHERE rowid=?1"); for(jj=0; jj<NROW2; jj++){ sqlite3_bind_int(g.pStmt, 1, jj); speedtest1_run(); } speedtest1_exec("COMMIT"); speedtest1_end_test(); speedtest1_exec("CREATE TABLE t5(t TEXT PRIMARY KEY, i INTEGER);"); speedtest1_begin_test(170, "speed4p-insert-ignore"); speedtest1_exec("INSERT OR IGNORE INTO t5 SELECT t, i FROM t1"); speedtest1_end_test(); speedtest1_exec( "CREATE TABLE log(op TEXT, r INTEGER, i INTEGER, t TEXT);" "CREATE TABLE t4(rowid INTEGER PRIMARY KEY, i INTEGER, t TEXT);" "CREATE TRIGGER t4_trigger1 AFTER INSERT ON t4 BEGIN" " INSERT INTO log VALUES('INSERT INTO t4', new.rowid, new.i, new.t);" "END;" "CREATE TRIGGER t4_trigger2 AFTER UPDATE ON t4 BEGIN" " INSERT INTO log VALUES('UPDATE OF t4', new.rowid, new.i, new.t);" "END;" "CREATE TRIGGER t4_trigger3 AFTER DELETE ON t4 BEGIN" " INSERT INTO log VALUES('DELETE OF t4', old.rowid, old.i, old.t);" "END;" "BEGIN;" ); speedtest1_begin_test(180, "speed4p-trigger1"); speedtest1_prepare("INSERT INTO t4 VALUES(NULL, ?1, ?2)"); for(jj=0; jj<NROW2; jj++){ speedtest1_numbername(jj, zNum, sizeof(zNum)); sqlite3_bind_int(g.pStmt, 1, jj); sqlite3_bind_text(g.pStmt, 2, zNum, -1, SQLITE_STATIC); speedtest1_run(); } speedtest1_end_test(); /* ** Note: Of the queries, only half actually update a row. This property ** was copied over from speed4p.test, where it was probably introduced ** inadvertantly. */ speedtest1_begin_test(190, "speed4p-trigger2"); speedtest1_prepare("UPDATE t4 SET i = ?1, t = ?2 WHERE rowid = ?3"); for(jj=1; jj<=NROW2*2; jj+=2){ speedtest1_numbername(jj*2, zNum, sizeof(zNum)); sqlite3_bind_int(g.pStmt, 1, jj*2); sqlite3_bind_text(g.pStmt, 2, zNum, -1, SQLITE_STATIC); sqlite3_bind_int(g.pStmt, 3, jj); speedtest1_run(); } speedtest1_end_test(); /* ** Note: Same again. */ speedtest1_begin_test(200, "speed4p-trigger3"); speedtest1_prepare("DELETE FROM t4 WHERE rowid = ?1"); for(jj=1; jj<=NROW2*2; jj+=2){ sqlite3_bind_int(g.pStmt, 1, jj*2); speedtest1_run(); } speedtest1_end_test(); speedtest1_exec("COMMIT"); /* ** The following block contains the same tests as the above block that ** tests triggers, with one crucial difference: no triggers are defined. ** So the difference in speed between these tests and the preceding ones ** is the amount of time taken to compile and execute the trigger programs. */ speedtest1_exec( "DROP TABLE t4;" "DROP TABLE log;" "VACUUM;" "CREATE TABLE t4(rowid INTEGER PRIMARY KEY, i INTEGER, t TEXT);" "BEGIN;" ); speedtest1_begin_test(210, "speed4p-notrigger1"); speedtest1_prepare("INSERT INTO t4 VALUES(NULL, ?1, ?2)"); for(jj=0; jj<NROW2; jj++){ speedtest1_numbername(jj, zNum, sizeof(zNum)); sqlite3_bind_int(g.pStmt, 1, jj); sqlite3_bind_text(g.pStmt, 2, zNum, -1, SQLITE_STATIC); speedtest1_run(); } speedtest1_end_test(); speedtest1_begin_test(210, "speed4p-notrigger2"); speedtest1_prepare("UPDATE t4 SET i = ?1, t = ?2 WHERE rowid = ?3"); for(jj=1; jj<=NROW2*2; jj+=2){ speedtest1_numbername(jj*2, zNum, sizeof(zNum)); sqlite3_bind_int(g.pStmt, 1, jj*2); sqlite3_bind_text(g.pStmt, 2, zNum, -1, SQLITE_STATIC); sqlite3_bind_int(g.pStmt, 3, jj); speedtest1_run(); } speedtest1_end_test(); speedtest1_begin_test(220, "speed4p-notrigger3"); speedtest1_prepare("DELETE FROM t4 WHERE rowid = ?1"); for(jj=1; jj<=NROW2*2; jj+=2){ sqlite3_bind_int(g.pStmt, 1, jj*2); speedtest1_run(); } speedtest1_end_test(); speedtest1_exec("COMMIT"); } /* ** A testset used for debugging speedtest1 itself. */ void testset_debug1(void){ unsigned i, n; unsigned x1, x2; |
︙ | ︙ | |||
1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 | testset_debug1(); }else if( strcmp(zTSet,"orm")==0 ){ testset_orm(); }else if( strcmp(zTSet,"cte")==0 ){ testset_cte(); }else if( strcmp(zTSet,"fp")==0 ){ testset_fp(); }else if( strcmp(zTSet,"rtree")==0 ){ #ifdef SQLITE_ENABLE_RTREE testset_rtree(6, 147); #else fatal_error("compile with -DSQLITE_ENABLE_RTREE to enable " "the R-Tree tests\n"); #endif | > > | 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 | testset_debug1(); }else if( strcmp(zTSet,"orm")==0 ){ testset_orm(); }else if( strcmp(zTSet,"cte")==0 ){ testset_cte(); }else if( strcmp(zTSet,"fp")==0 ){ testset_fp(); }else if( strcmp(zTSet,"trigger")==0 ){ testset_trigger(); }else if( strcmp(zTSet,"rtree")==0 ){ #ifdef SQLITE_ENABLE_RTREE testset_rtree(6, 147); #else fatal_error("compile with -DSQLITE_ENABLE_RTREE to enable " "the R-Tree tests\n"); #endif |
︙ | ︙ |