_outScanInfo(str, (const Scan *) node);
}
+static void
+_outSampleScan(StringInfo str, const SampleScan *node)
+{
+ WRITE_NODE_TYPE("SAMPLESCAN");
+
+ _outScanInfo(str, (const Scan *) node);
+
+ WRITE_NODE_FIELD(tablesample);
+}
+
static void
_outIndexScan(StringInfo str, const IndexScan *node)
{
{
WRITE_NODE_TYPE("TABLESAMPLECLAUSE");
+#ifdef XCP
+ if (portable_output)
+ {
+ WRITE_FUNCID_FIELD(tsmhandler);
+ }
+ else
+ {
+#endif
WRITE_OID_FIELD(tsmhandler);
+#ifdef XCP
+ }
+#endif
WRITE_NODE_FIELD(args);
WRITE_NODE_FIELD(repeatable);
}
_outRemoteQuery(str, obj);
break;
#endif
+ case T_SampleScan:
+ _outSampleScan(str, obj);
+ break;
case T_IndexScan:
_outIndexScan(str, obj);
break;
{
READ_LOCALS(TableSampleClause);
+#ifdef XCP
+ if (portable_input)
+ {
+ READ_FUNCID_FIELD(tsmhandler);
+ }
+ else
+ {
+#endif
READ_OID_FIELD(tsmhandler);
+#ifdef XCP
+ }
+#endif
READ_NODE_FIELD(args);
READ_NODE_FIELD(repeatable);
READ_DONE();
}
+/*
+ * _readSampleScan
+ */
+static SampleScan *
+_readSampleScan(void)
+{
+ READ_SCAN_FIELDS(SampleScan);
+ READ_NODE_FIELD(tablesample);
+
+ READ_DONE();
+}
/*
* _readIndexScan
return_value = _readScan();
else if (MATCH("SEQSCAN", 7))
return_value = _readSeqScan();
+ else if (MATCH("SAMPLESCAN", 10))
+ return_value = _readSampleScan();
else if (MATCH("INDEXSCAN", 9))
return_value = _readIndexScan();
else if (MATCH("INDEXONLYSCAN", 13))