@crvouga/mockingbird-service-sqlite 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +170 -0
- package/COMPATIBILITY-AUDIT.md +236 -0
- package/COMPATIBILITY.md +102 -0
- package/LICENSE +21 -0
- package/README.md +405 -0
- package/compat/coverage.json +22231 -0
- package/compat/divergences.json +145 -0
- package/compat/fts-oracle-surface.json +198 -0
- package/compat/requirements.json +20929 -0
- package/compat/scenario-types.ts +63 -0
- package/compat/scenarios.ts +871 -0
- package/compat/smoke-baseline.json +3 -0
- package/compat/sqllogictest-skip.json +5 -0
- package/dist/api/database.d.ts +112 -0
- package/dist/api/snapshot.d.ts +21 -0
- package/dist/api/statement.d.ts +75 -0
- package/dist/ast/nodes.d.ts +476 -0
- package/dist/constraints/check.d.ts +11 -0
- package/dist/errors/index.d.ts +45 -0
- package/dist/executor/attach.d.ts +5 -0
- package/dist/executor/ddl.d.ts +10 -0
- package/dist/executor/dml.d.ts +7 -0
- package/dist/executor/env.d.ts +66 -0
- package/dist/executor/execute.d.ts +4 -0
- package/dist/executor/pragma-engine.d.ts +31 -0
- package/dist/executor/pragma.d.ts +4 -0
- package/dist/executor/result.d.ts +22 -0
- package/dist/executor/select.d.ts +7 -0
- package/dist/executor/simple-select.d.ts +9 -0
- package/dist/executor/triggers.d.ts +11 -0
- package/dist/executor/vtable.d.ts +12 -0
- package/dist/expressions/context.d.ts +30 -0
- package/dist/expressions/equals.d.ts +3 -0
- package/dist/expressions/eval.d.ts +12 -0
- package/dist/expressions/index.d.ts +3 -0
- package/dist/expressions/like.d.ts +16 -0
- package/dist/functions/aggregate.d.ts +8 -0
- package/dist/functions/datetime.d.ts +2 -0
- package/dist/functions/extensions.d.ts +7 -0
- package/dist/functions/index.d.ts +8 -0
- package/dist/functions/json.d.ts +6 -0
- package/dist/functions/math.d.ts +2 -0
- package/dist/functions/pragma-tvf.d.ts +8 -0
- package/dist/functions/registry.d.ts +39 -0
- package/dist/functions/scalar.d.ts +9 -0
- package/dist/functions/table-valued-registry.d.ts +11 -0
- package/dist/functions/table-valued.d.ts +13 -0
- package/dist/functions/window.d.ts +23 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +16010 -0
- package/dist/index.js.map +7 -0
- package/dist/indexes/index.d.ts +48 -0
- package/dist/indexes/keys.d.ts +15 -0
- package/dist/json/index.d.ts +7 -0
- package/dist/json/jsonb.d.ts +42 -0
- package/dist/json/ops.d.ts +24 -0
- package/dist/json/parse.d.ts +13 -0
- package/dist/json/path.d.ts +26 -0
- package/dist/json/stringify.d.ts +4 -0
- package/dist/json/tvf.d.ts +13 -0
- package/dist/json/types.d.ts +29 -0
- package/dist/lexer/tokenize.d.ts +23 -0
- package/dist/parser/index.d.ts +17 -0
- package/dist/parser/parser.d.ts +115 -0
- package/dist/planner/access.d.ts +50 -0
- package/dist/planner/index.d.ts +3 -0
- package/dist/runtime/assert.d.ts +11 -0
- package/dist/runtime/catch.d.ts +3 -0
- package/dist/runtime/clock.d.ts +14 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/options.d.ts +25 -0
- package/dist/runtime/prng.d.ts +42 -0
- package/dist/schema/catalog.d.ts +14 -0
- package/dist/schema/master-sql.d.ts +10 -0
- package/dist/serialization/codec.d.ts +19 -0
- package/dist/serialization/index.d.ts +1 -0
- package/dist/serialization/wire.d.ts +61 -0
- package/dist/storage/columnar-slab.d.ts +58 -0
- package/dist/storage/database-state.d.ts +96 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/row.d.ts +13 -0
- package/dist/storage/table.d.ts +119 -0
- package/dist/transactions/manager.d.ts +19 -0
- package/dist/types/collation.d.ts +4 -0
- package/dist/types/sqlite-atof.d.ts +4 -0
- package/dist/types/sqlite-real-format.d.ts +5 -0
- package/dist/types/strict.d.ts +6 -0
- package/dist/types/value.d.ts +88 -0
- package/dist/unstable.d.ts +20 -0
- package/dist/unstable.js +10343 -0
- package/dist/unstable.js.map +7 -0
- package/dist/vtable/fts/options.d.ts +34 -0
- package/dist/vtable/fts/porter.d.ts +2 -0
- package/dist/vtable/fts/query.d.ts +39 -0
- package/dist/vtable/fts/table.d.ts +78 -0
- package/dist/vtable/fts/tokenize.d.ts +20 -0
- package/dist/vtable/fts5.d.ts +1 -0
- package/dist/vtable/index.d.ts +2 -0
- package/dist/vtable/modules.d.ts +65 -0
- package/package.json +122 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"id": "oracle-platform-sqlite-version",
|
|
6
|
+
"scope": "oracle",
|
|
7
|
+
"predicate": "sqlite_version() is 3.51.0 (macOS system libsqlite) or 3.53.0 (Bun Linux/Windows amalgamation)",
|
|
8
|
+
"specifiedBehavior": "Harness bootstrap asserts sqlite_version() is in {3.51.0, 3.53.0}. Dialect tests are version-tagged when 3.51≠3.53.",
|
|
9
|
+
"pinnedBy": ["scripts/sqlite-compat-gate.ts", "tests/harness/oracle-version.test.ts"]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "snapshot-sqlm",
|
|
13
|
+
"scope": "snapshot",
|
|
14
|
+
"predicate": "snapshot().encode() bytes are SQLM, not a .sqlite file",
|
|
15
|
+
"specifiedBehavior": "Custom codec; logical Dump after Snapshot.open matches pre-snapshot Dump.",
|
|
16
|
+
"pinnedBy": ["SNP-hdr-01", "SNP-rt-01"]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "deterministic-random-now",
|
|
20
|
+
"scope": "runtime",
|
|
21
|
+
"predicate": "default random() and date('now') are seeded/fixed",
|
|
22
|
+
"specifiedBehavior": "PRNG seed default 1; clock 2000-01-01T00:00:00.000Z unless random:os / now:system.",
|
|
23
|
+
"pinnedBy": ["DAT-now-01", "DET-seed-01", "DET-negzero-01"]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "negzero-canonicalization",
|
|
27
|
+
"scope": "types",
|
|
28
|
+
"predicate": "IEEE -0 becomes +0 on bind, affinity, and arithmetic",
|
|
29
|
+
"specifiedBehavior": "Object.is(result, -0) is false for bound and computed zeros.",
|
|
30
|
+
"pinnedBy": ["TYP-negzero-01", "TYP-negzero-02", "TYP-negzero-03", "DET-negzero-01"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "attach-empty-schema",
|
|
34
|
+
"scope": "attach",
|
|
35
|
+
"predicate": "ATTACH filename is ignored; attached schema is empty in-memory",
|
|
36
|
+
"specifiedBehavior": "ATTACH creates an empty schema; no file contents are loaded.",
|
|
37
|
+
"pinnedBy": ["ATT-att-01"]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "explain-stub",
|
|
41
|
+
"scope": "explain",
|
|
42
|
+
"predicate": "EXPLAIN / EXPLAIN QUERY PLAN shapes are stubs",
|
|
43
|
+
"specifiedBehavior": "Plan text is not byte-identical to SQLite bytecode; results of the explained statement still match.",
|
|
44
|
+
"pinnedBy": ["PAR-explain-01"]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "indexed-by-discarded",
|
|
48
|
+
"scope": "select",
|
|
49
|
+
"predicate": "INDEXED BY / NOT INDEXED is accepted and ignored",
|
|
50
|
+
"specifiedBehavior": "Query results match the unhinted plan; missing-index errors are not raised.",
|
|
51
|
+
"pinnedBy": ["tests/contract/indexes/indexed-by.test.ts"]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "materialized-hint-ignored",
|
|
55
|
+
"scope": "cte",
|
|
56
|
+
"predicate": "MATERIALIZED / NOT MATERIALIZED do not change the execution strategy",
|
|
57
|
+
"specifiedBehavior": "Results still match the oracle; both hints take the materialized CTE path.",
|
|
58
|
+
"pinnedBy": ["CTE-mat-01"]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "fts-shadow-counters",
|
|
62
|
+
"scope": "fts",
|
|
63
|
+
"predicate": "FTS shadow-table change counters may differ from bun:sqlite",
|
|
64
|
+
"specifiedBehavior": "MATCH results and rank order still match; db.changes after FTS maintenance may differ.",
|
|
65
|
+
"pinnedBy": ["FTS-chg-01"]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "compile-options-function-list",
|
|
69
|
+
"scope": "pragma",
|
|
70
|
+
"predicate": "pragma_compile_options and function_list contents are sqlite-mem's",
|
|
71
|
+
"specifiedBehavior": "Names and flags describe this engine, not the oracle amalgamation.",
|
|
72
|
+
"pinnedBy": ["PRG-comp-01", "PRG-fn-01"]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "js-api-surface",
|
|
76
|
+
"scope": "api",
|
|
77
|
+
"predicate": "better-sqlite3 extras are absent; duplicate column names collapse in row objects",
|
|
78
|
+
"specifiedBehavior": "bind/iterate/pluck/raw/pragma()/loadExtension/serialize/safeIntegers throw. stmt.result().values keeps positional duplicates.",
|
|
79
|
+
"pinnedBy": ["API-ret-03", "DML-ret-02", "SEL-dup-01"]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "snapshot-exclusions",
|
|
83
|
+
"scope": "snapshot",
|
|
84
|
+
"predicate": "triggers, ATTACH, virtual tables, and user_version are not in SQLM",
|
|
85
|
+
"specifiedBehavior": "decode().open() outcome is pinned per omitted feature.",
|
|
86
|
+
"pinnedBy": ["SNP-omit-01", "SNP-omit-02", "SNP-omit-03", "SNP-omit-04", "TRG-snap-01", "ATT-snap-01", "FTS-snap-01"]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "json-api-unwrap",
|
|
90
|
+
"scope": "json",
|
|
91
|
+
"predicate": "JSON subtype is unwrapped to JS string at the API",
|
|
92
|
+
"specifiedBehavior": "query() returns TEXT, not a JSON wrapper object.",
|
|
93
|
+
"pinnedBy": ["JSN-sub-03"]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "nan-infinity-bind",
|
|
97
|
+
"scope": "bind",
|
|
98
|
+
"predicate": "JS NaN and Infinity binds are rejected",
|
|
99
|
+
"specifiedBehavior": "datatype_mismatch rather than storing NULL or Inf.",
|
|
100
|
+
"pinnedBy": ["TYP-nan-04", "TYP-nan-05"]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "double-quote-string-fallback",
|
|
104
|
+
"scope": "lexer",
|
|
105
|
+
"predicate": "SQLite may treat unknown double-quoted identifiers as strings; sqlite-mem rejects them",
|
|
106
|
+
"specifiedBehavior": "prepare/query of SELECT \"not_a_column\" throws in sqlite-mem.",
|
|
107
|
+
"pinnedBy": ["TOK-07"]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "lone-surrogate-bind",
|
|
111
|
+
"scope": "unicode",
|
|
112
|
+
"predicate": "JS lone surrogates in string binds are engine-defined",
|
|
113
|
+
"specifiedBehavior": "sqlite-mem stores the JS string as UTF-16-unpaired text; oracle may replace or error.",
|
|
114
|
+
"pinnedBy": ["UNI-surr-01"]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "user-version-snapshot",
|
|
118
|
+
"scope": "pragma",
|
|
119
|
+
"predicate": "user_version is not encoded in SQLM",
|
|
120
|
+
"specifiedBehavior": "PRAGMA user_version after decode().open() is the default unless re-set.",
|
|
121
|
+
"pinnedBy": ["PRG-beh-05", "SNP-omit-04"]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "pragma-setter-noop",
|
|
125
|
+
"scope": "pragma",
|
|
126
|
+
"predicate": "Some pragma setters are accepted but do not change engine state yet",
|
|
127
|
+
"specifiedBehavior": "defer_foreign_keys, recursive_triggers, and application_id getters remain 0 after SET.",
|
|
128
|
+
"pinnedBy": ["PRG-beh-02", "PRG-beh-03", "PRG-beh-07"]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "generate-series-extension",
|
|
132
|
+
"scope": "tvf",
|
|
133
|
+
"predicate": "generate_series is a sqlite-mem extension",
|
|
134
|
+
"specifiedBehavior": "Present in sqlite-mem; not claimed vs bun:sqlite default inventory.",
|
|
135
|
+
"pinnedBy": ["FTS-series-01"]
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "datetime-localtime-utc",
|
|
139
|
+
"scope": "datetime",
|
|
140
|
+
"predicate": "localtime/utc modifiers do not apply host timezone conversion",
|
|
141
|
+
"specifiedBehavior": "Modifiers are accepted as no-ops; storage remains UTC-like fixed strings.",
|
|
142
|
+
"pinnedBy": ["tests/contract/date-time/modifiers.test.ts"]
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generatedAt": "2026-08-17T19:17:22.132Z",
|
|
3
|
+
"referenceSqliteVersion": "3.51.0",
|
|
4
|
+
"referenceSqliteSourceId": "2025-06-12 13:14:41 f0ca7bba1c5e232e5d279fad6338121ab55af0c8c68c84cdfb18ba5114dcaapl",
|
|
5
|
+
"ftsCompileOptions": [
|
|
6
|
+
"ENABLE_FTS3",
|
|
7
|
+
"ENABLE_FTS3_PARENTHESIS",
|
|
8
|
+
"ENABLE_FTS3_TOKENIZER",
|
|
9
|
+
"ENABLE_FTS4",
|
|
10
|
+
"ENABLE_FTS5"
|
|
11
|
+
],
|
|
12
|
+
"ftsModules": [
|
|
13
|
+
"fts3",
|
|
14
|
+
"fts3tokenize",
|
|
15
|
+
"fts4",
|
|
16
|
+
"fts4aux",
|
|
17
|
+
"fts5",
|
|
18
|
+
"fts5vocab"
|
|
19
|
+
],
|
|
20
|
+
"tokenizers": {
|
|
21
|
+
"unicode61": {
|
|
22
|
+
"ok": true
|
|
23
|
+
},
|
|
24
|
+
"ascii": {
|
|
25
|
+
"ok": true
|
|
26
|
+
},
|
|
27
|
+
"porter": {
|
|
28
|
+
"ok": true
|
|
29
|
+
},
|
|
30
|
+
"trigram": {
|
|
31
|
+
"ok": true
|
|
32
|
+
},
|
|
33
|
+
"porter unicode61": {
|
|
34
|
+
"ok": true
|
|
35
|
+
},
|
|
36
|
+
"porter ascii": {
|
|
37
|
+
"ok": true
|
|
38
|
+
},
|
|
39
|
+
"unicode61 remove_diacritics 0": {
|
|
40
|
+
"ok": true
|
|
41
|
+
},
|
|
42
|
+
"unicode61 remove_diacritics 1": {
|
|
43
|
+
"ok": true
|
|
44
|
+
},
|
|
45
|
+
"unicode61 remove_diacritics 2": {
|
|
46
|
+
"ok": true
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"createOptions": {
|
|
50
|
+
"default": {
|
|
51
|
+
"ok": true
|
|
52
|
+
},
|
|
53
|
+
"multi_column": {
|
|
54
|
+
"ok": true
|
|
55
|
+
},
|
|
56
|
+
"contentless": {
|
|
57
|
+
"ok": true
|
|
58
|
+
},
|
|
59
|
+
"contentless_delete": {
|
|
60
|
+
"ok": true
|
|
61
|
+
},
|
|
62
|
+
"external_content": {
|
|
63
|
+
"ok": true
|
|
64
|
+
},
|
|
65
|
+
"prefix": {
|
|
66
|
+
"ok": true
|
|
67
|
+
},
|
|
68
|
+
"columnsize_0": {
|
|
69
|
+
"ok": true
|
|
70
|
+
},
|
|
71
|
+
"detail_full": {
|
|
72
|
+
"ok": true
|
|
73
|
+
},
|
|
74
|
+
"detail_column": {
|
|
75
|
+
"ok": true
|
|
76
|
+
},
|
|
77
|
+
"detail_none": {
|
|
78
|
+
"ok": true
|
|
79
|
+
},
|
|
80
|
+
"tokendata": {
|
|
81
|
+
"ok": true
|
|
82
|
+
},
|
|
83
|
+
"locale": {
|
|
84
|
+
"ok": true
|
|
85
|
+
},
|
|
86
|
+
"unindexed": {
|
|
87
|
+
"ok": true
|
|
88
|
+
},
|
|
89
|
+
"trigram": {
|
|
90
|
+
"ok": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"auxiliaryFunctions": [
|
|
94
|
+
{
|
|
95
|
+
"name": "bm25",
|
|
96
|
+
"type": "s",
|
|
97
|
+
"narg": -1
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "fts3_tokenizer",
|
|
101
|
+
"type": "s",
|
|
102
|
+
"narg": 1
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "fts3_tokenizer",
|
|
106
|
+
"type": "s",
|
|
107
|
+
"narg": 2
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "fts5",
|
|
111
|
+
"type": "s",
|
|
112
|
+
"narg": 1
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "fts5_get_locale",
|
|
116
|
+
"type": "s",
|
|
117
|
+
"narg": -1
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "fts5_insttoken",
|
|
121
|
+
"type": "s",
|
|
122
|
+
"narg": 1
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "fts5_locale",
|
|
126
|
+
"type": "s",
|
|
127
|
+
"narg": 2
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "fts5_source_id",
|
|
131
|
+
"type": "s",
|
|
132
|
+
"narg": 0
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "highlight",
|
|
136
|
+
"type": "s",
|
|
137
|
+
"narg": -1
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "match",
|
|
141
|
+
"type": "s",
|
|
142
|
+
"narg": 2
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "matchinfo",
|
|
146
|
+
"type": "s",
|
|
147
|
+
"narg": 1
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "matchinfo",
|
|
151
|
+
"type": "s",
|
|
152
|
+
"narg": 2
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "offsets",
|
|
156
|
+
"type": "s",
|
|
157
|
+
"narg": 1
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "optimize",
|
|
161
|
+
"type": "s",
|
|
162
|
+
"narg": 1
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "rank",
|
|
166
|
+
"type": "w",
|
|
167
|
+
"narg": 0
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"name": "snippet",
|
|
171
|
+
"type": "s",
|
|
172
|
+
"narg": -1
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"specialCommands": {
|
|
176
|
+
"optimize": {
|
|
177
|
+
"ok": true
|
|
178
|
+
},
|
|
179
|
+
"rebuild": {
|
|
180
|
+
"ok": true
|
|
181
|
+
},
|
|
182
|
+
"integrity-check": {
|
|
183
|
+
"ok": true
|
|
184
|
+
},
|
|
185
|
+
"delete-all": {
|
|
186
|
+
"ok": false,
|
|
187
|
+
"error": "'delete-all' may only be used with a contentless or external content fts5 table"
|
|
188
|
+
},
|
|
189
|
+
"automerge=4": {
|
|
190
|
+
"ok": false,
|
|
191
|
+
"error": "SQL logic error"
|
|
192
|
+
},
|
|
193
|
+
"merge=2,2": {
|
|
194
|
+
"ok": false,
|
|
195
|
+
"error": "SQL logic error"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|