1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-20 15:22:23 +03:00
I have written some patches which add support for NULLs to Postgres95.
In fact support for NULLs was already present in postgres, but it had been
disabled because not completely debugged, I believe. My patches simply add
some checks here and there. To enable the new code you must add -DNULL_PATCH
to CFLAGS in Makefile.global. After recompiling you can do things like:

insert into a (x, y) values (1, NULL);
update a set x = NULL where x = 0;

You can't still use a "where x=NULL" clause, you must use ISNULL instead.
This could probably be an easy fix to do.




Submitted by: Massimo Dal Zotto <dz@cs.unitn.it>
This commit is contained in:
Marc G. Fournier
1996-07-19 07:24:11 +00:00
parent 83adddfcc3
commit 20288400f3
4 changed files with 34 additions and 4 deletions

View File

@ -6,7 +6,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.1.1.1 1996/07/09 06:21:40 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.2 1996/07/19 07:24:11 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@ -302,6 +302,10 @@ parser_typecast2(Node *expr, int exprType, Type tp, int typlen)
Assert(IsA(expr,Const));
switch (exprType) {
#ifdef NULL_PATCH
case 0: /* NULL */
break;
#endif
case 23: /* int4 */
const_string = (char *) palloc(256);
string_palloced = true;
@ -352,6 +356,18 @@ parser_typecast2(Node *expr, int exprType, Type tp, int typlen)
elog(WARN,"unknown type%d ",exprType);
}
#ifdef NULL_PATCH
if (!exprType) {
adt = makeConst((Oid)typeid(tp),
(Size) 0,
(Datum) NULL,
true, /* isnull */
0 /* was omitted */,
0 /* not a set */);
return ((Node*) adt);
}
#endif
cp = instr2 (tp, const_string, typlen);