1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-12 05:01:15 +03:00

Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>

Changes:

        * Unique index capability works using the syntax 'create unique
          index'.

        * Duplicate OID's in the system tables are removed.  I put
          little scripts called 'duplicate_oids' and 'find_oid' in
          include/catalog that help to find and remove duplicate OID's.
          I also moved 'unused_oids' from backend/catalog to
          include/catalog, since it has to be in the same directory
          as the include files in order to work.

        * The backend tries converting the name of a function or aggregate
          to all lowercase if the original name given doesn't work (mostly
          for compatibility with ODBC).

        * You can 'SELECT NULL' to your heart's content.

        * I put my _bt_updateitem fix in instead, which uses
          _bt_insertonpg so that even if the new key is so big that
          the page has to be split, everything still works.

        * All literal references to system catalog OID's have been
          replaced with references to define'd constants from the catalog
          header files.

        * I added a couple of node copy functions.  I think this was a
          preliminary attempt to get rules to work.
This commit is contained in:
Marc G. Fournier
1996-11-13 20:56:15 +00:00
parent 0cec8fe26c
commit 07a65b2255
45 changed files with 861 additions and 588 deletions

View File

@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.6 1996/11/10 03:02:36 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.7 1996/11/13 20:49:18 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -165,7 +165,7 @@ inv_create(int flags)
classObjectId[0] = INT4_OPS_OID;
index_create(objname, indname, NULL, NULL, BTREE_AM_OID,
1, &attNums[0], &classObjectId[0],
0, (Datum) NULL, NULL, FALSE);
0, (Datum) NULL, NULL, FALSE, FALSE);
/* make the index visible in this transaction */
CommandCounterIncrement();
@@ -1008,7 +1008,7 @@ inv_indextup(LargeObjectDesc *obj_desc, HeapTuple htup)
n[0] = ' ';
v[0] = Int32GetDatum(obj_desc->highbyte);
res = index_insert(obj_desc->index_r, &v[0], &n[0], &(htup->t_ctid));
res = index_insert(obj_desc->index_r, &v[0], &n[0], &(htup->t_ctid), false);
if (res)
pfree(res);

View File

@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.3 1996/11/08 05:59:03 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.4 1996/11/13 20:49:29 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -105,9 +105,13 @@ PageGetItem(Page page, ItemId itemId)
Item item;
Assert(PageIsValid(page));
Assert((*itemId).lp_flags & LP_USED);
/* Assert(itemId->lp_flags & LP_USED); */
if(!(itemId->lp_flags & LP_USED)) {
elog(NOTICE, "LP_USED assertion failed. dumping core.");
abort();
}
item = (Item)(((char *)page) + (*itemId).lp_off);
item = (Item)(((char *)page) + itemId->lp_off);
return (item);
}