]> granicus.if.org Git - postgresql/commitdiff
Fix ANALYZE failure on a column that's a domain over a range.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 24 Dec 2013 03:18:12 +0000 (22:18 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 24 Dec 2013 03:18:23 +0000 (22:18 -0500)
Most other range operations seem to work all right on domains,
but this one not so much, at least not since commit 918eee0c.
Per bug #8684 from Brett Neumeier.

src/backend/utils/adt/rangetypes_typanalyze.c

index 114bce015c67d126afa7a556308eebb522cef7ac..43c0b7e78bc3c81e1a0e0032c9ec1bbeb8d5f77d 100644 (file)
@@ -27,6 +27,7 @@
 #include "catalog/pg_operator.h"
 #include "commands/vacuum.h"
 #include "utils/builtins.h"
+#include "utils/lsyscache.h"
 #include "utils/rangetypes.h"
 
 static int     float8_qsort_cmp(const void *a1, const void *a2);
@@ -44,8 +45,8 @@ range_typanalyze(PG_FUNCTION_ARGS)
        TypeCacheEntry *typcache;
        Form_pg_attribute attr = stats->attr;
 
-       /* Get information about range type */
-       typcache = range_get_typcache(fcinfo, stats->attrtypid);
+       /* Get information about range type; note column might be a domain */
+       typcache = range_get_typcache(fcinfo, getBaseType(stats->attrtypid));
 
        if (attr->attstattarget < 0)
                attr->attstattarget = default_statistics_target;