*
*
* 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
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
*/
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);
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);
*
* 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
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
{
/*
*
*
* 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
/*
* stringToNode -
- * returns a Node with a given legal ascii representation
+ * returns a Node with a given legal ASCII representation
*/
void *
stringToNode(char *str)
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
*/
else if (inputTypeId != UNKNOWNOID)
{
-
/*
* We already know there is a function which will do this, so
* let's use it