|
1 | 1 | -- select * from tasks limit 5; |
2 | 2 |
|
3 | 3 | -- annoying: you have to cast(x as real) for pragma_info to have type info |
4 | | -create table packages as |
5 | | -select status, |
6 | | - elapsed_secs, |
7 | | - cast( user_secs / elapsed_secs as real) as user_elapsed_ratio, |
8 | | - cast( user_secs / sys_secs as real) as user_sys_ratio, |
9 | | - cast(max_rss_KiB * 1024 / 1e6 as real) as max_rss_MB, |
10 | | - pkg, |
11 | | - pkg_HREF |
12 | | -from tasks; |
| 4 | +CREATE TABLE packages AS |
| 5 | + SELECT |
| 6 | + status, |
| 7 | + elapsed_secs, |
| 8 | + CAST(user_secs / elapsed_secs AS REAL) AS user_elapsed_ratio, |
| 9 | + CAST(user_secs / sys_secs AS REAL) AS user_sys_ratio, |
| 10 | + CAST(max_rss_KiB * 1024 / 1e6 AS REAL) AS max_rss_MB, |
| 11 | + pkg, |
| 12 | + pkg_HREF |
| 13 | + FROM tasks; |
13 | 14 |
|
14 | 15 | -- sqlite table schema -> foo.schema.tsv |
15 | 16 | CREATE TABLE packages_schema AS |
16 | | -SELECT |
| 17 | + SELECT |
17 | 18 | name AS column_name, |
18 | | - CASE |
19 | | - WHEN UPPER(type) = "INTEGER" THEN "integer" |
20 | | - WHEN UPPER(type) = "REAL" THEN "float" |
21 | | - WHEN UPPER(type) = "TEXT" THEN "string" |
22 | | - ELSE LOWER(type) |
| 19 | + CASE |
| 20 | + WHEN UPPER(type) = "INTEGER" THEN "integer" |
| 21 | + WHEN UPPER(type) = "REAL" THEN "float" |
| 22 | + WHEN UPPER(type) = "TEXT" THEN "string" |
| 23 | + ELSE LOWER(type) |
23 | 24 | END AS type |
24 | | -FROM PRAGMA_TABLE_INFO("packages"); |
| 25 | + FROM PRAGMA_TABLE_INFO("packages"); |
25 | 26 |
|
26 | 27 | -- select * from packages_schema; |
27 | 28 |
|
28 | | -alter table packages_schema add column precision; |
| 29 | +ALTER TABLE packages_schema ADD COLUMN precision; |
29 | 30 |
|
30 | | -update packages_schema SET precision = 1 where column_name = "elapsed_secs"; |
31 | | -update packages_schema SET precision = 1 where column_name = "user_elapsed_ratio"; |
32 | | -update packages_schema SET precision = 1 where column_name = "user_sys_ratio"; |
33 | | -update packages_schema SET precision = 1 where column_name = "max_rss_MB"; |
| 31 | +UPDATE packages_schema SET precision = 1 WHERE column_name = "elapsed_secs"; |
| 32 | +UPDATE packages_schema |
| 33 | +SET precision = 1 |
| 34 | +WHERE column_name = "user_elapsed_ratio"; |
| 35 | +UPDATE packages_schema SET precision = 1 WHERE column_name = "user_sys_ratio"; |
| 36 | +UPDATE packages_schema SET precision = 1 WHERE column_name = "max_rss_MB"; |
34 | 37 |
|
35 | 38 | -- Compute stats |
36 | 39 |
|
37 | 40 | CREATE TABLE metrics ( |
38 | | - id integer primary key check (id = 1), -- ensure only one row |
| 41 | + id INTEGER PRIMARY KEY CHECK (id = 1), -- ensure only one row |
39 | 42 | elapsed_minutes REAL NOT NULL, |
40 | | - num_failures integer NOT NULL, |
41 | | - num_tasks integer NOT NULL |
| 43 | + num_failures INTEGER NOT NULL, |
| 44 | + num_tasks INTEGER NOT NULL |
42 | 45 | ); |
43 | 46 |
|
44 | | -# dummy row |
45 | | -insert into metrics values (1, -1.0, -1, -1); |
| 47 | +-- dummy row |
| 48 | +INSERT INTO metrics VALUES (1, -1.0, -1, -1); |
46 | 49 |
|
47 | | -update metrics |
48 | | -set elapsed_minutes = |
49 | | -(select ( max(end_time)-min(start_time) ) / 60 from tasks) |
50 | | -where id = 1; |
| 50 | +UPDATE metrics |
| 51 | +SET elapsed_minutes = (SELECT (max(end_time) - min(start_time)) / 60 FROM tasks) |
| 52 | +WHERE id = 1; |
51 | 53 |
|
52 | | -update metrics |
53 | | -set num_failures = |
54 | | -(select count(*) from tasks where status != 0) |
55 | | -where id = 1; |
| 54 | +UPDATE metrics |
| 55 | +SET num_failures = (SELECT count(*) FROM tasks WHERE status != 0) |
| 56 | +WHERE id = 1; |
56 | 57 |
|
57 | | -update metrics |
58 | | -set num_tasks = |
59 | | -(select count(*) from tasks) |
60 | | -where id = 1; |
| 58 | +UPDATE metrics |
| 59 | +SET num_tasks = (SELECT count(*) FROM tasks) |
| 60 | +WHERE id = 1; |
0 commit comments