From 0a8fb5a8f959ad0f7d449b6eaba51f71e1c21338 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 19 May 1999 16:46:12 +0000 Subject: [PATCH] Upgrade to PyGreSQL (2.4) --- src/backend/catalog/heap.c | 23 ++++++++++++++++++----- src/backend/nodes/outfuncs.c | 6 +----- src/backend/nodes/read.c | 4 ++-- src/backend/parser/parse_coerce.c | 3 +-- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 71ae1ebf81..32eb247077 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.80 1999/05/13 07:28:26 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.81 1999/05/19 16:46:10 momjian Exp $ * * * INTERFACE ROUTINES @@ -1514,7 +1514,7 @@ StoreAttrDefault(Relation rel, AttrDefault *attrdef) char nulls[4] = {' ', ' ', ' ', ' '}; extern GlobalMemory CacheCxt; -start:; +start: /* Surround table name with double quotes to allow mixed-case and * whitespaces in names. - BGA 1998-11-14 */ @@ -1537,7 +1537,21 @@ start:; if (type != atp->atttypid) { - if (IS_BINARY_COMPATIBLE(type, atp->atttypid)) + /* + * Though these types are binary compatible, bpchar has a fixed + * length on the disk, requiring non-bpchar types to be padded + * before storage in the default table. bjm 1999/05/18 + */ + if (atp->atttypid == BPCHAROID && + (type == TEXTOID || type == BPCHAROID || type == UNKNOWNOID)) + { + if (can_coerce_type(1, &(type), &(atp->atttypid))) + expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid); + else + elog(ERROR, "DEFAULT clause const type '%s' can not be converted to char().", + typeidTypeName(type)); + } + else if (IS_BINARY_COMPATIBLE(type, atp->atttypid)) ; /* use without change */ else if (can_coerce_type(1, &(type), &(atp->atttypid))) expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid); @@ -1556,8 +1570,7 @@ start:; adbin = nodeToString(expr); oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt); - attrdef->adbin = (char *) palloc(strlen(adbin) + 1); - strcpy(attrdef->adbin, adbin); + attrdef->adbin = pstrdup(adbin); (void) MemoryContextSwitchTo(oldcxt); pfree(adbin); diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index f4fdb63637..f3dec72128 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: outfuncs.c,v 1.83 1999/05/18 21:34:28 tgl Exp $ + * $Id: outfuncs.c,v 1.84 1999/05/19 16:46:11 momjian Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -1203,18 +1203,14 @@ _outDatum(StringInfo str, Datum value, Oid type) s = (char *) (&value); appendStringInfo(str, " %d [ ", length); for (i = 0; i < sizeof(Datum); i++) - { appendStringInfo(str, " %d ", (int) (s[i])); - } appendStringInfo(str, "] "); } else { /* !byValue */ s = (char *) DatumGetPointer(value); if (!PointerIsValid(s)) - { appendStringInfo(str, " 0 [ ] "); - } else { /* diff --git a/src/backend/nodes/read.c b/src/backend/nodes/read.c index e4aa2be9b6..3c2f1a3bd9 100644 --- a/src/backend/nodes/read.c +++ b/src/backend/nodes/read.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.14 1999/02/13 23:16:01 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/read.c,v 1.15 1999/05/19 16:46:11 momjian Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -26,7 +26,7 @@ /* * stringToNode - - * returns a Node with a given legal ascii representation + * returns a Node with a given legal ASCII representation */ void * stringToNode(char *str) diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 6f672222ad..70cb970a50 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.12 1999/05/10 00:45:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.13 1999/05/19 16:46:12 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -75,7 +75,6 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, Oid targetTypeId) */ else if (inputTypeId != UNKNOWNOID) { - /* * We already know there is a function which will do this, so * let's use it -- GitLab