fts5FlushOneHash
controls this and it puts a new segment on level 0, and then
calls:
fts5StructurePromote
for level 0fts5IndexAutomerge
fts5IndexCrisismerge
CREATE VIRTUAL TABLE x USING fts5(content); | |
INSERT INTO x(x, rank) VALUES('pgsz', 32); | |
# Repeat next three lines 2000 times | |
INSERT INTO x(content) VALUES('hello world'); | |
INSERT INTO x(content) VALUES('how are you'); | |
INSERT INTO x(x, rank) VALUES('optimize', 1); | |
# If you repeat them less - you can below to see | |
# what's actually going in the FTS5 index. |
const s = new Intl.Segmenter(); | |
const input = 'a'.repeat(100 * 1024); | |
console.time('segment'); | |
for (const _ of s.segment(input)) {} | |
console.timeEnd('segment'); |
const { authenticator, hotp } = require('otplib'); | |
const SECRET = authenticator.generateSecret(); | |
const map = new Map(); | |
const TOTAL = 100000; | |
const MAX_DIFFERENT = 1000000; | |
const STEP = 30; | |
const OFFSET = (Date.now() / 1000 / STEP) | 0; |
!function() { | |
// Don't forget to scroll all the way down to load all replies! | |
const elems = document.body.querySelectorAll( | |
'div.original-permalink-page ' + | |
'li.ThreadedConversation:not(.ThreadedConversation--selfThread),' + | |
'li.ThreadedConversation--loneTweet'); | |
for (const elem of elems) { | |
elem.style.border = '2px solid green'; |
'use strict'; | |
// Quiz: | |
// | |
// Implement `solution` function using only calls to API methods below and no | |
// other JS primitives (even math). | |
// | |
// Correct implementation will print "Success!" once executed | |
// |
Thank you for participation, we've managed to find these versions together:
collect.js
lldb /path/to/binary
disas -n function-name
for each function in collect.js
0x1000000000
to get file offsetcollect.js
node collect.js /path/to/binary | node filter.js > log