Обсуждение: little patch for "Detect serial columns from pg_depend" and bugfix

Поиск
Список
Период
Сортировка

little patch for "Detect serial columns from pg_depend" and bugfix

От
Quan Zongliang
Дата:
Hi,

Please find the attachments.

pgColumn.patch:

Detect serial columns from pg_depend, not column default (observe deviating
   serial name)

pgSequence.patch:

bugfix, in SQL pane of the sequence, the script is

CREATE SEQUENCE xxx
   ...;
ALTER TABLE ...

Regards,

Quan Zongliang


Вложения

Re: little patch for "Detect serial columns from pg_depend" and bugfix

От
Dave Page
Дата:
Hi

On Tue, Sep 4, 2012 at 5:03 AM, Quan Zongliang <quanzongliang@gmail.com> wrote:
> Hi,
>
> Please find the attachments.
>
> pgColumn.patch:
>
> Detect serial columns from pg_depend, not column default (observe deviating
>   serial name)

This patch does not apply:

raptor:pgAdmin3 dpage$ git apply ~/Downloads/pgColumn.patch
/Users/dpage/Downloads/pgColumn.patch:13: trailing whitespace.
        pgSet *set = ExecuteSet(
/Users/dpage/Downloads/pgColumn.patch:14: trailing whitespace.
                            wxT("SELECT classid\n")
/Users/dpage/Downloads/pgColumn.patch:15: trailing whitespace.
                            wxT("  FROM pg_depend\n")
/Users/dpage/Downloads/pgColumn.patch:16: trailing whitespace.
                            wxT(" WHERE refobjid=") + table->GetOidStr() +
/Users/dpage/Downloads/pgColumn.patch:17: trailing whitespace.
                            wxT(" AND refobjsubid = ") + NumToStr(GetColNumber()) +
error: patch failed: pgadmin/schema/pgColumn.cpp:338
error: pgadmin/schema/pgColumn.cpp: patch does not apply

> pgSequence.patch:
>
> bugfix, in SQL pane of the sequence, the script is
>
> CREATE SEQUENCE xxx
>   ...;
> ALTER TABLE ...

That syntax is intentional - it's required with 8.3 and earlier, which
don't support ALTER SEQUENCE ... OWNER. I suppose we could make it
version dependent, but we don't normally both with multiple versions
of the same command unless required.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Re: little patch for "Detect serial columns from pg_depend" and bugfix

От
Quan Zongliang
Дата:
On 2012/9/4 19:02, Dave Page wrote:
> Hi
>
> On Tue, Sep 4, 2012 at 5:03 AM, Quan Zongliang <quanzongliang@gmail.com> wrote:
>> Hi,
>>
>> Please find the attachments.
>>
>> pgColumn.patch:
>>
>> Detect serial columns from pg_depend, not column default (observe deviating
>>    serial name)
> This patch does not apply:
>
> raptor:pgAdmin3 dpage$ git apply ~/Downloads/pgColumn.patch
> /Users/dpage/Downloads/pgColumn.patch:13: trailing whitespace.
>         pgSet *set = ExecuteSet(
> /Users/dpage/Downloads/pgColumn.patch:14: trailing whitespace.
>                             wxT("SELECT classid\n")
> /Users/dpage/Downloads/pgColumn.patch:15: trailing whitespace.
>                             wxT("  FROM pg_depend\n")
> /Users/dpage/Downloads/pgColumn.patch:16: trailing whitespace.
>                             wxT(" WHERE refobjid=") + table->GetOidStr() +
> /Users/dpage/Downloads/pgColumn.patch:17: trailing whitespace.
>                             wxT(" AND refobjsubid = ") + NumToStr(GetColNumber()) +
> error: patch failed: pgadmin/schema/pgColumn.cpp:338
> error: pgadmin/schema/pgColumn.cpp: patch does not apply
new patch attched.
I tested it under Cygwin, seems OK.

>> pgSequence.patch:
>>
>> bugfix, in SQL pane of the sequence, the script is
>>
>> CREATE SEQUENCE xxx
>>    ...;
>> ALTER TABLE ...
> That syntax is intentional - it's required with 8.3 and earlier, which
> don't support ALTER SEQUENCE ... OWNER. I suppose we could make it
> version dependent, but we don't normally both with multiple versions
> of the same command unless required.
>


Вложения

Re: little patch for "Detect serial columns from pg_depend" and bugfix

От
Dave Page
Дата:
On Wed, Sep 5, 2012 at 3:39 AM, Quan Zongliang <quanzongliang@gmail.com> wrote:
>
> new patch attched.
> I tested it under Cygwin, seems OK.

I got an error on my first test I'm afraid :-(

2012-09-05 14:39:41 QUERY  : Set query (localhost:5432): SELECT classid
  FROM pg_depend
 WHERE refobjid=207478::oid AND refobjsubid = 1 AND objid IN
('pem.agent_id_seq'::regclass,'"pem.agent_id_seq"'::regclass) AND
deptype='a'
2012-09-05 14:39:41 ERROR  : ERROR:  relation "pem.agent_id_seq" does not exist
LINE 3: ...id = 1 AND objid IN ('pem.agent_id_seq'::regclass,'"pem.agen...

How does the attached version of the patch look? I've tweaked the
formatting and removed the excess quotes that seemed to be causing the
issue.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Вложения

Re: little patch for "Detect serial columns from pg_depend" and bugfix

От
权宗亮
Дата:


2012/9/5 Dave Page <dpage@pgadmin.org>
On Wed, Sep 5, 2012 at 3:39 AM, Quan Zongliang <quanzongliang@gmail.com> wrote:
>
> new patch attched.
> I tested it under Cygwin, seems OK.

I got an error on my first test I'm afraid :-(

2012-09-05 14:39:41 QUERY  : Set query (localhost:5432): SELECT classid
  FROM pg_depend
 WHERE refobjid=207478::oid AND refobjsubid = 1 AND objid IN
('pem.agent_id_seq'::regclass,'"pem.agent_id_seq"'::regclass) AND
deptype='a'
2012-09-05 14:39:41 ERROR  : ERROR:  relation "pem.agent_id_seq" does not exist
LINE 3: ...id = 1 AND objid IN ('pem.agent_id_seq'::regclass,'"pem.agen...

How does the attached version of the patch look? I've tweaked the
formatting and removed the excess quotes that seemed to be causing the
issue.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

There is a bug in original source.
I will try to fix it tomorrow.

When a column is given a special name.
The serial type can not be reversed correctly.

defination: "c 2" bigserial
display in pgAdmin: "c 2" bigint NOT NULL DEFAULT nextval('pem."t1_c 2_seq"'::regclass)

Because pgAdmin check columns which default value has 'pem.t1_c 2_seq'::regclass
and '"pem.t1_c 2_seq"'::regclass. But second one should be 'pem."t1_c 2_seq"'::regclass

Quan Zongliang

Re: little patch for "Detect serial columns from pg_depend" and bugfix

От
Quan Zongliang
Дата:
On 2012/9/5 22:48, 权宗亮 wrote:
>
>
> 2012/9/5 Dave Page <dpage@pgadmin.org <mailto:dpage@pgadmin.org>>
>
>     On Wed, Sep 5, 2012 at 3:39 AM, Quan Zongliang
>     <quanzongliang@gmail.com <mailto:quanzongliang@gmail.com>> wrote:
>     >
>     > new patch attched.
>     > I tested it under Cygwin, seems OK.
>
>     I got an error on my first test I'm afraid :-(
>
>     2012-09-05 14:39:41 QUERY : Set query (localhost:5432): SELECT classid
>     FROM pg_depend
>     WHERE refobjid=207478::oid AND refobjsubid = 1 AND objid IN
>     ('pem.agent_id_seq'::regclass,'"pem.agent_id_seq"'::regclass) AND
>     deptype='a'
>     2012-09-05 14:39:41 ERROR : ERROR: relation "pem.agent_id_seq"
>     does not exist
>     LINE 3: ...id = 1 AND objid IN
>     ('pem.agent_id_seq'::regclass,'"pem.agen...
>
>     How does the attached version of the patch look? I've tweaked the
>     formatting and removed the excess quotes that seemed to be causing the
>     issue.
>
>     --
>     Dave Page
>     Blog: http://pgsnake.blogspot.com
>     Twitter: @pgsnake
>
>     EnterpriseDB UK: http://www.enterprisedb.com
>     The Enterprise PostgreSQL Company
>
>
> There is a bug in original source.
> I will try to fix it tomorrow.
>
> When a column is given a special name.
> The serial type can not be reversed correctly.
>
> defination: "c 2" bigserial
> display in pgAdmin: "c 2" bigint NOT NULL DEFAULT nextval('pem."t1_c
> 2_seq"'::regclass)
>
> Because pgAdmin check columns which default value has 'pem.t1_c
> 2_seq'::regclass
> and '"pem.t1_c 2_seq"'::regclass. But second one should be 'pem."t1_c
> 2_seq"'::regclass
>
> Quan Zongliang

Try this.
Only fixed for 8.1 and above.

Вложения

Re: little patch for "Detect serial columns from pg_depend" and bugfix

От
Dave Page
Дата:
On Thu, Sep 6, 2012 at 1:56 AM, Quan Zongliang <quanzongliang@gmail.com> wrote:
> On 2012/9/5 22:48, 权宗亮 wrote:
>>
>>
>>
>> 2012/9/5 Dave Page <dpage@pgadmin.org <mailto:dpage@pgadmin.org>>
>>
>>
>>     On Wed, Sep 5, 2012 at 3:39 AM, Quan Zongliang
>>     <quanzongliang@gmail.com <mailto:quanzongliang@gmail.com>> wrote:
>>     >
>>     > new patch attched.
>>     > I tested it under Cygwin, seems OK.
>>
>>     I got an error on my first test I'm afraid :-(
>>
>>     2012-09-05 14:39:41 QUERY : Set query (localhost:5432): SELECT classid
>>     FROM pg_depend
>>     WHERE refobjid=207478::oid AND refobjsubid = 1 AND objid IN
>>     ('pem.agent_id_seq'::regclass,'"pem.agent_id_seq"'::regclass) AND
>>     deptype='a'
>>     2012-09-05 14:39:41 ERROR : ERROR: relation "pem.agent_id_seq"
>>     does not exist
>>     LINE 3: ...id = 1 AND objid IN
>>     ('pem.agent_id_seq'::regclass,'"pem.agen...
>>
>>     How does the attached version of the patch look? I've tweaked the
>>     formatting and removed the excess quotes that seemed to be causing the
>>     issue.
>>
>>     --
>>     Dave Page
>>     Blog: http://pgsnake.blogspot.com
>>     Twitter: @pgsnake
>>
>>     EnterpriseDB UK: http://www.enterprisedb.com
>>     The Enterprise PostgreSQL Company
>>
>>
>> There is a bug in original source.
>> I will try to fix it tomorrow.
>>
>> When a column is given a special name.
>> The serial type can not be reversed correctly.
>>
>> defination: "c 2" bigserial
>> display in pgAdmin: "c 2" bigint NOT NULL DEFAULT nextval('pem."t1_c
>> 2_seq"'::regclass)
>>
>> Because pgAdmin check columns which default value has 'pem.t1_c
>> 2_seq'::regclass
>> and '"pem.t1_c 2_seq"'::regclass. But second one should be 'pem."t1_c
>> 2_seq"'::regclass
>>
>> Quan Zongliang
>
>
> Try this.
> Only fixed for 8.1 and above.

Thanks, patch applied.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company