forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit17a5871
committed
Optimize escaping of JSON strings
There were quite a few places where we either had a non-NUL-terminatedstring or a text Datum which we needed to call escape_json() on. Many ofthese places required that a temporary string was created due to the factthat escape_json() needs a NUL-terminated cstring. For text types, thosefirst had to be converted to cstring before calling escape_json() on them.Here we introduce two new functions to make escaping JSON more optimal:escape_json_text() can be given a text Datum to append onto the givenbuffer. This is more optimal as it foregoes the need to convert the textDatum into a cstring. A temporary allocation is only required if the textDatum needs to be detoasted.escape_json_with_len() can be used when the length of the cstring isalready known or the given string isn't NUL-terminated. Having thisallows various places which were creating a temporary NUL-terminatedstring to just call escape_json_with_len() without any temporary memoryallocations.Discussion:https://postgr.es/m/CAApHDvpLXwMZvbCKcdGfU9XQjGCDm7tFpRdTXuB9PVgpNUYfEQ@mail.gmail.comReviewed-by: Melih Mutlu, Heikki Linnakangas1 parent67427f1 commit17a5871
File tree
7 files changed
+151
-101
lines changed- contrib/hstore
- src
- backend
- backup
- utils/adt
- include/utils
7 files changed
+151
-101
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1343 | 1343 | | |
1344 | 1344 | | |
1345 | 1345 | | |
1346 | | - | |
1347 | | - | |
| 1346 | + | |
1348 | 1347 | | |
1349 | 1348 | | |
1350 | 1349 | | |
1351 | 1350 | | |
1352 | | - | |
1353 | 1351 | | |
1354 | 1352 | | |
1355 | 1353 | | |
1356 | 1354 | | |
1357 | 1355 | | |
1358 | 1356 | | |
1359 | | - | |
1360 | | - | |
1361 | | - | |
1362 | | - | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
1363 | 1360 | | |
1364 | 1361 | | |
1365 | 1362 | | |
| |||
1372 | 1369 | | |
1373 | 1370 | | |
1374 | 1371 | | |
1375 | | - | |
1376 | | - | |
1377 | | - | |
1378 | | - | |
1379 | | - | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
1380 | 1377 | | |
1381 | | - | |
| 1378 | + | |
1382 | 1379 | | |
1383 | 1380 | | |
1384 | 1381 | | |
| |||
1398 | 1395 | | |
1399 | 1396 | | |
1400 | 1397 | | |
1401 | | - | |
1402 | | - | |
| 1398 | + | |
1403 | 1399 | | |
1404 | 1400 | | |
1405 | 1401 | | |
1406 | 1402 | | |
1407 | | - | |
1408 | 1403 | | |
1409 | 1404 | | |
1410 | 1405 | | |
1411 | 1406 | | |
1412 | 1407 | | |
1413 | 1408 | | |
1414 | | - | |
1415 | | - | |
1416 | | - | |
1417 | | - | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
1418 | 1412 | | |
1419 | 1413 | | |
1420 | 1414 | | |
1421 | 1415 | | |
1422 | 1416 | | |
1423 | | - | |
1424 | | - | |
1425 | | - | |
1426 | | - | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
1427 | 1420 | | |
1428 | 1421 | | |
1429 | 1422 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
285 | 286 | | |
286 | 287 | | |
287 | 288 | | |
288 | | - | |
289 | | - | |
290 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
291 | 299 | | |
292 | 300 | | |
293 | 301 | | |
| |||
1391 | 1399 | | |
1392 | 1400 | | |
1393 | 1401 | | |
1394 | | - | |
1395 | 1402 | | |
1396 | 1403 | | |
1397 | 1404 | | |
| |||
1434 | 1441 | | |
1435 | 1442 | | |
1436 | 1443 | | |
1437 | | - | |
1438 | 1444 | | |
1439 | 1445 | | |
1440 | | - | |
| 1446 | + | |
1441 | 1447 | | |
1442 | | - | |
1443 | 1448 | | |
1444 | 1449 | | |
1445 | 1450 | | |
1446 | 1451 | | |
1447 | | - | |
1448 | | - | |
1449 | | - | |
| 1452 | + | |
| 1453 | + | |
1450 | 1454 | | |
1451 | 1455 | | |
1452 | 1456 | | |
| |||
1483 | 1487 | | |
1484 | 1488 | | |
1485 | 1489 | | |
1486 | | - | |
1487 | 1490 | | |
1488 | 1491 | | |
1489 | 1492 | | |
| |||
1512 | 1515 | | |
1513 | 1516 | | |
1514 | 1517 | | |
1515 | | - | |
1516 | 1518 | | |
1517 | 1519 | | |
1518 | | - | |
| 1520 | + | |
1519 | 1521 | | |
1520 | | - | |
1521 | 1522 | | |
1522 | 1523 | | |
1523 | 1524 | | |
1524 | | - | |
1525 | | - | |
1526 | | - | |
1527 | | - | |
1528 | | - | |
| 1525 | + | |
| 1526 | + | |
1529 | 1527 | | |
1530 | 1528 | | |
1531 | 1529 | | |
| |||
1541 | 1539 | | |
1542 | 1540 | | |
1543 | 1541 | | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
1544 | 1580 | | |
1545 | 1581 | | |
1546 | | - | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
1547 | 1585 | | |
1548 | 1586 | | |
1549 | 1587 | | |
1550 | 1588 | | |
1551 | | - | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
1552 | 1593 | | |
1553 | 1594 | | |
1554 | | - | |
1555 | | - | |
1556 | | - | |
1557 | | - | |
1558 | | - | |
1559 | | - | |
1560 | | - | |
1561 | | - | |
1562 | | - | |
1563 | | - | |
1564 | | - | |
1565 | | - | |
1566 | | - | |
1567 | | - | |
1568 | | - | |
1569 | | - | |
1570 | | - | |
1571 | | - | |
1572 | | - | |
1573 | | - | |
1574 | | - | |
1575 | | - | |
1576 | | - | |
1577 | | - | |
1578 | | - | |
1579 | | - | |
1580 | | - | |
1581 | | - | |
1582 | | - | |
1583 | | - | |
1584 | | - | |
1585 | | - | |
1586 | | - | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
| 1603 | + | |
| 1604 | + | |
| 1605 | + | |
1587 | 1606 | | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
1588 | 1636 | | |
1589 | 1637 | | |
1590 | 1638 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
354 | 354 | | |
355 | 355 | | |
356 | 356 | | |
357 | | - | |
| 357 | + | |
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3133 | 3133 | | |
3134 | 3134 | | |
3135 | 3135 | | |
3136 | | - | |
3137 | | - | |
3138 | | - | |
3139 | | - | |
3140 | | - | |
3141 | | - | |
3142 | | - | |
3143 | | - | |
3144 | | - | |
3145 | | - | |
3146 | | - | |
3147 | | - | |
3148 | 3136 | | |
3149 | 3137 | | |
3150 | 3138 | | |
| |||
3153 | 3141 | | |
3154 | 3142 | | |
3155 | 3143 | | |
3156 | | - | |
3157 | | - | |
3158 | | - | |
3159 | | - | |
| 3144 | + | |
| 3145 | + | |
| 3146 | + | |
| 3147 | + | |
3160 | 3148 | | |
3161 | 3149 | | |
| 3150 | + | |
| 3151 | + | |
| 3152 | + | |
| 3153 | + | |
| 3154 | + | |
| 3155 | + | |
| 3156 | + | |
| 3157 | + | |
| 3158 | + | |
| 3159 | + | |
| 3160 | + | |
| 3161 | + | |
3162 | 3162 | | |
3163 | 3163 | | |
3164 | 3164 | | |
| |||
5936 | 5936 | | |
5937 | 5937 | | |
5938 | 5938 | | |
5939 | | - | |
| 5939 | + | |
5940 | 5940 | | |
5941 | 5941 | | |
5942 | 5942 | | |
| |||
0 commit comments
Comments
(0)