packages feed

pgmq-migration-0.6.0.0: test/fixtures/schema-snapshot.sql

-- Database-independent catalog keys. Bodies remain separate so only explicit
-- local overrides can be exempted; signatures and defaults are always compared.
SELECT key, value FROM (
  SELECT 'function:' || p.proname || '(' || pg_get_function_identity_arguments(p.oid) || ')' AS key,
    json_build_array(pg_get_function_result(p.oid), pg_get_function_arguments(p.oid),
      l.lanname, p.provolatile, p.proisstrict, p.prosecdef, p.proparallel, p.proconfig)::text AS value
  FROM pg_proc p JOIN pg_namespace n ON n.oid=p.pronamespace
  JOIN pg_language l ON l.oid=p.prolang WHERE n.nspname='pgmq'
  UNION ALL
  SELECT 'body:' || p.proname || '(' || oidvectortypes(p.proargtypes) || ')', p.prosrc
  FROM pg_proc p JOIN pg_namespace n ON n.oid=p.pronamespace WHERE n.nspname='pgmq'
  UNION ALL
  SELECT 'column:' || c.relname || ':' || a.attnum,
    json_build_array(a.attname, format_type(a.atttypid,a.atttypmod), a.attnotnull,
      a.attidentity, a.attgenerated, pg_get_expr(d.adbin,d.adrelid))::text
  FROM pg_class c JOIN pg_namespace n ON n.oid=c.relnamespace
  JOIN pg_attribute a ON a.attrelid=c.oid
  LEFT JOIN pg_attrdef d ON d.adrelid=c.oid AND d.adnum=a.attnum
  WHERE n.nspname='pgmq' AND a.attnum>0 AND NOT a.attisdropped
  UNION ALL
  SELECT 'relation:' || c.relname, json_build_array(c.relkind,c.relpersistence)::text
  FROM pg_class c JOIN pg_namespace n ON n.oid=c.relnamespace WHERE n.nspname='pgmq'
  UNION ALL
  SELECT 'constraint:' || c.relname || ':' || con.conname, pg_get_constraintdef(con.oid)
  FROM pg_constraint con JOIN pg_class c ON c.oid=con.conrelid
  JOIN pg_namespace n ON n.oid=c.relnamespace WHERE n.nspname='pgmq'
) snapshot ORDER BY key