summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavan Deolasee2017-06-15 05:25:12 +0000
committerPavan Deolasee2017-06-15 05:25:12 +0000
commit302ab9725906d0268db4fcbc64d787dd0438418c (patch)
tree6891c6295cefb1c2f640901e105a38a6aaa286f8
parentd146086846ac8211cb4519d0195daf5480f7460e (diff)
Read/write OID fields in SQLValueFunction node correctly.
We must convert OID into a qualified name before sending it down to the remote datanode and do the reverse on the remote end. This is a new node type added in PG 10 and hence support was missing.
-rw-r--r--src/backend/nodes/outfuncs.c5
-rw-r--r--src/backend/nodes/readfuncs.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index d5165ddd4e..be3413436a 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -2524,7 +2524,10 @@ _outSQLValueFunction(StringInfo str, const SQLValueFunction *node)
WRITE_NODE_TYPE("SQLVALUEFUNCTION");
WRITE_ENUM_FIELD(op, SQLValueFunctionOp);
- WRITE_OID_FIELD(type);
+ if (portable_output)
+ WRITE_TYPID_FIELD(type);
+ else
+ WRITE_OID_FIELD(type);
WRITE_INT_FIELD(typmod);
WRITE_LOCATION_FIELD(location);
}
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index ae3e66f649..5147eaa4d3 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -1657,7 +1657,10 @@ _readSQLValueFunction(void)
READ_LOCALS(SQLValueFunction);
READ_ENUM_FIELD(op, SQLValueFunctionOp);
- READ_OID_FIELD(type);
+ if (portable_input)
+ READ_TYPID_FIELD(type);
+ else
+ READ_OID_FIELD(type);
READ_INT_FIELD(typmod);
READ_LOCATION_FIELD(location);