Skip to content

Instantly share code, notes, and snippets.

View kerbelp's full-sized avatar

Pavel Kerbel kerbelp

View GitHub Profile
SELECT stv_tbl_perm.db_id,
stv_tbl_perm.id,
stv_tbl_perm.name,
SUM(stv_tbl_perm. "rows") AS "rows",
SUM(stv_tbl_perm. "rows") - SUM(stv_tbl_perm.sorted_rows) AS unsorted_rows
FROM stv_tbl_perm
GROUP BY stv_tbl_perm.db_id,
stv_tbl_perm.id,
stv_tbl_perm.name;
CREATE OR REPLACE VIEW admin.v_vacuum_jobs_summary
AS
SELECT DISTINCT us.usename, perm.name, vac.eventtime, trunc(vac.eventtime) AS date, vac.status, vac."rows", vac.sortedrows
FROM stl_vacuum vac
JOIN stv_tbl_perm perm ON perm.id = vac.table_id
JOIN pg_user us ON us.usesysid = vac.userid
WHERE trunc(vac.eventtime) >= trunc('now' - 1)
ORDER BY vac.eventtime DESC;
CREATE OR REPLACE VIEW admin.v_users_groups
AS
SELECT pg_group.groname as group_name,
pg_user.usename as user_name,
pg_user.usesuper as is_superuser
FROM pg_group,
pg_user
WHERE pg_user.usesysid = ANY (pg_group.grolist);
CREATE OR REPLACE VIEW admin.v_encoded_columns_percentage
AS
SELECT def.tablename,
def.mbytes,
SUM(CASE WHEN def.attencodingtype = 0 THEN 0 ELSE 1 END)::double precision / COUNT(DISTINCT def.attname)::double precision AS encoded_percentage
FROM (SELECT n.nspname AS schemaname,
c.oid,
c.relname AS tablename,
format_encoding(a.attencodingtype) AS "encoding",
a.attencodingtype,
@kerbelp
kerbelp / is_valid_bst.py
Created March 25, 2017 17:39
validate bst
#!/usr/bin/env python
class Node:
def __init__(self, value):
self.value = value
self.right = None
self.left = None
def is_valid_bst(self, head=None):