1289177Speter/* rep-cache-db.sql -- schema for use in rep-caching 2289177Speter * This is intended for use with SQLite 3 3289177Speter * 4289177Speter * ==================================================================== 5289177Speter * Licensed to the Apache Software Foundation (ASF) under one 6289177Speter * or more contributor license agreements. See the NOTICE file 7289177Speter * distributed with this work for additional information 8289177Speter * regarding copyright ownership. The ASF licenses this file 9289177Speter * to you under the Apache License, Version 2.0 (the 10289177Speter * "License"); you may not use this file except in compliance 11289177Speter * with the License. You may obtain a copy of the License at 12289177Speter * 13289177Speter * http://www.apache.org/licenses/LICENSE-2.0 14289177Speter * 15289177Speter * Unless required by applicable law or agreed to in writing, 16289177Speter * software distributed under the License is distributed on an 17289177Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18289177Speter * KIND, either express or implied. See the License for the 19289177Speter * specific language governing permissions and limitations 20289177Speter * under the License. 21289177Speter * ==================================================================== 22289177Speter */ 23289177Speter 24289177Speter-- STMT_CREATE_SCHEMA 25289177SpeterPRAGMA PAGE_SIZE = 4096; 26289177Speter 27289177Speter/* A table mapping representation hashes to locations in a rev file. */ 28289177SpeterCREATE TABLE rep_cache ( 29289177Speter hash TEXT NOT NULL PRIMARY KEY, 30289177Speter revision INTEGER NOT NULL, 31289177Speter offset INTEGER NOT NULL, 32289177Speter size INTEGER NOT NULL, 33289177Speter expanded_size INTEGER NOT NULL 34289177Speter ); 35289177Speter 36289177SpeterPRAGMA USER_VERSION = 1; 37289177Speter 38289177Speter 39289177Speter-- STMT_GET_REP 40289177SpeterSELECT revision, offset, size, expanded_size 41289177SpeterFROM rep_cache 42289177SpeterWHERE hash = ?1 43289177Speter 44289177Speter-- STMT_SET_REP 45289177SpeterINSERT OR FAIL INTO rep_cache (hash, revision, offset, size, expanded_size) 46289177SpeterVALUES (?1, ?2, ?3, ?4, ?5) 47289177Speter 48289177Speter-- STMT_GET_REPS_FOR_RANGE 49289177SpeterSELECT hash, revision, offset, size, expanded_size 50289177SpeterFROM rep_cache 51289177SpeterWHERE revision >= ?1 AND revision <= ?2 52289177Speter 53289177Speter-- STMT_GET_MAX_REV 54289177SpeterSELECT MAX(revision) 55289177SpeterFROM rep_cache 56289177Speter 57289177Speter-- STMT_DEL_REPS_YOUNGER_THAN_REV 58289177SpeterDELETE FROM rep_cache 59289177SpeterWHERE revision > ?1 60289177Speter 61289177Speter/* An INSERT takes an SQLite reserved lock that prevents other writes 62289177Speter but doesn't block reads. The incomplete transaction means that no 63289177Speter permanent change is made to the database and the transaction is 64289177Speter removed when the database is closed. */ 65289177Speter-- STMT_LOCK_REP 66289177SpeterBEGIN TRANSACTION; 67289177SpeterINSERT INTO rep_cache VALUES ('dummy', 0, 0, 0, 0) 68289177Speter 69289177Speter-- STMT_UNLOCK_REP 70289177SpeterROLLBACK TRANSACTION; 71