| Index: components/sync/syncable/syncable_columns.h
|
| diff --git a/components/sync/syncable/syncable_columns.h b/components/sync/syncable/syncable_columns.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..23b1871a133210f8fb53b1f0463d31bc647b4e0e
|
| --- /dev/null
|
| +++ b/components/sync/syncable/syncable_columns.h
|
| @@ -0,0 +1,87 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef COMPONENTS_SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_
|
| +#define COMPONENTS_SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_
|
| +
|
| +#include "base/macros.h"
|
| +#include "components/sync/syncable/entry_kernel.h"
|
| +#include "components/sync/syncable/syncable_changes_version.h"
|
| +
|
| +namespace syncer {
|
| +namespace syncable {
|
| +
|
| +struct ColumnSpec {
|
| + const char* name;
|
| + const char* spec;
|
| +};
|
| +
|
| +// Must be in exact same order as fields in entry_kernel.h.
|
| +static const ColumnSpec g_metas_columns[] = {
|
| + //////////////////////////////////////
|
| + // int64s
|
| + {"metahandle", "bigint primary key ON CONFLICT FAIL"},
|
| + {"base_version", "bigint default " CHANGES_VERSION_STRING},
|
| + {"server_version", "bigint default 0"},
|
| + // This is the item ID that we store for the embedding application.
|
| + {"local_external_id", "bigint default 0"},
|
| + {"transaction_version", "bigint default 0"},
|
| + // These timestamps are kept in the same format as that of the
|
| + // protocol (ms since Unix epoch).
|
| + {"mtime", "bigint default 0"},
|
| + {"server_mtime", "bigint default 0"},
|
| + {"ctime", "bigint default 0"},
|
| + {"server_ctime", "bigint default 0"},
|
| + //////////////////////////////////////
|
| + // Ids
|
| + {"id", "varchar(255) default \"r\""},
|
| + {"parent_id", "varchar(255) default \"r\""},
|
| + {"server_parent_id", "varchar(255) default \"r\""},
|
| + //////////////////////////////////////
|
| + // bits
|
| + {"is_unsynced", "bit default 0"},
|
| + {"is_unapplied_update", "bit default 0"},
|
| + {"is_del", "bit default 0"},
|
| + {"is_dir", "bit default 0"},
|
| + {"server_is_dir", "bit default 0"},
|
| + {"server_is_del", "bit default 0"},
|
| + //////////////////////////////////////
|
| + // Strings
|
| + {"non_unique_name", "varchar"},
|
| + {"server_non_unique_name", "varchar(255)"},
|
| + {"unique_server_tag", "varchar"},
|
| + {"unique_client_tag", "varchar"},
|
| + {"unique_bookmark_tag", "varchar"},
|
| + //////////////////////////////////////
|
| + // Blobs (serialized protos).
|
| + {"specifics", "blob"},
|
| + {"server_specifics", "blob"},
|
| + {"base_server_specifics", "blob"},
|
| + //////////////////////////////////////
|
| + // Blobs (positions).
|
| + {"server_unique_position", "blob"},
|
| + {"unique_position", "blob"},
|
| + //////////////////////////////////////
|
| + // AttachmentMetadata is a proto that contains all the metadata associated
|
| + // with an entry's attachments. Each entry has only one AttachmentMetadata
|
| + // proto. We store a single proto per entry (as opposed to one for each
|
| + // attachment) because it simplifies the database schema and implementation
|
| + // of
|
| + // DirectoryBackingStore.
|
| + {"attachment_metadata", "blob"},
|
| + {"server_attachment_metadata", "blob"}};
|
| +
|
| +// At least enforce that there are equal number of column names and fields.
|
| +static_assert(arraysize(g_metas_columns) >= FIELD_COUNT, "missing column name");
|
| +static_assert(arraysize(g_metas_columns) <= FIELD_COUNT, "extra column names");
|
| +
|
| +static inline const char* ColumnName(int field) {
|
| + DCHECK(field < BEGIN_TEMPS);
|
| + return g_metas_columns[field].name;
|
| +}
|
| +
|
| +} // namespace syncable
|
| +} // namespace syncer
|
| +
|
| +#endif // COMPONENTS_SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_
|
|
|