drupflare/worker - v1.0.0
    Preparing search index...

    Interface DumpResult

    interface DumpResult {
        chars: number;
        maxStatementChars: number;
        offsetPaged: string[];
        replayable: boolean;
        splitValues: number;
        sql: string;
        statements: number;
        structureOnly: string[];
        tables: Record<string, number>;
    }
    Index
    chars: number

    characters, not bytes -- a UTF-8 literal is wider on the wire than it is here

    maxStatementChars: number

    The widest single statement, and whether the dump can be replayed at all.

    A Durable Object caps statement text at 100,000 characters, and /export?all=1 happily emits a cache_container row measured at 960,544. The dump looked fine, stored fine, and would have failed mid-restore -- on the one path whose whole job is getting a customer's data back. A restore point nobody can replay is worse than none, because it reads as a backup.

    offsetPaged: string[]

    Tables paged by OFFSET rather than by a keyset, because they are WITHOUT ROWID.

    Named rather than silent: OFFSET paging re-scans, and it can repeat or skip a row if the site writes while the export is in flight. Empty on every schema this ships with.

    replayable: boolean

    false when any statement exceeds the ceiling, so a caller can refuse before storing it

    splitValues: number

    values too wide for one statement, rebuilt with col = col || ... appends

    sql: string
    statements: number
    structureOnly: string[]

    The tables emitted STRUCTURE-ONLY, resolved rather than described.

    REGENERABLE_TABLES is a list of regexes in this file, so anything outside it had to restate the rule in prose and go stale silently when the list changed. Naming the tables the rule actually matched makes an off-boarding report correct by construction.

    tables: Record<string, number>

    rows emitted per table, including the tables that emitted none