Skip to content

Commit d0bd8b3

Browse files
committed
Add support for JSONB quals. Closes #185
1 parent 81836cc commit d0bd8b3

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

fdw/common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ inet *datumInet(Datum datum, ConversionInfo *cinfo);
9898
inet *datumCIDR(Datum datum, ConversionInfo *cinfo);
9999
double datumDouble(Datum datum, ConversionInfo *cinfo);
100100
bool datumBool(Datum datum, ConversionInfo *cinfo);
101+
Jsonb *datumJsonb(Datum datum, ConversionInfo *cinfo);
101102
Timestamp datumDate(Datum datum, ConversionInfo *cinfo);
102103
Timestamp datumTimestamp(Datum datum, ConversionInfo *cinfo);
103104

fdw/datum.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ bool datumBool(Datum datum, ConversionInfo *cinfo) {
3030
return DatumGetBool(datum);
3131
}
3232

33+
Jsonb * datumJsonb(Datum datum, ConversionInfo *cinfo) {
34+
return DatumGetJsonbP(datum);
35+
}
36+
3337
Timestamp datumDate(Datum datum, ConversionInfo *cinfo) {
3438
datum = DirectFunctionCall1(date_timestamp, datum);
3539
return DatumGetInt64(datum);

quals.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,12 @@ func datumToQualValue(datum C.Datum, typeOid C.Oid, cinfo *C.ConversionInfo) (re
405405
result.Value = &proto.QualValue_DoubleValue{DoubleValue: float64(C.datumDouble(datum, cinfo))}
406406
case C.BOOLOID:
407407
result.Value = &proto.QualValue_BoolValue{BoolValue: bool(C.datumBool(datum, cinfo))}
408+
case C.JSONBOID:
409+
jsonbQual := C.datumJsonb(datum, cinfo)
410+
jsonbQualStr := C.JsonbToCStringIndent(nil, &(jsonbQual.root), -1)
411+
result.Value = &proto.QualValue_JsonbValue{JsonbValue: C.GoString(jsonbQualStr)}
408412
default:
413+
log.Printf("[INFO] datumToQualValue unknown typeoid %v ", typeOid)
409414
result, err = convertUnknown(datum, typeOid, cinfo)
410415
}
411416
return

0 commit comments

Comments
 (0)