parser handling of large object OIDs
От | Robert Haas |
---|---|
Тема | parser handling of large object OIDs |
Дата | |
Msg-id | AANLkTimE0db-r19OOWBZZ7TDr9Teg3R2tz4gJdVOFLH2@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: parser handling of large object OIDs
|
Список | pgsql-hackers |
gram.y treats large object identifiers inconsistently. The privileges stuff treats them as IConst: | LARGE_P OBJECT_P Iconst_list { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); n->targtype = ACL_TARGET_OBJECT; n->objtype = ACL_OBJECT_LARGEOBJECT; n->objs = $3; $$ = n; } | ALTER LARGE_P OBJECT_P Iconst OWNER TO RoleId { AlterOwnerStmt *n = makeNode(AlterOwnerStmt); n->objectType = OBJECT_LARGEOBJECT; n->object = list_make1(makeInteger($4)); n->newowner = $7; $$ = (Node *)n; } But the comment code treats them as NumericOnly. | COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text { CommentStmt *n = makeNode(CommentStmt); n->objtype = OBJECT_LARGEOBJECT; n->objname = list_make1($5); n->objargs = NIL; n->comment = $7; $$ = (Node *) n; } I believe that the comment code is probably right, because I think IConst can only handle values < 2^31, whereas OIDs can be as large as 2^32-1. Thoughts? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise Postgres Company
В списке pgsql-hackers по дате отправления: