File Annotation
Not logged in
dbda8d6ce9 2007-07-21       drh: /*
dbda8d6ce9 2007-07-21       drh: ** Copyright (c) 2007 D. Richard Hipp
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: ** This program is free software; you can redistribute it and/or
dbda8d6ce9 2007-07-21       drh: ** modify it under the terms of the GNU General Public
dbda8d6ce9 2007-07-21       drh: ** License version 2 as published by the Free Software Foundation.
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: ** This program is distributed in the hope that it will be useful,
dbda8d6ce9 2007-07-21       drh: ** but WITHOUT ANY WARRANTY; without even the implied warranty of
dbda8d6ce9 2007-07-21       drh: ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
dbda8d6ce9 2007-07-21       drh: ** General Public License for more details.
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: ** You should have received a copy of the GNU General Public
dbda8d6ce9 2007-07-21       drh: ** License along with this library; if not, write to the
dbda8d6ce9 2007-07-21       drh: ** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dbda8d6ce9 2007-07-21       drh: ** Boston, MA  02111-1307, USA.
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: ** Author contact information:
dbda8d6ce9 2007-07-21       drh: **   drh@hwaci.com
dbda8d6ce9 2007-07-21       drh: **   http://www.hwaci.com/drh/
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: *******************************************************************************
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: ** This file contains string constants that implement the database schema.
dbda8d6ce9 2007-07-21       drh: */
dbda8d6ce9 2007-07-21       drh: #include "config.h"
dbda8d6ce9 2007-07-21       drh: #include "schema.h"
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: /*
dbda8d6ce9 2007-07-21       drh: ** The database schema for the ~/.fossil configuration database.
dbda8d6ce9 2007-07-21       drh: */
dbda8d6ce9 2007-07-21       drh: const char zConfigSchema[] =
dbda8d6ce9 2007-07-21       drh: @ -- This file contains the schema for the database that is kept in the
dbda8d6ce9 2007-07-21       drh: @ -- ~/.fossil file and that stores information about the users setup.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE global_config(
dbda8d6ce9 2007-07-21       drh: @   name TEXT PRIMARY KEY,
dbda8d6ce9 2007-07-21       drh: @   value TEXT
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: ;
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: #if INTERFACE
dbda8d6ce9 2007-07-21       drh: /*
dbda8d6ce9 2007-07-21       drh: ** The content tables have a content version number which rarely
dbda8d6ce9 2007-07-21       drh: ** changes.  The aux tables have an arbitrary version number (typically
dbda8d6ce9 2007-07-21       drh: ** a date) which can change frequently.  When the content schema changes,
dbda8d6ce9 2007-07-21       drh: ** we have to execute special procedures to update the schema.  When
dbda8d6ce9 2007-07-21       drh: ** the aux schema changes, all we need to do is rebuild the database.
dbda8d6ce9 2007-07-21       drh: */
dbda8d6ce9 2007-07-21       drh: #define CONTENT_SCHEMA  "1"
dbda8d6ce9 2007-07-21       drh: #define AUX_SCHEMA      "2006-12-23"
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: #endif /* INTERFACE */
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: /*
dbda8d6ce9 2007-07-21       drh: ** The schema for a repository database.
dbda8d6ce9 2007-07-21       drh: **
dbda8d6ce9 2007-07-21       drh: ** Schema1[] contains parts of the schema that are fixed and unchanging
dbda8d6ce9 2007-07-21       drh: ** across versions.  Schema2[] contains parts of the schema that can
dbda8d6ce9 2007-07-21       drh: ** change from one version to the next.  The information in Schema2[]
dbda8d6ce9 2007-07-21       drh: ** can be reconstructed from the information in Schema1[].
dbda8d6ce9 2007-07-21       drh: */
dbda8d6ce9 2007-07-21       drh: const char zRepositorySchema1[] =
dbda8d6ce9 2007-07-21       drh: @ -- The BLOB and DELTA tables contain all records held in the repository.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ -- The BLOB.CONTENT column is always compressed using libz.  This
dbda8d6ce9 2007-07-21       drh: @ -- column might hold the full text of the record or it might hold
dbda8d6ce9 2007-07-21       drh: @ -- a delta that is able to reconstruct the record from some other
dbda8d6ce9 2007-07-21       drh: @ -- record.  If BLOB.CONTENT holds a delta, then a DELTA table entry
dbda8d6ce9 2007-07-21       drh: @ -- will exist for the record and that entry will point to another
dbda8d6ce9 2007-07-21       drh: @ -- entry that holds the source of the delta.  Deltas can be chained.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE blob(
dbda8d6ce9 2007-07-21       drh: @   rid INTEGER PRIMARY KEY,        -- Record ID
dbda8d6ce9 2007-07-21       drh: @   rcvid INTEGER,                  -- Origin of this record
dbda8d6ce9 2007-07-21       drh: @   size INTEGER,                   -- Size of content. -1 for a phantom.
dbda8d6ce9 2007-07-21       drh: @   uuid TEXT UNIQUE,               -- SHA1 hash of the content
dbda8d6ce9 2007-07-21       drh: @   content BLOB                    -- Compressed content of this record
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE delta(
dbda8d6ce9 2007-07-21       drh: @   rid INTEGER PRIMARY KEY,                 -- Record ID
dbda8d6ce9 2007-07-21       drh: @   srcid INTEGER NOT NULL REFERENCES blob   -- Record holding source document
dbda8d6ce9 2007-07-21       drh: @ );
eea381f416 2007-08-09       drh: @ CREATE INDEX delta_i1 ON delta(srcid);
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- Whenever new blobs are received into the repository, an entry
dbda8d6ce9 2007-07-21       drh: @ -- in this table records the source of the blob.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE rcvfrom(
dbda8d6ce9 2007-07-21       drh: @   rcvid INTEGER PRIMARY KEY,      -- Received-From ID
dbda8d6ce9 2007-07-21       drh: @   uid INTEGER REFERENCES user,    -- User login
dbda8d6ce9 2007-07-21       drh: @   mtime DATETIME,                 -- Time or receipt
dbda8d6ce9 2007-07-21       drh: @   nonce TEXT UNIQUE,              -- Nonce used for login
dbda8d6ce9 2007-07-21       drh: @   ipaddr TEXT                     -- Remote IP address.  NULL for direct.
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- Information about users
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE user(
dbda8d6ce9 2007-07-21       drh: @   uid INTEGER PRIMARY KEY,        -- User ID
dbda8d6ce9 2007-07-21       drh: @   login TEXT,                     -- login name of the user
dbda8d6ce9 2007-07-21       drh: @   pw TEXT,                        -- password
dbda8d6ce9 2007-07-21       drh: @   cap TEXT,                       -- Capabilities of this user
dbda8d6ce9 2007-07-21       drh: @   cookie TEXT,                    -- WWW login cookie
dbda8d6ce9 2007-07-21       drh: @   ipaddr TEXT,                    -- IP address for which cookie is valid
dbda8d6ce9 2007-07-21       drh: @   cexpire DATETIME,               -- Time when cookie expires
dbda8d6ce9 2007-07-21       drh: @   info TEXT,                      -- contact information
dbda8d6ce9 2007-07-21       drh: @   photo BLOB                      -- JPEG image of this user
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- The VAR table holds miscellanous information about the repository.
dbda8d6ce9 2007-07-21       drh: @ -- in the form of name-value pairs.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE config(
dbda8d6ce9 2007-07-21       drh: @   name TEXT PRIMARY KEY NOT NULL,  -- Primary name of the entry
dbda8d6ce9 2007-07-21       drh: @   value CLOB,                      -- Content of the named parameter
dbda8d6ce9 2007-07-21       drh: @   CHECK( typeof(name)='text' AND length(name)>=1 )
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: ;
dbda8d6ce9 2007-07-21       drh: const char zRepositorySchema2[] =
dbda8d6ce9 2007-07-21       drh: @ -- Filenames
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE filename(
dbda8d6ce9 2007-07-21       drh: @   fnid INTEGER PRIMARY KEY,    -- Filename ID
dbda8d6ce9 2007-07-21       drh: @   name TEXT UNIQUE             -- Name of file page
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- Linkages between manifests, files created by that manifest, and
dbda8d6ce9 2007-07-21       drh: @ -- the names of those files.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE mlink(
dbda8d6ce9 2007-07-21       drh: @   mid INTEGER REFERENCES blob,        -- Manifest ID where change occurs
dbda8d6ce9 2007-07-21       drh: @   pid INTEGER REFERENCES blob,        -- File ID in parent manifest
dbda8d6ce9 2007-07-21       drh: @   fid INTEGER REFERENCES blob,        -- Changed file ID in this manifest
dbda8d6ce9 2007-07-21       drh: @   fnid INTEGER REFERENCES filename    -- Name of the file
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @ CREATE INDEX mlink_i1 ON mlink(mid);
dbda8d6ce9 2007-07-21       drh: @ CREATE INDEX mlink_i2 ON mlink(fnid);
73bddaebb9 2007-08-09       drh: @ CREATE INDEX mlink_i3 ON mlink(fid);
73bddaebb9 2007-08-09       drh: @ CREATE INDEX mlink_i4 ON mlink(pid);
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- Parent/child linkages
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE plink(
dbda8d6ce9 2007-07-21       drh: @   pid INTEGER REFERENCES blob,    -- Parent manifest
dbda8d6ce9 2007-07-21       drh: @   cid INTEGER REFERENCES blob,    -- Child manifest
dbda8d6ce9 2007-07-21       drh: @   isprim BOOLEAN,                 -- pid is the primary parent of cid
dbda8d6ce9 2007-07-21       drh: @   mtime DATETIME,                 -- the date/time stamp on cid
dbda8d6ce9 2007-07-21       drh: @   UNIQUE(pid, cid)
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @ CREATE INDEX plink_i2 ON plink(cid);
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- Events used to generate a timeline
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE event(
2bc0e2c565 2007-09-21       drh: @   type TEXT,                      -- Type of event
2bc0e2c565 2007-09-21       drh: @   mtime DATETIME,                 -- Date and time when the event occurs
2bc0e2c565 2007-09-21       drh: @   objid INTEGER PRIMARY KEY,      -- Associated record ID
2bc0e2c565 2007-09-21       drh: @   uid INTEGER REFERENCES user,    -- User who caused the event
3b5514ed82 2007-09-22       drh: @   bgcolor TEXT,                   -- Color set by 'bgcolor' property
3b5514ed82 2007-09-22       drh: @   brbgcolor TEXT,                 -- Color set by 'br-bgcolor' property
3b5514ed82 2007-09-22       drh: @   euser TEXT,                     -- User set by 'user' property
2bc0e2c565 2007-09-21       drh: @   user TEXT,                      -- Name of the user
3b5514ed82 2007-09-22       drh: @   ecomment TEXT,                  -- Comment set by 'comment' property
2bc0e2c565 2007-09-21       drh: @   comment TEXT                    -- Comment describing the event
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @ CREATE INDEX event_i1 ON event(mtime);
73bddaebb9 2007-08-09       drh: @
48c4e69d2b 2007-09-09       drh: @ -- A record of phantoms.  A phantom is a record for which we know the
48c4e69d2b 2007-09-09       drh: @ -- UUID but we do not (yet) know the file content.
73bddaebb9 2007-08-09       drh: @ --
73bddaebb9 2007-08-09       drh: @ CREATE TABLE phantom(
73bddaebb9 2007-08-09       drh: @   rid INTEGER PRIMARY KEY         -- Record ID of the phantom
73bddaebb9 2007-08-09       drh: @ );
73bddaebb9 2007-08-09       drh: @
ba486fec5a 2007-09-03       drh: @ -- Unclustered records.  An unclustered record is a record (including
ba486fec5a 2007-09-03       drh: @ -- a cluster records themselves) that is not mentioned by some other
ba486fec5a 2007-09-03       drh: @ -- cluster.
48c4e69d2b 2007-09-09       drh: @ --
48c4e69d2b 2007-09-09       drh: @ -- Phantoms are usually included in the unclustered table.  A new cluster
48c4e69d2b 2007-09-09       drh: @ -- will never be created that contains a phantom.  But another repository
48c4e69d2b 2007-09-09       drh: @ -- might send us a cluster that contains entries that are phantoms to
48c4e69d2b 2007-09-09       drh: @ -- us.
ba486fec5a 2007-09-03       drh: @ --
ba486fec5a 2007-09-03       drh: @ CREATE TABLE unclustered(
ba486fec5a 2007-09-03       drh: @   rid INTEGER PRIMARY KEY         -- Record ID of the unclustered file
ba486fec5a 2007-09-03       drh: @ );
ba486fec5a 2007-09-03       drh: @
ba486fec5a 2007-09-03       drh: @ -- Records which have never been pushed to another server.  This is
ba486fec5a 2007-09-03       drh: @ -- used to reduce push operations to a single HTTP request in the
ba486fec5a 2007-09-03       drh: @ -- common case when one repository only talks to a single server.
ba486fec5a 2007-09-03       drh: @ --
ba486fec5a 2007-09-03       drh: @ CREATE TABLE unsent(
ba486fec5a 2007-09-03       drh: @   rid INTEGER PRIMARY KEY         -- Record ID of the phantom
ba486fec5a 2007-09-03       drh: @ );
dbda8d6ce9 2007-07-21       drh: @
2bc0e2c565 2007-09-21       drh: @ -- Each baseline or manifest can have one or more tags.  A tag
2bc0e2c565 2007-09-21       drh: @ -- is defined by a row in the next table.
2bc0e2c565 2007-09-21       drh: @ --
2bc0e2c565 2007-09-21       drh: @ -- Tags that begin with "br" automatically propagate to direct
2bc0e2c565 2007-09-21       drh: @ -- children, but not to merge children.
dbda8d6ce9 2007-07-21       drh: @ --
2bc0e2c565 2007-09-21       drh: @ CREATE TABLE tag(
2bc0e2c565 2007-09-21       drh: @   tagid INTEGER PRIMARY KEY,       -- Numeric tag ID
2bc0e2c565 2007-09-21       drh: @   tagname TEXT UNIQUE              -- Tag name.  Prefixed by 'v' or 'b'
73bddaebb9 2007-08-09       drh: @ );
3b5514ed82 2007-09-22       drh: @ INSERT INTO tag VALUES(1, 'bgcolor');         -- TAG_BGCOLOR
3b5514ed82 2007-09-22       drh: @ INSERT INTO tag VALUES(2, 'br-bgcolor');      -- TAG_BR_BGCOLOR
3b5514ed82 2007-09-22       drh: @ INSERT INTO tag VALUES(3, 'comment');         -- TAG_COMMENT
3b5514ed82 2007-09-22       drh: @ INSERT INTO tag VALUES(4, 'user');            -- TAG_USER
dbda8d6ce9 2007-07-21       drh: @
5e2392307d 2007-09-22       drh: @ -- Assignments of tags to baselines.  Note that we allow tags to
5e2392307d 2007-09-22       drh: @ -- have values assigned to them.  So we are not really dealing with
5e2392307d 2007-09-22       drh: @ -- tags here.  These are really properties.  But we are going to
5e2392307d 2007-09-22       drh: @ -- keep calling them tags because in many cases the value is ignored.
dbda8d6ce9 2007-07-21       drh: @ --
2bc0e2c565 2007-09-21       drh: @ CREATE TABLE tagxref(
2bc0e2c565 2007-09-21       drh: @   tagid INTEGER REFERENCES tag,   -- The tag that added or removed
2bc0e2c565 2007-09-21       drh: @   addFlag BOOLEAN,                -- True to add the tag, False to remove
2bc0e2c565 2007-09-21       drh: @   srcid INTEGER REFERENCES blob,  -- Origin of the tag. 0 for propagated tags
5e2392307d 2007-09-22       drh: @   value TEXT,                     -- Value of the tag.  Might be NULL.
2bc0e2c565 2007-09-21       drh: @   mtime TIMESTAMP,                -- Time of addition or removal
2bc0e2c565 2007-09-21       drh: @   rid INTEGER REFERENCE blob,     -- Baseline that tag added/removed from
2bc0e2c565 2007-09-21       drh: @   UNIQUE(rid, tagid)
dbda8d6ce9 2007-07-21       drh: @ );
5e2392307d 2007-09-22       drh: @ CREATE INDEX tagxref_i1 ON tagxref(tagid);
dbda8d6ce9 2007-07-21       drh: ;
3b5514ed82 2007-09-22       drh: 
3b5514ed82 2007-09-22       drh: /*
3b5514ed82 2007-09-22       drh: ** Predefined tagid values
3b5514ed82 2007-09-22       drh: */
3b5514ed82 2007-09-22       drh: #if INTERFACE
3b5514ed82 2007-09-22       drh: # define TAG_BGCOLOR    1
3b5514ed82 2007-09-22       drh: # define TAG_BR_BGCOLOR 2
3b5514ed82 2007-09-22       drh: # define TAG_COMMENT    3
3b5514ed82 2007-09-22       drh: # define TAG_USER       4
3b5514ed82 2007-09-22       drh: #endif
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: /*
dbda8d6ce9 2007-07-21       drh: ** The schema for the locate FOSSIL database file found at the root
dbda8d6ce9 2007-07-21       drh: ** of very check-out.  This database contains the complete state of
dbda8d6ce9 2007-07-21       drh: ** the checkout.
dbda8d6ce9 2007-07-21       drh: */
dbda8d6ce9 2007-07-21       drh: const char zLocalSchema[] =
dbda8d6ce9 2007-07-21       drh: @ -- The VVAR table holds miscellanous information about the local database
dbda8d6ce9 2007-07-21       drh: @ -- in the form of name-value pairs.  This is similar to the VAR table
dbda8d6ce9 2007-07-21       drh: @ -- table in the repository except that this table holds information that
dbda8d6ce9 2007-07-21       drh: @ -- is specific to the local checkout.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ -- Important Variables:
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ --     repository        Full pathname of the repository database
dbda8d6ce9 2007-07-21       drh: @ --     user-id           Userid to use
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE vvar(
dbda8d6ce9 2007-07-21       drh: @   name TEXT PRIMARY KEY NOT NULL,  -- Primary name of the entry
dbda8d6ce9 2007-07-21       drh: @   value CLOB,                      -- Content of the named parameter
dbda8d6ce9 2007-07-21       drh: @   CHECK( typeof(name)='text' AND length(name)>=1 )
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- Each entry in the vfile table represents a single file or folder
dbda8d6ce9 2007-07-21       drh: @ -- that is part of a version.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ -- The file.rid field is 0 for files or folders that have been
dbda8d6ce9 2007-07-21       drh: @ -- added but not yet committed.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ -- Vfile.chnged is 0 for unmodified files, 1 for files that have
dbda8d6ce9 2007-07-21       drh: @ -- been edited or which have been subjected to a 3-way merge.
dbda8d6ce9 2007-07-21       drh: @ -- Vfile.chnged is 2 if the file has been replaced from a different
dbda8d6ce9 2007-07-21       drh: @ -- version by the merge and 3 if the file has been added by a merge.
dbda8d6ce9 2007-07-21       drh: @ -- The difference between vfile.chnged==2 and a regular add is that
dbda8d6ce9 2007-07-21       drh: @ -- with vfile.chnged==2 we know that the current version of the file
dbda8d6ce9 2007-07-21       drh: @ -- is already in the repository.
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE vfile(
dbda8d6ce9 2007-07-21       drh: @   id INTEGER PRIMARY KEY,           -- ID of the checked out file
32c639d086 2007-08-26       aku: @   vid INTEGER REFERENCES blob,      -- The version this file is part of.
dbda8d6ce9 2007-07-21       drh: @   chnged INT DEFAULT 0,             -- 0:unchnged 1:edited 2:m-chng 3:m-add
dbda8d6ce9 2007-07-21       drh: @   deleted BOOLEAN DEFAULT 0,        -- True if deleted
dbda8d6ce9 2007-07-21       drh: @   rid INTEGER,                      -- Originally from this repository record
dbda8d6ce9 2007-07-21       drh: @   mrid INTEGER,                     -- Based on this record due to a merge
dbda8d6ce9 2007-07-21       drh: @   pathname TEXT,                    -- Full pathname
dbda8d6ce9 2007-07-21       drh: @   UNIQUE(pathname,vid)
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ -- This table holds a record of uncommitted merges in the local
dbda8d6ce9 2007-07-21       drh: @ -- file tree.  If a VFILE entry with id has merged with another
dbda8d6ce9 2007-07-21       drh: @ -- record, there is an entry in this table with (id,merge) where
dbda8d6ce9 2007-07-21       drh: @ -- merge is the RECORD table entry that the file merged against.
dbda8d6ce9 2007-07-21       drh: @ -- An id of 0 here means the version record itself.
dbda8d6ce9 2007-07-21       drh: @
dbda8d6ce9 2007-07-21       drh: @ CREATE TABLE vmerge(
dbda8d6ce9 2007-07-21       drh: @   id INTEGER REFERENCES vfile,      -- VFILE entry that has been merged
4c82c7773f 2007-08-30       drh: @   merge INTEGER,                    -- Merged with this record
4c82c7773f 2007-08-30       drh: @   UNIQUE(id, merge)
dbda8d6ce9 2007-07-21       drh: @ );
a36177bcce 2007-09-11       drh: @
dbda8d6ce9 2007-07-21       drh: ;
dbda8d6ce9 2007-07-21       drh: 
dbda8d6ce9 2007-07-21       drh: const char zServerTempSchema[] =
dbda8d6ce9 2007-07-21       drh: @ -- A copy of the vfile table schema used by the WWW server
dbda8d6ce9 2007-07-21       drh: @ --
dbda8d6ce9 2007-07-21       drh: @ CREATE TEMP TABLE vfile(
dbda8d6ce9 2007-07-21       drh: @   id INTEGER PRIMARY KEY,           -- ID of the checked out file
dbda8d6ce9 2007-07-21       drh: @   vid INTEGER REFERENCES record,    -- The version this file is part of.
dbda8d6ce9 2007-07-21       drh: @   chnged INT DEFAULT 0,             -- 0:unchnged 1:edited 2:m-chng 3:m-add
dbda8d6ce9 2007-07-21       drh: @   deleted BOOLEAN DEFAULT 0,        -- True if deleted
dbda8d6ce9 2007-07-21       drh: @   rid INTEGER,                      -- Originally from this repository record
dbda8d6ce9 2007-07-21       drh: @   mrid INTEGER,                     -- Based on this record due to a merge
dbda8d6ce9 2007-07-21       drh: @   pathname TEXT,                    -- Full pathname
dbda8d6ce9 2007-07-21       drh: @   UNIQUE(pathname,vid)
dbda8d6ce9 2007-07-21       drh: @ );
dbda8d6ce9 2007-07-21       drh: ;