// Fixed wire query texts of configured-source-installation/v1. Native results are
// independently checked; none of the producer verified flags authorizes a proof.
///|
fn source_v4_environment_sql() -> String {
"SELECT pg_catalog.jsonb_build_object(\n 'database',pg_catalog.current_database(),'databaseOid',(SELECT oid::bigint FROM pg_catalog.pg_database WHERE datname=pg_catalog.current_database()),'backendPid',pg_catalog.pg_backend_pid(),\n 'serverVersionNum',pg_catalog.current_setting('server_version_num'),'serverEncoding',pg_catalog.current_setting('server_encoding'),\n 'clientEncoding',pg_catalog.current_setting('client_encoding'),'standardConformingStrings',pg_catalog.current_setting('standard_conforming_strings'),\n 'replicationRole',pg_catalog.current_setting('session_replication_role'),'owner',CURRENT_USER,\n 'eventTriggers',COALESCE((SELECT pg_catalog.jsonb_agg(evtname ORDER BY evtname) FROM pg_catalog.pg_event_trigger WHERE evtenabled<>'D'),'[]'::jsonb),\n 'ownerRole',(SELECT pg_catalog.jsonb_build_object('name',rolname,'superuser',rolsuper,'login',rolcanlogin,'createRole',rolcreaterole,'replication',rolreplication,'bypassRls',rolbypassrls) FROM pg_catalog.pg_roles WHERE rolname=CURRENT_USER),\n 'writers',(SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('name',rolname,'superuser',rolsuper,'login',rolcanlogin,'createRole',rolcreaterole,'createDb',rolcreatedb,'replication',rolreplication,'bypassRls',rolbypassrls,'ownerMembership',pg_catalog.pg_has_role(oid,CURRENT_USER,'MEMBER'),'privilegedMembership',EXISTS(SELECT 1 FROM pg_catalog.pg_roles privileged WHERE (privileged.rolsuper OR privileged.rolcreaterole OR privileged.rolreplication OR privileged.rolbypassrls) AND pg_catalog.pg_has_role(pg_roles.oid,privileged.oid,'MEMBER')),'canSetReplicationRole',pg_catalog.has_parameter_privilege(oid,'session_replication_role','SET')) ORDER BY rolname) FROM pg_catalog.pg_roles WHERE rolname::text COLLATE pg_catalog.\"C\"=ANY(%s)))::text"
}
///|
fn source_v4_table_catalog_sql() -> String {
"SELECT pg_catalog.jsonb_build_object(\n 'schema',n.nspname,'table',c.relname,'oid',c.oid::bigint,'kind',c.relkind,'persistence',c.relpersistence,\n 'owner',pg_catalog.pg_get_userbyid(c.relowner),'rls',c.relrowsecurity,'forceRls',c.relforcerowsecurity,\n 'inherits',EXISTS(SELECT 1 FROM pg_catalog.pg_inherits WHERE inhrelid=c.oid OR inhparent=c.oid),\n 'rules',EXISTS(SELECT 1 FROM pg_catalog.pg_rewrite WHERE ev_class=c.oid AND rulename<>'_RETURN'),\n 'columns',COALESCE((SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('name',a.attname,'number',a.attnum,'oid',a.atttypid::bigint,'generated',a.attgenerated,'identity',a.attidentity,'notNull',a.attnotnull,'typeKind',ty.typtype,'typeSchema',tn.nspname,'elementType',ty.typelem::bigint,'collation',co.collname,'collationSchema',cn.nspname,'collationProvider',co.collprovider,'collationDeterministic',co.collisdeterministic,'default',pg_catalog.pg_get_expr(ad.adbin,ad.adrelid)) ORDER BY a.attnum) FROM pg_catalog.pg_attribute a JOIN pg_catalog.pg_type ty ON ty.oid=a.atttypid JOIN pg_catalog.pg_namespace tn ON tn.oid=ty.typnamespace LEFT JOIN pg_catalog.pg_attrdef ad ON ad.adrelid=a.attrelid AND ad.adnum=a.attnum LEFT JOIN pg_catalog.pg_collation co ON co.oid=a.attcollation LEFT JOIN pg_catalog.pg_namespace cn ON cn.oid=co.collnamespace WHERE a.attrelid=c.oid AND a.attnum>0 AND NOT a.attisdropped),'[]'::jsonb),\n 'primaryKeys',COALESCE((SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('valid',i.indisvalid,'ready',i.indisready,'immediate',i.indimmediate,'keys',i.indnkeyatts,'columns',(SELECT pg_catalog.jsonb_agg(a.attname ORDER BY k.ordinality) FROM pg_catalog.unnest(i.indkey) WITH ORDINALITY k(num,ordinality) JOIN pg_catalog.pg_attribute a ON a.attrelid=c.oid AND a.attnum=k.num WHERE k.ordinality<=i.indnkeyatts))) FROM pg_catalog.pg_index i WHERE i.indrelid=c.oid AND i.indisprimary),'[]'::jsonb),\n 'uniqueIndexes',COALESCE((SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('valid',i.indisvalid,'ready',i.indisready,'immediate',i.indimmediate,'keys',i.indnkeyatts,'noPredicate',i.indpred IS NULL,'noExpression',i.indexprs IS NULL,'columns',(SELECT pg_catalog.jsonb_agg(a.attname ORDER BY k.ordinality) FROM pg_catalog.unnest(i.indkey) WITH ORDINALITY k(num,ordinality) JOIN pg_catalog.pg_attribute a ON a.attrelid=c.oid AND a.attnum=k.num WHERE k.ordinality<=i.indnkeyatts))) FROM pg_catalog.pg_index i WHERE i.indrelid=c.oid AND i.indisunique),'[]'::jsonb),\n 'triggers',COALESCE((SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('name',t.tgname,'type',t.tgtype,'enabled',t.tgenabled,'argsHex',pg_catalog.encode(t.tgargs,'hex'),'noCondition',t.tgqual IS NULL,'noColumns',t.tgattr=''::int2vector,'functionSchema',pn.nspname,'function',p.proname,'body',p.prosrc,'securityDefiner',p.prosecdef,'returnType',p.prorettype::bigint,'volatile',p.provolatile,'parallel',p.proparallel,'argCount',p.pronargs,'owner',pg_catalog.pg_get_userbyid(p.proowner),'settings',p.proconfig) ORDER BY t.tgname) FROM pg_catalog.pg_trigger t JOIN pg_catalog.pg_proc p ON p.oid=t.tgfoid JOIN pg_catalog.pg_namespace pn ON pn.oid=p.pronamespace WHERE t.tgrelid=c.oid AND NOT t.tgisinternal),'[]'::jsonb))::text\n FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace WHERE n.nspname=%s AND c.relname=%s"
}
///|
fn source_v4_locks_sql() -> String {
"SELECT pg_catalog.jsonb_build_object('pid',pg_catalog.pg_backend_pid(),'locks',COALESCE((SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('relation',relation::bigint,'mode',mode,'granted',granted) ORDER BY relation) FROM pg_catalog.pg_locks WHERE pid=pg_catalog.pg_backend_pid() AND relation=ANY(%s::oid[])),'[]'::jsonb))::text"
}
///|
fn source_v4_permissions_sql() -> String {
"SELECT pg_catalog.jsonb_build_object('role',%s::text,'table',%s::text,\n 'trigger',pg_catalog.has_table_privilege(%s,%s,'TRIGGER'),'truncate',pg_catalog.has_table_privilege(%s,%s,'TRUNCATE'),\n 'ownerMembership',pg_catalog.pg_has_role(%s,%s,'MEMBER'))::text"
}
///|
fn source_v4_source_catalog_sql() -> String {
"SELECT pg_catalog.jsonb_build_object(\n 'namespace',n.nspname,'owner',pg_catalog.pg_get_userbyid(n.nspowner),\n 'objects',(SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('name',c.relname,'kind',c.relkind,'owner',pg_catalog.pg_get_userbyid(c.relowner)) ORDER BY c.relname) FROM pg_catalog.pg_class c WHERE c.relnamespace=n.oid),\n 'nonOwnerGrants',COALESCE((SELECT pg_catalog.jsonb_agg(pg_catalog.jsonb_build_object('object',z.name,'grantee',a.grantee::bigint,'privilege',a.privilege_type)) FROM (SELECT n.nspname name,n.nspowner owner,n.nspacl acl,'n'::\"char\" object_type UNION ALL SELECT c.relname,c.relowner,c.relacl,CASE WHEN c.relkind='S' THEN 'S'::\"char\" ELSE 'r'::\"char\" END FROM pg_catalog.pg_class c WHERE c.relnamespace=n.oid UNION ALL SELECT p.proname,p.proowner,p.proacl,'f'::\"char\" FROM pg_catalog.pg_proc p WHERE p.pronamespace=n.oid) z CROSS JOIN LATERAL pg_catalog.aclexplode(COALESCE(z.acl,pg_catalog.acldefault(z.object_type,z.owner))) a WHERE a.grantee<>z.owner),'[]'::jsonb),\n 'ownerMembers',COALESCE((SELECT pg_catalog.jsonb_agg(r.rolname) FROM pg_catalog.pg_roles r WHERE r.oid<>n.nspowner AND NOT r.rolsuper AND pg_catalog.pg_has_role(r.oid,n.nspowner,'MEMBER')),'[]'::jsonb),\n 'sequence',(SELECT pg_catalog.jsonb_build_object('type',seqtypid::bigint,'start',seqstart,'increment',seqincrement,'minimum',seqmin,'maximum',seqmax,'cache',seqcache,'cycle',seqcycle) FROM pg_catalog.pg_sequence s JOIN pg_catalog.pg_class c ON c.oid=s.seqrelid WHERE c.relnamespace=n.oid AND c.relname='versions'),\n 'functionCount',(SELECT count(*) FROM pg_catalog.pg_proc WHERE pronamespace=n.oid))::text FROM pg_catalog.pg_namespace n WHERE n.nspname=%s"
}