aboutsummaryrefslogtreecommitdiff
path: root/examples/circle.sql
blob: 73e71188824082614322a7cb759cba8c328a55c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE TEMP TABLE variables(name TEXT PRIMARY KEY, value Text);

INSERT INTO images (width, height) VALUES (6, 6) RETURNING id;
INSERT INTO variables VALUES ('image_id', last_insert_rowid());

WITH RECURSIVE
  image_id AS (SELECT value FROM variables WHERE name = 'image_id'),
  horizontal(x) AS (
    SELECT width FROM images WHERE id = (SELECT * FROM image_id)
    UNION ALL
    SELECT x - 1 FROM horizontal
    WHERE x > 1
  ),
  vertical(y) AS (
    SELECT height FROM images WHERE id = (SELECT * FROM image_id)
    UNION ALL
    SELECT y - 1 FROM vertical
    WHERE y > 1
  ),
  pixels_temp(x, y, r, g, b) AS (
    SELECT x, y, 255, 0, 0 FROM vertical, horizontal
  )
INSERT INTO pixels (image_id, x, y, r, g, b) SELECT (SELECT * FROM image_id), x, y, r, g, b FROM pixels_temp;

DROP TABLE variables;