From 0e1f485f5ffff1deea6536fddecda299d0acc391 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 20 Mar 2000 04:02:47 +0000 Subject: [PATCH] Add compatiblity information for bytea. --- src/backend/parser/parse_coerce.c | 7 +++++-- src/backend/utils/adt/selfuncs.c | 5 +++-- src/include/c.h | 8 +++++--- src/include/parser/parse_coerce.h | 9 ++++++++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 35312eaadf0..8ff54677ef6 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.37 2000/03/19 00:15:39 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.38 2000/03/20 04:02:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -129,7 +129,7 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId, /* safety check that we got the right thing */ if (exprType(result) != targetTypeId) elog(ERROR, "coerce_type: conversion function %s produced %s", - typeTypeName(targetType), + typeTypeName(targetType), typeidTypeName(exprType(result))); /* @@ -320,6 +320,7 @@ TypeCategory(Oid inType) case (NAMEOID): case (BPCHAROID): case (VARCHAROID): + case (BYTEAOID): case (TEXTOID): case (LZTEXTOID): result = STRING_TYPE; @@ -550,6 +551,7 @@ PromoteLesserType(Oid inType1, Oid inType2, Oid *newType1, Oid *newType2) { case (BPCHAROID): case (VARCHAROID): + case (BYTEAOID): case (TEXTOID): case (INT2OID): @@ -614,6 +616,7 @@ PromoteLesserType(Oid inType1, Oid inType2, Oid *newType1, Oid *newType2) { case (BPCHAROID): case (VARCHAROID): + case (BYTEA): case (TEXTOID): case (INT2OID): diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index ff5ec332ea2..76211e688b9 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.57 2000/02/26 23:03:12 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.58 2000/03/20 04:02:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -536,6 +536,7 @@ convert_to_scalar(Datum value, Oid typid, } case BPCHAROID: case VARCHAROID: + case BYTEA: case TEXTOID: if (VARSIZE(DatumGetPointer(value)) > VARHDRSZ) { @@ -595,7 +596,7 @@ convert_to_scalar(Datum value, Oid typid, return true; case TINTERVALOID: { - TimeInterval interval = (TimeInterval) DatumGetPointer(value); + TimeInterval interval = (TimeInterval) DatumGetPointer(value); if (interval->status != 0) { diff --git a/src/include/c.h b/src/include/c.h index fb51e5011c3..ea96d87b911 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: c.h,v 1.65 2000/03/19 22:08:51 tgl Exp $ + * $Id: c.h,v 1.66 2000/03/20 04:02:46 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -673,8 +673,10 @@ extern int assertTest(int val); * overhead. * * We got the 64 number by testing this against the stock memset() on - * BSD/OS 3.0. Larger values were slower. (I think the crossover point - * could be a good deal higher for most platforms, actually --- tgl) + * BSD/OS 3.0. Larger values were slower. bjm 1997/09/11 + * + * I think the crossover point could be a good deal higher for + * most platforms, actually. tgl 2000-03-19 */ #define MemSet(start, val, len) \ do \ diff --git a/src/include/parser/parse_coerce.h b/src/include/parser/parse_coerce.h index d0acd944e11..0549386a397 100644 --- a/src/include/parser/parse_coerce.h +++ b/src/include/parser/parse_coerce.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: parse_coerce.h,v 1.19 2000/03/14 23:06:48 thomas Exp $ + * $Id: parse_coerce.h,v 1.20 2000/03/20 04:02:47 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -45,6 +45,7 @@ typedef enum CATEGORY || ((t) == BPCHAROID) \ || ((t) == VARCHAROID) \ || ((t) == TEXTOID) \ + || ((t) == BYTEAOID) \ || ((t) == INT4OID) \ || ((t) == INT8OID) \ || ((t) == FLOAT8OID) \ @@ -81,10 +82,16 @@ typedef enum CATEGORY #define IS_BINARY_COMPATIBLE(a,b) \ (((a) == BPCHAROID && (b) == TEXTOID) \ || ((a) == BPCHAROID && (b) == VARCHAROID) \ + || ((a) == BPCHAROID && (b) == BYTEAOID) \ || ((a) == VARCHAROID && (b) == TEXTOID) \ || ((a) == VARCHAROID && (b) == BPCHAROID) \ + || ((a) == VARCHAROID && (b) == BYTEAOID) \ || ((a) == TEXTOID && (b) == BPCHAROID) \ || ((a) == TEXTOID && (b) == VARCHAROID) \ + || ((a) == TEXTOID && (b) == BYTEAOID) \ + || ((a) == BYTEAOID && (b) == BPCHAROID) \ + || ((a) == BYTEAOID && (b) == VARCHAROID) \ + || ((a) == BYTEAOID && (b) == TEXTOID) \ || ((a) == OIDOID && (b) == INT4OID) \ || ((a) == OIDOID && (b) == REGPROCOID) \ || ((a) == INT4OID && (b) == OIDOID) \