From: Robert Haas on 9 Jun 2010 17:02 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 -- Sent via pgsql-hackers mailing list (pgsql-hackers(a)postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
|
Pages: 1 Prev: Out of date docs: DISABLE/ENABLE TRIGGER Next: parser handling of large object OIDs |