feat(website): asciinema cast pipeline + landing quickstart demo

Settle the cast toolchain (STYLE.md #9) and build the demo pipeline end to
end. Driver: autocast, chosen by spike — its !Interactive feeds keys to the
running TUI and captures the redraw, the right model for a full-screen
crossterm app. asciinema-automation was rejected (assumes shell echo/\n Enter;
produced a garbled cast against the TUI).

- add asciinema-player; Cast.astro (player island) + Demo.astro (the WASM-swap
  seam, ADR-website-001 §3)
- casts-src/: human-readable command-lists (casts.mjs) + generate.mjs, exposed
  as `pnpm casts`; expands steps to autocast YAML and records to public/casts/.
  Command-lists are the durable source; .cast files are regenerable (final
  re-record sweep due once the app is locked).
- quickstart.cast (create -> add columns -> insert -> show data) embedded on
  the landing page above the feature cards.

Verified: pnpm build clean (25 pages); player + cast bundled and served;
landing HTML references the cast. Visual playback check pending (no headless
browser here — verify via dev server over the tunnel).
This commit is contained in:
claude@clouddev1
2026-06-10 12:59:50 +00:00
parent c0cc92a741
commit fbf449f9e0
9 changed files with 658 additions and 8 deletions
+29 -8
View File
@@ -131,15 +131,31 @@ Relationships: `books.author_id → authors.author_id` (1:n); `loans` joins
`books` and `members` (the m:n bridge). Show `shortid` on the Types page via `books` and `members` (the m:n bridge). Show `shortid` on the Types page via
a small standalone example, not by complicating this schema. a small standalone example, not by complicating this schema.
## asciinema casts [DECIDED, details OPEN] ## asciinema casts [DECIDED]
- Casts show *flow/motion*; static code blocks show *exact input/output*. - Casts show *flow/motion*; static code blocks show *exact input/output*.
Prefer a code block when a still example suffices. Prefer a code block when a still example suffices.
- Pair a hero/landing cast with a text transcript or the equivalent docs - Pair a hero/landing cast with a text transcript or the equivalent docs
snippet (accessibility + SEO). snippet (accessibility + SEO).
- Recorded via a scripted-input driver for paced, re-recordable sessions - **Driver: `autocast`** (ADR-website-001 §2; chosen by the 2026-06-10
(ADR-website-001 §2; recipe in `README.md`). **[OPEN]**: cast file naming, spike). `autocast`'s `!Interactive` feeds keys to the running TUI and
fixed terminal size, light/dark theme handling. captures the redraw — the correct model for a full-screen crossterm app.
`asciinema-automation` was rejected: it assumes *shell* semantics (Enter as
`\n`, and an `expect()` echo-check per keystroke), which a redrawing TUI
breaks — it produced a garbled cast.
- **Authoring workflow.** Source command-lists live in `casts-src/casts.mjs`
(human-readable steps: `type` / `wait` / `key`). `pnpm casts` runs
`casts-src/generate.mjs`, which expands them to autocast YAML (one key per
character; Enter = `^M`) and records to `public/casts/<name>.cast`. The
command-lists are the durable source; **`.cast` files are regenerable** —
re-run `pnpm casts` to re-record as the app evolves (a final sweep is due
once the app is locked). Needs a `cargo build` binary at `../target/debug`.
- **Embedding.** `Demo.astro` (the WASM-swap seam, ADR-website-001 §3) wraps
`Cast.astro` (asciinema-player island). Call sites use `Demo`.
- **Conventions.** Terminal geometry per cast (default 90×26); file name =
cast `name`; player theme `asciinema` for now. **[OPEN]**: light/dark player
theme sync with the Starlight theme toggle (player theme is currently fixed;
refine in Phase B).
## Formatting [DECIDED, refine] ## Formatting [DECIDED, refine]
@@ -156,6 +172,13 @@ a small standalone example, not by complicating this schema.
Decide these as we write; record the outcome (and escalate to an ADR if Decide these as we write; record the outcome (and escalate to an ADR if
significant). significant).
**Resolved (2026-06-10):**
9. ~~Cast scripting toolchain~~**`autocast`**, proven by spike over
`asciinema-automation` (which can't drive a full-screen TUI). Source
command-lists in `casts-src/`, `pnpm casts` to record. See the *asciinema
casts* section above. (Remaining sub-item: light/dark player theme sync —
folded into #8 / Phase B.)
**Resolved (2026-06-05):** **Resolved (2026-06-05):**
1. ~~Depth / organising spine~~**Pragmatic** four-section split (see 1. ~~Depth / organising spine~~**Pragmatic** four-section split (see
Structure above). Structure above).
@@ -172,7 +195,5 @@ significant).
7. **Versioning.** Version selectors at/after v1, or single-version for 7. **Versioning.** Version selectors at/after v1, or single-version for
launch? (Leaning single-version for launch.) launch? (Leaning single-version for launch.)
8. **SEO/meta conventions.** Title/description patterns, Open Graph — settle 8. **SEO/meta conventions.** Title/description patterns, Open Graph — settle
with Phase B (landing) and the `site` URL. with Phase B (landing) and the `site` URL. Also: light/dark player-theme
9. **Cast scripting toolchain.** Confirm the scripted-input driver sync for embedded casts.
(`asciinema-automation`/autocast vs alternative) via a test run; define
the `.cast` script format + storage location. (Execution task, in flight.)
+39
View File
@@ -0,0 +1,39 @@
/**
* Cast source definitions — the durable, human-readable source for the
* asciinema demos (ADR-website-001 §2). `pnpm casts` runs `generate.mjs`,
* which turns each definition into an autocast YAML and records it to
* `public/casts/<name>.cast`. Edit these and re-run to re-record as the app
* evolves; the `.cast` files are regenerable artifacts.
*
* Step kinds:
* { wait: ms } — pause (shown in the recording)
* { type: 'text', after: ms } — type the text + press Enter, then pause
* { type: 'text', enter: false } — type without pressing Enter
* { key: 'Tab'|'Enter', after: ms } — press a single named key
*
* Every cast must end by quitting the app (a `quit` step) so the driver
* returns to the shell prompt.
*/
/** The shared library narrative, trimmed per cast. */
export const casts = [
{
name: 'quickstart',
title: 'RDBMS Playground — first table to first query',
width: 90,
height: 26,
typeSpeed: '45ms',
steps: [
{ wait: 1100 },
{ type: 'create table authors with pk', after: 1000 },
{ type: 'add column to authors: name (text)', after: 850 },
{ type: 'add column to authors: birth_year (int)', after: 900 },
{
type: "insert into authors (name, birth_year) values ('Ursula K. Le Guin', 1929)",
after: 1300,
},
{ type: 'show data authors', after: 1800 },
{ type: 'quit', after: 500 },
],
},
];
+121
View File
@@ -0,0 +1,121 @@
#!/usr/bin/env node
/**
* generate.mjs — turn the cast definitions in `casts.mjs` into asciinema
* `.cast` recordings under `public/casts/`, using autocast (ADR-website-001
* §2; driver chosen by the 2026-06-10 spike — autocast drives the full-screen
* TUI correctly, asciinema-automation does not).
*
* Usage:
* pnpm casts # regenerate every cast
* pnpm casts quickstart # regenerate just one
*
* Requires `autocast` on PATH (cargo install autocast) and a built
* `rdbms-playground` binary at ../target/debug (run `cargo build` at the repo
* root first). The binary's dir is added to PATH for the autocast child so the
* recording shows a clean `$ rdbms-playground` launch line.
*/
import { spawnSync } from 'node:child_process';
import { mkdirSync, writeFileSync, rmSync } from 'node:fs';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import os from 'node:os';
import { casts } from './casts.mjs';
const here = dirname(fileURLToPath(import.meta.url));
const websiteRoot = resolve(here, '..');
const repoRoot = resolve(websiteRoot, '..');
const binDir = resolve(repoRoot, 'target', 'debug');
const outDir = resolve(websiteRoot, 'public', 'casts');
const cargoBin = resolve(os.homedir(), '.cargo', 'bin');
/** YAML-escape a single character for a double-quoted scalar. */
function charKey(ch) {
if (ch === '\\') return '"\\\\"';
if (ch === '"') return '"\\""';
return `"${ch}"`;
}
/** Named single keys → autocast control codes. */
const NAMED_KEYS = {
Enter: '^M',
Tab: '^I',
};
/** Build the autocast `keys:` list (one entry per line) for a cast's steps. */
function keysFor(steps) {
const keys = [];
for (const step of steps) {
if (step.wait != null) {
keys.push(`${step.wait}ms`);
continue;
}
if (step.key != null) {
const code = NAMED_KEYS[step.key];
if (!code) throw new Error(`unknown key: ${step.key}`);
keys.push(code);
if (step.after != null) keys.push(`${step.after}ms`);
continue;
}
if (step.type != null) {
for (const ch of step.type) keys.push(charKey(ch));
if (step.enter !== false) keys.push('^M'); // Enter = CR (the TUI submits on \r)
if (step.after != null) keys.push(`${step.after}ms`);
continue;
}
throw new Error(`unrecognised step: ${JSON.stringify(step)}`);
}
return keys;
}
function yamlFor(cast) {
const keys = keysFor(cast.steps)
.map((k) => ` - ${k}`)
.join('\n');
return [
'settings:',
` width: ${cast.width ?? 90}`,
` height: ${cast.height ?? 26}`,
` title: ${JSON.stringify(cast.title ?? cast.name)}`,
` type_speed: ${cast.typeSpeed ?? '45ms'}`,
' timeout: 90s',
' prompt: "$ "',
'instructions:',
' - !Interactive',
' command: rdbms-playground',
' keys:',
keys,
'',
].join('\n');
}
const only = process.argv[2];
const selected = only ? casts.filter((c) => c.name === only) : casts;
if (only && selected.length === 0) {
console.error(`no cast named "${only}". Known: ${casts.map((c) => c.name).join(', ')}`);
process.exit(1);
}
mkdirSync(outDir, { recursive: true });
const env = { ...process.env, PATH: `${binDir}:${cargoBin}:${process.env.PATH}` };
let failures = 0;
for (const cast of selected) {
const yamlPath = resolve(os.tmpdir(), `autocast-${cast.name}.yaml`);
const outPath = resolve(outDir, `${cast.name}.cast`);
writeFileSync(yamlPath, yamlFor(cast));
console.log(`▶ recording ${cast.name} → public/casts/${cast.name}.cast`);
const res = spawnSync('autocast', ['--overwrite', yamlPath, outPath], {
env,
stdio: 'inherit',
});
rmSync(yamlPath, { force: true });
if (res.status !== 0) {
console.error(`${cast.name} failed (autocast exit ${res.status})`);
failures += 1;
} else {
console.log(`${cast.name}`);
}
}
if (failures) process.exit(1);
console.log(`Done — ${selected.length} cast(s).`);
+2
View File
@@ -8,12 +8,14 @@
"start": "astro dev", "start": "astro dev",
"build": "astro build", "build": "astro build",
"preview": "astro preview", "preview": "astro preview",
"casts": "node casts-src/generate.mjs",
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"@astrojs/starlight": "^0.39.3", "@astrojs/starlight": "^0.39.3",
"@astrojs/starlight-tailwind": "^5.0.0", "@astrojs/starlight-tailwind": "^5.0.0",
"@tailwindcss/vite": "^4.3.0", "@tailwindcss/vite": "^4.3.0",
"asciinema-player": "^3.15.1",
"astro": "^6.3.1", "astro": "^6.3.1",
"sharp": "^0.34.5", "sharp": "^0.34.5",
"tailwindcss": "^4.3.0" "tailwindcss": "^4.3.0"
+88
View File
@@ -17,6 +17,9 @@ importers:
'@tailwindcss/vite': '@tailwindcss/vite':
specifier: ^4.3.0 specifier: ^4.3.0
version: 4.3.0(vite@7.3.5(@types/node@24.13.0)(jiti@2.7.0)(lightningcss@1.32.0)) version: 4.3.0(vite@7.3.5(@types/node@24.13.0)(jiti@2.7.0)(lightningcss@1.32.0))
asciinema-player:
specifier: ^3.15.1
version: 3.15.1
astro: astro:
specifier: ^6.3.1 specifier: ^6.3.1
version: 6.4.4(@types/node@24.13.0)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.61.1) version: 6.4.4(@types/node@24.13.0)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.61.1)
@@ -85,6 +88,10 @@ packages:
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
hasBin: true hasBin: true
'@babel/runtime@7.29.7':
resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
engines: {node: '>=6.9.0'}
'@babel/types@7.29.7': '@babel/types@7.29.7':
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -667,6 +674,21 @@ packages:
'@shikijs/vscode-textmate@10.0.2': '@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
'@solid-primitives/refs@1.1.3':
resolution: {integrity: sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/transition-group@1.1.2':
resolution: {integrity: sha512-gnHS0OmcdjeoHN9n7Khu8KNrOlRc8a2weETDt2YT6o1zeW/XtUC6Db3Q9pkMU/9cCKdEmN4b0a/41MKAHRhzWA==}
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/utils@6.4.0':
resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==}
peerDependencies:
solid-js: ^1.6.12
'@tailwindcss/node@4.3.0': '@tailwindcss/node@4.3.0':
resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==} resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==}
@@ -830,6 +852,9 @@ packages:
array-iterate@2.0.1: array-iterate@2.0.1:
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
asciinema-player@3.15.1:
resolution: {integrity: sha512-agVYeNlPxthLyAb92l9AS7ypW0uhesqOuQzyR58Q4Sj+MvesQztZBgx86lHqNJkB8rQ6EP0LeA9czGytQUBpYw==}
astring@1.9.0: astring@1.9.0:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true hasBin: true
@@ -938,6 +963,9 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
csstype@3.2.3:
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
debug@4.4.3: debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'} engines: {node: '>=6.0'}
@@ -1716,6 +1744,16 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
seroval-plugins@1.5.4:
resolution: {integrity: sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==}
engines: {node: '>=10'}
peerDependencies:
seroval: ^1.0
seroval@1.5.4:
resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==}
engines: {node: '>=10'}
sharp@0.34.5: sharp@0.34.5:
resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -1736,6 +1774,15 @@ packages:
resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==}
engines: {node: '>= 18'} engines: {node: '>= 18'}
solid-js@1.9.13:
resolution: {integrity: sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ==}
solid-transition-group@0.2.3:
resolution: {integrity: sha512-iB72c9N5Kz9ykRqIXl0lQohOau4t0dhel9kjwFvx81UZJbVwaChMuBuyhiZmK24b8aKEK0w3uFM96ZxzcyZGdg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
peerDependencies:
solid-js: ^1.6.12
source-map-js@1.2.1: source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@@ -2141,6 +2188,8 @@ snapshots:
dependencies: dependencies:
'@babel/types': 7.29.7 '@babel/types': 7.29.7
'@babel/runtime@7.29.7': {}
'@babel/types@7.29.7': '@babel/types@7.29.7':
dependencies: dependencies:
'@babel/helper-string-parser': 7.29.7 '@babel/helper-string-parser': 7.29.7
@@ -2565,6 +2614,19 @@ snapshots:
'@shikijs/vscode-textmate@10.0.2': {} '@shikijs/vscode-textmate@10.0.2': {}
'@solid-primitives/refs@1.1.3(solid-js@1.9.13)':
dependencies:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.13)
solid-js: 1.9.13
'@solid-primitives/transition-group@1.1.2(solid-js@1.9.13)':
dependencies:
solid-js: 1.9.13
'@solid-primitives/utils@6.4.0(solid-js@1.9.13)':
dependencies:
solid-js: 1.9.13
'@tailwindcss/node@4.3.0': '@tailwindcss/node@4.3.0':
dependencies: dependencies:
'@jridgewell/remapping': 2.3.5 '@jridgewell/remapping': 2.3.5
@@ -2694,6 +2756,12 @@ snapshots:
array-iterate@2.0.1: {} array-iterate@2.0.1: {}
asciinema-player@3.15.1:
dependencies:
'@babel/runtime': 7.29.7
solid-js: 1.9.13
solid-transition-group: 0.2.3(solid-js@1.9.13)
astring@1.9.0: {} astring@1.9.0: {}
astro-expressive-code@0.42.0(astro@6.4.4(@types/node@24.13.0)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.61.1)): astro-expressive-code@0.42.0(astro@6.4.4(@types/node@24.13.0)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.61.1)):
@@ -2870,6 +2938,8 @@ snapshots:
dependencies: dependencies:
css-tree: 2.2.1 css-tree: 2.2.1
csstype@3.2.3: {}
debug@4.4.3: debug@4.4.3:
dependencies: dependencies:
ms: 2.1.3 ms: 2.1.3
@@ -4149,6 +4219,12 @@ snapshots:
semver@7.8.2: {} semver@7.8.2: {}
seroval-plugins@1.5.4(seroval@1.5.4):
dependencies:
seroval: 1.5.4
seroval@1.5.4: {}
sharp@0.34.5: sharp@0.34.5:
dependencies: dependencies:
'@img/colour': 1.1.0 '@img/colour': 1.1.0
@@ -4202,6 +4278,18 @@ snapshots:
smol-toml@1.6.1: {} smol-toml@1.6.1: {}
solid-js@1.9.13:
dependencies:
csstype: 3.2.3
seroval: 1.5.4
seroval-plugins: 1.5.4(seroval@1.5.4)
solid-transition-group@0.2.3(solid-js@1.9.13):
dependencies:
'@solid-primitives/refs': 1.1.3(solid-js@1.9.13)
'@solid-primitives/transition-group': 1.1.2(solid-js@1.9.13)
solid-js: 1.9.13
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
source-map@0.7.6: {} source-map@0.7.6: {}
+269
View File
@@ -0,0 +1,269 @@
{"version": 2, "width": 90, "height": 26, "timestamp": 1781095925, "duration": 17.187911, "title": "RDBMS Playground — first table to first query", "env": {"SHELL": "/usr/bin/bash", "TERM": "tmux-256color"}}
[0.000000, "o", "$ "]
[0.045000, "o", "r"]
[0.090000, "o", "d"]
[0.135000, "o", "b"]
[0.180000, "o", "m"]
[0.225000, "o", "s"]
[0.270000, "o", "-"]
[0.315000, "o", "p"]
[0.360000, "o", "l"]
[0.405000, "o", "a"]
[0.450000, "o", "y"]
[0.495000, "o", "g"]
[0.540000, "o", "r"]
[0.585000, "o", "o"]
[0.630000, "o", "u"]
[0.675000, "o", "n"]
[0.720000, "o", "d"]
[0.765000, "o", "\r\n"]
[0.800807, "o", "\u001b[?1049h"]
[0.807141, "o", "\u001b[1;1H\u001b[38;2;74;82;101;48;2;24;27;34m╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Tables \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────╮╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Output \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m────────────────────────────────────────────────────╮\u001b[2;1H│\u001b[3m\u001b[38;2;139;144;154;48;2;24;27;34m(none yet)\u001b[23m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[3;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[4;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;"]
[0.807239, "o", "34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[5;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[6;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[7;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[8;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m "]
[0.807334, "o", " \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[9;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[10;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[11;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[12;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[13;1H│\u001b[38;2;230;230;230;48;2;24;27;34m "]
[0.807436, "o", " \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[14;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[15;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[16;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[17;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;230;230;230;48;2;24;27;34m "]
[0.807568, "o", " \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[18;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│╰────────────────────────────────────────────────────────────╯\u001b[19;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m ────────────────────────────────────────────────────╮\u001b[20;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[27m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[21;1H│\u001b[38;2;230;230;230;48;2;24;27;34m "]
[0.807645, "o", " \u001b[38;2;74;82;101;48;2;24;27;34m│╰────────────────────────────────────────────────────────────╯\u001b[22;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[23;1H│\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m││\u001b[38;2;139;144;154;48;2;24;27;34mType a command — press Tab for options, `help` for a list\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[24;1H╰──────────────────────────╯╰───────────────────────────"]
[0.807746, "o", "─────────────────────────────────╯\u001b[25;1H\u001b[38;2;139;144;154;48;2;24;27;34mProject: \u001b[1m[TEMP] \u001b[38;2;230;230;230;48;2;24;27;34mRowing Pavilion Lagoon\u001b[22m\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[26;1H\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34mEnter\u001b[22m\u001b[38;2;139;144;154;48;2;24;27;34m submit · \u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m:\u001b[22m\u001b[38;2;139;144;154;48;2;24;27;34m advanced once · \u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34mmode advanced\u001b[22m\u001b[38;2;139;144;154;48;2;24;27;34m switch · \u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34mCtrl-C\u001b[22m\u001b[38;2;139;144;154;48;2;24;27;34m quit \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[0.810221, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[0.812240, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[1.958024, "o", "\u001b[20;30H\u001b[38;2;255;107;107;48;2;24;27;34mc\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mcopy\u001b[23;35Hchange\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcreate\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.003030, "o", "\u001b[20;31H\u001b[38;2;255;107;107;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;31H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mreate\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.049640, "o", "\u001b[20;32H\u001b[38;2;255;107;107;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.093386, "o", "\u001b[20;33H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.137816, "o", "\u001b[20;34H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.182991, "o", "\u001b[20;30H\u001b[38;2;199;146;234;48;2;24;27;34mcreate\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.227476, "o", "\u001b[20;36H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.272879, "o", "\u001b[20;37H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.317777, "o", "\u001b[20;38H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.362753, "o", "\u001b[20;39H\u001b[38;2;255;107;107;48;2;24;27;34mb\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.407763, "o", "\u001b[20;40H\u001b[38;2;255;107;107;48;2;24;27;34ml\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.452787, "o", "\u001b[20;37H\u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.497985, "o", "\u001b[20;42H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mType a name\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.543834, "o", "\u001b[20;43H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.587734, "o", "\u001b[20;44H\u001b[38;2;86;182;194;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.633232, "o", "\u001b[20;45H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.678108, "o", "\u001b[20;46H\u001b[38;2;86;182;194;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.722930, "o", "\u001b[20;47H\u001b[38;2;86;182;194;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.767734, "o", "\u001b[20;48H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.812808, "o", "\u001b[20;49H\u001b[38;2;86;182;194;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.858529, "o", "\u001b[20;50H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mwith\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.903471, "o", "\u001b[20;51H\u001b[38;2;255;107;107;48;2;24;27;34mw\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.948018, "o", "\u001b[20;52H\u001b[38;2;255;107;107;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[2.994081, "o", "\u001b[20;53H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.038148, "o", "\u001b[20;51H\u001b[38;2;199;146;234;48;2;24;27;34mwith\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.083036, "o", "\u001b[20;55H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mpk\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.128202, "o", "\u001b[20;56H\u001b[38;2;255;107;107;48;2;24;27;34mp\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.172498, "o", "\u001b[20;56H\u001b[38;2;199;146;234;48;2;24;27;34mpk\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mSubmit with Enter\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.219942, "o", "\u001b[2;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;230;230;230;48;2;24;27;34mrunning:\u001b[2;48H\u001b[38;2;199;146;234;48;2;24;27;34mcreate\u001b[2;55Htable\u001b[2;61H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[2;69H\u001b[38;2;199;146;234;48;2;24;27;34mwith\u001b[2;74Hpk\u001b[20;30H\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[27m \u001b[20;37H \u001b[20;43H \u001b[20;51H \u001b[20;56H \u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mType a\u001b[23;37Hcommand — press Tab for options, `help` for a list\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.241423, "o", "\u001b[2;39H\u001b[38;2;199;146;234;48;2;24;27;34mcreate\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtabl\u001b[2;51H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mwith\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mpk\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[2;74H \u001b[3;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[4;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌──────┬────────┬─────────────┐\u001b[5;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│\u001b[5;41HName\u001b[5;46H│\u001b[5;48HType\u001b[5;55H│\u001b[5;57HConstraints\u001b[5;69H│\u001b[6;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m├──────┼────────┼─────────────┤\u001b[7;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│\u001b[7;41Hid\u001b[7;46H│\u001b[7;48Hserial\u001b[7;55H│\u001b[7;57HPK\u001b[7;69H│\u001b[8;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└──────┴────────┴─────────────┘\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.243731, "o", "\u001b[2;2H\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[22m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[3.246147, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.250464, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.307797, "o", "\u001b[20;30H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.352811, "o", "\u001b[20;31H\u001b[38;2;255;107;107;48;2;24;27;34md\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.398657, "o", "\u001b[20;30H\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.442902, "o", "\u001b[20;33H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mindex\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mconstraint\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34m1:n\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.488292, "o", "\u001b[20;34H\u001b[38;2;255;107;107;48;2;24;27;34mc\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;37H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mconstrai\u001b[23;46Ht\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.534026, "o", "\u001b[20;35H\u001b[38;2;255;107;107;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.578310, "o", "\u001b[20;36H\u001b[38;2;255;107;107;48;2;24;27;34ml\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;36H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.623182, "o", "\u001b[20;37H\u001b[38;2;255;107;107;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.668046, "o", "\u001b[20;38H\u001b[38;2;255;107;107;48;2;24;27;34mm\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.712789, "o", "\u001b[20;34H\u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.758270, "o", "\u001b[20;40H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.803202, "o", "\u001b[20;41H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.847916, "o", "\u001b[20;42H\u001b[38;2;255;107;107;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;32H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.893221, "o", "\u001b[20;41H\u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.938012, "o", "\u001b[20;44H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;37H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[4.983050, "o", "\u001b[20;45H\u001b[38;2;86;182;194;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.028690, "o", "\u001b[20;46H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.073095, "o", "\u001b[20;47H\u001b[38;2;86;182;194;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.118285, "o", "\u001b[20;48H\u001b[38;2;86;182;194;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.163314, "o", "\u001b[20;49H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.208005, "o", "\u001b[20;50H\u001b[38;2;86;182;194;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.253500, "o", "\u001b[20;51H\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mType a name, then `(`\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.298454, "o", "\u001b[20;52H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.343024, "o", "\u001b[20;53H\u001b[38;2;86;182;194;48;2;24;27;34mn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.388279, "o", "\u001b[20;54H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.433136, "o", "\u001b[20;55H\u001b[38;2;86;182;194;48;2;24;27;34mm\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.477959, "o", "\u001b[20;56H\u001b[38;2;86;182;194;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.523152, "o", "\u001b[20;57H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.568084, "o", "\u001b[20;58H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mtext\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mreal\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdecimal\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mbool\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdate\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdatetime\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mblob\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mserial\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mshortid\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.613635, "o", "\u001b[20;59H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;34H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.658594, "o", "\u001b[20;60H\u001b[38;2;86;182;194;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.703713, "o", "\u001b[20;61H\u001b[38;2;86;182;194;48;2;24;27;34mx\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.748570, "o", "\u001b[20;59H\u001b[38;2;240;143;192;48;2;24;27;34mtext\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.792700, "o", "\u001b[20;63H\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mnot\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34munique\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdefault\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcheck\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.838142, "o", "\u001b[9;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;230;230;230;48;2;24;27;34mrunning:\u001b[9;48H\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[9;52Hcolumn\u001b[9;59Hto\u001b[9;62H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[9;71H\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[9;76H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mtext\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[20;30H\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[27m \u001b[20;34H \u001b[20;41H \u001b[20;44H \u001b[20;53H \u001b[20;58H \u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mType a command — press Tab for options, `help` for a list\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.851539, "o", "\u001b[9;39H\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[9;62H\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mtext\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[9;76H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[10;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[11;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌──────┬────────┬─────────────┐\u001b[12;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│\u001b[12;41HName\u001b[12;46H│\u001b[12;48HType\u001b[12;55H│\u001b[12;57HConstraints\u001b[12;69H│\u001b[13;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m├──────┼────────┼─────────────┤\u001b[14;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│\u001b[14;41Hid\u001b[14;46H│\u001b[14;48Hserial\u001b[14;55H│\u001b[14;57HPK\u001b[14;69H│\u001b[15;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│\u001b[15;41Hname\u001b[15;46H│\u001b[15;48Htext\u001b[15;55H│\u001b[15;69H│\u001b[16;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└──────┴────────┴─────────────┘\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.854123, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[5.856631, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[6.778086, "o", "\u001b[20;30H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[6.823731, "o", "\u001b[20;31H\u001b[38;2;255;107;107;48;2;24;27;34md\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[6.868701, "o", "\u001b[20;30H\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[6.913203, "o", "\u001b[20;33H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mindex\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mconstraint\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34m1:n\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[6.958681, "o", "\u001b[20;34H\u001b[38;2;255;107;107;48;2;24;27;34mc\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;37H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mconstrai\u001b[23;46Ht\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.003969, "o", "\u001b[20;35H\u001b[38;2;255;107;107;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.048555, "o", "\u001b[20;36H\u001b[38;2;255;107;107;48;2;24;27;34ml\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;36H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.093663, "o", "\u001b[20;37H\u001b[38;2;255;107;107;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.138664, "o", "\u001b[20;38H\u001b[38;2;255;107;107;48;2;24;27;34mm\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.183394, "o", "\u001b[20;34H\u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.229556, "o", "\u001b[20;40H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.276382, "o", "\u001b[20;41H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.320114, "o", "\u001b[20;42H\u001b[38;2;255;107;107;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;32H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.366765, "o", "\u001b[20;41H\u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.408611, "o", "\u001b[20;44H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;37H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.454524, "o", "\u001b[20;45H\u001b[38;2;86;182;194;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.499452, "o", "\u001b[20;46H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.543408, "o", "\u001b[20;47H\u001b[38;2;86;182;194;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.588484, "o", "\u001b[20;48H\u001b[38;2;86;182;194;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.633363, "o", "\u001b[20;49H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.678381, "o", "\u001b[20;50H\u001b[38;2;86;182;194;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.723976, "o", "\u001b[20;51H\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mType a name, then `(`\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.768981, "o", "\u001b[20;52H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.813003, "o", "\u001b[20;53H\u001b[38;2;86;182;194;48;2;24;27;34mb\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.858840, "o", "\u001b[20;54H\u001b[38;2;86;182;194;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.903857, "o", "\u001b[20;55H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.947881, "o", "\u001b[20;56H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[7.993783, "o", "\u001b[20;57H\u001b[38;2;86;182;194;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.038774, "o", "\u001b[20;58H\u001b[38;2;86;182;194;48;2;24;27;34m_\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.083926, "o", "\u001b[20;59H\u001b[38;2;86;182;194;48;2;24;27;34my\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.128144, "o", "\u001b[20;60H\u001b[38;2;86;182;194;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.173570, "o", "\u001b[20;61H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.218581, "o", "\u001b[20;62H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.262997, "o", "\u001b[20;63H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.308563, "o", "\u001b[20;64H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mtext\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mreal\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdecimal\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mbool\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdate\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdatetime\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mblob\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mserial\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mshortid\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.355029, "o", "\u001b[20;65H\u001b[38;2;86;182;194;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mint\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.398845, "o", "\u001b[20;66H\u001b[38;2;86;182;194;48;2;24;27;34mn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.443386, "o", "\u001b[20;65H\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.489017, "o", "\u001b[20;68H\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mno\u001b[23;33H\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34munique\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdefault\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcheck\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.533473, "o", "\u001b[17;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;230;230;230;48;2;24;27;34mrunning:\u001b[17;48H\u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[17;52Hcolumn\u001b[17;59Hto\u001b[17;62H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[17;71H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[17;82H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[20;30H\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[27m \u001b[20;34H \u001b[20;41H \u001b[20;44H \u001b[20;53H \u001b[20;64H \u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mType a command — press Tab for options, `help` for a list\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.546936, "o", "\u001b[2;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[2;52H \u001b[2;60H \u001b[2;65H \u001b[3;39H┌──────┬────────┬─────────────┐\u001b[4;39H│ Name │ Type │ Constraints │\u001b[5;39H├──────┼────────┼─────────────┤\u001b[6;39H│ id │ serial │ PK │\u001b[7;41Hname\u001b[7;48Ht\u001b[7;50Hxt \u001b[7;57H \u001b[9;62H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[11;46H\u001b[38;2;230;230;230;48;2;24;27;34m─\u001b[11;52H┬\u001b[11;55H─\u001b[11;61H┬\u001b[11;69H──────┐\u001b[12;46H \u001b[12;48H │\u001b[12;54HType │ Co\u001b[12;66Hstraints\u001b[12;75H│\u001b[13;46H─\u001b[13;52H┼\u001b[13;55H─\u001b[13;61H┼\u001b[13;69H──────┤\u001b[14;46H \u001b[14;48H │ serial\u001b[14;61H│\u001b[14;63HPK\u001b[14;69H \u001b[14;75H│\u001b[15;46H \u001b[15;48H │\u001b[15;54Htext\u001b[15;61H│\u001b[15;69H \u001b[15;75H│\u001b[16;39H│ birth_year │ int │ \u001b[16;75H│\u001b[17;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────────────┴────────┴─────────────┘ \u001b[17;82H \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.549949, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[8.552760, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.523900, "o", "\u001b[20;30H\u001b[38;2;255;107;107;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mimport\u001b[23;37Hinsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.569233, "o", "\u001b[20;31H\u001b[38;2;255;107;107;48;2;24;27;34mn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;31H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mnse\u001b[23;36H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.614629, "o", "\u001b[20;32H\u001b[38;2;255;107;107;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.658487, "o", "\u001b[20;33H\u001b[38;2;255;107;107;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.704645, "o", "\u001b[20;34H\u001b[38;2;255;107;107;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.752369, "o", "\u001b[20;30H\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.797032, "o", "\u001b[20;36H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;32H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.842026, "o", "\u001b[20;37H\u001b[38;2;255;107;107;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.883269, "o", "\u001b[20;38H\u001b[38;2;255;107;107;48;2;24;27;34mn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.931311, "o", "\u001b[20;39H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[9.975962, "o", "\u001b[20;37H\u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.021484, "o", "\u001b[20;41H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.064049, "o", "\u001b[20;42H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.109730, "o", "\u001b[20;43H\u001b[38;2;86;182;194;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.154400, "o", "\u001b[20;44H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.199266, "o", "\u001b[20;45H\u001b[38;2;86;182;194;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.246306, "o", "\u001b[20;46H\u001b[38;2;86;182;194;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.290507, "o", "\u001b[20;47H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.334102, "o", "\u001b[20;48H\u001b[38;2;86;182;194;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.378723, "o", "\u001b[20;49H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;139;144;154;48;2;24;27;34m (\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.424410, "o", "\u001b[20;50H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mid\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.469363, "o", "\u001b[20;51H\u001b[38;2;86;182;194;48;2;24;27;34mn\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.513462, "o", "\u001b[20;52H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.561137, "o", "\u001b[20;53H\u001b[38;2;86;182;194;48;2;24;27;34mm\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.606946, "o", "\u001b[20;54H\u001b[38;2;86;182;194;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.649101, "o", "\u001b[20;55H\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mid\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.695529, "o", "\u001b[20;56H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.739059, "o", "\u001b[20;57H\u001b[38;2;86;182;194;48;2;24;27;34mb\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;40H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.785172, "o", "\u001b[20;58H\u001b[38;2;86;182;194;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.830497, "o", "\u001b[20;59H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.874107, "o", "\u001b[20;60H\u001b[38;2;86;182;194;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.920039, "o", "\u001b[20;61H\u001b[38;2;86;182;194;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[10.965089, "o", "\u001b[20;62H\u001b[38;2;86;182;194;48;2;24;27;34m_\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.010509, "o", "\u001b[20;63H\u001b[38;2;86;182;194;48;2;24;27;34my\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.054176, "o", "\u001b[20;64H\u001b[38;2;86;182;194;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.098997, "o", "\u001b[20;65H\u001b[38;2;86;182;194;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.144002, "o", "\u001b[20;66H\u001b[38;2;86;182;194;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.189886, "o", "\u001b[20;67H\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.234027, "o", "\u001b[20;68H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.280151, "o", "\u001b[20;69H\u001b[38;2;255;107;107;48;2;24;27;34mv\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.324239, "o", "\u001b[20;70H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.369004, "o", "\u001b[20;71H\u001b[38;2;255;107;107;48;2;24;27;34ml\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.413422, "o", "\u001b[20;72H\u001b[38;2;255;107;107;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.462416, "o", "\u001b[20;73H\u001b[38;2;255;107;107;48;2;24;27;34me\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.506547, "o", "\u001b[20;69H\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.552003, "o", "\u001b[20;75H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.598047, "o", "\u001b[20;76H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mfor `name`: Type a quoted string (e.g. 'Alice') or null\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.641790, "o", "\u001b[20;77H\u001b[38;2;255;107;107;48;2;24;27;34m'\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.687680, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m│ Name │\u001b[2;48HType\u001b[2;55H│\u001b[2;57HConstraints\u001b[2;69H│\u001b[3;39H├\u001b[3;46H┼\u001b[3;55H┼\u001b[3;69H┤\u001b[4;41Hid \u001b[4;48Hserial\u001b[4;57HPK \u001b[5;39H│ name │ text │ │\u001b[6;39H└──────┴────────┴─────────────┘\u001b[7;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[7;53H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7;62H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[7;73H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[8;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[9;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌────────────┬────────┬─────────────┐ \u001b[10;39H│ Name \u001b[10;52H│\u001b[10;54HType\u001b[10;61H│\u001b[10;63HConstraints\u001b[10;75H│\u001b[11;39H├\u001b[11;52H┼\u001b[11;61H┼\u001b[11;75H┤\u001b[12;41Hid \u001b[12;54Hserial\u001b[12;63HPK \u001b[13;39H│ name │ text │ │\u001b[14;41Hbirth_year\u001b[14;54Hint \u001b[14;63H \u001b[15;39H└────────────┴────────┴─────────────┘\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m╰────────────────────────────────────────────────────────────╯\u001b[17;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m ────────────────────────────────────────────────────╮\u001b[18;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m "]
[11.687732, "o", "\u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'U\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[27m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[19;29H╰────────\u001b[19;90H╯\u001b[20;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[21;29H│\u001b[38;2;139;144;154;48;2;24;27;34mafter `insert into authors (name, birth_year) values (`,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[22;29H│\u001b[38;2;139;144;154;48;2;24;27;34mexpected string literal or `null` — usage: insert into\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34m<Table> [(<col>[, ...])] [values] (<value>[, ...])\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.728630, "o", "\u001b[18;79H\u001b[38;2;255;107;107;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.774286, "o", "\u001b[18;80H\u001b[38;2;255;107;107;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.824258, "o", "\u001b[18;81H\u001b[38;2;255;107;107;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.864683, "o", "\u001b[18;82H\u001b[38;2;255;107;107;48;2;24;27;34ml\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.910311, "o", "\u001b[18;83H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.954859, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[2;48H \u001b[2;55H \u001b[2;57H \u001b[2;69H \u001b[3;39H┌\u001b[3;46H┬\u001b[3;55H┬\u001b[3;69H┐\u001b[4;41HName\u001b[4;48HType \u001b[4;57HConstraints\u001b[5;39H├──────┼────────┼─────────────┤\u001b[6;39H│ id │ serial │ PK │\u001b[7;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ name │ text\u001b[7;53H │ \u001b[7;62H │ \u001b[7;73H \u001b[8;39H└──────┴────────┴─────────────┘\u001b[9;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139"]
[11.955026, "o", ";144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[10;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[10;52H \u001b[10;54H \u001b[10;61H \u001b[10;63H \u001b[10;75H \u001b[11;39H┌\u001b[11;52H┬\u001b[11;61H┬\u001b[11;75H┐\u001b[12;41HName\u001b[12;54HType \u001b[12;63HConstraints\u001b[13;39H├────────────┼────────┼─────────────┤\u001b[14;41Hid \u001b[14;54Hserial\u001b[14;63HPK\u001b[15;39H│ name │ text │ │\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ birth_year │ int │ │ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[17;29H│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────────────┴────────┴─────────────┘ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[18;29H╰──────"]
[11.955111, "o", "──────────────────────────────────────────────────────╯\u001b[19;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m \u001b[19;90H╮\u001b[20;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[21;29H╰────────────────"]
[11.955208, "o", "────────────────────────────────────────────╯\u001b[22;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mfor `name`: Type a quoted string (e.g. 'Alice') or null\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[11.999315, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m│ Name │\u001b[2;48HType\u001b[2;55H│\u001b[2;57HConstraints\u001b[2;69H│\u001b[3;39H├\u001b[3;46H┼\u001b[3;55H┼\u001b[3;69H┤\u001b[4;41Hid \u001b[4;48Hserial\u001b[4;57HPK \u001b[5;39H│ name │ text │ │\u001b[6;39H└──────┴────────┴─────────────┘\u001b[7;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[7;53H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7;62H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[7;73H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[8;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[9;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌───────────"]
[11.999385, "o", "─┬────────┬─────────────┐ \u001b[10;39H│ Name \u001b[10;52H│\u001b[10;54HType\u001b[10;61H│\u001b[10;63HConstraints\u001b[10;75H│\u001b[11;39H├\u001b[11;52H┼\u001b[11;61H┼\u001b[11;75H┤\u001b[12;41Hid \u001b[12;54Hserial\u001b[12;63HPK \u001b[13;39H│ name │ text │ │\u001b[14;41Hbirth_year\u001b[14;54Hint \u001b[14;63H \u001b[15;39H└────────────┴────────┴─────────────┘\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m╰────────────────────────────────────────────────────────────╯\u001b[17;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m ────────────────────────────────────────────────────╮\u001b[18;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m "]
[11.999403, "o", "\u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[19;29H╰────────\u001b[19;90H╯\u001b[20;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[21;29H│\u001b[38;2;139;144;154;48;2;24;27;34mafter `insert into authors (name, birth_year) values (`,\u001b[38;2;230;"]
[11.999453, "o", "230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[22;29H│\u001b[38;2;139;144;154;48;2;24;27;34mexpected string literal or `null` — usage: insert into\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34m<Table> [(<col>[, ...])] [values] (<value>[, ...])\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.047848, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[2;48H \u001b[2;55H \u001b[2;57H \u001b[2;69H \u001b[3;39H┌\u001b[3;46H┬\u001b[3;55H┬\u001b[3;69H┐\u001b[4;41HName\u001b[4;48HType \u001b[4;57HConstraints\u001b[5;39H├──────┼────────┼─────────────┤\u001b[6;39H│ id │ serial │ PK │\u001b[7;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ name │ text\u001b[7;53H │ \u001b[7;62H │ \u001b[7;73H \u001b[8;39H└──────┴────────┴─────────────┘\u001b[9;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139"]
[12.048035, "o", ";144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[10;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[10;52H \u001b[10;54H \u001b[10;61H \u001b[10;63H \u001b[10;75H \u001b[11;39H┌\u001b[11;52H┬\u001b[11;61H┬\u001b[11;75H┐\u001b[12;41HName\u001b[12;54HType \u001b[12;63HConstraints\u001b[13;39H├────────────┼────────┼─────────────┤\u001b[14;41Hid \u001b[14;54Hserial\u001b[14;63HPK\u001b[15;39H│ name │ text │ │\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ birth_year │ int │ │ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[17;29H│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────────────┴────────┴─────────────┘ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[18;29H╰──────"]
[12.048169, "o", "──────────────────────────────────────────────────────╯\u001b[19;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m \u001b[19;90H╮\u001b[20;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[21;29H╰────────────────"]
[12.048307, "o", "────────────────────────────────────────────╯\u001b[22;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mfor `name`: Type a quoted string (e.g. 'Alice') or null\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.096502, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.140144, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m│ Name │\u001b[2;48HType\u001b[2;55H│\u001b[2;57HConstraints\u001b[2;69H│\u001b[3;39H├\u001b[3;46H┼\u001b[3;55H┼\u001b[3;69H┤\u001b[4;41Hid \u001b[4;48Hserial\u001b[4;57HPK \u001b[5;39H│ name │ text │ │\u001b[6;39H└──────┴────────┴─────────────┘\u001b[7;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[7;53H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7;62H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[7;73H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[8;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[9;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌────────────┬────────┬─────────────┐ \u001b[10;39H│ Name \u001b[10;52H│\u001b[10;54HType\u001b[10;61H│\u001b[10;63HConstraints\u001b[10;75H│\u001b[11;39H├\u001b[11;52H┼\u001b[11;61H┼\u001b[11;75H┤\u001b[12;41Hid \u001b[12;54Hserial\u001b[12;63HPK \u001b[13;39H│ name │ text │ │\u001b[14;41Hbirth_year\u001b[14;54Hint \u001b[14;63H \u001b[15;39H└────────────┴────────┴─────────────┘\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m╰────────────────────────────────────────────────────────────╯\u001b[17;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m ────────────────────────────────────────────────────╮\u001b[18;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m "]
[12.140291, "o", "\u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[19;29H╰────────\u001b[19;90H╯\u001b[20;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[21;29H│\u001b[38;2;139;144;154;48;2;24;27;34mafter `insert into authors (name, birth_year) values (`,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[22;29H│\u001b[38;2;139;144;154;48;2;24;27;34mexpected string literal or `null` — usage: insert into\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34m<Table> [(<col>[, ...])] [values] (<value>[, ...])\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.179799, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.225079, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[2;48H \u001b[2;55H \u001b[2;57H \u001b[2;69H \u001b[3;39H┌\u001b[3;46H┬\u001b[3;55H┬\u001b[3;69H┐\u001b[4;41HName\u001b[4;48HType \u001b[4;57HConstraints\u001b[5;39H├──────┼────────┼─────────────┤\u001b[6;39H│ id │ serial │ PK │\u001b[7;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ name │ text\u001b[7;53H │ \u001b[7;62H │ \u001b[7;73H \u001b[8;39H└──────┴────────┴─────────────┘\u001b[9;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[10;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[10;52H \u001b[10;54H \u001b[10;61H \u001b[10;63H \u001b[10;75H \u001b[11;39H┌\u001b[11;52H┬\u001b[11;61H┬\u001b[11;75H┐\u001b[12;41HName\u001b[12;54HType \u001b[12;63HConstraints\u001b[13;39H├────────────┼────────┼─────────────┤\u001b[14;41Hid \u001b[14;54Hserial\u001b[14;63HPK\u001b[15;39H│ name │ text │ │\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ birth_year │ int │ │ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[17;29H│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────────────┴────────┴─────────────┘ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[18;29H╰──────"]
[12.225121, "o", "──────────────────────────────────────────────────────╯\u001b[19;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m \u001b[19;90H╮\u001b[20;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[21;29H╰────────────────"]
[12.225232, "o", "────────────────────────────────────────────╯\u001b[22;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mfor `name`: Type a quoted string (e.g. 'Alice') or null\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.272052, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m│ Name │\u001b[2;48HType\u001b[2;55H│\u001b[2;57HConstraints\u001b[2;69H│\u001b[3;39H├\u001b[3;46H┼\u001b[3;55H┼\u001b[3;69H┤\u001b[4;41Hid \u001b[4;48Hserial\u001b[4;57HPK \u001b[5;39H│ name │ text │ │\u001b[6;39H└──────┴────────┴─────────────┘\u001b[7;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[7;53H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7;62H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[7;73H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[8;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[9;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌───────────"]
[12.272141, "o", "─┬────────┬─────────────┐ \u001b[10;39H│ Name \u001b[10;52H│\u001b[10;54HType\u001b[10;61H│\u001b[10;63HConstraints\u001b[10;75H│\u001b[11;39H├\u001b[11;52H┼\u001b[11;61H┼\u001b[11;75H┤\u001b[12;41Hid \u001b[12;54Hserial\u001b[12;63HPK \u001b[13;39H│ name │ text │ │\u001b[14;41Hbirth_year\u001b[14;54Hint \u001b[14;63H \u001b[15;39H└────────────┴────────┴─────────────┘\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m╰────────────────────────────────────────────────────────────╯\u001b[17;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m ────────────────────────────────────────────────────╮\u001b[18;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m "]
[12.272314, "o", "\u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;255;107;107;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[19;29H╰────────\u001b[19;90H╯\u001b[20;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[21;29H│\u001b[38;2;139;144;154;48;2;24;27;34mafter `insert into authors (name, birth_year) values (`,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[22;29H│\u001b[38;2;139;144;154;48;2;24;27;34mexpected string literal or `null` — usage: insert into\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34m<Table> [(<col>[, ...])] [values] (<value>[, ...])\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.314538, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.359967, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.404625, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.451080, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[2;48H \u001b[2;55H \u001b[2;57H \u001b[2;69H \u001b[3;39H┌\u001b[3;46H┬\u001b[3;55H┬\u001b[3;69H┐\u001b[4;41HName\u001b[4;48HType \u001b[4;57HConstraints\u001b[5;39H├──────┼────────┼─────────────┤\u001b[6;39H│ id │ serial │ PK │\u001b[7;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ name │ text\u001b[7;53H │ \u001b[7;62H │ \u001b[7;73H \u001b[8;39H└──────┴────────┴─────────────┘\u001b[9;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139"]
[12.451259, "o", ";144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[10;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors\u001b[10;52H \u001b[10;54H \u001b[10;61H \u001b[10;63H \u001b[10;75H \u001b[11;39H┌\u001b[11;52H┬\u001b[11;61H┬\u001b[11;75H┐\u001b[12;41HName\u001b[12;54HType \u001b[12;63HConstraints\u001b[13;39H├────────────┼────────┼─────────────┤\u001b[14;41Hid \u001b[14;54Hserial\u001b[14;63HPK\u001b[15;39H│ name │ text │ │\u001b[16;29H\u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ birth_year │ int │ │ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[17;29H│\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────────────┴────────┴─────────────┘ \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[18;29H╰────────────────────────────────────────────────────────────╯\u001b[19;29H╭ \u001b[1m\u001b[38;2;110;196;255;48;2;24;27;34mSIMPLE\u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m \u001b[19;90H╮\u001b[20;29H│\u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;195;232;141;48;2;24;27;34m'Ursula\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;74;82;101;48;2;24;27;34m│\u001b[21;29H╰────────────────────────────────────────────────────────────╯\u001b[22;29H╭\u001b[1m\u001b[38;2;230;230;230;48;2;24;27;34m Hint \u001b[22m\u001b[38;2;74;82;101;48;2;24;27;34m──────────────────────────────────────────────────────╮\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mNext: `,`\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.494530, "o", "\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mfor `birth_year`: Type an integer (e.g. 42, -7) or null\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.539581, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.584444, "o", "\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mNext: `)`\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.629292, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.674792, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.719034, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.764269, "o", "\u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mSubmit with Enter\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.809135, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m│ Name │\u001b[2;48HType\u001b[2;55H│\u001b[2;57HConstraints\u001b[2;69H│\u001b[3;39H├\u001b[3;46H┼\u001b[3;55H┼\u001b[3;69H┤\u001b[4;41Hid \u001b[4;48Hserial\u001b[4;57HPK \u001b[5;39H│ name │ text │ │\u001b[6;39H└──────┴────────┴─────────────┘\u001b[7;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34madd\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mcolumn\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mto\u001b[7;53H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;139;144;154;48;2;24;27;34m:\u001b[7;62H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[7;73H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;240;143;192;48;2;24;27;34mint\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[8;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[9;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m┌────────────┬────────┬─────────────┐ \u001b[10;39H│ Name \u001b[10;52H│\u001b[10;54HType\u001b[10;61H│\u001b[10;63HConstraints\u001b[10;75H│\u001b[11;39H├\u001b[11;52H┼\u001b[11;61H┼\u001b[11;75H┤\u001b[12;41Hid \u001b[12;54Hserial\u001b[12;63HPK \u001b[13;39H│ name │ text │ │\u001b[14;41Hbirth_year\u001b[14;54Hint \u001b[14;63H \u001b[15;39H└────────────┴────────┴─────────────┘\u001b[16;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;230;230;230;48;2;24;27;34mrunning: \u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[16;60H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[16;68H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[16;75H\u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[17;30H\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;195;232;141;48;2;24;27;34m'Ursula K. Le Guin'\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;247;140;108;48;2;24;27;34m1929\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[20;30H\u001b[7m \u001b[27m \u001b[20;37H \u001b[20;42H \u001b[20;50H \u001b[20;57H \u001b[20;69H \u001b[20;76H \u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mType a\u001b[23;37Hcommand — press Tab for options, `help` for a list\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.823446, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34mauthors \u001b[2;48H \u001b[2;55H \u001b[2;57H \u001b[2;69H \u001b[3;39H┌\u001b[3;46H─\u001b[3;52H┬\u001b[3;55H─\u001b[3;61H┬\u001b[3;69H──────┐\u001b[4;41HName\u001b[4;46H \u001b[4;48H │ Type \u001b[4;61H│\u001b[4;63HConstraints\u001b[4;75H│\u001b[5;39H├────────────┼────────┼─────────────┤\u001b[6;39H│ id │ serial │ PK \u001b[6;75H│\u001b[7;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ name \u001b[7;50H │ text │ \u001b[7;73H │ \u001b[8;39H│ birth_year\u001b[8;52H│\u001b[8;54Hint\u001b[8;61H│\u001b[8;75H│\u001b[9;39H└\u001b[9;52H┴\u001b[9;61H┴\u001b[9;75H┘\u001b[10;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[10;46Hinto\u001b[10;51H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[10;59H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[10;78H\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[11;30H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;195;232;141;48;2;24;27;34m'Ursula K. Le Guin'\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;247;140;108;48;2;24;27;34m1929\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[12;39H \u001b[12;41H1 row(s)\u001b[12;50Hinserted \u001b[12;61H \u001b[12;63H \u001b[12;75H \u001b[13;39H┌────┬───────────────────┬────────────┐\u001b[14;41Hid │ name \u001b[14;52H \u001b[14;54H \u001b[14;61H \u001b[14;64H│\u001b[14;66Hbirth_year\u001b[14;77H│\u001b[15;39H├\u001b[15;44H┼\u001b[15;52H─\u001b[15;61H─\u001b[15;64H┼\u001b[15;75H──┤\u001b[16;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ 1 │ Ursula K. Le Guin │ \u001b[16;68H 1929 │ \u001b[17;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────┴───────────────────┴────────────┘\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.826762, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[12.830549, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[13.834857, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.199839, "o", "\u001b[20;30H\u001b[38;2;255;107;107;48;2;24;27;34ms\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34msave\u001b[23;35Hshow\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.244471, "o", "\u001b[20;31H\u001b[38;2;255;107;107;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;31H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mhow\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.289484, "o", "\u001b[20;32H\u001b[38;2;255;107;107;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.334430, "o", "\u001b[20;30H\u001b[38;2;199;146;234;48;2;24;27;34mshow\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.380139, "o", "\u001b[20;34H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mdata\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtable\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mtables\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mrelationships\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mindexes\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mrelationship\u001b[38;2;139;144;154;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mindex\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.424442, "o", "\u001b[20;35H\u001b[38;2;255;107;107;48;2;24;27;34md\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;34H\u001b[27m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.469205, "o", "\u001b[20;36H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.514130, "o", "\u001b[20;37H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.559254, "o", "\u001b[20;35H\u001b[38;2;199;146;234;48;2;24;27;34mdata\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.604142, "o", "\u001b[20;39H\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[7m \u001b[23;30H\u001b[27m\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.649333, "o", "\u001b[20;40H\u001b[38;2;255;107;107;48;2;24;27;34ma\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.694124, "o", "\u001b[20;41H\u001b[38;2;255;107;107;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.739404, "o", "\u001b[20;42H\u001b[38;2;255;107;107;48;2;24;27;34mt\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.784126, "o", "\u001b[20;43H\u001b[38;2;255;107;107;48;2;24;27;34mh\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.830038, "o", "\u001b[20;44H\u001b[38;2;255;107;107;48;2;24;27;34mo\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.874067, "o", "\u001b[20;45H\u001b[38;2;255;107;107;48;2;24;27;34mr\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.919289, "o", "\u001b[20;40H\u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mSubmit with Enter\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.964618, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m┌────────────┬────────┬─────────────┐\u001b[3;39H│ Name │ Type │ Constraints │\u001b[4;39H├────────────┼────────┼─────────────┤\u001b[5;39H│ id │ serial │ PK │\u001b[6;41Hname\u001b[6;54Ht\u001b[6;56Hxt \u001b[6;63H \u001b[7;41Hbirth_year\u001b[7;54Hint \u001b[8;39H└────────────┴────────┴─────────────┘\u001b[9;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[9;78H\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[10;30H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;195;232;141;48;2;24;27;34m'Ursula K. Le Guin'\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;247;140;108;48;2;24;27;34m1929\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[10;66H \u001b[10;78H \u001b[11;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m 1 row(s) inserted \u001b[12;39H┌────┬───────────────────┬────────────┐\u001b[13;39H│ id │ name │ birth_year │\u001b[14;39H├────┼───────────────────┼────────────┤\u001b[15;39H│ 1 │ Ursula K. Le Guin │ 1929 │\u001b[16;39H└────┴───────────────────┴────────────┘\u001b[17;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;230;230;230;48;2;24;27;34mrunning: \u001b[38;2;199;146;234;48;2;24;27;34mshow\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdata\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[20;30H\u001b[7m \u001b[27m \u001b[20;35H \u001b[20;40H \u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mType a\u001b[23;37Hcommand — press Tab for options, `help` for a list\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.968284, "o", "\u001b[2;39H\u001b[38;2;230;230;230;48;2;24;27;34m│ birth_year │ int │ │\u001b[3;39H└────────────┴────────┴─────────────┘\u001b[4;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34minsert\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34minto\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;86;182;194;48;2;24;27;34mname\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mbirth_year\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[4;78H\u001b[38;2;199;146;234;48;2;24;27;34mvalues\u001b[5;30H\u001b[38;2;139;144;154;48;2;24;27;34m(\u001b[38;2;195;232;141;48;2;24;27;34m'Ursula K. Le Guin'\u001b[38;2;139;144;154;48;2;24;27;34m,\u001b[5;52H\u001b[38;2;247;140;108;48;2;24;27;34m1929\u001b[38;2;139;144;154;48;2;24;27;34m)\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[5;61H \u001b[5;63H \u001b["]
[14.968327, "o", "5;75H \u001b[6;39H \u001b[6;41H1 row(s)\u001b[6;50Hinserted\u001b[6;61H \u001b[6;75H \u001b[7;39H┌────┬───────────────────┬────────────┐\u001b[8;39H│ id │ name │ birth_year\u001b[8;77H│\u001b[9;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m├────┼───────────────────┼────────────┤ \u001b[10;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m│ 1 │ Ursula K. Le Guin\u001b[10;64H│\u001b[10;72H1929\u001b[10;77H│\u001b[11;39H└────┴───────────────────┴────────────┘\u001b[12;30H\u001b[38;2;110;196;255;48;2;24;27;34m[simple] \u001b[38;2;199;146;234;48;2;24;27;34mshow\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;199;146;234;48;2;24;27;34mdata\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[38;2;86;182;194;48;2;24;27;34mauthors\u001b[38;2;159;216;145;48;2;24;27;34m ✓\u001b[38;2;230;230;230;48;2;24;27;34m "]
[14.968376, "o", " \u001b[13;39H┌────┬───────────────────┬────────────┐\u001b[14;39H│ id │ name │ birth_year │\u001b[15;39H├────┼───────────────────┼────────────┤\u001b[16;39H│ 1 │ Ursula K. Le Guin │ 1929 │\u001b[17;30H\u001b[38;2;159;216;145;48;2;24;27;34m[system] \u001b[38;2;230;230;230;48;2;24;27;34m└────┴───────────────────┴────────────┘\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.971924, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[14.975318, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[15.980462, "o", "\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[16.855455, "o", "\u001b[20;30H\u001b[38;2;255;107;107;48;2;24;27;34mq\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;199;146;234;48;2;24;27;34mquit\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[16.900429, "o", "\u001b[20;31H\u001b[38;2;255;107;107;48;2;24;27;34mu\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[16.945441, "o", "\u001b[20;32H\u001b[38;2;255;107;107;48;2;24;27;34mi\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[16.992461, "o", "\u001b[20;30H\u001b[38;2;199;146;234;48;2;24;27;34mquit\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[23;30H\u001b[27m\u001b[38;2;139;144;154;48;2;24;27;34mSubmit with Enter\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[17.036780, "o", "\u001b[20;30H\u001b[7m\u001b[38;2;230;230;230;48;2;24;27;34m \u001b[27m \u001b[23;30H\u001b[38;2;139;144;154;48;2;24;27;34mType a\u001b[23;37Hcommand — press Tab for options, `help` for a list\u001b[39m\u001b[49m\u001b[59m\u001b[0m\u001b[?25l"]
[17.140085, "o", "\u001b[?1049l\u001b[?25h"]
[17.142911, "o", "$ "]
[17.187911, "o", "\r\n"]
+72
View File
@@ -0,0 +1,72 @@
---
/**
* Cast.astro — embeds an asciinema `.cast` recording via asciinema-player
* (ADR-website-001 §2). Client-side island: the player script is bundled and
* initialises every `.asciinema-cast` element on the page from its data
* attributes, so multiple casts on one page work without per-instance scripts.
*
* `.cast` files live in `public/casts/` and are generated from the sources in
* `casts-src/` (run `pnpm casts`). Recordings are regenerable artifacts — the
* source command-lists are the durable thing (re-run, re-record as the app
* evolves).
*/
import 'asciinema-player/dist/bundle/asciinema-player.css';
interface Props {
/** Path to the cast, e.g. `/casts/quickstart.cast`. */
src: string;
autoPlay?: boolean;
loop?: boolean;
/** Skip idle gaps longer than this many seconds (keeps demos snappy). */
idleTimeLimit?: number;
/** Poster frame shown before play, e.g. `npt:0:2` (the frame at 2s). */
poster?: string;
cols?: number;
rows?: number;
theme?: string;
}
const {
src,
autoPlay = false,
loop = false,
idleTimeLimit = 2,
poster = 'npt:0:2',
cols,
rows,
theme = 'asciinema',
} = Astro.props;
// Serialise options for the client script; nulls are dropped there.
const opts = JSON.stringify({
autoPlay,
loop,
idleTimeLimit,
poster,
cols,
rows,
theme,
fit: 'width',
controls: true,
});
---
<div class="asciinema-cast" data-src={src} data-opts={opts}></div>
<script>
import * as AsciinemaPlayer from 'asciinema-player';
function initCasts() {
document.querySelectorAll<HTMLElement>('.asciinema-cast').forEach((el) => {
if (el.dataset.initialised) return;
el.dataset.initialised = '1';
const opts = JSON.parse(el.dataset.opts || '{}');
Object.keys(opts).forEach((k) => opts[k] == null && delete opts[k]);
AsciinemaPlayer.create(el.dataset.src!, el, opts);
});
}
initCasts();
// Re-init after Starlight/Astro view-transition navigations.
document.addEventListener('astro:page-load', initCasts);
</script>
+35
View File
@@ -0,0 +1,35 @@
---
/**
* Demo.astro — the stable demo seam (ADR-website-001 §3). Call sites use this,
* not Cast directly, so a future in-page WASM playground island can replace
* the asciinema player behind the same `{ src, title, autoplay }` contract
* with no change to the pages that embed it.
*/
import Cast from './Cast.astro';
interface Props {
/** Path to the cast, e.g. `/casts/quickstart.cast`. */
src: string;
/** Optional caption shown above the demo. */
title?: string;
autoplay?: boolean;
}
const { src, title, autoplay = false } = Astro.props;
---
<figure class="demo not-content">
{title && <figcaption class="demo-caption">{title}</figcaption>}
<Cast src={src} autoPlay={autoplay} />
</figure>
<style>
.demo {
margin: 1.5rem 0;
}
.demo-caption {
font-size: var(--sl-text-sm);
color: var(--sl-color-gray-3);
margin-block-end: 0.5rem;
}
</style>
+3
View File
@@ -14,6 +14,7 @@ hero:
--- ---
import { Card, CardGrid, LinkCard } from '@astrojs/starlight/components'; import { Card, CardGrid, LinkCard } from '@astrojs/starlight/components';
import Demo from '../../components/Demo.astro';
RDBMS Playground is a cross-platform terminal app that gives you a safe RDBMS Playground is a cross-platform terminal app that gives you a safe
sandbox for exploring relational database concepts: tables, columns, sandbox for exploring relational database concepts: tables, columns,
@@ -21,6 +22,8 @@ primary and foreign keys, relationships, indexes, queries, and query
plans. It is built for learning — from your first table to writing raw plans. It is built for learning — from your first table to writing raw
SQL. SQL.
<Demo src="/casts/quickstart.cast" title="From a fresh table to your first query, in simple mode." />
<CardGrid> <CardGrid>
<Card title="Two ways to work" icon="seti:db"> <Card title="Two ways to work" icon="seti:db">
Start in **simple mode** — a friendly, keyword-based command language — Start in **simple mode** — a friendly, keyword-based command language —