printfPQExpBuffer(&sql,"SELECT lanname as \"%s\", (CASE WHEN lanpltrusted THEN '%s' ELSE '%s' END) as \"%s\" FROM pg_language WHERE lanispl IS TRUE;",_("Name"),_("yes"),_("no"),_("Trusted?"));
result=executeQuery(conn,sql.data,progname,echo);
memset(&popt,0,sizeof(popt));
popt.topt.format=PRINT_ALIGNED;
popt.topt.border=1;
popt.topt.encoding=PQclientEncoding(conn);
popt.title=_("Procedural Languages");
printQuery(result,&popt,stdout);
PQfinish(conn);
exit(0);
}
if(langname==NULL)
{
fprintf(stderr,_("%s: missing required argument language name\n"),progname);
fprintf(stderr,_("Try '%s --help' for more information.\n"),progname);
exit(1);
}
if(!pglib)
pglib="$libdir";
for(p=langname;*p;p++)
if(*p>='A'&&*p<='Z')
*p+=('a'-'A');
if(strcmp(langname,"plpgsql")==0)
{
trusted=true;
handler="plpgsql_call_handler";
object="plpgsql";
}
elseif(strcmp(langname,"pltcl")==0)
{
trusted=true;
handler="pltcl_call_handler";
object="pltcl";
}
elseif(strcmp(langname,"pltclu")==0)
{
trusted=false;
handler="pltclu_call_handler";
object="pltcl";
}
elseif(strcmp(langname,"plperl")==0)
{
trusted=true;
handler="plperl_call_handler";
object="plperl";
}
elseif(strcmp(langname,"plperlu")==0)
{
trusted=false;
handler="plperl_call_handler";
object="plperl";
}
elseif(strcmp(langname,"plpython")==0)
{
trusted=true;
handler="plpython_call_handler";
object="plpython";
}
else
{
fprintf(stderr,_("%s: unsupported language \"%s\"\n"),progname,langname);
fprintf(stderr,_("Supported languages are plpgsql, pltcl, pltclu, plperl, plperlu, and plpython.\n"));
printfPQExpBuffer(&sql,"SELECT oid FROM pg_language WHERE lanname = '%s';",langname);
result=executeQuery(conn,sql.data,progname,echo);
if(PQntuples(result)>0)
{
PQfinish(conn);
fprintf(stderr,
_("%s: language \"%s\" is already installed in database \"%s\"\n"),
progname,langname,dbname);
/* separate exit status for "already installed" */
exit(2);
}
PQclear(result);
/*
*Checkwhetherthecallhandlerexists
*/
printfPQExpBuffer(&sql,"SELECT oid FROM pg_proc WHERE proname = '%s' AND prorettype = (SELECT oid FROM pg_type WHERE typname = 'language_handler') AND pronargs = 0;",handler);