On Wed, Nov 20, 2013 at 2:05 AM, Christopher Browne <cbbro...@gmail.com> wrote: > On Mon, Nov 18, 2013 at 1:01 AM, Amit Kapila <amit.kapil...@gmail.com> wrote: >> On Sat, Nov 16, 2013 at 4:57 AM, Christopher Browne <cbbro...@gmail.com> >> wrote: > > I picked the location of the 'g:' in the opt_long() call basically > arbitrarily;
I think this is okay, the main point was to maintain consistency with surrounding code. > if there is any reason for it to go in a different spot, I'd be happy to > shift it. The only other option could be to add it at end which is generally better unless we get any benefit by adding it in middle. On further tests, I found inconsistency in behavior when some special characters are used in role names. 1. Test for role name containing quotes a. In psql, create a role containing quotes in role name. create role amitk in role "test_ro'le_3"; b. Now if we try to make a new role member of this role using createuser utility, it gives error try-1 createuser.exe -g test_ro'le_3 -p 5446 amitk_2 createuser: creation of new role failed: ERROR: unterminated quoted string at or near "'le_3;" LINE 1: ... NOCREATEDB NOCREATEROLE INHERIT LOGIN IN ROLE test_ro'le_3; try-2 createuser.exe -g "test_ro'le_3" -p 5446 amitk createuser: creation of new role failed: ERROR: unterminated quoted string at or near "'le_3;" LINE 1: ... NOCREATEDB NOCREATEROLE INHERIT LOGIN IN ROLE test_ro'le_3; c. If I try quoted string in new role to be created, it works fine. createuser.exe -p 5446 am'itk_2 As quoted strings work well for role names, I think it should work with -g option as well. 2. Test for role name containing special character ';' (semicolon) a. create role "test;_1"; b. Now if we try to make a new role member of this role using createuser utility, it gives error try-1 createuser.exe -g test;_1 -p 5446 amitk_4 createuser: creation of new role failed: ERROR: syntax error at or near "_1" LINE 1: ...RUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN IN ROLE test;_1; try-2 ^ createuser.exe -g "test;_1" -p 5446 amitk_4 createuser: creation of new role failed: ERROR: syntax error at or near "_1" LINE 1: ...RUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN IN ROLE test;_1; ^ try-3 createuser.exe -g 'test;_1' -p 5446 amitk_4 createuser: creation of new role failed: ERROR: syntax error at or near "'test;_1'" LINE 1: ...SER NOCREATEDB NOCREATEROLE INHERIT LOGIN IN ROLE 'test;_1'; c. If I try semicolon in new role to be created, it works fine. createuser.exe -p 5446 amit;k_3 As semicolon work well for role names, I think it should work with -g option as well. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers