Euler Taveira de Oliveira escreveu:
[Forgot the first patch...]
> Alvaro Herrera escreveu:
>> New patch attached, with pg_dump support (thanks to Tom for the SQL
>> heads-up).
>>
> Great! We're close. Just two minor gripes:
>
> + char *validnsps[] = { "toast" };
>
> Surely, you forgot to add a NULL at the end. Patch is attached.
>
> IIRC, my last patch includes a partial validation code for RESET cases. For
> example, the last SQL will not be atomic (invalid reloption silently ignored).
> So, why not apply the namespace validation code to RESET case too? Patch is
> attached too. It does not handle the reloptions validation because the relOpts
> initialization code is at parseRelOptions(); i leave it for a future refactor.
>
> euler=# create table foo (a text) with (fillfactor=10);
> CREATE TABLE
> euler=# \d+ foo
> Tabela "public.foo"
> Coluna | Tipo | Modificadores | Storage | Descrição
> --------+------+---------------+----------+-----------
> a | text | | extended |
> Têm OIDs: não
> Options: fillfactor=10
>
> euler=# alter table foo reset (fillfactor,foo.fillfactor);
> ALTER TABLE
> euler=# \d+ foo
> Tabela "public.foo"
> Coluna | Tipo | Modificadores | Storage | Descrição
> --------+------+---------------+----------+-----------
> a | text | | extended |
> Têm OIDs: não
>
>
>
>
> ------------------------------------------------------------------------
>
>
--
Euler Taveira de Oliveira
http://www.timbira.com/
diff -cr pgsql.alvaro/src/backend/commands/tablecmds.c
pgsql.euler/src/backend/commands/tablecmds.c
*** pgsql.alvaro/src/backend/commands/tablecmds.c 2009-01-31
02:01:22.000000000 -0200
--- pgsql.euler/src/backend/commands/tablecmds.c 2009-01-31
01:47:32.000000000 -0200
***************
*** 351,357 ****
Datum reloptions;
ListCell *listptr;
AttrNumber attnum;
! char *validnsps[] = { "toast" };
/*
* Truncate relname to appropriate length (probably a waste of time, as
--- 351,357 ----
Datum reloptions;
ListCell *listptr;
AttrNumber attnum;
! static char *validnsps[] = { "toast", NULL };
/*
* Truncate relname to appropriate length (probably a waste of time, as
***************
*** 6459,6465 ****
Datum repl_val[Natts_pg_class];
bool repl_null[Natts_pg_class];
bool repl_repl[Natts_pg_class];
! char *validnsps[] = { "toast" };
if (defList == NIL)
return; /* nothing to do */
--- 6459,6465 ----
Datum repl_val[Natts_pg_class];
bool repl_null[Natts_pg_class];
bool repl_repl[Natts_pg_class];
! static char *validnsps[] = { "toast", NULL };
if (defList == NIL)
return; /* nothing to do */
diff -cr pgsql.alvaro/src/backend/executor/execMain.c
pgsql.euler/src/backend/executor/execMain.c
*** pgsql.alvaro/src/backend/executor/execMain.c 2009-01-31
02:01:22.000000000 -0200
--- pgsql.euler/src/backend/executor/execMain.c 2009-01-31 01:48:19.000000000
-0200
***************
*** 2832,2838 ****
Oid intoRelationId;
TupleDesc tupdesc;
DR_intorel *myState;
! char *validnsps[] = { "toast" };
Assert(into);
--- 2832,2838 ----
Oid intoRelationId;
TupleDesc tupdesc;
DR_intorel *myState;
! static char *validnsps[] = { "toast", NULL };
Assert(into);
Somente em pgsql.euler/src/backend/parser: gram.c
Somente em pgsql.euler/src/backend/parser: gram.h
Somente em pgsql.euler/src/backend/parser: scan.c
diff -cr pgsql.alvaro/src/backend/tcop/utility.c
pgsql.euler/src/backend/tcop/utility.c
*** pgsql.alvaro/src/backend/tcop/utility.c 2009-01-31 02:01:22.000000000
-0200
--- pgsql.euler/src/backend/tcop/utility.c 2009-01-31 01:47:51.000000000
-0200
***************
*** 424,430 ****
if (IsA(stmt, CreateStmt))
{
Datum toast_options;
! char *validnsps[] = { "toast"
};
/* Create the table itself */
relOid =
DefineRelation((CreateStmt *) stmt,
--- 424,430 ----
if (IsA(stmt, CreateStmt))
{
Datum toast_options;
! static char *validnsps[] = {
"toast", NULL };
/* Create the table itself */
relOid =
DefineRelation((CreateStmt *) stmt,
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers