*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.9 1996/10/31 05:54:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.10 1996/11/04 04:19:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
if (attrtype != type_id) {
if (IsA(expr,Const)) {
/* try to cast the constant */
-#ifdef ARRAY_PATCH
if (arrayRef && !(((A_Indices *)lfirst(arrayRef))->lidx)) {
/* updating a single item */
Oid typelem = get_typelem(attrtype);
get_id_type((long)typelem),
attrlen);
} else
-#endif
expr = (Node*)parser_typecast2(expr,
type_id,
get_id_type((long)attrtype),
&pstate->p_last_resno);
while(ar!=NIL) {
A_Indices *ind = lfirst(ar);
-#ifdef ARRAY_PATCH
if (lowerIndexpr || (!upperIndexpr && ind->lidx)) {
-#else
- if (lowerIndexpr) {
-#endif
/* XXX assume all lowerIndexpr is non-null in
* this case
*/
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.6 1996/11/04 04:05:10 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.7 1996/11/04 04:19:49 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* fixed length arrays -- these are assumed to be 1-d
*/
if (indx[0]*elmlen > arraylen)
-#ifdef ARRAY_PATCH
elog(WARN, "array_ref: array bound exceeded");
-#else
- elog(WARN, "array_set: array bound exceeded");
-#endif
pos = (char *)array + indx[0]*elmlen;
ArrayCastAndSet(dataPtr, (bool) reftype, elmlen, pos);
return((char *)array);
nbytes = (* (int32 *) array) - ARR_OVERHEAD(ndim);
if (!SanityCheckInput(ndim, n, dim, lb, indx))
-#ifdef ARRAY_PATCH
{
elog(WARN, "array_set: array bound exceeded");
return((char *)array);
}
-#else
- return((char *)array);
-#endif
offset = GetOffset( n, dim, lb, indx);
if (ARR_IS_LO(array)) {
if (nbytes - offset < 1) return((char *)array);
pos = ARR_DATA_PTR (array) + offset;
} else {
-#ifdef ARRAY_PATCH
ArrayType *newarray;
char *elt_ptr;
int oldsize, newsize, oldlen, newlen, lth0, lth1, lth2;
/* ??? who should free this storage ??? */
return((char *)newarray);
-#else
- elog(WARN, "array_set: update of variable length fields not supported");
-#endif
}
ArrayCastAndSet(dataPtr, (bool) reftype, elmlen, pos);
return((char *)array);