1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Avoid some pnstrdup()s when constructing jsonb

This speeds up text to jsonb parsing and hstore to jsonb conversions
somewhat.
This commit is contained in:
Heikki Linnakangas
2014-05-09 11:32:28 +03:00
parent 14d309cc55
commit d3c72e23df
4 changed files with 10 additions and 9 deletions

View File

@ -1386,7 +1386,7 @@ hstore_to_jsonb(PG_FUNCTION_ARGS)
key.type = jbvString;
key.val.string.len = HS_KEYLEN(entries, i);
key.val.string.val = pnstrdup(HS_KEY(entries, base, i), key.val.string.len);
key.val.string.val = HS_KEY(entries, base, i);
res = pushJsonbValue(&state, WJB_KEY, &key);
@ -1398,7 +1398,7 @@ hstore_to_jsonb(PG_FUNCTION_ARGS)
{
val.type = jbvString;
val.val.string.len = HS_VALLEN(entries, i);
val.val.string.val = pnstrdup(HS_VAL(entries, base, i), val.val.string.len);
val.val.string.val = HS_VAL(entries, base, i);
}
res = pushJsonbValue(&state, WJB_VALUE, &val);
}
@ -1433,7 +1433,7 @@ hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
key.type = jbvString;
key.val.string.len = HS_KEYLEN(entries, i);
key.val.string.val = pnstrdup(HS_KEY(entries, base, i), key.val.string.len);
key.val.string.val = HS_KEY(entries, base, i);
res = pushJsonbValue(&state, WJB_KEY, &key);
@ -1507,7 +1507,7 @@ hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
{
val.type = jbvString;
val.val.string.len = HS_VALLEN(entries, i);
val.val.string.val = pnstrdup(HS_VAL(entries, base, i), val.val.string.len);
val.val.string.val = HS_VAL(entries, base, i);
}
}
res = pushJsonbValue(&state, WJB_VALUE, &val);