From 327b25768217f5d4fd82770d0ab449814548f094 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 9 Jan 2011 15:24:22 -0500 Subject: [PATCH] Improve comment. --- contrib/btree_gin/btree_gin.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/contrib/btree_gin/btree_gin.c b/contrib/btree_gin/btree_gin.c index f8fae18eaf..486a662c78 100644 --- a/contrib/btree_gin/btree_gin.c +++ b/contrib/btree_gin/btree_gin.c @@ -394,10 +394,11 @@ static TypeInfo TypeInfo_varbit = {true, leftmostvalue_varbit, bitcmp}; GIN_SUPPORT(varbit) /* - * Numeric type hasn't applicable left-most value, so NULL - * is used for that. NULL will never be an argument for a C-level - * numeric function except gin_numeric_cmp and it will not be stored - * somewhere and it could not be returned in any user SQL query. + * Numeric type hasn't a real left-most value, so we use PointerGetDatum(NULL) + * (*not* a SQL NULL) to represent that. We can get away with that because + * the value returned by our leftmostvalue function will never be stored in + * the index nor passed to anything except our compare and prefix-comparison + * functions. The same trick could be used for other pass-by-reference types. */ #define NUMERIC_IS_LEFTMOST(x) ((x) == NULL) -- 2.40.0