package com.apollographql.apollo.cache.normalized.sql; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class ApolloSqlHelper extends SQLiteOpenHelper { public static final String TABLE_RECORDS = "records"; public static final String COLUMN_ID = "_id"; public static final String COLUMN_RECORD = "record"; public static final String COLUMN_KEY = "key"; private static final String DATABASE_NAME = "apollo.db"; private static final int DATABASE_VERSION = 1; // Database creation sql statement private static final String DATABASE_CREATE = String.format( "create table %s( %s integer primary key autoincrement, %s text not null, %s text not null);", TABLE_RECORDS, COLUMN_ID, COLUMN_KEY, COLUMN_RECORD); public static final String IDX_RECORDS_KEY = "idx_records_key"; private static final String CREATE_KEY_INDEX = String.format("CREATE INDEX %s ON %s (%s)", IDX_RECORDS_KEY, TABLE_RECORDS, COLUMN_KEY); private ApolloSqlHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } public ApolloSqlHelper(Context context, String name) { super(context, name, null, DATABASE_VERSION); } public static ApolloSqlHelper create(Context context) { return new ApolloSqlHelper(context); } public static ApolloSqlHelper create(Context context, String name) { return new ApolloSqlHelper(context, name); } @Override public void onCreate(SQLiteDatabase database) { database.execSQL(DATABASE_CREATE); database.execSQL(CREATE_KEY_INDEX); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_RECORDS); onCreate(db); } }