diff -ur uniqueidentifier-0.2/uniqueidentifier.c uniqueidentifier/uniqueidentifier.c --- uniqueidentifier-0.2/uniqueidentifier.c 2003-12-01 22:22:35.000000000 +0200 +++ uniqueidentifier/uniqueidentifier.c 2007-02-06 12:22:49.000000000 +0200 @@ -23,6 +23,9 @@ #include "fmgr.h" #include "access/hash.h" +#ifdef PG_MODULE_MAGIC +PG_MODULE_MAGIC; +#endif /* * Here is the internal storage format for uniqueidentifiers. @@ -97,9 +100,6 @@ char *result; uniqueidentifier *in = (uniqueidentifier *) PG_GETARG_POINTER(0); - if (in == NULL) - PG_RETURN_CSTRING (NULL); - result = (char *) palloc(37); result[0] = '\0'; @@ -206,13 +206,6 @@ uniqueidentifier *u1 = (uniqueidentifier *) PG_GETARG_POINTER(0); uniqueidentifier *u2 = (uniqueidentifier *) PG_GETARG_POINTER(1); - if ((u1 == NULL) || (u2 == NULL)) { - if ((u1 == NULL) && (u2 == NULL)) - PG_RETURN_BOOL (true); - else - PG_RETURN_BOOL (false); - } - if (memcmp(u1->uid, u2->uid, 16) == 0) PG_RETURN_BOOL (true); else @@ -243,12 +236,7 @@ { uniqueidentifier *u1 = (uniqueidentifier *) PG_GETARG_POINTER(0); uniqueidentifier *u2 = (uniqueidentifier *) PG_GETARG_POINTER(1); - if ((u1 == NULL) || (u2 == NULL)) { - if ((u1 == NULL) && (u2 == NULL)) - PG_RETURN_BOOL (false); - else - PG_RETURN_BOOL (true); - } + if (memcmp(u1->uid, u2->uid, 16) == 0) PG_RETURN_BOOL (false); else @@ -319,15 +307,6 @@ uint16 time_hi_and_version2; uint16 clock_seq2; - if ((u1 == NULL) || (u2 == NULL)) { - if ((u1 == NULL) && (u2 == NULL)) - return 0; - if (u1 == NULL) - return 1; - else - return -1; - } - if(memcmp(u1->uid, u2->uid, 16) == 0) return 0; diff -ur uniqueidentifier-0.2/uniqueidentifier.sql.in uniqueidentifier/uniqueidentifier.sql.in --- uniqueidentifier-0.2/uniqueidentifier.sql.in 2003-12-02 14:45:20.000000000 +0200 +++ uniqueidentifier/uniqueidentifier.sql.in 2007-02-06 12:24:42.000000000 +0200 @@ -12,11 +12,13 @@ CREATE OR REPLACE FUNCTION uniqueidentifier_in(cstring) returns uniqueidentifier + strict immutable as 'MODULE_PATHNAME' language 'c'; CREATE OR REPLACE FUNCTION uniqueidentifier_out(uniqueidentifier) returns cstring + strict immutable as 'MODULE_PATHNAME' language 'c'; @@ -34,31 +36,37 @@ CREATE OR REPLACE FUNCTION uniqueidentifier_lt(uniqueidentifier, uniqueidentifier) returns bool as 'MODULE_PATHNAME' + strict immutable language 'c'; CREATE OR REPLACE FUNCTION uniqueidentifier_le(uniqueidentifier, uniqueidentifier) returns bool as 'MODULE_PATHNAME' + strict immutable language 'c'; CREATE OR REPLACE FUNCTION uniqueidentifier_eq(uniqueidentifier, uniqueidentifier) returns bool as 'MODULE_PATHNAME' + strict immutable language 'c'; CREATE OR REPLACE FUNCTION uniqueidentifier_ge(uniqueidentifier, uniqueidentifier) returns bool as 'MODULE_PATHNAME' + strict immutable language 'c'; CREATE OR REPLACE FUNCTION uniqueidentifier_gt(uniqueidentifier, uniqueidentifier) returns bool as 'MODULE_PATHNAME' + strict immutable language 'c'; CREATE OR REPLACE FUNCTION uniqueidentifier_ne(uniqueidentifier, uniqueidentifier) returns bool as 'MODULE_PATHNAME' + strict immutable language 'c'; -- @@ -135,7 +143,7 @@ CREATE OR REPLACE FUNCTION text(uniqueidentifier) returns text - immutable + strict immutable as 'MODULE_PATHNAME', 'uniqueidentifier_text' language 'c'; @@ -145,7 +153,7 @@ CREATE OR REPLACE FUNCTION newid(text) returns uniqueidentifier - immutable + strict immutable as 'MODULE_PATHNAME', 'uniqueidentifier_from_text' language 'c'; @@ -171,6 +179,7 @@ CREATE OR REPLACE FUNCTION uniqueidentifier_cmp(uniqueidentifier, uniqueidentifier) RETURNS int4 + strict immutable AS 'MODULE_PATHNAME' LANGUAGE 'C';