superdb-mcp 1.2.0 → 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.
- package/dist/index.js +1 -1
- package/dist/tools/info.js +1 -1
- package/dist/tools/info.js.map +1 -1
- package/dist/tools/recipes.d.ts +1 -0
- package/dist/tools/recipes.d.ts.map +1 -1
- package/dist/tools/recipes.js +3 -0
- package/dist/tools/recipes.js.map +1 -1
- package/docs/recipes/escape.spq +102 -0
- package/docs/recipes/string.spq +2 -2
- package/docs/superdb-expert.md +2 -2
- package/docs/tutorials/bash_to_sup.md +3 -3
- package/docs/tutorials/chess-tiebreaks.md +19 -18
- package/docs/tutorials/fork_for_window.md +128 -135
- package/docs/tutorials/grok.md +3 -3
- package/docs/tutorials/joins.md +3 -3
- package/docs/tutorials/moar_subqueries.md +2 -2
- package/docs/tutorials/subqueries.md +4 -4
- package/docs/tutorials/sup_to_bash.md +2 -2
- package/docs/tutorials/super_db_update.md +2 -2
- package/docs/tutorials/unnest.md +3 -3
- package/docs/zq-to-super-upgrades.md +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
package/dist/tools/info.js
CHANGED
|
@@ -192,7 +192,7 @@ function listTutorials() {
|
|
|
192
192
|
return [];
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
const SITE_BASE = 'https://chrismo.github.io/superkit';
|
|
195
|
+
const SITE_BASE = 'https://chrismo.github.io/superkit/_build';
|
|
196
196
|
const webUrls = {
|
|
197
197
|
'expert': `${SITE_BASE}/expert-guide`,
|
|
198
198
|
'upgrade': `${SITE_BASE}/upgrade-guide`,
|
package/dist/tools/info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/recipes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/tools/recipes.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/tools/recipes.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AA8HD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAsC1D"}
|
package/dist/tools/recipes.js
CHANGED
|
@@ -95,12 +95,15 @@ function parseSkdocObject(raw, sourceFile) {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
+
// Parse snippet (uses single quotes to avoid double-quote escaping issues)
|
|
99
|
+
const snippetMatch = raw.match(/snippet:'([^']+)'/);
|
|
98
100
|
return {
|
|
99
101
|
name: nameMatch[1],
|
|
100
102
|
type: typeMatch[1],
|
|
101
103
|
description: descMatch[1],
|
|
102
104
|
args,
|
|
103
105
|
examples,
|
|
106
|
+
...(snippetMatch && { snippet: snippetMatch[1] }),
|
|
104
107
|
source_file: sourceFile,
|
|
105
108
|
};
|
|
106
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/tools/recipes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/tools/recipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
fn skdoc_csv_field(): (
|
|
2
|
+
cast(
|
|
3
|
+
{name:"sk_csv_field",
|
|
4
|
+
type:"func",
|
|
5
|
+
desc:"Escapes a string for use as a CSV field per RFC 4180. Wraps in double quotes and doubles internal quotes when the value contains commas, quotes, or newlines. Plain values pass through unchanged.",
|
|
6
|
+
args:[{name:"s",desc:"The string to escape"}],
|
|
7
|
+
examples:[{i:"sk_csv_field('plain')",o:"'plain'"},
|
|
8
|
+
{i:"sk_csv_field('hello, world')",o:"quoted and wrapped"},
|
|
9
|
+
{i:"sk_csv_field('has newline')",o:"quoted and wrapped"}] }, <skdoc>)
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
fn sk_csv_field(s): (
|
|
13
|
+
grep("[,\"\n]", s)
|
|
14
|
+
? f"\"{replace(s, "\"", "\"\"")}\""
|
|
15
|
+
: s
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
fn skdoc_csv_row(): (
|
|
19
|
+
cast(
|
|
20
|
+
{name:"sk_csv_row",
|
|
21
|
+
type:"func",
|
|
22
|
+
desc:"Builds a CSV row from an array of values. Each element is cast to string and escaped with sk_csv_field, then joined with commas.",
|
|
23
|
+
args:[{name:"arr",desc:"Array of values to format as a CSV row"}],
|
|
24
|
+
examples:[{i:"sk_csv_row(arr) where arr has commas",o:"fields with commas get quoted"}] }, <skdoc>)
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
fn sk_csv_row(arr): (
|
|
28
|
+
join([unnest arr | values sk_csv_field(cast(this, <string>))], ",")
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
fn skdoc_shell_quote(): (
|
|
32
|
+
cast(
|
|
33
|
+
{name:"sk_shell_quote",
|
|
34
|
+
type:"func",
|
|
35
|
+
desc:"Wraps a string in POSIX shell single quotes. Internal single quotes are escaped so the result is safe for shell interpolation. Protects against injection of $, backticks, and other shell metacharacters.",
|
|
36
|
+
args:[{name:"s",desc:"The string to quote"}],
|
|
37
|
+
examples:[{i:"sk_shell_quote('hello world')",o:"single-quoted string"},
|
|
38
|
+
{i:"sk_shell_quote('has $var')",o:"single-quoted, $ not expanded"}] }, <skdoc>)
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
fn sk_shell_quote(s): (
|
|
42
|
+
f"'{replace(s, "'", "'\\''")}'"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
fn skdoc_tsv_field(): (
|
|
46
|
+
cast(
|
|
47
|
+
{name:"sk_tsv_field",
|
|
48
|
+
type:"func",
|
|
49
|
+
desc:"Escapes a value for use in a TSV field. Casts to string, then replaces literal tab and newline characters with their backslash-escaped forms.",
|
|
50
|
+
args:[{name:"s",desc:"The value to escape"}],
|
|
51
|
+
examples:[{i:"sk_tsv_field('col1\\tcol2')",o:"tabs replaced with literal \\t"},
|
|
52
|
+
{i:"sk_tsv_field('line1\\nline2')",o:"newlines replaced with literal \\n"}] }, <skdoc>)
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
fn sk_tsv_field(s): (
|
|
56
|
+
replace(replace(cast(s, <string>), "\t", "\\t"), "\n", "\\n")
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
-- Shell patterns for safe text ingestion
|
|
60
|
+
-- The key insight: never interpolate untrusted text into a SuperQL string literal.
|
|
61
|
+
-- Pipe raw text through super with -i line and let the serializer handle escaping.
|
|
62
|
+
-- These patterns work from any language that can spawn a subprocess.
|
|
63
|
+
|
|
64
|
+
fn skdoc_safe_text_to_record(): (
|
|
65
|
+
cast(
|
|
66
|
+
{name:"safe_text_to_record",
|
|
67
|
+
type:"shell",
|
|
68
|
+
desc:"Pipe raw text into super to build a record without string interpolation. The text never passes through shell expansion or manual escaping. Works from any language via subprocess.",
|
|
69
|
+
args:[],
|
|
70
|
+
snippet:'echo "$text" | super -s -i line -c "values {body: this}" -',
|
|
71
|
+
examples:[{i:"text with quotes and $pecial chars",o:"safely embedded in a .sup record"}] }, <skdoc>)
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
fn skdoc_safe_text_to_string(): (
|
|
75
|
+
cast(
|
|
76
|
+
{name:"safe_text_to_string",
|
|
77
|
+
type:"shell",
|
|
78
|
+
desc:"Pipe raw text through super to get a properly escaped SUP string literal. Useful when you need the escaped value for embedding in other SUP data.",
|
|
79
|
+
args:[],
|
|
80
|
+
snippet:'echo "$text" | super -s -i line -c "values this" -',
|
|
81
|
+
examples:[{i:"She said hello and backslash",o:"properly escaped SUP string"}] }, <skdoc>)
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
fn skdoc_safe_multiline_to_record(): (
|
|
85
|
+
cast(
|
|
86
|
+
{name:"safe_multiline_to_record",
|
|
87
|
+
type:"shell",
|
|
88
|
+
desc:"Collapse multiline text into a single record field. Each line is collected then joined with newline characters. The text is never interpolated through the shell.",
|
|
89
|
+
args:[],
|
|
90
|
+
snippet:'echo "$text" | super -s -i line -c "aggregate s:=collect(this) | values {body: join(s, \"\\n\")}" -',
|
|
91
|
+
examples:[{i:"multi-line text with special chars",o:"single record with embedded newlines"}] }, <skdoc>)
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
fn skdoc_safe_append_to_sup_file(): (
|
|
95
|
+
cast(
|
|
96
|
+
{name:"safe_append_to_sup_file",
|
|
97
|
+
type:"shell",
|
|
98
|
+
desc:"Append a timestamped record with raw text to a .sup file. Common pattern for scripts that log or accumulate structured data from unstructured input.",
|
|
99
|
+
args:[],
|
|
100
|
+
snippet:'echo "$text" | super -s -i line -c "values {ts: now(), body: this}" - >> data.sup',
|
|
101
|
+
examples:[{i:"arbitrary user input",o:"appended as timestamped record to .sup file"}] }, <skdoc>)
|
|
102
|
+
)
|
package/docs/recipes/string.spq
CHANGED
|
@@ -80,7 +80,7 @@ fn sk_pad_right(s, pad_char, target_length): (
|
|
|
80
80
|
-- TODO: skdoc_urldecode
|
|
81
81
|
|
|
82
82
|
-- URL Decoder for SuperDB
|
|
83
|
-
-- Usage: super -I urldecode.spq -s -c 'values
|
|
83
|
+
-- Usage: super -I urldecode.spq -s -c 'values sk_urldecode(this)' - <<< '"%2Ftavern%20test"'
|
|
84
84
|
-- Or inline the definitions in your query
|
|
85
85
|
|
|
86
86
|
-- Helper operator to decode a single segment after splitting on %
|
|
@@ -99,7 +99,7 @@ op sk_decode_seg s: (
|
|
|
99
99
|
op sk_urldecode url: (
|
|
100
100
|
split(url, "%")
|
|
101
101
|
| unnest this
|
|
102
|
-
|
|
|
102
|
+
| sk_decode_seg this
|
|
103
103
|
| collect(this)
|
|
104
104
|
| join(this, "")
|
|
105
105
|
)
|
package/docs/superdb-expert.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: superdb-expert
|
|
3
3
|
description: "Expert guide for SuperDB queries and data transformations. Covers syntax, patterns, and best practices."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-01-31"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/expert-guide/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# SuperDB Query Specialist
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bash-to-sup
|
|
3
3
|
description: "Getting raw text safely from Bash into SuperDB without manual escaping."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-17"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/bash_to_sup/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Getting Bash Text into SuperDB
|
|
@@ -14,7 +14,7 @@ getting raw text from Bash into SuperDB.
|
|
|
14
14
|
## The Problem
|
|
15
15
|
|
|
16
16
|
When building `.sup` records from Bash, you need to escape text before embedding
|
|
17
|
-
it in
|
|
17
|
+
it in SUP strings. A common approach is manual escaping with sed:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
# Manual escaping — fragile and error-prone
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: chess-tiebreaks
|
|
3
3
|
description: "End-to-end tutorial parsing PGN chess data to find tie-break games."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/chess-tiebreaks/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Chess Tiebreaks
|
|
@@ -32,10 +32,9 @@ super -i line -s -c "
|
|
|
32
32
|
--
|
|
33
33
|
-- pair up each player in each game
|
|
34
34
|
--
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
| put game_id:=((row_num - 1) / 2)::int64
|
|
35
|
+
| count
|
|
36
|
+
| put game_id:=((count - 1) / 2)::int64
|
|
37
|
+
| values {...that, game_id}
|
|
39
38
|
| aggregate
|
|
40
39
|
last_name_white:=max(last_name_white),
|
|
41
40
|
last_name_black:=max(last_name_black)
|
|
@@ -64,12 +63,12 @@ super -i line -s -c "
|
|
|
64
63
|
```
|
|
65
64
|
|
|
66
65
|
```mdtest-output
|
|
67
|
-
{player:"Abdusattorov",opponent:"Wei",count:3
|
|
68
|
-
{player:"Giri",opponent:"Gukesh",count:4
|
|
69
|
-
{player:"Gukesh",opponent:"Giri",count:4
|
|
70
|
-
{player:"Gukesh",opponent:"Wei",count:3
|
|
71
|
-
{player:"Wei",opponent:"Abdusattorov",count:3
|
|
72
|
-
{player:"Wei",opponent:"Gukesh",count:3
|
|
66
|
+
{player:"Abdusattorov",opponent:"Wei",count:3}
|
|
67
|
+
{player:"Giri",opponent:"Gukesh",count:4}
|
|
68
|
+
{player:"Gukesh",opponent:"Giri",count:4}
|
|
69
|
+
{player:"Gukesh",opponent:"Wei",count:3}
|
|
70
|
+
{player:"Wei",opponent:"Abdusattorov",count:3}
|
|
71
|
+
{player:"Wei",opponent:"Gukesh",count:3}
|
|
73
72
|
```
|
|
74
73
|
|
|
75
74
|
## Walkthrough
|
|
@@ -94,9 +93,11 @@ which we filter with `where not is_error(this)`.
|
|
|
94
93
|
PGN files list White and Black players on consecutive lines for each game. We
|
|
95
94
|
need to combine them into single records.
|
|
96
95
|
|
|
97
|
-
The
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
The `count` operator adds a sequential `count` field to each record (1, 2, 3, ...).
|
|
97
|
+
Integer division `(count - 1) / 2` maps pairs of rows to the same game_id:
|
|
98
|
+
rows 1,2 get game_id 0; rows 3,4 get game_id 1, etc. The `count` operator wraps
|
|
99
|
+
the input in a `that` field, so `{...that, game_id}` spreads the original fields
|
|
100
|
+
back out alongside the game_id.
|
|
100
101
|
|
|
101
102
|
Then `aggregate ... by game_id` with `max()` picks up the non-null value from
|
|
102
103
|
each field within each pair.
|
|
@@ -211,8 +212,8 @@ super -s -c "
|
|
|
211
212
|
```
|
|
212
213
|
|
|
213
214
|
```mdtest-output
|
|
214
|
-
{player:"Gukesh",opponent:"Wei",count:2
|
|
215
|
-
{player:"Wei",opponent:"Gukesh",count:2
|
|
215
|
+
{player:"Gukesh",opponent:"Wei",count:2}
|
|
216
|
+
{player:"Wei",opponent:"Gukesh",count:2}
|
|
216
217
|
```
|
|
217
218
|
|
|
218
219
|
## as of versions
|
|
@@ -221,5 +222,5 @@ super -s -c "
|
|
|
221
222
|
super --version
|
|
222
223
|
```
|
|
223
224
|
```mdtest-output
|
|
224
|
-
Version: v0.
|
|
225
|
+
Version: v0.2.0
|
|
225
226
|
```
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
title: "Fork as a Window Function Workaround"
|
|
3
3
|
description: "Using fork as a workaround for window functions to do per-group selection."
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
layout: default
|
|
5
|
+
nav_order: 3
|
|
6
|
+
parent: Tutorials
|
|
7
|
+
superdb_version: "0.2.0"
|
|
8
|
+
last_updated: "2026-02-20"
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
# Fork as a Window Function Workaround
|
|
@@ -21,17 +23,15 @@ You have a pool of available EC2 instances spread across availability zones.
|
|
|
21
23
|
You need to pick instances while maximizing AZ distribution — taking an equal
|
|
22
24
|
number from each zone rather than filling up from one.
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{id:
|
|
28
|
-
{id:
|
|
29
|
-
{id:
|
|
30
|
-
{id:
|
|
31
|
-
{id:
|
|
32
|
-
{id:
|
|
33
|
-
{id:'i-007', az:'us-east-1c'}
|
|
34
|
-
{id:'i-008', az:'us-east-1c'}
|
|
26
|
+
```mdtest-input instances.sup
|
|
27
|
+
{id:"i-001",az:"us-east-1a"}
|
|
28
|
+
{id:"i-002",az:"us-east-1a"}
|
|
29
|
+
{id:"i-003",az:"us-east-1a"}
|
|
30
|
+
{id:"i-004",az:"us-east-1b"}
|
|
31
|
+
{id:"i-005",az:"us-east-1c"}
|
|
32
|
+
{id:"i-006",az:"us-east-1c"}
|
|
33
|
+
{id:"i-007",az:"us-east-1c"}
|
|
34
|
+
{id:"i-008",az:"us-east-1c"}
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Distribution: 3 in `us-east-1a`, 1 in `us-east-1b`, 4 in `us-east-1c`.
|
|
@@ -59,29 +59,40 @@ from every branch are merged back together into a single stream.
|
|
|
59
59
|
|
|
60
60
|
Here's the full query — we'll break it down step by step after:
|
|
61
61
|
|
|
62
|
+
```mdtest-command
|
|
63
|
+
super -s -c "
|
|
64
|
+
from instances.sup
|
|
65
|
+
| fork
|
|
66
|
+
( where az=='us-east-1a' | head 2 )
|
|
67
|
+
( where az=='us-east-1b' | head 2 )
|
|
68
|
+
( where az=='us-east-1c' | head 2 )
|
|
69
|
+
| sort az, id
|
|
70
|
+
"
|
|
62
71
|
```
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
```mdtest-output
|
|
73
|
+
{id:"i-001",az:"us-east-1a"}
|
|
74
|
+
{id:"i-002",az:"us-east-1a"}
|
|
75
|
+
{id:"i-004",az:"us-east-1b"}
|
|
76
|
+
{id:"i-005",az:"us-east-1c"}
|
|
77
|
+
{id:"i-006",az:"us-east-1c"}
|
|
69
78
|
```
|
|
70
79
|
|
|
71
80
|
### Step by Step
|
|
72
81
|
|
|
73
82
|
**Step 1: `from instances.sup`** — reads all 8 records into the stream:
|
|
74
83
|
|
|
84
|
+
```mdtest-command
|
|
85
|
+
super -s -c "from instances.sup"
|
|
75
86
|
```
|
|
76
|
-
|
|
77
|
-
i-001
|
|
78
|
-
i-002
|
|
79
|
-
i-003
|
|
80
|
-
i-004
|
|
81
|
-
i-005
|
|
82
|
-
i-006
|
|
83
|
-
i-007
|
|
84
|
-
i-008
|
|
87
|
+
```mdtest-output
|
|
88
|
+
{id:"i-001",az:"us-east-1a"}
|
|
89
|
+
{id:"i-002",az:"us-east-1a"}
|
|
90
|
+
{id:"i-003",az:"us-east-1a"}
|
|
91
|
+
{id:"i-004",az:"us-east-1b"}
|
|
92
|
+
{id:"i-005",az:"us-east-1c"}
|
|
93
|
+
{id:"i-006",az:"us-east-1c"}
|
|
94
|
+
{id:"i-007",az:"us-east-1c"}
|
|
95
|
+
{id:"i-008",az:"us-east-1c"}
|
|
85
96
|
```
|
|
86
97
|
|
|
87
98
|
**Step 2: `fork`** — sends all 8 records into each of three branches. Each
|
|
@@ -90,10 +101,12 @@ branch sees the full input and processes it independently.
|
|
|
90
101
|
**Branch 1:** `where az=='us-east-1a'` filters to 3 records, then `head 2`
|
|
91
102
|
keeps the first 2:
|
|
92
103
|
|
|
104
|
+
```mdtest-command
|
|
105
|
+
super -s -c "from instances.sup | where az=='us-east-1a' | head 2"
|
|
93
106
|
```
|
|
94
|
-
|
|
95
|
-
i-001
|
|
96
|
-
i-002
|
|
107
|
+
```mdtest-output
|
|
108
|
+
{id:"i-001",az:"us-east-1a"}
|
|
109
|
+
{id:"i-002",az:"us-east-1a"}
|
|
97
110
|
```
|
|
98
111
|
|
|
99
112
|
(i-003 was filtered out by `head 2`)
|
|
@@ -101,9 +114,11 @@ i-002 us-east-1a
|
|
|
101
114
|
**Branch 2:** `where az=='us-east-1b'` filters to 1 record, `head 2` returns
|
|
102
115
|
what's available:
|
|
103
116
|
|
|
117
|
+
```mdtest-command
|
|
118
|
+
super -s -c "from instances.sup | where az=='us-east-1b' | head 2"
|
|
104
119
|
```
|
|
105
|
-
|
|
106
|
-
i-004
|
|
120
|
+
```mdtest-output
|
|
121
|
+
{id:"i-004",az:"us-east-1b"}
|
|
107
122
|
```
|
|
108
123
|
|
|
109
124
|
Only 1 instance exists in this AZ. `head 2` doesn't error or pad — it just
|
|
@@ -112,10 +127,12 @@ returns what's there.
|
|
|
112
127
|
**Branch 3:** `where az=='us-east-1c'` filters to 4 records, `head 2` keeps
|
|
113
128
|
the first 2:
|
|
114
129
|
|
|
130
|
+
```mdtest-command
|
|
131
|
+
super -s -c "from instances.sup | where az=='us-east-1c' | head 2"
|
|
115
132
|
```
|
|
116
|
-
|
|
117
|
-
i-005
|
|
118
|
-
i-006
|
|
133
|
+
```mdtest-output
|
|
134
|
+
{id:"i-005",az:"us-east-1c"}
|
|
135
|
+
{id:"i-006",az:"us-east-1c"}
|
|
119
136
|
```
|
|
120
137
|
|
|
121
138
|
(i-007 and i-008 were filtered out by `head 2`)
|
|
@@ -128,13 +145,22 @@ interleaved differently on each run. This is why the final `sort` matters.
|
|
|
128
145
|
**Step 4: `sort az, id`** — sorts the combined results for clean, predictable
|
|
129
146
|
output:
|
|
130
147
|
|
|
148
|
+
```mdtest-command
|
|
149
|
+
super -s -c "
|
|
150
|
+
from instances.sup
|
|
151
|
+
| fork
|
|
152
|
+
( where az=='us-east-1a' | head 2 )
|
|
153
|
+
( where az=='us-east-1b' | head 2 )
|
|
154
|
+
( where az=='us-east-1c' | head 2 )
|
|
155
|
+
| sort az, id
|
|
156
|
+
"
|
|
131
157
|
```
|
|
132
|
-
|
|
133
|
-
i-001
|
|
134
|
-
i-002
|
|
135
|
-
i-004
|
|
136
|
-
i-005
|
|
137
|
-
i-006
|
|
158
|
+
```mdtest-output
|
|
159
|
+
{id:"i-001",az:"us-east-1a"}
|
|
160
|
+
{id:"i-002",az:"us-east-1a"}
|
|
161
|
+
{id:"i-004",az:"us-east-1b"}
|
|
162
|
+
{id:"i-005",az:"us-east-1c"}
|
|
163
|
+
{id:"i-006",az:"us-east-1c"}
|
|
138
164
|
```
|
|
139
165
|
|
|
140
166
|
2 from `us-east-1a`, 1 from `us-east-1b` (all it had), 2 from `us-east-1c` —
|
|
@@ -144,17 +170,15 @@ as balanced as possible given the available pool.
|
|
|
144
170
|
|
|
145
171
|
Without fork, you might try:
|
|
146
172
|
|
|
173
|
+
```mdtest-command
|
|
174
|
+
super -s -c "from instances.sup | sort az, id | head 5"
|
|
147
175
|
```
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
id
|
|
153
|
-
i-
|
|
154
|
-
i-002 us-east-1a
|
|
155
|
-
i-003 us-east-1a
|
|
156
|
-
i-004 us-east-1b
|
|
157
|
-
i-005 us-east-1c
|
|
176
|
+
```mdtest-output
|
|
177
|
+
{id:"i-001",az:"us-east-1a"}
|
|
178
|
+
{id:"i-002",az:"us-east-1a"}
|
|
179
|
+
{id:"i-003",az:"us-east-1a"}
|
|
180
|
+
{id:"i-004",az:"us-east-1b"}
|
|
181
|
+
{id:"i-005",az:"us-east-1c"}
|
|
158
182
|
```
|
|
159
183
|
|
|
160
184
|
All 3 from `us-east-1a`, the 1 from `us-east-1b`, and only 1 from `us-east-1c`.
|
|
@@ -165,21 +189,21 @@ distributing evenly.
|
|
|
165
189
|
|
|
166
190
|
You can check the balance of your selection by piping through an aggregate:
|
|
167
191
|
|
|
192
|
+
```mdtest-command
|
|
193
|
+
super -s -c "
|
|
194
|
+
from instances.sup
|
|
195
|
+
| fork
|
|
196
|
+
( where az=='us-east-1a' | head 2 )
|
|
197
|
+
( where az=='us-east-1b' | head 2 )
|
|
198
|
+
( where az=='us-east-1c' | head 2 )
|
|
199
|
+
| aggregate count:=count() by az
|
|
200
|
+
| sort az
|
|
201
|
+
"
|
|
168
202
|
```
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
( where az=='us-east-1c' | head 2 )
|
|
174
|
-
| aggregate count:=count() by az
|
|
175
|
-
| sort az
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
az count
|
|
180
|
-
us-east-1a 2
|
|
181
|
-
us-east-1b 1
|
|
182
|
-
us-east-1c 2
|
|
203
|
+
```mdtest-output
|
|
204
|
+
{az:"us-east-1a",count:2}
|
|
205
|
+
{az:"us-east-1b",count:1}
|
|
206
|
+
{az:"us-east-1c",count:2}
|
|
183
207
|
```
|
|
184
208
|
|
|
185
209
|
## Alternative: Self-Join for Row Numbering
|
|
@@ -189,11 +213,24 @@ any number of groups. The idea: for each record, count how many records in the
|
|
|
189
213
|
same group have an id less than or equal to it. This simulates
|
|
190
214
|
`ROW_NUMBER() OVER (PARTITION BY az ORDER BY id)`.
|
|
191
215
|
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
216
|
+
```mdtest-command
|
|
217
|
+
super -s -c "
|
|
218
|
+
select a.id, a.az, count(*) as row_num
|
|
219
|
+
from instances.sup a
|
|
220
|
+
join instances.sup b on a.az = b.az and b.id <= a.id
|
|
221
|
+
group by a.id, a.az
|
|
222
|
+
order by a.az, a.id
|
|
223
|
+
"
|
|
224
|
+
```
|
|
225
|
+
```mdtest-output
|
|
226
|
+
{id:"i-001",az:"us-east-1a",row_num:1}
|
|
227
|
+
{id:"i-002",az:"us-east-1a",row_num:2}
|
|
228
|
+
{id:"i-003",az:"us-east-1a",row_num:3}
|
|
229
|
+
{id:"i-004",az:"us-east-1b",row_num:1}
|
|
230
|
+
{id:"i-005",az:"us-east-1c",row_num:1}
|
|
231
|
+
{id:"i-006",az:"us-east-1c",row_num:2}
|
|
232
|
+
{id:"i-007",az:"us-east-1c",row_num:3}
|
|
233
|
+
{id:"i-008",az:"us-east-1c",row_num:4}
|
|
197
234
|
```
|
|
198
235
|
|
|
199
236
|
Step by step, for record `i-006` in `us-east-1c`:
|
|
@@ -202,41 +239,27 @@ Step by step, for record `i-006` in `us-east-1c`:
|
|
|
202
239
|
`id <= 'i-006'`: that's `i-005` and `i-006` itself.
|
|
203
240
|
2. `count(*)` = 2, so `row_num` = 2.
|
|
204
241
|
|
|
205
|
-
The full result:
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
id az row_num
|
|
209
|
-
i-001 us-east-1a 1
|
|
210
|
-
i-002 us-east-1a 2
|
|
211
|
-
i-003 us-east-1a 3
|
|
212
|
-
i-004 us-east-1b 1
|
|
213
|
-
i-005 us-east-1c 1
|
|
214
|
-
i-006 us-east-1c 2
|
|
215
|
-
i-007 us-east-1c 3
|
|
216
|
-
i-008 us-east-1c 4
|
|
217
|
-
```
|
|
218
|
-
|
|
219
242
|
Now filter to keep only the first 2 per group:
|
|
220
243
|
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
244
|
+
```mdtest-command
|
|
245
|
+
super -s -c "
|
|
246
|
+
with ranked as (
|
|
247
|
+
select a.id, a.az, count(*) as row_num
|
|
248
|
+
from instances.sup a
|
|
249
|
+
join instances.sup b on a.az = b.az and b.id <= a.id
|
|
250
|
+
group by a.id, a.az
|
|
251
|
+
)
|
|
252
|
+
select id, az from ranked
|
|
253
|
+
where row_num <= 2
|
|
254
|
+
order by az, id
|
|
255
|
+
"
|
|
233
256
|
```
|
|
234
|
-
|
|
235
|
-
i-001
|
|
236
|
-
i-002
|
|
237
|
-
i-004
|
|
238
|
-
i-005
|
|
239
|
-
i-006
|
|
257
|
+
```mdtest-output
|
|
258
|
+
{id:"i-001",az:"us-east-1a"}
|
|
259
|
+
{id:"i-002",az:"us-east-1a"}
|
|
260
|
+
{id:"i-004",az:"us-east-1b"}
|
|
261
|
+
{id:"i-005",az:"us-east-1c"}
|
|
262
|
+
{id:"i-006",az:"us-east-1c"}
|
|
240
263
|
```
|
|
241
264
|
|
|
242
265
|
Same result as fork, but no hardcoded AZ names — works with any number of
|
|
@@ -270,33 +293,3 @@ For a refresher on what those mean in practice
|
|
|
270
293
|
| O(n) | Linear | 100 | 10,000 | Scales nicely |
|
|
271
294
|
| O(n log n) | Linearithmic| ~664 | ~132,877 | Typical sort |
|
|
272
295
|
| O(n^2) | Quadratic | 10,000 | 100,000,000 | Gets slow fast|
|
|
273
|
-
|
|
274
|
-
## Full Example
|
|
275
|
-
|
|
276
|
-
Save the sample data:
|
|
277
|
-
|
|
278
|
-
```bash
|
|
279
|
-
cat > /tmp/instances.sup << 'EOF'
|
|
280
|
-
{id:'i-001', az:'us-east-1a'}
|
|
281
|
-
{id:'i-002', az:'us-east-1a'}
|
|
282
|
-
{id:'i-003', az:'us-east-1a'}
|
|
283
|
-
{id:'i-004', az:'us-east-1b'}
|
|
284
|
-
{id:'i-005', az:'us-east-1c'}
|
|
285
|
-
{id:'i-006', az:'us-east-1c'}
|
|
286
|
-
{id:'i-007', az:'us-east-1c'}
|
|
287
|
-
{id:'i-008', az:'us-east-1c'}
|
|
288
|
-
EOF
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
Pick 2 per AZ:
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
super -f table -c "
|
|
295
|
-
from '/tmp/instances.sup'
|
|
296
|
-
| fork
|
|
297
|
-
( where az=='us-east-1a' | head 2 )
|
|
298
|
-
( where az=='us-east-1b' | head 2 )
|
|
299
|
-
( where az=='us-east-1c' | head 2 )
|
|
300
|
-
| sort az, id
|
|
301
|
-
"
|
|
302
|
-
```
|
package/docs/tutorials/grok.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: grok
|
|
3
3
|
description: "Tutorial on using the grok function for text parsing in SuperDB."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/grok/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# grok
|
|
@@ -120,5 +120,5 @@ error({message:"grok: value does not match pattern",on:"foo"})
|
|
|
120
120
|
super --version
|
|
121
121
|
```
|
|
122
122
|
```mdtest-output
|
|
123
|
-
Version: v0.
|
|
123
|
+
Version: v0.2.0
|
|
124
124
|
```
|
package/docs/tutorials/joins.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: joins
|
|
3
3
|
description: "Examples of outer joins, anti joins, and full outer joins in SuperDB."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/joins/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Joins
|
|
@@ -72,5 +72,5 @@ super -s -c "select * from za.sup as za
|
|
|
72
72
|
super --version
|
|
73
73
|
```
|
|
74
74
|
```mdtest-output
|
|
75
|
-
Version: v0.
|
|
75
|
+
Version: v0.2.0
|
|
76
76
|
```
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: moar-subqueries
|
|
3
3
|
description: "Additional subquery patterns including fork and full sub-selects."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/moar_subqueries/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Moar Subqueries
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: subqueries
|
|
3
3
|
description: "Examples of correlated subqueries and derived table patterns in SuperDB."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/subqueries/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Subqueries
|
|
@@ -85,7 +85,7 @@ super -s -c '
|
|
|
85
85
|
| values {date,foo})
|
|
86
86
|
on {left.date,left.foo}={right.date,right.foo}
|
|
87
87
|
| values left
|
|
88
|
-
| sort id'
|
|
88
|
+
| sort id'
|
|
89
89
|
```
|
|
90
90
|
```mdtest-output
|
|
91
91
|
{id:1,date:"2025-02-27",foo:3}
|
|
@@ -226,5 +226,5 @@ super -s -c '
|
|
|
226
226
|
super --version
|
|
227
227
|
```
|
|
228
228
|
```mdtest-output
|
|
229
|
-
Version: v0.
|
|
229
|
+
Version: v0.2.0
|
|
230
230
|
```
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sup-to-bash
|
|
3
3
|
description: "Optimizing SuperDB output into Bash variables efficiently."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/sup_to_bash/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Optimizing Sup Values into Bash Variables
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: super-db-update
|
|
3
3
|
description: "Workarounds for updating data in a SuperDB lake."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/super_db_update/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Updating Data in a Lake
|
package/docs/tutorials/unnest.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: unnest
|
|
3
3
|
description: "Guide to the unnest operator including nested unnest...into patterns."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-02-15"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/tutorials/unnest/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# unnest
|
|
@@ -106,5 +106,5 @@ seq 1 3 | super -s -c "
|
|
|
106
106
|
super --version
|
|
107
107
|
```
|
|
108
108
|
```mdtest-output
|
|
109
|
-
Version: v0.
|
|
109
|
+
Version: v0.2.0
|
|
110
110
|
```
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: zq-to-super-upgrades
|
|
3
3
|
description: "Migration guide from zq to SuperDB. Covers all breaking changes and syntax updates."
|
|
4
|
-
superdb_version: "0.
|
|
4
|
+
superdb_version: "0.2.0"
|
|
5
5
|
last_updated: "2026-01-31"
|
|
6
|
-
|
|
6
|
+
web: "https://chrismo.github.io/superkit/_build/upgrade-guide/"
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Upgrading zq to super
|
|
10
10
|
|
|
11
|
-
SuperDB Version 0.
|
|
11
|
+
SuperDB Version 0.2.0
|
|
12
12
|
|
|
13
13
|
This document is designed for AI assistants performing automated upgrades of zq
|
|
14
14
|
scripts to SuperDB. It covers all breaking changes between zq and the current
|