@crvouga/sqlite-mem 1.1.2 → 1.3.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.
@@ -0,0 +1,124 @@
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() bytes are SQLM, not a .sqlite file",
15
+ "specifiedBehavior": "Custom codec; logical Dump after restore 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": ["indexes/indexed-by.test.ts", "COMPATIBILITY.md"]
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": "restore() 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 restored from SQLM",
120
+ "specifiedBehavior": "PRAGMA user_version after restore is the default unless re-set.",
121
+ "pinnedBy": ["PRG-beh-05", "SNP-omit-04"]
122
+ }
123
+ ]
124
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-08-18T15:54:12.225Z",
2
+ "generatedAt": "2026-08-19T09:44:57.570Z",
3
3
  "sourceUrl": "https://www.sqlite.org/requirements.html",
4
4
  "count": 3487,
5
5
  "requirements": [
@@ -7,7 +7,7 @@
7
7
  "id": "R-00013-61831-22423-62410-56475-12017-42000-15640",
8
8
  "text": "The key comes first and is separated from the value by a single \"=\" character.",
9
9
  "source": "uri.html",
10
- "classification": "SQL_BEHAVIOR"
10
+ "classification": "NOT_APPLICABLE"
11
11
  },
12
12
  {
13
13
  "id": "R-00041-06536-06136-27539-15037-63357-02924-13585",
@@ -613,7 +613,7 @@
613
613
  "id": "R-01750-40559-52065-12470-48383-41757-44468-25443",
614
614
  "text": "SQLite always opens immutable database files read-only and it skips all file locking and change detection on immutable database files.",
615
615
  "source": "uri.html",
616
- "classification": "SQL_BEHAVIOR"
616
+ "classification": "NOT_APPLICABLE"
617
617
  },
618
618
  {
619
619
  "id": "R-01766-15387-49282-35089-26578-35550-62519-17422",
@@ -1003,7 +1003,7 @@
1003
1003
  "id": "R-02982-34736-45462-50381-10151-04149-50124-39087",
1004
1004
  "text": "In order to maintain full backwards compatibility for legacy applications, the URI filename capability is disabled by default.",
1005
1005
  "source": "uri.html",
1006
- "classification": "SQL_BEHAVIOR"
1006
+ "classification": "NOT_APPLICABLE"
1007
1007
  },
1008
1008
  {
1009
1009
  "id": "R-03014-26414-56458-20281-20451-13984-34730-16215",
@@ -1417,7 +1417,7 @@
1417
1417
  "id": "R-04239-46396-01814-35437-09500-15330-29656-29388",
1418
1418
  "text": "A single zero-byte separates the xOpen filename argument from the key of the first query parameters, each key and value, and each subsequent key from the prior value.",
1419
1419
  "source": "uri.html",
1420
- "classification": "SQL_BEHAVIOR"
1420
+ "classification": "NOT_APPLICABLE"
1421
1421
  },
1422
1422
  {
1423
1423
  "id": "R-04240-13860-65376-64948-20761-30630-14399-44960",
@@ -1999,7 +1999,7 @@
1999
1999
  "id": "R-06268-22533-04308-14386-21741-11230-29946-31155",
2000
2000
  "text": "The cache query parameter determines if the new database is opened using shared cache mode or with a private cache.",
2001
2001
  "source": "uri.html",
2002
- "classification": "SQL_BEHAVIOR"
2002
+ "classification": "NOT_APPLICABLE"
2003
2003
  },
2004
2004
  {
2005
2005
  "id": "R-06289-57229-11447-28178-35750-27104-36074-23089",
@@ -3895,7 +3895,7 @@
3895
3895
  "id": "R-12831-20703-43607-22542-46423-65070-13678-01417",
3896
3896
  "text": "The query string consists of text following the first \"?\" character but excluding the optional fragment that begins with \"#\".",
3897
3897
  "source": "uri.html",
3898
- "classification": "SQL_BEHAVIOR"
3898
+ "classification": "NOT_APPLICABLE"
3899
3899
  },
3900
3900
  {
3901
3901
  "id": "R-12881-55998-05997-62769-52407-41437-37652-18188",
@@ -4807,7 +4807,7 @@
4807
4807
  "id": "R-15825-58263-40535-43132-40682-17971-55847-38484",
4808
4808
  "text": "The psow query parameter overrides the powersafe overwrite property of the database file being opened.",
4809
4809
  "source": "uri.html",
4810
- "classification": "SQL_BEHAVIOR"
4810
+ "classification": "NOT_APPLICABLE"
4811
4811
  },
4812
4812
  {
4813
4813
  "id": "R-15842-53296-08003-60856-35696-17823-54223-09480",
@@ -5509,7 +5509,7 @@
5509
5509
  "id": "R-18043-40700-22598-52813-64197-51522-53393-10304",
5510
5510
  "text": "The psow query parameter works with the default windows and unix VFSes but might be a no-op for other proprietary or non-standard VFSes.",
5511
5511
  "source": "uri.html",
5512
- "classification": "SQL_BEHAVIOR"
5512
+ "classification": "NOT_APPLICABLE"
5513
5513
  },
5514
5514
  {
5515
5515
  "id": "R-18085-46797-38544-57069-39269-06542-00638-19188",
@@ -6589,7 +6589,7 @@
6589
6589
  "id": "R-21426-10262-16472-16411-19241-49098-31695-43338",
6590
6590
  "text": "The path component of the URI specifies the disk file that is the SQLite database to be opened.",
6591
6591
  "source": "uri.html",
6592
- "classification": "SQL_BEHAVIOR"
6592
+ "classification": "NOT_APPLICABLE"
6593
6593
  },
6594
6594
  {
6595
6595
  "id": "R-21490-41092-09920-20398-33812-50363-51367-35594",
@@ -6655,7 +6655,7 @@
6655
6655
  "id": "R-21827-30701-03148-53639-55860-16366-16292-16032",
6656
6656
  "text": "The vfs query parameter causes the database connection to be opened using the VFS called NAME.",
6657
6657
  "source": "uri.html",
6658
- "classification": "SQL_BEHAVIOR"
6658
+ "classification": "NOT_APPLICABLE"
6659
6659
  },
6660
6660
  {
6661
6661
  "id": "R-21827-60920-49018-16791-65129-33759-13224-63617",
@@ -7267,7 +7267,7 @@
7267
7267
  "id": "R-23702-41282-42393-06958-42086-21645-30380-61682",
7268
7268
  "text": "The path is optional if the authority is present.",
7269
7269
  "source": "uri.html",
7270
- "classification": "SQL_BEHAVIOR"
7270
+ "classification": "NOT_APPLICABLE"
7271
7271
  },
7272
7272
  {
7273
7273
  "id": "R-23735-03107-03121-47557-18096-07566-30916-33769",
@@ -7381,7 +7381,7 @@
7381
7381
  "id": "R-24023-61156-56094-16008-29634-01440-59018-40109",
7382
7382
  "text": "The mode query parameter determines if the new database is opened read-only, read-write, read-write and created if it does not exist, or that the database is a pure in-memory database that never interacts with disk, respectively.",
7383
7383
  "source": "uri.html",
7384
- "classification": "SQL_BEHAVIOR"
7384
+ "classification": "NOT_APPLICABLE"
7385
7385
  },
7386
7386
  {
7387
7387
  "id": "R-24078-09375-10188-46060-61284-00703-09304-21721",
@@ -7675,7 +7675,7 @@
7675
7675
  "id": "R-24784-09209-65529-37322-41810-39114-37590-65280",
7676
7676
  "text": "The authority may be omitted, may be blank, or may be \"localhost\". Any other authority results in an error.",
7677
7677
  "source": "uri.html",
7678
- "classification": "SQL_BEHAVIOR"
7678
+ "classification": "NOT_APPLICABLE"
7679
7679
  },
7680
7680
  {
7681
7681
  "id": "R-24843-55391-00331-31917-58094-58865-54184-39062",
@@ -8053,7 +8053,7 @@
8053
8053
  "id": "R-26031-07851-20661-23903-48754-42738-42414-42677",
8054
8054
  "text": "URIs are processed as UTF8 text.",
8055
8055
  "source": "uri.html",
8056
- "classification": "SQL_BEHAVIOR"
8056
+ "classification": "NOT_APPLICABLE"
8057
8057
  },
8058
8058
  {
8059
8059
  "id": "R-26078-30979-29806-34785-43846-23819-01793-57552",
@@ -8299,7 +8299,7 @@
8299
8299
  "id": "R-26810-60950-31083-35442-30714-31340-57644-05934",
8300
8300
  "text": "If the authority section is present, then the path is always an absolute pathname.",
8301
8301
  "source": "uri.html",
8302
- "classification": "SQL_BEHAVIOR"
8302
+ "classification": "NOT_APPLICABLE"
8303
8303
  },
8304
8304
  {
8305
8305
  "id": "R-26835-10964-22323-42888-35777-38355-20607-28933",
@@ -9289,7 +9289,7 @@
9289
9289
  "id": "R-29753-05667-59108-06137-58483-55469-25582-30166",
9290
9290
  "text": "The text of query parameters is appended to the filename argument of the xOpen method of the VFS.",
9291
9291
  "source": "uri.html",
9292
- "classification": "SQL_BEHAVIOR"
9292
+ "classification": "NOT_APPLICABLE"
9293
9293
  },
9294
9294
  {
9295
9295
  "id": "R-29765-45832-49120-26582-31576-30942-45829-65039",
@@ -10027,7 +10027,7 @@
10027
10027
  "id": "R-31883-14373-53297-17557-08649-10879-14648-40339",
10028
10028
  "text": "If the path component is omitted, then the database is stored in a temporary file that will be automatically deleted when the database connection closes.",
10029
10029
  "source": "uri.html",
10030
- "classification": "SQL_BEHAVIOR"
10030
+ "classification": "NOT_APPLICABLE"
10031
10031
  },
10032
10032
  {
10033
10033
  "id": "R-31884-19145-46591-63123-39712-55381-35148-20037",
@@ -10051,7 +10051,7 @@
10051
10051
  "id": "R-31984-08010-07046-54406-16085-56792-07633-10679",
10052
10052
  "text": "On windows, if the absolute path begins with \"/X:/\" where X is any single ASCII alphabetic character (\"a\" through \"z\" or \"A\" through \"Z\") then the \"X:\" is understood to be the drive letter of the volume containing the file, not the toplevel directory.",
10053
10053
  "source": "uri.html",
10054
- "classification": "SQL_BEHAVIOR"
10054
+ "classification": "NOT_APPLICABLE"
10055
10055
  },
10056
10056
  {
10057
10057
  "id": "R-31989-51162-12344-35872-57783-63477-65151-09543",
@@ -10639,7 +10639,7 @@
10639
10639
  "id": "R-34023-52929-12261-02515-22772-45177-48508-47679",
10640
10640
  "text": "The query string is optional.",
10641
10641
  "source": "uri.html",
10642
- "classification": "SQL_BEHAVIOR"
10642
+ "classification": "NOT_APPLICABLE"
10643
10643
  },
10644
10644
  {
10645
10645
  "id": "R-34027-00617-24854-21763-47858-39540-20896-63477",
@@ -10861,7 +10861,7 @@
10861
10861
  "id": "R-34706-05629-19212-06603-14274-22035-31068-37221",
10862
10862
  "text": "The open attempt fails if NAME is not the name of a VFS that is built into SQLite or that has been previously registered using sqlite3_vfs_register().",
10863
10863
  "source": "uri.html",
10864
- "classification": "SQL_BEHAVIOR"
10864
+ "classification": "NOT_APPLICABLE"
10865
10865
  },
10866
10866
  {
10867
10867
  "id": "R-34730-53445-15838-11944-46041-12438-53750-14468",
@@ -11593,7 +11593,7 @@
11593
11593
  "id": "R-37099-37053-38363-03939-37447-24344-49731-34436",
11594
11594
  "text": "Similarly, if URI filenames are not recognized when the database connection is first opened, they will not be recognized by ATTACH.",
11595
11595
  "source": "uri.html",
11596
- "classification": "SQL_BEHAVIOR"
11596
+ "classification": "NOT_APPLICABLE"
11597
11597
  },
11598
11598
  {
11599
11599
  "id": "R-37127-14782-63396-43128-39237-20363-34771-13214",
@@ -11755,7 +11755,7 @@
11755
11755
  "id": "R-37783-42715-27194-59163-53660-14941-49401-50024",
11756
11756
  "text": "Any %HH escape sequences in the query parameters are resolved prior to being appended to the xOpen filename.",
11757
11757
  "source": "uri.html",
11758
- "classification": "SQL_BEHAVIOR"
11758
+ "classification": "NOT_APPLICABLE"
11759
11759
  },
11760
11760
  {
11761
11761
  "id": "R-37795-21752-00915-21672-38602-04515-27824-24579",
@@ -12037,7 +12037,7 @@
12037
12037
  "id": "R-38577-07276-49824-55947-21917-12317-50155-56118",
12038
12038
  "text": "If the query string is present, then all query parameters are passed through into the xOpen method of the underlying VFS.",
12039
12039
  "source": "uri.html",
12040
- "classification": "SQL_BEHAVIOR"
12040
+ "classification": "NOT_APPLICABLE"
12041
12041
  },
12042
12042
  {
12043
12043
  "id": "R-38578-34175-46775-59738-25546-18239-05883-23898",
@@ -12073,7 +12073,7 @@
12073
12073
  "id": "R-38650-02327-39862-58764-51816-33051-52085-34596",
12074
12074
  "text": "The immutable query parameter is a boolean that signals to SQLite that the underlying database file is held on read-only media and cannot be modified, even by another process with elevated privileges.",
12075
12075
  "source": "uri.html",
12076
- "classification": "SQL_BEHAVIOR"
12076
+ "classification": "NOT_APPLICABLE"
12077
12077
  },
12078
12078
  {
12079
12079
  "id": "R-38720-18127-00182-16789-56682-25353-36594-39383",
@@ -12091,7 +12091,7 @@
12091
12091
  "id": "R-38799-08373-51877-49685-25873-19436-11233-20221",
12092
12092
  "text": "URI filenames can be enabled or disabled using the SQLITE_USE_URI=1 or SQLITE_USE_URI=0 compile-time options.",
12093
12093
  "source": "uri.html",
12094
- "classification": "SQL_BEHAVIOR"
12094
+ "classification": "NOT_APPLICABLE"
12095
12095
  },
12096
12096
  {
12097
12097
  "id": "R-38815-48046-28937-36081-10893-02265-15426-25349",
@@ -12349,7 +12349,7 @@
12349
12349
  "id": "R-39448-56079-43024-42660-00434-04264-13777-54050",
12350
12350
  "text": "The filename argument sqlite3_open16() is converted from UTF16 native byte order into UTF8 prior to processing.",
12351
12351
  "source": "uri.html",
12352
- "classification": "SQL_BEHAVIOR"
12352
+ "classification": "NOT_APPLICABLE"
12353
12353
  },
12354
12354
  {
12355
12355
  "id": "R-39464-12723-18801-15682-15503-09131-15880-06935",
@@ -12553,7 +12553,7 @@
12553
12553
  "id": "R-40233-33496-43567-58551-03815-59938-27256-59385",
12554
12554
  "text": "The nolock query parameter is a boolean that disables all calls to the xLock, xUnlock, and xCheckReservedLock methods of the VFS when true.",
12555
12555
  "source": "uri.html",
12556
- "classification": "SQL_BEHAVIOR"
12556
+ "classification": "NOT_APPLICABLE"
12557
12557
  },
12558
12558
  {
12559
12559
  "id": "R-40235-17052-28075-57665-18059-48204-40601-49682",
@@ -14131,7 +14131,7 @@
14131
14131
  "id": "R-44270-63173-43365-51432-46246-26535-62506-06270",
14132
14132
  "text": "Both key and value may contain %HH escape sequences.",
14133
14133
  "source": "uri.html",
14134
- "classification": "SQL_BEHAVIOR"
14134
+ "classification": "NOT_APPLICABLE"
14135
14135
  },
14136
14136
  {
14137
14137
  "id": "R-44272-02265-45662-49730-44670-47137-63900-27537",
@@ -14143,7 +14143,7 @@
14143
14143
  "id": "R-44289-63209-61315-10942-18523-19279-36717-48244",
14144
14144
  "text": "If the authority is omitted then the path is required.",
14145
14145
  "source": "uri.html",
14146
- "classification": "SQL_BEHAVIOR"
14146
+ "classification": "NOT_APPLICABLE"
14147
14147
  },
14148
14148
  {
14149
14149
  "id": "R-44294-52863-08300-09780-12014-19647-27880-25111",
@@ -15313,7 +15313,7 @@
15313
15313
  "id": "R-47688-18802-24758-22650-17797-24943-61288-58043",
15314
15314
  "text": "The query string is divided into key/value pairs.",
15315
15315
  "source": "uri.html",
15316
- "classification": "SQL_BEHAVIOR"
15316
+ "classification": "NOT_APPLICABLE"
15317
15317
  },
15318
15318
  {
15319
15319
  "id": "R-47709-27231-29719-54015-39691-57688-49858-37109",
@@ -15487,7 +15487,7 @@
15487
15487
  "id": "R-48245-15045-20041-46563-30518-58270-45669-62749",
15488
15488
  "text": "A filename that is not a well-formed URI is interpreted as an ordinary filename.",
15489
15489
  "source": "uri.html",
15490
- "classification": "SQL_BEHAVIOR"
15490
+ "classification": "NOT_APPLICABLE"
15491
15491
  },
15492
15492
  {
15493
15493
  "id": "R-48254-42943-07993-04131-52492-34370-46050-41806",
@@ -16195,7 +16195,7 @@
16195
16195
  "id": "R-50436-30597-52741-48231-49256-06993-48572-34850",
16196
16196
  "text": "The list of query parameters appended to the xOpen filename is terminated by a single zero-length key.",
16197
16197
  "source": "uri.html",
16198
- "classification": "SQL_BEHAVIOR"
16198
+ "classification": "NOT_APPLICABLE"
16199
16199
  },
16200
16200
  {
16201
16201
  "id": "R-50437-53270-64199-48076-12233-35385-13777-56267",
@@ -16321,7 +16321,7 @@
16321
16321
  "id": "R-50779-31451-02741-56798-14558-26402-32929-36548",
16322
16322
  "text": "Regardless of the compile-time or start-time settings, URI filenames can be enabled for individual database connections by including the SQLITE_OPEN_URI bit in the set of bits passed as the F parameter to sqlite3_open_v2(N,P,F,V).",
16323
16323
  "source": "uri.html",
16324
- "classification": "SQL_BEHAVIOR"
16324
+ "classification": "NOT_APPLICABLE"
16325
16325
  },
16326
16326
  {
16327
16327
  "id": "R-50786-24793-54635-21021-11581-63558-51983-08230",
@@ -16417,7 +16417,7 @@
16417
16417
  "id": "R-51132-22354-55296-53634-47929-60689-49370-19301",
16418
16418
  "text": "The fragment is optional. If present, it is ignored.",
16419
16419
  "source": "uri.html",
16420
- "classification": "SQL_BEHAVIOR"
16420
+ "classification": "NOT_APPLICABLE"
16421
16421
  },
16422
16422
  {
16423
16423
  "id": "R-51136-58806-61234-62019-55007-59360-42389-06217",
@@ -16501,7 +16501,7 @@
16501
16501
  "id": "R-51332-60960-52674-22540-45151-35167-25354-18137",
16502
16502
  "text": "Zero or more escape sequences of the form \"%HH\" (where H represents any hexadecimal digit) can occur in the path, query string, or fragment.",
16503
16503
  "source": "uri.html",
16504
- "classification": "SQL_BEHAVIOR"
16504
+ "classification": "NOT_APPLICABLE"
16505
16505
  },
16506
16506
  {
16507
16507
  "id": "R-51343-23764-31964-03774-37293-59817-59078-38155",
@@ -16945,7 +16945,7 @@
16945
16945
  "id": "R-52830-19955-18632-16869-37447-04753-28772-23279",
16946
16946
  "text": "A URI filename can optionally be followed by a query string.",
16947
16947
  "source": "uri.html",
16948
- "classification": "SQL_BEHAVIOR"
16948
+ "classification": "NOT_APPLICABLE"
16949
16949
  },
16950
16950
  {
16951
16951
  "id": "R-52843-09507-00185-40399-22075-19673-59320-05443",
@@ -17329,7 +17329,7 @@
17329
17329
  "id": "R-53994-49363-33213-19869-13324-28404-40753-33810",
17330
17330
  "text": "If the authority section is omitted, then the path is an absolute pathname if it begins with the \"/\" character (ASCII code 0x2f) and is a relative pathname otherwise.",
17331
17331
  "source": "uri.html",
17332
- "classification": "SQL_BEHAVIOR"
17332
+ "classification": "NOT_APPLICABLE"
17333
17333
  },
17334
17334
  {
17335
17335
  "id": "R-54020-18969-35305-43404-58494-09530-16898-08730",
@@ -17803,7 +17803,7 @@
17803
17803
  "id": "R-55548-33817-29284-24020-20403-44127-42701-15933",
17804
17804
  "text": "The compile-time setting for URI filenames can be changed at start-time using the sqlite3_config(SQLITE_CONFIG_URI,1) or sqlite3_config(SQLITE_CONFIG_URI,0) configuration calls.",
17805
17805
  "source": "uri.html",
17806
- "classification": "SQL_BEHAVIOR"
17806
+ "classification": "NOT_APPLICABLE"
17807
17807
  },
17808
17808
  {
17809
17809
  "id": "R-55594-21030-55644-51033-26913-03312-40389-27101",
@@ -18283,7 +18283,7 @@
18283
18283
  "id": "R-57313-56280-52259-04296-10229-37412-19300-33360",
18284
18284
  "text": "If URI filenames are recognized when the database connection is originally opened, then URI filenames will also be recognized on ATTACH statements.",
18285
18285
  "source": "uri.html",
18286
- "classification": "SQL_BEHAVIOR"
18286
+ "classification": "NOT_APPLICABLE"
18287
18287
  },
18288
18288
  {
18289
18289
  "id": "R-57343-49114-15055-13437-46054-52631-22669-49552",
@@ -18433,7 +18433,7 @@
18433
18433
  "id": "R-57884-37496-29952-23489-26945-21299-05103-05410",
18434
18434
  "text": "The scheme of the URI must be \"file:\". Any other scheme results in the input being treated as an ordinary filename.",
18435
18435
  "source": "uri.html",
18436
- "classification": "SQL_BEHAVIOR"
18436
+ "classification": "NOT_APPLICABLE"
18437
18437
  },
18438
18438
  {
18439
18439
  "id": "R-57928-57565-35172-43517-28321-39002-52243-13899",
@@ -19195,7 +19195,7 @@
19195
19195
  "id": "R-60324-39271-63103-21591-25385-29112-09183-41163",
19196
19196
  "text": "Key/value pairs are separated by a single \"&\" character.",
19197
19197
  "source": "uri.html",
19198
- "classification": "SQL_BEHAVIOR"
19198
+ "classification": "NOT_APPLICABLE"
19199
19199
  },
19200
19200
  {
19201
19201
  "id": "R-60334-12880-45954-16548-05057-35188-10924-38811",
@@ -19285,7 +19285,7 @@
19285
19285
  "id": "R-60626-59740-27448-56337-63939-00650-38940-26585",
19286
19286
  "text": "All query parameters are always passed through into the xOpen method of the VFS even if they are previously read and interpreted by the SQLite core.",
19287
19287
  "source": "uri.html",
19288
- "classification": "SQL_BEHAVIOR"
19288
+ "classification": "NOT_APPLICABLE"
19289
19289
  },
19290
19290
  {
19291
19291
  "id": "R-60642-04082-57988-56847-11396-02756-59286-18214",
@@ -0,0 +1,63 @@
1
+ /** Construct-level drop-in parity catalog types. */
2
+
3
+ export const SECTION_CODES = [
4
+ "TOK",
5
+ "PAR",
6
+ "TYP",
7
+ "EXP",
8
+ "FUN",
9
+ "DAT",
10
+ "JSN",
11
+ "AGG",
12
+ "WIN",
13
+ "SEL",
14
+ "JOI",
15
+ "CTE",
16
+ "DDL",
17
+ "DML",
18
+ "CON",
19
+ "TRG",
20
+ "TXN",
21
+ "PRG",
22
+ "COL",
23
+ "FTS",
24
+ "ATT",
25
+ "API",
26
+ "SNP",
27
+ "DET",
28
+ "ERR",
29
+ "UNI",
30
+ "LIM",
31
+ "FZZ",
32
+ "ECO",
33
+ ] as const;
34
+
35
+ export type SectionCode = (typeof SECTION_CODES)[number];
36
+
37
+ export type ScenarioKind = "differential" | "documented_divergence" | "fuzz" | "property" | "ecosystem";
38
+
39
+ export type ProofStrength = "proves" | "smoke";
40
+
41
+ export interface Scenario {
42
+ id: string;
43
+ title: string;
44
+ kind: ScenarioKind;
45
+ evidence: string[];
46
+ notes?: string;
47
+ divergenceId?: string;
48
+ strength?: ProofStrength;
49
+ }
50
+
51
+ export interface CatalogSection {
52
+ code: SectionCode;
53
+ title: string;
54
+ promoted: boolean;
55
+ scenarios: Scenario[];
56
+ }
57
+
58
+ /** IDs look like `TOK-01`, `WIN-frame-04`, `DET-negzero-01`. */
59
+ export const SCENARIO_ID_RE = /^([A-Z]{3})(?:-[a-z0-9]+)*-\d{2,}$/;
60
+
61
+ export function catalogTestFile(code: SectionCode): string {
62
+ return `tests/contract/catalog/${code.toLowerCase()}.test.ts`;
63
+ }