diff options
author | stephan <stephan@noemail.net> | 2022-09-05 13:24:08 +0000 |
---|---|---|
committer | stephan <stephan@noemail.net> | 2022-09-05 13:24:08 +0000 |
commit | 49cb8d7314f201bcc264ab3c38c01ae48822a7a4 (patch) | |
tree | d53da46516a07f8dc0a2776e043a7eebfa206e79 /ext/wasm/sql | |
parent | cdefd5d046db3baa83e18b82cac15c54c8e8d60a (diff) | |
download | sqlite-49cb8d7314f201bcc264ab3c38c01ae48822a7a4.tar.gz sqlite-49cb8d7314f201bcc264ab3c38c01ae48822a7a4.zip |
Minor cleanups in OO API #1. Add Sudoku SQL to batch-runner.js's list.
FossilOrigin-Name: 4488cb5798f34cbba14eb8e2aa5da8420c14a85d37d278d357406aedd5c3a9e5
Diffstat (limited to 'ext/wasm/sql')
-rw-r--r-- | ext/wasm/sql/001-sudoku.sql | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ext/wasm/sql/001-sudoku.sql b/ext/wasm/sql/001-sudoku.sql new file mode 100644 index 000000000..53661b1c3 --- /dev/null +++ b/ext/wasm/sql/001-sudoku.sql @@ -0,0 +1,28 @@ +WITH RECURSIVE + input(sud) AS ( + VALUES('53..7....6..195....98....6.8...6...34..8.3..17...2...6.6....28....419..5....8..79') + ), + digits(z, lp) AS ( + VALUES('1', 1) + UNION ALL SELECT + CAST(lp+1 AS TEXT), lp+1 FROM digits WHERE lp<9 + ), + x(s, ind) AS ( + SELECT sud, instr(sud, '.') FROM input + UNION ALL + SELECT + substr(s, 1, ind-1) || z || substr(s, ind+1), + instr( substr(s, 1, ind-1) || z || substr(s, ind+1), '.' ) + FROM x, digits AS z + WHERE ind>0 + AND NOT EXISTS ( + SELECT 1 + FROM digits AS lp + WHERE z.z = substr(s, ((ind-1)/9)*9 + lp, 1) + OR z.z = substr(s, ((ind-1)%9) + (lp-1)*9 + 1, 1) + OR z.z = substr(s, (((ind-1)/3) % 3) * 3 + + ((ind-1)/27) * 27 + lp + + ((lp-1) / 3) * 6, 1) + ) + ) +SELECT s FROM x WHERE ind=0; |