提交 296efd80 编写于 作者: B Bruce Momjian

Fix for ACL length problem on different platforms.

上级 46db8ac7
...@@ -29,7 +29,7 @@ PARSER ...@@ -29,7 +29,7 @@ PARSER
* Select a[1] FROM test fails, it needs test.a[1] * Select a[1] FROM test fails, it needs test.a[1]
* Array index references without table name cause problems * Array index references without table name cause problems
* Update table SET table.value = 3 fails * Update table SET table.value = 3 fails
* Creating index of TIMESTAMP & RELTIME fails, rename to DATETIME(Thomas) * Creating index of TIMESTAMP & RELTIME fails, or rename to DATETIME(Thomas)
* SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo * SELECT foo UNION SELECT foo is incorrectly simplified to SELECT foo
* INSERT ... SELECT ... GROUP BY groups by target columns not source columns * INSERT ... SELECT ... GROUP BY groups by target columns not source columns
* CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT * CREATE TABLE test (a char(5) DEFAULT text '', b int4) fails on INSERT
...@@ -50,18 +50,11 @@ ENHANCEMENTS ...@@ -50,18 +50,11 @@ ENHANCEMENTS
URGENT URGENT
* Add referential integrity * Add referential integrity(Jan?)
* Add OUTER joins, left and right(Thomas) * Add OUTER joins, left and right(Thomas, Bruce)
* Allow long tuples by chaining or auto-storing outside db (chaining,large objs) * Allow long tuples by chaining or auto-storing outside db (chaining,large objs)
* Eliminate limits on query length * Eliminate limits on query length
* Fix memory leak for expressions?, aggregates? * Fix memory leak for expressions?, aggregates?(Tom?)
EXOTIC FEATURES
* Add sql3 recursive unions
* Add the concept of dataspaces
* Add replication of distributed databases
* Allow queries across multiple databases
ADMIN ADMIN
...@@ -85,6 +78,7 @@ TYPES ...@@ -85,6 +78,7 @@ TYPES
o Allow large text type to use large objects(Peter) o Allow large text type to use large objects(Peter)
o Not to stuff everything as files in a single directory, hash dirs o Not to stuff everything as files in a single directory, hash dirs
o Allow large object vacuuming o Allow large object vacuuming
o Tables that start with xinv confused to be large objects
* Allow pg_descriptions when creating types, tables, columns, and functions * Allow pg_descriptions when creating types, tables, columns, and functions
* Add IPv6 capability to INET/CIDR types * Add IPv6 capability to INET/CIDR types
* Make a separate SERIAL type? * Make a separate SERIAL type?
...@@ -129,6 +123,7 @@ COMMANDS ...@@ -129,6 +123,7 @@ COMMANDS
* Rewrite the LIKE handling by rewriting the user string with the * Rewrite the LIKE handling by rewriting the user string with the
supplied ESCAPE supplied ESCAPE
* Move LIKE index optimization handling to the optimizer * Move LIKE index optimization handling to the optimizer
* Allow RULE recomplation
CLIENTS CLIENTS
...@@ -141,6 +136,13 @@ CLIENTS ...@@ -141,6 +136,13 @@ CLIENTS
* Allow psql to print nulls as distinct from ""(?) * Allow psql to print nulls as distinct from ""(?)
* PQrequestCancel() be able to terminate backend waiting for lock * PQrequestCancel() be able to terminate backend waiting for lock
EXOTIC FEATURES
* Add sql3 recursive unions
* Add the concept of dataspaces
* Add replication of distributed databases
* Allow queries across multiple databases
MISC MISC
* Increase identifier length(NAMEDATALEN) if small performance hit * Increase identifier length(NAMEDATALEN) if small performance hit
...@@ -167,8 +169,8 @@ MISC ...@@ -167,8 +169,8 @@ MISC
* Missing optimizer selectivities for date, r-tree, etc. * Missing optimizer selectivities for date, r-tree, etc.
* Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup
* Overhaul bufmgr/lockmgr/transaction manager * Overhaul bufmgr/lockmgr/transaction manager
* Tables that start with xinv confused to be large objects
* Add PL/Perl(Mark Hollomon) * Add PL/Perl(Mark Hollomon)
* Make postgres user have a password by default
PERFORMANCE PERFORMANCE
...@@ -223,7 +225,7 @@ MISC ...@@ -223,7 +225,7 @@ MISC
* improve dynamic memory allocation by introducing tuple-context memory * improve dynamic memory allocation by introducing tuple-context memory
allocation allocation
* fix memory leak in cache code when non-existant table is referenced * fix memory leak in cache code when non-existant table is referenced
* In WHERE x=3 AND x=y, add y=3 * In WHERE tab1.x=3 AND tab1.x=tab2.y, add tab2.y=3
* pass atttypmod through parser in more cases(Bruce) * pass atttypmod through parser in more cases(Bruce)
* remove duplicate type in/out functions for disk and net * remove duplicate type in/out functions for disk and net
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.36 1999/05/25 16:11:49 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.37 1999/07/09 03:28:51 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "utils/syscache.h" #include "utils/syscache.h"
#include "catalog/catalog.h" #include "catalog/catalog.h"
#include "catalog/pg_shadow.h" #include "catalog/pg_shadow.h"
#include "catalog/pg_type.h"
#include "miscadmin.h" #include "miscadmin.h"
static char *getid(char *s, char *n); static char *getid(char *s, char *n);
...@@ -682,6 +683,9 @@ makeAclStmt(char *privileges, List *rel_list, char *grantee, ...@@ -682,6 +683,9 @@ makeAclStmt(char *privileges, List *rel_list, char *grantee,
ChangeACLStmt *n = makeNode(ChangeACLStmt); ChangeACLStmt *n = makeNode(ChangeACLStmt);
char str[MAX_PARSE_BUFFER]; char str[MAX_PARSE_BUFFER];
/* see comment in pg_type.h */
Assert(ACLITEMSIZE == sizeof(AclItem));
n->aclitem = (AclItem *) palloc(sizeof(AclItem)); n->aclitem = (AclItem *) palloc(sizeof(AclItem));
/* the grantee string is "G <group_name>", "U <user_name>", or "ALL" */ /* the grantee string is "G <group_name>", "U <user_name>", or "ALL" */
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * Copyright (c) 1994, Regents of the University of California
* *
* $Id: pg_type.h,v 1.62 1999/05/25 16:13:48 momjian Exp $ * $Id: pg_type.h,v 1.63 1999/07/09 03:28:52 momjian Exp $
* *
* NOTES * NOTES
* the genbki.sh script reads this file and generates .bki * the genbki.sh script reads this file and generates .bki
...@@ -341,7 +341,12 @@ DATA(insert OID = 1024 ( _reltime PGUID -1 -1 f b t \054 0 703 array_in array ...@@ -341,7 +341,12 @@ DATA(insert OID = 1024 ( _reltime PGUID -1 -1 f b t \054 0 703 array_in array
DATA(insert OID = 1025 ( _tinterval PGUID -1 -1 f b t \054 0 704 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1025 ( _tinterval PGUID -1 -1 f b t \054 0 704 array_in array_out array_in array_out i _null_ ));
DATA(insert OID = 1026 ( _filename PGUID -1 -1 f b t \054 0 605 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1026 ( _filename PGUID -1 -1 f b t \054 0 605 array_in array_out array_in array_out i _null_ ));
DATA(insert OID = 1027 ( _polygon PGUID -1 -1 f b t \054 0 604 array_in array_out array_in array_out d _null_ )); DATA(insert OID = 1027 ( _polygon PGUID -1 -1 f b t \054 0 604 array_in array_out array_in array_out d _null_ ));
/* Note: the size of an aclitem needs to match sizeof(AclItem) in acl.h */ /*
* Note: the size of aclitem needs to match sizeof(AclItem) in acl.h.
* Thanks to some padding, this will be 8 on all platforms.
* We also have an Assert to make sure.
*/
#define ACLITEMSIZE 8
DATA(insert OID = 1033 ( aclitem PGUID 8 -1 f b t \054 0 0 aclitemin aclitemout aclitemin aclitemout i _null_ )); DATA(insert OID = 1033 ( aclitem PGUID 8 -1 f b t \054 0 0 aclitemin aclitemout aclitemin aclitemout i _null_ ));
DESCR("access control list"); DESCR("access control list");
DATA(insert OID = 1034 ( _aclitem PGUID -1 -1 f b t \054 0 1033 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1034 ( _aclitem PGUID -1 -1 f b t \054 0 1033 array_in array_out array_in array_out i _null_ ));
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * Copyright (c) 1994, Regents of the University of California
* *
* $Id: acl.h,v 1.19 1999/02/13 23:22:14 momjian Exp $ * $Id: acl.h,v 1.20 1999/07/09 03:28:53 momjian Exp $
* *
* NOTES * NOTES
* For backward-compatability purposes we have to allow there * For backward-compatability purposes we have to allow there
...@@ -74,6 +74,11 @@ typedef struct AclItem ...@@ -74,6 +74,11 @@ typedef struct AclItem
AclId ai_id; AclId ai_id;
AclIdType ai_idtype; AclIdType ai_idtype;
AclMode ai_mode; AclMode ai_mode;
/*
* This is actually type 'aclitem', and we want a fixed size for
* for all platforms, so we pad this with dummies.
*/
char dummy1, dummy2;
} AclItem; } AclItem;
/* Note: if the size of AclItem changes, /* Note: if the size of AclItem changes,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册