substr(data, start, len) loads entire value and then substrs it. sqlite3_blob_read reads the desired parts.
2018-08-06 20:59 GMT+02:00, Abramo Bagnara <abramo.bagn...@bugseng.com>: > Il 04/08/2018 07:07, Abramo Bagnara ha scritto: >> Il 03/08/2018 23:53, Abroży Nieprzełoży ha scritto: >>> -- One table with whole files >>> CREATE TABLE content( >>> id INTEGER PRIMARY KEY, >>> data BLOB NOT NULL >>> ); >>> -- And second table with line boundaries >>> CREATE TABLE lines( >>> id INTEGER NOT NULL REFERENCES content(id), >>> line_no INTEGER NOT NULL, >>> bytes_from INTEGER NOT NULL, >>> bytes_to INTEGER NOT NULL, >>> PRIMARY KEY(id, line_num) >>> ) WITHOUT ROWID; >>> -- Use Incremental BLOB I/O https://www.sqlite.org/c3ref/blob_open.html >> >> Incremental BLOB I/O is faster than using substr(data, start, len) in a >> SELECT? > > Someone familiar with implementation of BLOB I/O and sqlite VM can > answer to that? > > I'd guess that *if* there is a difference it is greater with bigger > blobs, but it is also possible there is not any sensible difference if > substr act similarly to sqlite3_blob_read. > > But my uninformed guesses are definitely not relevant, until an aware > Samaritan will come to clarify that ;-) > > -- > Abramo Bagnara > > BUGSENG srl - http://bugseng.com > mailto:abramo.bagn...@bugseng.com > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users