Re: any support for deleting an entry from cdb file?
Pedro Melo Cunha <[email protected]> Tue, 12 Apr 2005 13:18:33 +0100
| Newsgroups | gmane.comp.djb.cdb |
|---|---|
| Message-ID | <[email protected]> |
--Apple-Mail-4--290356147 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi, On Apr 11, 2005, at 8:24 PM, Dev Man wrote: > Is there any way to delete records from the CDB database? > I looked at the CDB source code a bit but didn't see offhand. > If not, is it feasible to add? > or is it really limited to add/read operations? As you already know by now, 'C' is for constant: write once, read many.=20= Neither deletes nor updates are available in the CDB library. But :) In an application I wrote, I needed to invalidade an entry of the CDB,=20= to delete it. What I did, was this: each data element has an extra byte=20= prefix, state. Initially the state is a space. If I want to delete it,=20= I put a 'X' there. I then made a wrapper around cdb_get that looks at the first byte and=20 if it's a space, just returns the size of the data - 1, if it's an X=20 returns 0. Deleting is just opening for write, cdb_get, write an 'X'. Update is possible, but even more hackish: if your update data is=20 smaller than the original data, and the key is the same, you could just=20= write to the CDB, but the cdb_get would always return the original size=20= of the data. You have to keep track of the real size of the data=20 inside. I did it once for proof of concept but I didn't use it. Best regards, -- Pedro Melo Cunha - <[email protected]> Novis Telecom, S.A. - Dir. Rede - ISP <http://www.novis.pt/> Edif=EDcio Novis - Estrada da Outurela, 118 - 2795-606 Carnaxide tel: +351 21 0104340 - fax: +351 21 0104301 --Apple-Mail-4--290356147 Content-Transfer-Encoding: base64 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIOsTCCAwUw ggJuoAMCAQICEQC+HJ/SzbWEpoBzY2bVZfgtMA0GCSqGSIb3DQEBBQUAMIG7MSQwIgYDVQQHExtW YWxpQ2VydCBWYWxpZGF0aW9uIE5ldHdvcmsxFzAVBgNVBAoTDlZhbGlDZXJ0LCBJbmMuMTUwMwYD VQQLEyxWYWxpQ2VydCBDbGFzcyAzIFBvbGljeSBWYWxpZGF0aW9uIEF1dGhvcml0eTEhMB8GA1UE AxMYaHR0cDovL3d3dy52YWxpY2VydC5jb20vMSAwHgYJKoZIhvcNAQkBFhFpbmZvQHZhbGljZXJ0 LmNvbTAeFw0wMjA0MzAxNTMwMTlaFw0xOTA0MzAwOTIxNTVaMGwxGjAYBgNVBAoTEVJTQSBTZWN1 cml0eSBJbmMuMR4wHAYDVQQDExVSU0EgUHVibGljIFJvb3QgQ0EgdjExLjAsBgkqhkiG9w0BCQEW H3JzYWtlb25yb290c2lnbkByc2FzZWN1cml0eS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBALR1JVrYRDvjQbGqIgqwcBNPh/xdjBRTbenNF7lbohWm3iOTANaSCe9Nw/ozw8Pg58roiZqX iEAf9zcr91QgftjJBlEYATljbsbmSVlgqJ1wWWt9q62BURLXvQwsoWYmrKbYVYB9U6Jtdq1FzDsH RL6Y/3jTiMgP8xoilFeQfkmPAgMBAAGjVzBVMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgGG MBYGA1UdIAQPMA0wCwYJKoZIhvcNBQYBMB0GA1UdDgQWBBT1TDF6UQM/LNeLl5lvqHGQq3g9mzAN BgkqhkiG9w0BAQUFAAOBgQAqy+JcFzUV4FPaEjDJa4bCc9kn1y2Ouw7s1tUuOzH8RhyUUUbCj6mm GLB1ROaX3J3t9fN+TQP7ss6z1kDnGGIdWsa6xXg5biLuHHYpUguRiVxcI3m0OW0rBrn4GQZS69l3 ICgiGnJ/rWHu4oIWC6Fon5U6I0HgM+2ybEj4rE4TpjCCA8swggKzoAMCAQICEDXDCjAuPEcjeh2K wB0logIwDQYJKoZIhvcNAQEFBQAwNDELMAkGA1UEBhMCUFQxDTALBgNVBAoTBFhDT00xFjAUBgNV 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 XEVQN+FRs1b9UpbRiwSxIWrz7OYwv1vxEq2xr73z0kiG+f3bOeqYwMUfsgmTe+wubm/0vaFD7zCC A/owggNjoAMCAQICEDtsrETzrAecJO73kt+9lNUwDQYJKoZIhvcNAQEFBQAwbDEaMBgGA1UEChMR UlNBIFNlY3VyaXR5IEluYy4xHjAcBgNVBAMTFVJTQSBQdWJsaWMgUm9vdCBDQSB2MTEuMCwGCSqG SIb3DQEJARYfcnNha2VvbnJvb3RzaWduQHJzYXNlY3VyaXR5LmNvbTAeFw0wMzAyMDQyMTA1MzZa Fw0wNzAyMDQyMTA1MzZaMC8xCzAJBgNVBAYTAlBUMSAwHgYDVQQDExdYQ09NIENvbXVuaWNhY2Fv IFNlZ3VyYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM/I9ekXacw55/wV3WikXvIM wCiPphWLCGEq8qk92Lb9tXBNrzoXNSKJzrZj9YDfEbER6leyE9m0fvXFTb/Nu6QvD0wp7gHy6Vba EIZvLI2IbTR51JpWum0uVi8MBwAyF7/Cv/BYnlWN6s/bUUBKBPtzwqjs99cM6Ur7zv9U0dz9z0HL pbAOGo1BQzN7HIlYz76QURf68IG+/gWjVEcJZ1LopfQFU8FPXV75Dt/SIlwIwWg9N67VGgca+5kc meP57mpLtId/CPJih6IVi+9TkrWVY4TiX9T067tvdhZIUKMrO2EVeg+wxhKLXrpyX7H1mCyW9l3j 9m8osoLzWDQsBuECAwEAAaOCAVQwggFQMB8GA1UdIwQYMBaAFPVMMXpRAz8s14uXmW+ocZCreD2b MB0GA1UdDgQWBBRbXLeFpWoYPFfewtJwLA1M/w8bajB6BgNVHSAEczBxMG8GCSqGSIb3DQUGATBi MGAGCCsGAQUFBwIBFlRodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9wcm9kdWN0cy9rZW9uL3Jl cG9zaXRvcnkvcHJhY3RpY2VzL0NlcnRpZmljYXRlX1BvbGljeS5wZGYwbgYDVR0fBGcwZTBjoGGg X4ZdaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcHJvZHVjdHMva2Vvbi9yZXBvc2l0b3J5L2Nl cnRpZmljYXRlX3N0YXR1cy9SU0FfUHVibGljX1Jvb3RfQ0EuY3JsMBIGA1UdEwEB/wQIMAYBAf8C AQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4GBAGkiXhtOLrz+ZYnbXYDLzciJmNE/ qHCmTm81mparKYuNXVwBEmWx/ix4ttPdR9hTm45gCD7ig0kp9/tPqt/CXMLbTQflFYLJ5VZ85hL3 8rJTv3zU2JEvESVhdZNYNqbuFpyk7AAy8KNw4CbAwHLu10xYLkIUDpYd30lni7ea3dhWMYICAzCC Af8CAQEwSDA0MQswCQYDVQQGEwJQVDENMAsGA1UEChMEWENPTTEWMBQGA1UEAxMNWENPTSBQZXJz b25hbAIQNcMKMC48RyN6HYrAHSWiAjAJBgUrDgMCGgUAoIIBETAYBgkqhkiG9w0BCQMxCwYJKoZI hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNTA0MTIxMjE4MzRaMCMGCSqGSIb3DQEJBDEWBBRdTx+u ebBGTgaf1rRzMkOYyR7xyDBXBgkrBgEEAYI3EAQxSjBIMDQxCzAJBgNVBAYTAlBUMQ0wCwYDVQQK EwRYQ09NMRYwFAYDVQQDEw1YQ09NIFBlcnNvbmFsAhA1wwowLjxHI3odisAdJaICMFkGCyqGSIb3 DQEJEAILMUqgSDA0MQswCQYDVQQGEwJQVDENMAsGA1UEChMEWENPTTEWMBQGA1UEAxMNWENPTSBQ ZXJzb25hbAIQNcMKMC48RyN6HYrAHSWiAjANBgkqhkiG9w0BAQEFAASBgGzMWncBgKKw6NUj5iyp oZuplJLHhxZ+YiwGeYiP79eC1KN1Z8FHVLi5Q4D45mLKVcD1u8CmjsHz1Kfo+HV2aIvQQraMQCeZ NAC1rC3YyhxAHHPW4qFHWNxkdX4zG2P2snY2c4GNcNQW9ywqbGsgSsWfS3GEI+phpGLz8vcFYJT+ AAAAAAAA --Apple-Mail-4--290356147--