Re: inheritance, and plans

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



so Tom,
with a little help on Irc from Andrew (RhodiumToad) I got it 'fixed',
but I know this is just a hack:

Index: src/backend/utils/adt/selfuncs.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v
retrieving revision 1.258
diff -u -r1.258 selfuncs.c
--- src/backend/utils/adt/selfuncs.c	1 Jan 2009 17:23:50 -0000	1.258
+++ src/backend/utils/adt/selfuncs.c	7 Feb 2009 17:20:21 -0000
@@ -3392,7 +3392,7 @@
 static double
 convert_numeric_to_scalar(Datum value, Oid typid)
 {
-	switch (typid)
+	switch (getBaseType(typid))
 	{
 		case BOOLOID:
 			return (double) DatumGetBool(value);
ndex: src/backend/optimizer/path/allpaths.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v
retrieving revision 1.179
diff -u -r1.179 allpaths.c
--- src/backend/optimizer/path/allpaths.c	1 Jan 2009 17:23:43 -0000	1.179
+++ src/backend/optimizer/path/allpaths.c	7 Feb 2009 17:21:25 -0000
@@ -33,6 +33,9 @@
 #include "parser/parse_clause.h"
 #include "parser/parsetree.h"
 #include "rewrite/rewriteManip.h"
+#include "utils/lsyscache.h"
+#include "utils/syscache.h"
+


 /* These parameters are set by GUC */
@@ -1042,7 +1045,7 @@
 			continue;			/* ignore resjunk columns */
 		if (colType == NULL)
 			elog(ERROR, "wrong number of tlist entries");
-		if (exprType((Node *) tle->expr) != lfirst_oid(colType))
+		if (exprType((Node *) tle->expr) != lfirst_oid(colType) &&
getBaseType(exprType((Node *) tle->expr)) != lfirst_oid(colType))
 			differentTypes[tle->resno] = true;
 		colType = lnext(colType);
 	}




This is just a hack, and I know it won't work. But the question is, is
it possible to fix it ?
I think something should convert types to base type somewhere up the
call level. Perhaps we should pass on oid of type+baseType ?

I also noticed that the  convert_numeric_to_scalar() family of
functions is considered a future change too, atm everything there is
hardcoded pretty much.

-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux