| Index: sql/recovery.cc | 
| diff --git a/sql/recovery.cc b/sql/recovery.cc | 
| index f9da40762bc444523a78b62a23b924a498d7cf7b..f179a636546b79ced978a55dca2482d6197a7d89 100644 | 
| --- a/sql/recovery.cc | 
| +++ b/sql/recovery.cc | 
| @@ -366,15 +366,10 @@ bool Recovery::AutoRecoverTable(const char* table_name, | 
| const bool default_is_null = (default_type == COLUMN_TYPE_NULL); | 
| const int pk_column = s.ColumnInt(5); | 
|  | 
| -    if (pk_column > 0) { | 
| -      // TODO(shess): http://www.sqlite.org/pragma.html#pragma_table_info | 
| -      // documents column 5 as the index of the column in the primary key | 
| -      // (zero for not in primary key).  I find that it is always 1 for | 
| -      // columns in the primary key.  Since this code is very dependent on | 
| -      // that pragma, review if the implementation changes. | 
| -      DCHECK_EQ(1, pk_column); | 
| +    // http://www.sqlite.org/pragma.html#pragma_table_info documents column 5 as | 
| +    // the 1-based index of the column in the primary key, otherwise 0. | 
| +    if (pk_column > 0) | 
| ++pk_column_count; | 
| -    } | 
|  | 
| // Construct column declaration as "name type [optional constraint]". | 
| std::string column_decl = column_name; | 
|  |