| 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). |
| 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 |