- include/pg_class.h: in this file, i modfify:
FormData_pg_class struct: i add the new attribute, example a boolean...
.....
bool myNewAttribute; /*my new attribute */
aclitem relacl[1]; /* we declare this just for the catalog */
}
.....
bool myNewAttribute; /*my new attribute */
aclitem relacl[1]; /* we declare this just for the catalog */
}
then, i modify the macro "CLASS_TUPLE_SIZE":
#define CLASS_TUPLE_SIZE \
(offsetof(FormData_pg_class,relhassubclass) + sizeof(bool) + sizeof(bool)) /* the last bool is my bool */
(offsetof(FormData_pg_class,relhassubclass) + sizeof(bool) + sizeof(bool)) /* the last bool is my bool */
and then, i modify the DATA(insert ..)) of this file by adding a "t" just before the "_null_" value...
- include/pg_attribute.h: i add to the macros and data the new attribute of the pg_class table:
...
{ 1259, {"myNewAttribute"},16, -1, 1, 25, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
{ 1259, {"relacl"}, 1034, -1, -1, 26, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 } /* this is the macro */
....
DATA(insert ( 1259 relhassubclass 16 -1 1 24 0 -1 -1 t p c t f f t 0));
DATA(insert ( 1259 myNewAttribute 16 -1 1 25 0 -1 -1 t p c t f f t 0));
DATA(insert ( 1259 relacl 1034 -1 -1 26 1 -1 -1 f x i f f f t 0)); /* el data insert */
{ 1259, {"myNewAttribute"},16, -1, 1, 25, 0, -1, -1, true, 'p', 'c', true, false, false, true, 0 }, \
{ 1259, {"relacl"}, 1034, -1, -1, 26, 1, -1, -1, false, 'x', 'i', false, false, false, true, 0 } /* this is the macro */
....
DATA(insert ( 1259 relhassubclass 16 -1 1 24 0 -1 -1 t p c t f f t 0));
DATA(insert ( 1259 myNewAttribute 16 -1 1 25 0 -1 -1 t p c t f f t 0));
DATA(insert ( 1259 relacl 1034 -1 -1 26 1 -1 -1 f x i f f f t 0)); /* el data insert */
- utils/cache/relcache.c: in here, when the tables are initialized... i add the next line of code:
rel->rd_rel->myNewAttribute = true;
then, i compile.... i everything goes well.... but when i execute the comand "initdb -D ..." i always get next message:
initializing pg_authid ... ok
enabling unlimited row size for system tables ... ok
initializing dependencies ... ok
creating system views ... ok
loading pg_description ... ok
creating conversions ... ok
setting privileges on built-in objects ... FATAL: column "relacl" does not exist
child process exited with exit code 1
I don't know what's going on???? Can anyone help me please?
enabling unlimited row size for system tables ... ok
initializing dependencies ... ok
creating system views ... ok
loading pg_description ... ok
creating conversions ... ok
setting privileges on built-in objects ... FATAL: column "relacl" does not exist
child process exited with exit code 1
thanks.