SQLite

Artifact [a4e8662c09]
Login

Artifact a4e8662c091d4f8c1e03192c03f7cf3158aa7a0ed20072584bd36899fd6c127d:

Ticket change [a4e8662c09] - New ticket [8897054d959750c9|8897054d95] <i>lsm1 does not overwrite values for duplicate keys</i>. by anonymous 2017-08-14 14:02:50.
D 2017-08-14T14:02:50.916
J foundin 3.20.0
J icomment In\sthe\slsm1\sextension,\slsm_insert():\sinsert\sa\snew\skey/value\spair\sinto\sthe\sdatabase,\soverwriting\sany\sexisting\sentry\swith\sthe\ssame\skey\s(https://sqlite.org/src4/doc/trunk/www/lsmusr.wiki#writing_to_a_database),\sWhen\sI\stried\sto\stest\sthis\scase\s(insert\sexisting\sentry\swith\sthe\ssame\skey)\sthe\sdatabase\ssize\sincreasing\swithout\soverwriting\sany\sexisting\sentry\swith\sthe\ssame\skey.\sThe\sbelow\stest\sc\scode\sillustrate\sthe\scase:\r\n\r\nvoid\stest(void)\r\n{\r\n\tlsm_db\s*db;\r\n\tint\src\s=\slsm_new(0,\s&db);\r\n\tif(\src\s!=\sLSM_OK\s)\r\n\t\treturn;\r\n\r\n\trc\s=\slsm_open(db,\s"test.lsmdb");\r\n\tif(\src\s!=\sLSM_OK\s)\r\n\t\treturn;\r\n\r\n\tDWORD\sKey\s=\s0x12345678;\r\n\tchar\sVal_1[]\s=\s"12345678";\r\n\tchar\sVal_2[]\s=\s"ABCDEFGH";\r\n\r\n\tlsm_begin(db,\s1);\r\n\r\n\tlsm_insert(db,\s(void\s*)&Key,\ssizeof(Key),\sVal_1,\sstrlen(Val_1)+1);\r\n\r\n\t//\sbelow\sinsert\sshould\supdate\sthe\ssame\skey\swith\sa\snew\svalue\r\n\tlsm_insert(db,\s(void\s*)&Key,\ssizeof(Key),\sVal_2,\sstrlen(Val_2)+1);\r\n\r\n\tlsm_commit(db,\s0);\r\n\r\n\tlsm_cursor\s*csr;\r\n\tif(\slsm_csr_open(db,\s&csr)\s!=\sLSM_OK\s)\r\n\t\treturn;\r\n\r\n\tint\sseekrc\s=\slsm_csr_seek(csr,\s&Key,\ssizeof(Key),\sLSM_SEEK_EQ);\r\n\tint\svalidrc\s=\slsm_csr_valid(csr);\r\n\tif(\sseekrc\s==\sLSM_OK\s&&\svalidrc\s)\r\n\t{\r\n\t\tchar\s*pKeyPtr,\s*pValPtr;\r\n\t\tint\snKey,\snVal;\r\n\t\tlsm_csr_key(csr,\s(const\svoid\s**)&pKeyPtr,\s&nKey);\r\n\t\tlsm_csr_value(csr,\s(const\svoid\s**)&pValPtr,\s&nVal);\r\n\r\n\t\t//\sthe\sbelow\sprintf\swill\sdisplay\sthe\sold\svalue\srather\sthan\snew\supdated\svalue\r\n\t\tprintf("key\s=\s%08X,\sval\s=\s%s\\n",\spKeyPtr,\spValPtr);\r\n\t}\r\n\tlsm_csr_close(csr);\r\n\r\n\tlsm_close(db);\r\n}
J login anonymous
J mimetype text/plain
J private_contact ccff8adb4b80590cdec7e0c8c2b35729c408fb35
J severity Severe
J status Open
J title lsm1\sdoes\snot\soverwrite\svalues\sfor\sduplicate\skeys
J type Code_Defect
K 8897054d959750c9cb3c9a1d4da762cb2a956f7c
U anonymous
Z 6553c8891e24c18a2c8ec79ef3f583a6