Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function * run (context, heroku) {
const app = context.app
const {prefix, database} = context.args
let db = yield pg.fetcher(heroku).database(app, database)
let addon = yield pg.fetcher(heroku).addon(app, database)
yield util.ensureNonStarterPlan(addon)
cli.log('CREATE EXTENSION IF NOT EXISTS postgres_fdw;')
cli.log(`DROP SERVER IF EXISTS ${prefix}_db;`)
cli.log(`CREATE SERVER ${prefix}_db
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (dbname '${db.database}', host '${db.host}');`)
cli.log(`CREATE USER MAPPING FOR CURRENT_USER
SERVER ${prefix}_db
OPTIONS (user '${db.user}', password '${db.password}');`)
let output = yield pg.psql.exec(db, query(prefix))
output = output.split('\n').filter(l => /CREATE/.test(l)).join('\n')
process.stdout.write(output)
cli.log()
}
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let query = `
SELECT
relname AS name,
n_live_tup AS estimated_count
FROM
pg_stat_user_tables
ORDER BY
n_live_tup DESC;
`
let output = yield pg.psql.exec(db, query)
process.stdout.write(output)
}
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let output = yield pg.psql.exec(db, query)
process.stdout.write(output)
}
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let query = `
SELECT c.relname AS table,
pg_size_pretty(pg_indexes_size(c.oid)) AS index_size
FROM pg_class c
LEFT JOIN pg_namespace n ON (n.oid = c.relnamespace)
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
AND n.nspname !~ '^pg_toast'
AND c.relkind='r'
ORDER BY pg_indexes_size(c.oid) DESC;
`
let output = yield pg.psql.exec(db, query)
process.stdout.write(output)
}
function * run (context, heroku) {
const app = context.app
const {database} = context.args
let db = yield pg.fetcher(heroku).addon(app, database)
yield util.ensureNonStarterPlan(db)
let host = pg.host(db)
let credentials = yield heroku.get(`/postgres/v0/databases/${db.name}/credentials`, { host: host })
let defaultCredentials = _.filter(credentials, c => c.name === 'default')
let defaultUsers = _.flatMap(defaultCredentials, c => _.map(c.credentials, u => u.user))
let isDefaultUser = (user) => _.includes(defaultUsers, user)
let styledName = (user) => {
if (isDefaultUser(user)) {
return 'default'
} else {
return user
}
}
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let query = `
SELECT
schemaname || '.' || relname AS table,
indexrelname AS index,
pg_size_pretty(pg_relation_size(i.indexrelid)) AS index_size,
idx_scan as index_scans
FROM pg_stat_user_indexes ui
JOIN pg_index i ON ui.indexrelid = i.indexrelid
WHERE NOT indisunique AND idx_scan < 50 AND pg_relation_size(relid) > 5 * 8192
ORDER BY pg_relation_size(i.indexrelid) / nullif(idx_scan, 0) DESC NULLS FIRST,
pg_relation_size(i.indexrelid) DESC;
`
let output = yield pg.psql.exec(db, query)
process.stdout.write(output)
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let query = `
WITH RECURSIVE Z(IX, IY, CX, CY, X, Y, I) AS (
SELECT IX, IY, X::float, Y::float, X::float, Y::float, 0
FROM (select -2.2 + 0.031 * i, i from generate_series(0,101) as i) as xgen(x,ix),
(select -1.5 + 0.031 * i, i from generate_series(0,101) as i) as ygen(y,iy)
UNION ALL
SELECT IX, IY, CX, CY, X * X - Y * Y + CX AS X, Y * X * 2 + CY, I + 1
FROM Z
WHERE X * X + Y * Y < 16::float
AND I < 100
)
SELECT array_to_string(array_agg(SUBSTRING(' .,,,-----++++%%%%@@@@#### ', LEAST(GREATEST(I,1),27), 1)),'')
FROM (
SELECT IX, IY, MAX(I) AS I
FROM Z
function * run (context, heroku) {
const app = context.app
const {database} = context.args
let db = yield pg.fetcher(heroku).addon(app, database)
yield util.ensureNonStarterPlan(db)
let host = pg.host(db)
let rsp = yield heroku.put(`/client/v11/databases/${db.name}/stats_reset`, {host})
cli.log(rsp.message)
}
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let query = `
WITH constants AS (
SELECT current_setting('block_size')::numeric AS bs, 23 AS hdr, 4 AS ma
), bloat_info AS (
SELECT
ma,bs,schemaname,tablename,
(datawidth+(hdr+ma-(case when hdr%ma=0 THEN ma ELSE hdr%ma END)))::numeric AS datahdr,
(maxfracsum*(nullhdr+ma-(case when nullhdr%ma=0 THEN ma ELSE nullhdr%ma END))) AS nullhdr2
FROM (
SELECT
schemaname, tablename, hdr, ma, bs,
SUM((1-null_frac)*avg_width) AS datawidth,
MAX(null_frac) AS maxfracsum,
hdr+(
SELECT 1+count(*)/8
function * run (context, heroku) {
let db = yield pg.fetcher(heroku).database(context.app, context.args.database)
let output = yield pg.psql.exec(db, query)
process.stdout.write(output)
}