version 1.174, 2014/12/04 20:13:25 |
version 1.175, 2014/12/04 21:48:48 |
|
|
STMT_INSERT_PAGE, /* insert mpage */ |
STMT_INSERT_PAGE, /* insert mpage */ |
STMT_INSERT_LINK, /* insert mlink */ |
STMT_INSERT_LINK, /* insert mlink */ |
STMT_INSERT_NAME, /* insert name */ |
STMT_INSERT_NAME, /* insert name */ |
|
STMT_SELECT_NAME, /* retrieve existing name flags */ |
STMT_INSERT_KEY, /* insert parsed key */ |
STMT_INSERT_KEY, /* insert parsed key */ |
STMT__MAX |
STMT__MAX |
}; |
}; |
Line 1789 putkeys(const struct mpage *mpage, |
|
Line 1790 putkeys(const struct mpage *mpage, |
|
name_mask &= ~NAME_FIRST; |
name_mask &= ~NAME_FIRST; |
if (debug > 1) |
if (debug > 1) |
say(mpage->mlinks->file, |
say(mpage->mlinks->file, |
"Adding name %*s", sz, cp); |
"Adding name %*s, bits=%d", sz, cp, v); |
} else { |
} else { |
htab = &strings; |
htab = &strings; |
if (debug > 1) |
if (debug > 1) |
Line 2006 dbadd_mlink(const struct mlink *mlink) |
|
Line 2007 dbadd_mlink(const struct mlink *mlink) |
|
static void |
static void |
dbadd_mlink_name(const struct mlink *mlink) |
dbadd_mlink_name(const struct mlink *mlink) |
{ |
{ |
|
uint64_t bits; |
size_t i; |
size_t i; |
|
|
dbadd_mlink(mlink); |
dbadd_mlink(mlink); |
|
|
i = 1; |
i = 1; |
SQL_BIND_INT64(stmts[STMT_INSERT_NAME], i, NAME_FILE & NAME_MASK); |
SQL_BIND_INT64(stmts[STMT_SELECT_NAME], i, mlink->mpage->pageid); |
|
bits = NAME_FILE & NAME_MASK; |
|
if (sqlite3_step(stmts[STMT_SELECT_NAME]) == SQLITE_ROW) { |
|
bits |= sqlite3_column_int64(stmts[STMT_SELECT_NAME], 0); |
|
sqlite3_reset(stmts[STMT_SELECT_NAME]); |
|
} |
|
|
|
i = 1; |
|
SQL_BIND_INT64(stmts[STMT_INSERT_NAME], i, bits); |
SQL_BIND_TEXT(stmts[STMT_INSERT_NAME], i, mlink->name); |
SQL_BIND_TEXT(stmts[STMT_INSERT_NAME], i, mlink->name); |
SQL_BIND_INT64(stmts[STMT_INSERT_NAME], i, mlink->mpage->pageid); |
SQL_BIND_INT64(stmts[STMT_INSERT_NAME], i, mlink->mpage->pageid); |
SQL_STEP(stmts[STMT_INSERT_NAME]); |
SQL_STEP(stmts[STMT_INSERT_NAME]); |
|
|
" \"bits\" INTEGER NOT NULL,\n" |
" \"bits\" INTEGER NOT NULL,\n" |
" \"name\" TEXT NOT NULL,\n" |
" \"name\" TEXT NOT NULL,\n" |
" \"pageid\" INTEGER NOT NULL REFERENCES mpages(pageid) " |
" \"pageid\" INTEGER NOT NULL REFERENCES mpages(pageid) " |
"ON DELETE CASCADE\n" |
"ON DELETE CASCADE,\n" |
|
" UNIQUE (\"name\", \"pageid\") ON CONFLICT REPLACE\n" |
");\n" |
");\n" |
"\n" |
"\n" |
"CREATE TABLE \"keys\" (\n" |
"CREATE TABLE \"keys\" (\n" |
Line 2362 prepare_statements: |
|
Line 2373 prepare_statements: |
|
sql = "INSERT INTO mlinks " |
sql = "INSERT INTO mlinks " |
"(sec,arch,name,pageid) VALUES (?,?,?,?)"; |
"(sec,arch,name,pageid) VALUES (?,?,?,?)"; |
sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_LINK], NULL); |
sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_LINK], NULL); |
|
sql = "SELECT bits FROM names where pageid = ?"; |
|
sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_SELECT_NAME], NULL); |
sql = "INSERT INTO names " |
sql = "INSERT INTO names " |
"(bits,name,pageid) VALUES (?,?,?)"; |
"(bits,name,pageid) VALUES (?,?,?)"; |
sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_NAME], NULL); |
sqlite3_prepare_v2(db, sql, -1, &stmts[STMT_INSERT_NAME], NULL); |