I get:

RBU error: near ")": syntax error
ERROR 1, expected 101
Done - Press ENTER to exit.

with the current trunk ...

-- 
The fact that there's a Highway to Hell but only a Stairway to Heaven says a 
lot about anticipated traffic volume.

>-----Original Message-----
>From: sqlite-users <sqlite-users-boun...@mailinglists.sqlite.org> On
>Behalf Of Ralf Junker
>Sent: Sunday, 22 December, 2019 04:29
>To: sqlite-users@mailinglists.sqlite.org
>Subject: [sqlite] RBU fails as of checkin f84a1539 - fixed
>
>Replying to myself just to confirm that
>https://www.sqlite.org/src/info/0b9d8a1202c4220f fixes the problem.
>
>Thank you, Dan!
>
>Ralf
>
>On 20.12.2019 17:48, Ralf Junker wrote:
>
>> As of Fossil checkin f84a1539, the RBU code in the following C example
>> is no longer executed to completion. Instead, an error message is
>> generated and the result database is not correctly written.
>>
>> The code works fine with Fossil checkin 28091a48. It generates no error
>> messages and produces the expected result database.
>>
>> The problem is still present on trunk, checkin 289158aa at the time of
>> this writing.
>>
>> Could anyone reproduce my findings?
>>
>> Many thanks,
>>
>> Ralf
>>
>> ----------------------------------------------
>>
>> #include <stdio.h>
>> #include "sqlite3.h"
>> #include "sqlite3rbu.h"
>>
>> static void check(int r, int e) {
>>    if (r != e) {
>>      printf ("ERROR %d, expected %d\n", e, r);
>>    }
>> }
>>
>> static int callback (void *user, int nCol, char **r, char **c) {
>>    int i;
>>    for (i = 0; i < nCol; i++) {
>>      printf("%s ", r[i]);
>>    }
>>    printf("\n");
>>    return 0;
>> }
>>
>> static int runrbu(char *zTarget, char *zRbu) {
>>    sqlite3rbu* rbu;
>>    int rc;
>>    char* zError;
>>
>>    rbu = sqlite3rbu_open (zTarget, zRbu, NULL);
>>    do {
>>      rc = sqlite3rbu_step(rbu);
>>    } while (rc == SQLITE_OK);
>>
>>    rc = sqlite3rbu_close(rbu, &zError);
>>    if (zError) {
>>      printf("RBU error: %s\n", zError);
>>      sqlite3_free(zError);
>>    }
>>    return rc;
>> }
>>
>> int main(void)
>> {
>>    sqlite3 *db, *dbRbu;
>>    int rc;
>>
>>    remove ("test.db");
>>    check(SQLITE_OK, sqlite3_open_v2 ("test.db", &db,
>>      SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL));
>>
>>    check(SQLITE_OK, sqlite3_exec(db,
>>      "CREATE TABLE t1(a, b, c PRIMARY KEY);" \
>>      "CREATE INDEX i1 ON t1(a, null, b+1);" \
>>      "CREATE INDEX i2 ON t1(a+1, b+1, c+1);" \
>>
>>      "INSERT INTO t1 VALUES(1, 2, 3);" \
>>      "INSERT INTO t1 VALUES(4, 5, 6);" \
>>      "INSERT INTO t1 VALUES(7, 8, 9);" \
>>      "INSERT INTO t1 VALUES(10, 11, 12);" ,
>>      callback, NULL, NULL));
>>
>>    sqlite3_close(db);
>>
>>    remove ("rbu.db");
>>    check(SQLITE_OK, sqlite3_open_v2 ("rbu.db", &dbRbu,
>>      SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL));
>>
>>    check(SQLITE_OK, sqlite3_exec(db,
>>      "CREATE TABLE data_t1(a, b, c, rbu_control);" \
>>      "INSERT INTO data_t1 VALUES(13, 14, 15, 0);" \
>>      "INSERT INTO data_t1 VALUES(NULL, NULL, 6, 1);" \
>>      "INSERT INTO data_t1 VALUES(NULL, 'three', 3, '.x.');",
>>      callback, NULL, NULL));
>>
>>    sqlite3_close(dbRbu);
>>
>>    check(SQLITE_DONE, runrbu("test.db", "rbu.db"));
>>
>>    printf("Done - Press ENTER to exit.\n");
>>    getchar();
>>
>>    return 0;
>> }
>
>_______________________________________________
>sqlite-users mailing list
>sqlite-users@mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to