On Tue, Oct 8, 2013 at 12:01 PM, Holger Hans Peter Freyther
<[email protected]> wrote:
> On Tue, Oct 08, 2013 at 03:17:31AM +0200, Alexander Chemeris wrote:
>> The v4 DB scheme removes sender ID from the DB and stores individual values 
>> instead (sender addr, ton, npi). To convert an old DB to the new format we 
>> have to read all values from the old table and re-add them to the new one.
>
>
> we need to squash this with the previous commit and you should add
> line wrapping to your text as well.

Squashing will remove your copyright on the code, so I avoided that. I
don't see an issue with having two separate commits.

>> +#define SMS_TABLE_CREATE_STMT \
>
> Can you propose an alternative to move this out of the array?

Frankly speaking, I would move _all_ these statements to separate
#defines, to make the code clearer.

And no, I don't see a better way to do that.

>> +     /* Rename old SMS table to be able create a new one */
>> +     result = dbi_conn_query(conn,
>> +                             "ALTER TABLE SMS "
>> +                             "RENAME TO SMS_3");
>
> Okay, that is easier than adding a new column, populating it, removing
> the old one, changing the constraints. It is at the cost of having an
> additional parser routine.

The thin is that in SQLite you can't remove a column. So this is the
only possible way.

>> +     /* Mark SMS_3 table for removal */
>
> How is it marked? ;)

It's not actually removed from the file. VACUUM is needed to actually
remove the data. Thus "marked".

>> +     } else if (!strcmp(rev_s, "3")) {
>> +                     if (update_db_revision_3()) {
>                                 FAILURE
>
> reading it is odd, but this is how update_db_revision_2 is doing
> it.. you just copied it.

Yes, I didn't want to change the code style.

-- 
Regards,
Alexander Chemeris.
CEO, Fairwaves LLC / ООО УмРадио
http://fairwaves.ru

Reply via email to