提交 0a8fb5a8 编写于 作者: B Bruce Momjian

Upgrade to PyGreSQL (2.4)

上级 9487ad84
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 * INTERFACE ROUTINES
...@@ -1514,7 +1514,7 @@ StoreAttrDefault(Relation rel, AttrDefault *attrdef) ...@@ -1514,7 +1514,7 @@ StoreAttrDefault(Relation rel, AttrDefault *attrdef)
char nulls[4] = {' ', ' ', ' ', ' '}; char nulls[4] = {' ', ' ', ' ', ' '};
extern GlobalMemory CacheCxt; extern GlobalMemory CacheCxt;
start:; start:
/* Surround table name with double quotes to allow mixed-case and /* Surround table name with double quotes to allow mixed-case and
* whitespaces in names. - BGA 1998-11-14 * whitespaces in names. - BGA 1998-11-14
*/ */
...@@ -1537,7 +1537,21 @@ start:; ...@@ -1537,7 +1537,21 @@ start:;
if (type != atp->atttypid) 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 */ ; /* use without change */
else if (can_coerce_type(1, &(type), &(atp->atttypid))) else if (can_coerce_type(1, &(type), &(atp->atttypid)))
expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid); expr = coerce_type(NULL, (Node *)expr, type, atp->atttypid);
...@@ -1556,8 +1570,7 @@ start:; ...@@ -1556,8 +1570,7 @@ start:;
adbin = nodeToString(expr); adbin = nodeToString(expr);
oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt); oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
attrdef->adbin = (char *) palloc(strlen(adbin) + 1); attrdef->adbin = pstrdup(adbin);
strcpy(attrdef->adbin, adbin);
(void) MemoryContextSwitchTo(oldcxt); (void) MemoryContextSwitchTo(oldcxt);
pfree(adbin); pfree(adbin);
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * 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 * NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which * Every (plan) node in POSTGRES has an associated "out" routine which
...@@ -1203,18 +1203,14 @@ _outDatum(StringInfo str, Datum value, Oid type) ...@@ -1203,18 +1203,14 @@ _outDatum(StringInfo str, Datum value, Oid type)
s = (char *) (&value); s = (char *) (&value);
appendStringInfo(str, " %d [ ", length); appendStringInfo(str, " %d [ ", length);
for (i = 0; i < sizeof(Datum); i++) for (i = 0; i < sizeof(Datum); i++)
{
appendStringInfo(str, " %d ", (int) (s[i])); appendStringInfo(str, " %d ", (int) (s[i]));
}
appendStringInfo(str, "] "); appendStringInfo(str, "] ");
} }
else else
{ /* !byValue */ { /* !byValue */
s = (char *) DatumGetPointer(value); s = (char *) DatumGetPointer(value);
if (!PointerIsValid(s)) if (!PointerIsValid(s))
{
appendStringInfo(str, " 0 [ ] "); appendStringInfo(str, " 0 [ ] ");
}
else else
{ {
/* /*
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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 * HISTORY
* AUTHOR DATE MAJOR EVENT * AUTHOR DATE MAJOR EVENT
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
/* /*
* stringToNode - * stringToNode -
* returns a Node with a given legal ascii representation * returns a Node with a given legal ASCII representation
*/ */
void * void *
stringToNode(char *str) stringToNode(char *str)
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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) ...@@ -75,7 +75,6 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, Oid targetTypeId)
*/ */
else if (inputTypeId != UNKNOWNOID) else if (inputTypeId != UNKNOWNOID)
{ {
/* /*
* We already know there is a function which will do this, so * We already know there is a function which will do this, so
* let's use it * let's use it
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册