On Wed, Sep 5, 2012 at 4:26 PM, Dave Page <[email protected]> wrote:
> Hi
>
> On Tue, Sep 4, 2012 at 6:14 PM, Sachin Srivastava
> <[email protected]> wrote:
> >
> > Hi,
> >
> > Due to re-quoting of already quoted schema qualified function name in the
> > "ALTER FUNCTION <function name> OWNER to <owner name>" query while
> adding a
> > new function we get an error about function name not found.
> >
> > Attached is a patch that fixes the issue.
>
> Thanks - unfortunately that's still not right, as it duplicates the
> schema name when creating new functions. I've applied the patch below
> which seems to work in both the create and edit cases:
>
Strange.. I tried creating new functions only while testing my patch and it
never duplicates the schema name.. I tested on Mac (10.6.8)..
Though your patch is making more sense.. (just by reading the code).
>
> diff --git a/pgadmin/dlg/dlgFunction.cpp b/pgadmin/dlg/dlgFunction.cpp
> index d102b97..1d2cc1c 100644
> --- a/pgadmin/dlg/dlgFunction.cpp
> +++ b/pgadmin/dlg/dlgFunction.cpp
> @@ -975,16 +975,19 @@ wxString dlgFunction::GetSql()
> }
> }
>
> - name = schema->GetQuotedPrefix() + qtIdent(name)
> - + wxT("(") + GetArgs(false, true) + wxT(")");
>
> if (function)
> {
> + name = schema->GetQuotedPrefix() + qtIdent(name)
> + + wxT("(") + GetArgs(false, true) + wxT(")");
> +
> AppendOwnerChange(sql, wxT("FUNCTION ") + name);
> AppendSchemaChange(sql, wxT("FUNCTION ") + name);
> }
> else
> {
> + name = name + wxT("(") + GetArgs(false, true) + wxT(")");
> +
> if (cbOwner->GetCurrentSelection() > 0)
> AppendOwnerNew(sql, wxT("FUNCTION ") + name);
> }
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
--
Regards,
Sachin Srivastava
EnterpriseDB, India