OSDN Git Service

Use the parser macro IS_BINARY_COMPATIBLE() to allow more success
authorThomas G. Lockhart <lockhart@fourpalms.org>
Mon, 17 Aug 1998 16:03:31 +0000 (16:03 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Mon, 17 Aug 1998 16:03:31 +0000 (16:03 +0000)
 in type checking for DEFAULT contraint clauses.
Could do more type coersion later...

src/backend/catalog/heap.c

index 32150d9..1d6708a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.56 1998/08/06 05:12:19 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.57 1998/08/17 16:03:31 thomas Exp $
  *
  * INTERFACE ROUTINES
  *             heap_create()                   - Create an uncataloged heap relation
@@ -47,6 +47,7 @@
 #include "parser/parse_expr.h"
 #include "parser/parse_node.h"
 #include "parser/parse_type.h"
+#include "parser/parse_coerce.h"
 #include "rewrite/rewriteRemove.h"
 #include "storage/bufmgr.h"
 #include "storage/lmgr.h"
@@ -1519,7 +1520,8 @@ start:;
                        goto start;
                }
        }
-       else if (exprType(expr) != atp->atttypid)
+       else if ((exprType(expr) != atp->atttypid)
+        && !IS_BINARY_COMPATIBLE(exprType(expr), atp->atttypid))
                elog(ERROR, "DEFAULT: type mismatched");
 
        adbin = nodeToString(expr);