19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 170dc59e78e18493aecd37427531d093e800846c3eBrett Chabotpackage android.database; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ContentValues; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.database.sqlite.SQLiteDatabase; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.PerformanceTestCase; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.Assert; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestCase; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.File; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.Random; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Database Performance Tests 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class NewDatabasePerformanceTests { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Edit this to change the test run times. The original is 100. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final static int kMultiplier = 1; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class PerformanceBase extends TestCase 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project implements PerformanceTestCase { 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected static final int CURRENT_DATABASE_VERSION = 42; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected SQLiteDatabase mDatabase; 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected File mDatabaseFile; 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabaseFile = new File("/sdcard", "perf_database_test.db"); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mDatabaseFile.exists()) { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabaseFile.delete(); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase = 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SQLiteDatabase.openOrCreateDatabase(mDatabaseFile.getPath(), 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project null); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mDatabase != null); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.setVersion(CURRENT_DATABASE_VERSION); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void tearDown() { 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.close(); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabaseFile.delete(); 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isPerformanceOnly() { 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These tests can only be run once. 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int startPerformance(Intermediates intermediates) { 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String numberName(int number) { 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String result = ""; 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number >= 1000) { 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project result += numberName((number / 1000)) + " thousand"; 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project number = (number % 1000); 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number > 0) result += " "; 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number >= 100) { 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project result += ONES[(number / 100)] + " hundred"; 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project number = (number % 100); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number > 0) result += " "; 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number >= 20) { 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project result += TENS[(number / 10)]; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project number = (number % 10); 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number > 0) result += " "; 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (number > 0) { 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project result += ONES[number]; 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Test 1000 inserts. 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class Insert1000 extends PerformanceBase { 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] statements = new String[SIZE]; 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project statements[i] = 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "INSERT INTO t1 VALUES(" + i + "," + r + ",'" 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"; 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL(statements[i]); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Test 1000 inserts into an indexed table. 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InsertIndexed1000 extends PerformanceBase { 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] statements = new String[SIZE]; 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project statements[i] = 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "INSERT INTO t1 VALUES(" + i + "," + r + ",'" 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"; 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1c ON t1(c)"); 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL(statements[i]); 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs without an index 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class Select100 extends PerformanceBase { 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "b >= " + lower + " AND b < " + upper; 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .query("t1", COLUMNS, where[i], null, null, null, null); 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on a string comparison 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectStringComparison100 extends PerformanceBase { 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "c LIKE '" + numberName(i) + "'"; 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .query("t1", COLUMNS, where[i], null, null, null, null); 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs with an index 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectIndex100 extends PerformanceBase { 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "b >= " + lower + " AND b < " + upper; 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .query("t1", COLUMNS, where[i], null, null, null, null); 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * INNER JOIN without an index 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InnerJoin100 extends PerformanceBase { 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t1.a"}; 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1 INNER JOIN t2 ON t1.b = t2.b", COLUMNS, null, 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project null, null, null, null); 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * INNER JOIN without an index on one side 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InnerJoinOneSide100 extends PerformanceBase { 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t1.a"}; 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1 INNER JOIN t2 ON t1.b = t2.b", COLUMNS, null, 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project null, null, null, null); 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * INNER JOIN without an index on one side 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InnerJoinNoIndex100 extends PerformanceBase { 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t1.a"}; 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1 INNER JOIN t2 ON t1.c = t2.c", COLUMNS, null, 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project null, null, null, null); 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs with subqueries. Subquery is using an index 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectSubQIndex100 extends PerformanceBase { 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t1.a"}; 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100))"); 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i2b ON t2(b)"); 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t2 VALUES(" + i + "," + r + ",'" 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "t1.b IN (SELECT t2.b FROM t2 WHERE t2.b >= " + lower 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " AND t2.b < " + upper + ")"; 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .query("t1", COLUMNS, where[i], null, null, null, null); 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on string comparison with Index 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectIndexStringComparison100 extends PerformanceBase { 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"count(*)", "avg(b)"}; 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i3c ON t1(c)"); 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "c LIKE '" + numberName(i) + "'"; 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .query("t1", COLUMNS, where[i], null, null, null, null); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on integer 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectInteger100 extends PerformanceBase { 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"b"}; 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1", COLUMNS, null, null, null, null, null); 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on String 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectString100 extends PerformanceBase { 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"c"}; 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1", COLUMNS, null, null, null, null, null); 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on integer with index 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectIntegerIndex100 extends PerformanceBase { 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"b"}; 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1b on t1(b)"); 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1", COLUMNS, null, null, null, null, null); 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on String with index 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectIndexString100 extends PerformanceBase { 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"c"}; 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1c ON t1(c)"); 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t1", COLUMNS, null, null, null, null, null); 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 100 SELECTs on String with starts with 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectStringStartsWith100 extends PerformanceBase { 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 1 * kMultiplier; 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"c"}; 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1c ON t1(c)"); 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "c LIKE '" + numberName(r).substring(0, 1) + "*'"; 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .query("t1", COLUMNS, where[i], null, null, null, null); 6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 Deletes on an indexed table 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class DeleteIndexed1000 extends PerformanceBase { 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"c"}; 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i3c ON t1(c)"); 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.delete("t1", null, null); 6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 Deletes 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class Delete1000 extends PerformanceBase { 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"c"}; 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.delete("t1", null, null); 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 DELETE's without an index with where clause 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class DeleteWhere1000 extends PerformanceBase { 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "b >= " + lower + " AND b < " + upper; 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.delete("t1", where[i], null); 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 DELETE's with an index with where clause 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class DeleteIndexWhere1000 extends PerformanceBase { 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "b >= " + lower + " AND b < " + upper; 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.delete("t1", where[i], null); 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 update's with an index with where clause 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class UpdateIndexWhere1000 extends PerformanceBase { 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues[] mValues = new ContentValues[SIZE]; 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1b ON t1(b)"); 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "b >= " + lower + " AND b < " + upper; 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues b = new ContentValues(1); 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.put("b", upper); 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues[i] = b; 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.update("t1", mValues[i], where[i], null); 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1000 update's without an index with where clause 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class UpdateWhere1000 extends PerformanceBase { 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 10 * kMultiplier; 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues[] mValues = new ContentValues[SIZE]; 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100))"); 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t1 VALUES(" + i + "," + r + ",'" 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "b >= " + lower + " AND b < " + upper; 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues b = new ContentValues(1); 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.put("b", upper); 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues[i] = b; 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.update("t1", mValues[i], where[i], null); 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 inserts for an integer 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InsertInteger10000 extends PerformanceBase { 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues[] mValues = new ContentValues[SIZE]; 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER)"); 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues b = new ContentValues(1); 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.put("a", r); 8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues[i] = b; 8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.insert("t1", null, mValues[i]); 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 inserts for an integer -indexed table 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InsertIntegerIndex10000 extends PerformanceBase { 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues[] mValues = new ContentValues[SIZE]; 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a INTEGER)"); 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1a ON t1(a)"); 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues b = new ContentValues(1); 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.put("a", r); 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues[i] = b; 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.insert("t1", null, mValues[i]); 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 inserts for a String 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InsertString10000 extends PerformanceBase { 9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues[] mValues = new ContentValues[SIZE]; 9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a VARCHAR(100))"); 9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues b = new ContentValues(1); 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.put("a", numberName(r)); 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues[i] = b; 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.insert("t1", null, mValues[i]); 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 inserts for a String - indexed table 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class InsertStringIndexed10000 extends PerformanceBase { 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues[] mValues = new ContentValues[SIZE]; 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t1(a VARCHAR(100))"); 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i1a ON t1(a)"); 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ContentValues b = new ContentValues(1); 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project b.put("a", numberName(r)); 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mValues[i] = b; 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.insert("t1", null, mValues[i]); 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 selects for a String -starts with 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectStringStartsWith10000 extends PerformanceBase { 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t3.a"}; 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t3 VALUES('" 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "a LIKE '" + numberName(r).substring(0, 1) + "*'"; 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 selects for a String - indexed table -starts with 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectStringIndexedStartsWith10000 extends 10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PerformanceBase { 10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t3.a"}; 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i3a ON t3(a)"); 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t3 VALUES('" 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "a LIKE '" + numberName(r).substring(0, 1) + "*'"; 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 selects for an integer - 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectInteger10000 extends PerformanceBase { 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t4.a"}; 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t4(a INTEGER)"); 10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t4 VALUES(" + r + ")"); 11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "a >= " + lower + " AND a < " + upper; 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t4", COLUMNS, where[i], null, null, null, null); 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 selects for an integer -indexed table 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectIntegerIndexed10000 extends PerformanceBase { 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t4.a"}; 11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t4(a INTEGER)"); 11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i4a ON t4(a)"); 11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t4 VALUES(" + r + ")"); 11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int lower = i * 100; 11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int upper = (i + 10) * 100; 11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "a >= " + lower + " AND a < " + upper; 11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t4", COLUMNS, where[i], null, null, null, null); 11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 selects for a String - contains 'e' 11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectStringContains10000 extends PerformanceBase { 11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t3.a"}; 11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t3 VALUES('" 11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "a LIKE '*e*'"; 11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10000 selects for a String - contains 'e'-indexed table 11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class SelectStringIndexedContains10000 extends 11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PerformanceBase { 11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int SIZE = 100 * kMultiplier; 11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String[] COLUMNS = {"t3.a"}; 11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String[] where = new String[SIZE]; 11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Random random = new Random(42); 12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase 12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .execSQL("CREATE TABLE t3(a VARCHAR(100))"); 12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("CREATE INDEX i3a ON t3(a)"); 12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int r = random.nextInt(100000); 12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.execSQL("INSERT INTO t3 VALUES('" 12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + numberName(r) + "')"); 12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where[i] = "a LIKE '*e*'"; 12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testRun() { 12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < SIZE; i++) { 12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mDatabase.query("t3", COLUMNS, where[i], null, null, null, null); 12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String[] ONES = 12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {"zero", "one", "two", "three", "four", "five", "six", "seven", 12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "eight", "nine", "ten", "eleven", "twelve", "thirteen", 12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", 12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "nineteen"}; 12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String[] TENS = 12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", 12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "seventy", "eighty", "ninety"}; 12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1235