Skip to content
Snippets Groups Projects
Commit 296efd80 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Fix for ACL length problem on different platforms.

parent 46db8ac7
No related branches found
No related tags found
No related merge requests found
...@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment