enlargeStringInfo(out, estimated_len);
 
    if (!(in->header & JSONPATH_LAX))
-       appendBinaryStringInfo(out, "strict ", 7);
+       appendStringInfoString(out, "strict ");
 
    jspInit(&v, in);
    printJsonPathItem(out, &v, false, true);
            break;
        case jpiBool:
            if (jspGetBool(v))
-               appendBinaryStringInfo(buf, "true", 4);
+               appendStringInfoString(buf, "true");
            else
-               appendBinaryStringInfo(buf, "false", 5);
+               appendStringInfoString(buf, "false");
            break;
        case jpiAnd:
        case jpiOr:
                              operationPriority(elem.type) <=
                              operationPriority(v->type));
 
-           appendBinaryStringInfo(buf, " like_regex ", 12);
+           appendStringInfoString(buf, " like_regex ");
 
            escape_json(buf, v->content.like_regex.pattern);
 
            if (v->content.like_regex.flags)
            {
-               appendBinaryStringInfo(buf, " flag \"", 7);
+               appendStringInfoString(buf, " flag \"");
 
                if (v->content.like_regex.flags & JSP_REGEX_ICASE)
                    appendStringInfoChar(buf, 'i');
                appendStringInfoChar(buf, ')');
            break;
        case jpiFilter:
-           appendBinaryStringInfo(buf, "?(", 2);
+           appendStringInfoString(buf, "?(");
            jspGetArg(v, &elem);
            printJsonPathItem(buf, &elem, false, false);
            appendStringInfoChar(buf, ')');
            break;
        case jpiNot:
-           appendBinaryStringInfo(buf, "!(", 2);
+           appendStringInfoString(buf, "!(");
            jspGetArg(v, &elem);
            printJsonPathItem(buf, &elem, false, false);
            appendStringInfoChar(buf, ')');
            appendStringInfoChar(buf, '(');
            jspGetArg(v, &elem);
            printJsonPathItem(buf, &elem, false, false);
-           appendBinaryStringInfo(buf, ") is unknown", 12);
+           appendStringInfoString(buf, ") is unknown");
            break;
        case jpiExists:
-           appendBinaryStringInfo(buf, "exists (", 8);
+           appendStringInfoString(buf, "exists (");
            jspGetArg(v, &elem);
            printJsonPathItem(buf, &elem, false, false);
            appendStringInfoChar(buf, ')');
            appendStringInfoChar(buf, '$');
            break;
        case jpiLast:
-           appendBinaryStringInfo(buf, "last", 4);
+           appendStringInfoString(buf, "last");
            break;
        case jpiAnyArray:
-           appendBinaryStringInfo(buf, "[*]", 3);
+           appendStringInfoString(buf, "[*]");
            break;
        case jpiAnyKey:
            if (inKey)
 
                if (range)
                {
-                   appendBinaryStringInfo(buf, " to ", 4);
+                   appendStringInfoString(buf, " to ");
                    printJsonPathItem(buf, &to, false, false);
                }
            }
 
            if (v->content.anybounds.first == 0 &&
                v->content.anybounds.last == PG_UINT32_MAX)
-               appendBinaryStringInfo(buf, "**", 2);
+               appendStringInfoString(buf, "**");
            else if (v->content.anybounds.first == v->content.anybounds.last)
            {
                if (v->content.anybounds.first == PG_UINT32_MAX)
                                 v->content.anybounds.last);
            break;
        case jpiType:
-           appendBinaryStringInfo(buf, ".type()", 7);
+           appendStringInfoString(buf, ".type()");
            break;
        case jpiSize:
-           appendBinaryStringInfo(buf, ".size()", 7);
+           appendStringInfoString(buf, ".size()");
            break;
        case jpiAbs:
-           appendBinaryStringInfo(buf, ".abs()", 6);
+           appendStringInfoString(buf, ".abs()");
            break;
        case jpiFloor:
-           appendBinaryStringInfo(buf, ".floor()", 8);
+           appendStringInfoString(buf, ".floor()");
            break;
        case jpiCeiling:
-           appendBinaryStringInfo(buf, ".ceiling()", 10);
+           appendStringInfoString(buf, ".ceiling()");
            break;
        case jpiDouble:
-           appendBinaryStringInfo(buf, ".double()", 9);
+           appendStringInfoString(buf, ".double()");
            break;
        case jpiDatetime:
-           appendBinaryStringInfo(buf, ".datetime(", 10);
+           appendStringInfoString(buf, ".datetime(");
            if (v->content.arg)
            {
                jspGetArg(v, &elem);
            appendStringInfoChar(buf, ')');
            break;
        case jpiKeyValue:
-           appendBinaryStringInfo(buf, ".keyvalue()", 11);
+           appendStringInfoString(buf, ".keyvalue()");
            break;
        default:
            elog(ERROR, "unrecognized jsonpath item type: %d", v->type);