OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_ | 5 #ifndef SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_ |
6 #define SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_ | 6 #define SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_ |
7 | 7 |
8 #include "sync/syncable/entry_kernel.h" | 8 #include "sync/syncable/entry_kernel.h" |
9 #include "sync/syncable/syncable_changes_version.h" | 9 #include "sync/syncable/syncable_changes_version.h" |
10 | 10 |
11 namespace syncer { | 11 namespace syncer { |
12 namespace syncable { | 12 namespace syncable { |
13 | 13 |
14 struct ColumnSpec { | 14 struct ColumnSpec { |
15 const char* name; | 15 const char* name; |
16 const char* spec; | 16 const char* spec; |
17 }; | 17 }; |
18 | 18 |
19 // Must be in exact same order as fields in syncable. | 19 // Must be in exact same order as fields in entry_kernel.h. |
20 static const ColumnSpec g_metas_columns[] = { | 20 static const ColumnSpec g_metas_columns[] = { |
21 ////////////////////////////////////// | 21 ////////////////////////////////////// |
22 // int64s | 22 // int64s |
23 {"metahandle", "bigint primary key ON CONFLICT FAIL"}, | 23 {"metahandle", "bigint primary key ON CONFLICT FAIL"}, |
24 {"base_version", "bigint default " CHANGES_VERSION_STRING}, | 24 {"base_version", "bigint default " CHANGES_VERSION_STRING}, |
25 {"server_version", "bigint default 0"}, | 25 {"server_version", "bigint default 0"}, |
26 {"server_position_in_parent", "bigint default 0"}, | |
27 // This is the item ID that we store for the embedding application. | 26 // This is the item ID that we store for the embedding application. |
28 {"local_external_id", "bigint default 0"}, | 27 {"local_external_id", "bigint default 0"}, |
29 // These timestamps are kept in the same format as that of the | 28 // These timestamps are kept in the same format as that of the |
30 // protocol (ms since Unix epoch). | 29 // protocol (ms since Unix epoch). |
31 {"mtime", "bigint default 0"}, | 30 {"mtime", "bigint default 0"}, |
32 {"server_mtime", "bigint default 0"}, | 31 {"server_mtime", "bigint default 0"}, |
33 {"ctime", "bigint default 0"}, | 32 {"ctime", "bigint default 0"}, |
34 {"server_ctime", "bigint default 0"}, | 33 {"server_ctime", "bigint default 0"}, |
35 ////////////////////////////////////// | 34 ////////////////////////////////////// |
36 // Ids | 35 // Ids |
(...skipping 10 matching lines...) Expand all Loading... | |
47 {"is_dir", "bit default 0"}, | 46 {"is_dir", "bit default 0"}, |
48 {"server_is_dir", "bit default 0"}, | 47 {"server_is_dir", "bit default 0"}, |
49 {"server_is_del", "bit default 0"}, | 48 {"server_is_del", "bit default 0"}, |
50 ////////////////////////////////////// | 49 ////////////////////////////////////// |
51 // Strings | 50 // Strings |
52 {"non_unique_name", "varchar"}, | 51 {"non_unique_name", "varchar"}, |
53 {"server_non_unique_name", "varchar(255)"}, | 52 {"server_non_unique_name", "varchar(255)"}, |
54 {"unique_server_tag", "varchar"}, | 53 {"unique_server_tag", "varchar"}, |
55 {"unique_client_tag", "varchar"}, | 54 {"unique_client_tag", "varchar"}, |
56 ////////////////////////////////////// | 55 ////////////////////////////////////// |
57 // Blobs. | 56 // Blobs (serialized protos). |
akalin
2012/10/05 00:57:59
no period
| |
58 {"specifics", "blob"}, | 57 {"specifics", "blob"}, |
59 {"server_specifics", "blob"}, | 58 {"server_specifics", "blob"}, |
60 {"base_server_specifics", "blob"} | 59 {"base_server_specifics", "blob"}, |
60 ////////////////////////////////////// | |
61 // Blobs (ordinals) | |
62 {"server_ordinal_in_parent", "blob"}, | |
61 }; | 63 }; |
62 | 64 |
63 // At least enforce that there are equal number of column names and fields. | 65 // At least enforce that there are equal number of column names and fields. |
64 COMPILE_ASSERT(arraysize(g_metas_columns) >= FIELD_COUNT, missing_column_name); | 66 COMPILE_ASSERT(arraysize(g_metas_columns) >= FIELD_COUNT, missing_column_name); |
65 COMPILE_ASSERT(arraysize(g_metas_columns) <= FIELD_COUNT, extra_column_names); | 67 COMPILE_ASSERT(arraysize(g_metas_columns) <= FIELD_COUNT, extra_column_names); |
66 | 68 |
67 static inline const char* ColumnName(int field) { | 69 static inline const char* ColumnName(int field) { |
68 DCHECK(field < BEGIN_TEMPS); | 70 DCHECK(field < BEGIN_TEMPS); |
69 return g_metas_columns[field].name; | 71 return g_metas_columns[field].name; |
70 } | 72 } |
71 | 73 |
72 } // namespace syncable | 74 } // namespace syncable |
73 } // namespace syncer | 75 } // namespace syncer |
74 | 76 |
75 #endif // SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_ | 77 #endif // SYNC_SYNCABLE_SYNCABLE_COLUMNS_H_ |
OLD | NEW |