Thread: PATCH: Fail to restore table/function, if it has special characters.
Hi Dave,
The restore option of a table/function will fail, if the function name contains special characters (i.e. test"xyz)
Please find the patch to resolve the issue for both the trunk and 1_10_0_PATCHES branch.
--
Ashesh Vashi
EnterpriseDB INDIA: Enterprise Postgres Company
Attachment
On Mon, Mar 15, 2010 at 2:10 PM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote: > > Hi Dave, > The restore option of a table/function will fail, if the function name > contains special characters (i.e. test"xyz) > Please find the patch to resolve the issue for both the trunk and > 1_10_0_PATCHES branch. Hi, Why the refactoring? That's certainly not desired on the 1.10 branch, and should be justified (and applied consistently in other related dialogues) if we want to include it for 1.12. /D -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
Please find the updated patches.
On Mon, Mar 15, 2010 at 8:17 PM, Dave Page <dave.page@enterprisedb.com> wrote:
On Mon, Mar 15, 2010 at 2:10 PM, Ashesh VashiHi,
<ashesh.vashi@enterprisedb.com> wrote:
>
> Hi Dave,
> The restore option of a table/function will fail, if the function name
> contains special characters (i.e. test"xyz)
> Please find the patch to resolve the issue for both the trunk and
> 1_10_0_PATCHES branch.
Why the refactoring? That's certainly not desired on the 1.10 branch,
and should be justified (and applied consistently in other related
dialogues) if we want to include it for 1.12.
/D
--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
Attachment
Thanks, applied. On Tue, Mar 16, 2010 at 9:38 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote: > Please find the updated patches. > > > On Mon, Mar 15, 2010 at 8:17 PM, Dave Page <dave.page@enterprisedb.com> > wrote: >> >> On Mon, Mar 15, 2010 at 2:10 PM, Ashesh Vashi >> <ashesh.vashi@enterprisedb.com> wrote: >> > >> > Hi Dave, >> > The restore option of a table/function will fail, if the function name >> > contains special characters (i.e. test"xyz) >> > Please find the patch to resolve the issue for both the trunk and >> > 1_10_0_PATCHES branch. >> >> Hi, >> >> Why the refactoring? That's certainly not desired on the 1.10 branch, >> and should be justified (and applied consistently in other related >> dialogues) if we want to include it for 1.12. >> >> /D >> >> -- >> Dave Page >> EnterpriseDB UK: http://www.enterprisedb.com >> PG East Conference: >> http://www.enterprisedb.com/community/nav-pg-east-2010.do > > -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
Hi,
I had to modify the commandLineCleanOption function to resolve the issue and to make it platform-independent.
Please find the attached patch for the same.
I have made changes in the following files as described:
* include/utils/misc.h
- Changed the definition of the "commandLineCleanOption" function
* utils/misc.cpp
- Changed the "commandLineCleanOption" function to make it work on any platform.
/**
* FUNCTION: commandLineCleanOption
* INPUTS:
* option - input string needs to be reformatted
* schemaObject - Is this an object related to schema?
* PURPOSE:
* - Fixup a (double-quoted) string for use on the command line
*
* 1. Schema objects needs three (slash & double-quote) combination
* instead of a double-quote to be used as a command-line option
* 2. Options other than the schema objects needs (slash & double-quote)
* combination instead of a double-quote to be used as a command-line
* option.
*
* i.e. CASE: Dump a table named em"p and database name tes"t having username
* xy\z. The command-line arguments for these values will be as below:
*
* pg_dump --username "xy\\z" --table public."em\"\"\"p" "tes\"t"
*/
The above comments says everything about its implementation.
* frm/frmBackup.cpp
* frm/frmBackupGlobals.cpp
* frm/frmBackupServer.cpp
* frm/frmRestore.cpp
Dave,
In order the solve this issue on 1_10_PATCHES branch, we may need to do the similar refactoring.
Is it ok?
If yes, I can share the patch for the same.
Attachment
On Thu, Mar 18, 2010 at 2:19 PM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote: > Hi, > The bug was also there for the windows. :-( > I had to modify the commandLineCleanOption function to resolve the issue and > to make it platform-independent. > > Please find the attached patch for the same. > I have made changes in the following files as described: > * include/utils/misc.h > - Changed the definition of the "commandLineCleanOption" function > * utils/misc.cpp > - Changed the "commandLineCleanOption" function to make it work on any > platform. > /** > * FUNCTION: commandLineCleanOption > * INPUTS: > * option - input string needs to be reformatted > * schemaObject - Is this an object related to schema? > * PURPOSE: > * - Fixup a (double-quoted) string for use on the command line > * > * 1. Schema objects needs three (slash & double-quote) combination > * instead of a double-quote to be used as a command-line option > * 2. Options other than the schema objects needs (slash & double-quote) > * combination instead of a double-quote to be used as a command-line > * option. > * > * i.e. CASE: Dump a table named em"p and database name tes"t having > username > * xy\z. The command-line arguments for these values will be as > below: > * > * pg_dump --username "xy\\z" --table public."em\"\"\"p" "tes\"t" > */ > The above comments says everything about its implementation. > * frm/frmBackup.cpp > * frm/frmBackupGlobals.cpp > * frm/frmBackupServer.cpp > * frm/frmRestore.cpp > Dave, > In order the solve this issue on 1_10_PATCHES branch, we may need to do the > similar refactoring. > Is it ok? > If yes, I can share the patch for the same. Please do. -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
--
Ashesh Vashi
EnterpriseDB INDIA: Enterprise Postgres Company
On Thu, Mar 18, 2010 at 8:02 PM, Dave Page <dave.page@enterprisedb.com> wrote:
On Thu, Mar 18, 2010 at 2:19 PM, Ashesh Vashi<ashesh.vashi@enterprisedb.com> wrote:Please do.> Hi,
> The bug was also there for the windows. :-(
> I had to modify the commandLineCleanOption function to resolve the issue and
> to make it platform-independent.
>
> Please find the attached patch for the same.
> I have made changes in the following files as described:
> * include/utils/misc.h
> - Changed the definition of the "commandLineCleanOption" function
> * utils/misc.cpp
> - Changed the "commandLineCleanOption" function to make it work on any
> platform.
> /**
> * FUNCTION: commandLineCleanOption
> * INPUTS:
> * option - input string needs to be reformatted
> * schemaObject - Is this an object related to schema?
> * PURPOSE:
> * - Fixup a (double-quoted) string for use on the command line
> *
> * 1. Schema objects needs three (slash & double-quote) combination
> * instead of a double-quote to be used as a command-line option
> * 2. Options other than the schema objects needs (slash & double-quote)
> * combination instead of a double-quote to be used as a command-line
> * option.
> *
> * i.e. CASE: Dump a table named em"p and database name tes"t having
> username
> * xy\z. The command-line arguments for these values will be as
> below:
> *
> * pg_dump --username "xy\\z" --table public."em\"\"\"p" "tes\"t"
> */
> The above comments says everything about its implementation.
> * frm/frmBackup.cpp
> * frm/frmBackupGlobals.cpp
> * frm/frmBackupServer.cpp
> * frm/frmRestore.cpp
> Dave,
> In order the solve this issue on 1_10_PATCHES branch, we may need to do the
> similar refactoring.
> Is it ok?
> If yes, I can share the patch for the same.
--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
Attachment
On Fri, Mar 19, 2010 at 6:10 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote: > > Please find the attached patch for REL_1_10_PATCHES branches and updated > patch for the trunk (with few tab characters to 4 spaces.) I'd be surprised if this works - past experience of fixing this stuff in similar areas tells me that using the same quoting rules on Windows and *nix are quite different. What platforms did you test on? -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
I tested on Windows XP SP2, Ubuntu 9.10 32 bit & Mac OSX 10.5 Intel.
On Fri, Mar 19, 2010 at 3:21 PM, Dave Page <dpage@pgadmin.org> wrote:
On Fri, Mar 19, 2010 at 6:10 AM, Ashesh Vashi> Please find the attached patch for REL_1_10_PATCHES branches and updatedI'd be surprised if this works - past experience of fixing this stuff
> patch for the trunk (with few tab characters to 4 spaces.)
in similar areas tells me that using the same quoting rules on Windows
and *nix are quite different.
What platforms did you test on?
--Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do
On Fri, Mar 19, 2010 at 9:56 AM, Ashesh Vashi <ashesh.vashi@enterprisedb.com> wrote: > I tested on Windows XP SP2, Ubuntu 9.10 32 bit & Mac OSX 10.5 Intel. Hmm, well it works for me too, so I'll eat my words and congratulate you on finding a nice clean solution :-) Thanks - applied. -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com PG East Conference: http://www.enterprisedb.com/community/nav-pg-east-2010.do