-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcurrent_schema.json
More file actions
1 lines (1 loc) · 4.22 KB
/
Copy pathcurrent_schema.json
File metadata and controls
1 lines (1 loc) · 4.22 KB
1
{"tables":{"database.likes":{"columns":[{"name":"postid","type":"int","length":10,"position":1,"key":"PRI","pk":true,"ref":{"schema":"database","table":"posts","column":"postid"}},{"name":"userid","type":"int","length":10,"position":2,"key":"PRI","pk":true,"ref":{"schema":"database","table":"users","column":"userid"}},{"name":"created","type":"datetime","length":0,"position":3,"key":"","pk":false}],"schema":"database","name":"likes","type":"BASE TABLE"},"database.posts":{"columns":[{"name":"postid","type":"int","length":10,"position":1,"key":"PRI","pk":true,"ref":{"schema":"database","table":"posts","column":"postid"}},{"name":"title","type":"text","length":65535,"position":2,"key":"","pk":false},{"name":"body","type":"text","length":65535,"position":3,"key":"","pk":false},{"name":"userid","type":"int","length":10,"position":4,"key":"MUL","pk":true,"ref":{"schema":"database","table":"users","column":"userid"}},{"name":"inreplyto","type":"int","length":10,"position":5,"key":"MUL","pk":false},{"name":"created","type":"datetime","length":0,"position":6,"key":"","pk":false},{"name":"updated","type":"datetime","length":0,"position":7,"key":"","pk":false},{"name":"deleted","type":"datetime","length":0,"position":8,"key":"","pk":false}],"schema":"database","name":"posts","type":"BASE TABLE"},"database.stats":{"columns":[{"name":"userid","type":"int","length":10,"position":1,"key":"","pk":true,"ref":{"schema":"database","table":"users","column":"userid"}},{"name":"title","type":"text","length":65535,"position":2,"key":"","pk":false},{"name":"likecount","type":"bigint","length":19,"position":3,"key":"","pk":false},{"name":"replycount","type":"bigint","length":19,"position":4,"key":"","pk":false},{"name":"ratio","type":"decimal","length":24,"position":5,"key":"","pk":false}],"schema":"database","name":"stats","type":"VIEW"},"database.users":{"columns":[{"name":"userid","type":"int","length":10,"position":1,"key":"PRI","pk":true,"ref":{"schema":"database","table":"users","column":"userid"}},{"name":"name","type":"text","length":65535,"position":2,"key":"","pk":false},{"name":"email","type":"text","length":65535,"position":3,"key":"UNI","pk":false},{"name":"password","type":"text","length":65535,"position":4,"key":"","pk":false},{"name":"created","type":"datetime","length":0,"position":5,"key":"","pk":false},{"name":"updated","type":"datetime","length":0,"position":6,"key":"","pk":false},{"name":"deleted","type":"datetime","length":0,"position":7,"key":"","pk":false},{"name":"nickname","type":"text","length":65535,"position":8,"key":"","pk":false}],"schema":"database","name":"users","type":"BASE TABLE"}},"sprocs":{"database.prune_accounts":{"schema":"database","name":"prune_accounts","type":"PROCEDURE","body":"CREATE DEFINER = 'root@localhost' PROCEDURE prune_accounts (null) CONTAINS SQL\n BEGIN\n UPDATE users SET deleted=NOW() WHERE updated < DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH);\nEND","security":"DEFINER","def":"root@localhost","access":"CONTAINS SQL","comment":"","params":null},"database.prune_posts":{"schema":"database","name":"prune_posts","type":"PROCEDURE","body":"CREATE DEFINER = 'root@localhost' PROCEDURE prune_posts (null) CONTAINS SQL\n BEGIN\n UPDATE posts \n SET deleted=NOW() \n WHERE postid in (\n SELECT posts.postid AS postid\n FROM posts\n JOIN users ON (posts.userid=users.userid)\n WHERE \n posts.deleted IS NULL AND\n users.deleted > DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)\n );\nEND","security":"DEFINER","def":"root@localhost","access":"CONTAINS SQL","comment":"","params":null},"database.top_likers":{"schema":"database","name":"top_likers","type":"PROCEDURE","body":"CREATE DEFINER = 'root@localhost' PROCEDURE top_likers (IN foremail text) CONTAINS SQL\n BEGIN\nSELECT\n count(1) AS num,\n likers.name\n FROM users AS source\n JOIN posts AS posts ON (source.userid=posts.userid)\n JOIN likes AS liked ON (posts.postid=liked.postid)\n JOIN users AS likers ON (liked.userid=likers.userid)\n WHERE\n liked.deleted IS NULL\n AND source.email = foremail\n\n GROUP BY likers.name\n HAVING num > 1 \n ORDER BY 1\n LIMIT 5\n;\nEND","security":"DEFINER","def":"root@localhost","access":"CONTAINS SQL","comment":"","params":"IN foremail text"}}}