Commit cc5c25b
Fix (json) : Json Parse validation to be more comprehensive in certain json functions (facebookincubator#14558)
Summary:
Pull Request resolved: facebookincubator#14558
Certain json functions (json_extract_scalar, is_json_scalar, json_array_contains etc) relied on simdjson's parseDocument to validate that the json is valid. simdjson's parse is not fool proof and there are several cases it will return as if the document is valid when in fact it is not. This change does a more comprehensive parse that ensures the document is valid.
NOTE: Previously invalid json's like [01], or [9.6E400] would give results, with this change though these jsons which are invalid will result in a null value.
Reviewed By: kevinwilfong
Differential Revision: D805028031 parent 37d26c0 commit cc5c25b
File tree
4 files changed
+135
-13
lines changed- velox/functions/prestosql
- tests
4 files changed
+135
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
862 | 862 | | |
863 | 863 | | |
864 | 864 | | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
865 | 899 | | |
866 | 900 | | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
867 | 911 | | |
868 | 912 | | |
869 | 913 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
28 | 34 | | |
29 | 35 | | |
30 | 36 | | |
| |||
33 | 39 | | |
34 | 40 | | |
35 | 41 | | |
36 | | - | |
| 42 | + | |
37 | 43 | | |
38 | 44 | | |
39 | 45 | | |
40 | 46 | | |
41 | 47 | | |
42 | 48 | | |
43 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
44 | 53 | | |
45 | 54 | | |
46 | 55 | | |
| |||
68 | 77 | | |
69 | 78 | | |
70 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
71 | 83 | | |
72 | 84 | | |
73 | 85 | | |
| 86 | + | |
74 | 87 | | |
75 | 88 | | |
76 | 89 | | |
| |||
133 | 146 | | |
134 | 147 | | |
135 | 148 | | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
136 | 152 | | |
137 | 153 | | |
138 | 154 | | |
| |||
229 | 245 | | |
230 | 246 | | |
231 | 247 | | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
| 248 | + | |
| 249 | + | |
238 | 250 | | |
239 | 251 | | |
240 | 252 | | |
| |||
328 | 340 | | |
329 | 341 | | |
330 | 342 | | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
331 | 347 | | |
332 | 348 | | |
333 | 349 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
242 | 254 | | |
243 | 255 | | |
244 | 256 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
175 | 175 | | |
176 | 176 | | |
177 | 177 | | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
178 | 184 | | |
179 | 185 | | |
180 | 186 | | |
| |||
684 | 690 | | |
685 | 691 | | |
686 | 692 | | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
687 | 703 | | |
688 | 704 | | |
689 | 705 | | |
| |||
703 | 719 | | |
704 | 720 | | |
705 | 721 | | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
706 | 730 | | |
707 | 731 | | |
708 | 732 | | |
| |||
753 | 777 | | |
754 | 778 | | |
755 | 779 | | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
756 | 789 | | |
757 | 790 | | |
758 | 791 | | |
| |||
792 | 825 | | |
793 | 826 | | |
794 | 827 | | |
795 | | - | |
796 | | - | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
797 | 831 | | |
798 | 832 | | |
799 | 833 | | |
| |||
841 | 875 | | |
842 | 876 | | |
843 | 877 | | |
844 | | - | |
845 | | - | |
| 878 | + | |
| 879 | + | |
846 | 880 | | |
847 | 881 | | |
848 | 882 | | |
| |||
890 | 924 | | |
891 | 925 | | |
892 | 926 | | |
893 | | - | |
894 | | - | |
| 927 | + | |
| 928 | + | |
895 | 929 | | |
896 | 930 | | |
897 | 931 | | |
| |||
959 | 993 | | |
960 | 994 | | |
961 | 995 | | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
962 | 1004 | | |
963 | 1005 | | |
964 | 1006 | | |
| |||
975 | 1017 | | |
976 | 1018 | | |
977 | 1019 | | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
978 | 1028 | | |
979 | 1029 | | |
980 | 1030 | | |
| |||
0 commit comments