json.err 154 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999
  1. <sql-statement>
  2. -- Strings.
  3. SELECT '""'::json; -- OK.
  4. </sql-statement>
  5. <sql-statement>
  6. SELECT $$''$$::json; -- ERROR, single quotes are not allowed
  7. </sql-statement>
  8. -stdin-:<main>: Fatal: Execution
  9. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  10. SELECT $$''$$::json; -- ERROR, single quotes are not allowed
  11. ^
  12. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  13. DETAIL: Token "'" is invalid.
  14. CONTEXT: JSON data, line 1: '...
  15. SELECT $$''$$::json; -- ERROR, single quotes are not allowed
  16. ^
  17. <sql-statement>
  18. SELECT '"abc"'::json; -- OK
  19. </sql-statement>
  20. <sql-statement>
  21. SELECT '"abc'::json; -- ERROR, quotes not closed
  22. </sql-statement>
  23. -stdin-:<main>: Fatal: Execution
  24. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  25. SELECT '"abc'::json; -- ERROR, quotes not closed
  26. ^
  27. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  28. DETAIL: Token ""abc" is invalid.
  29. CONTEXT: JSON data, line 1: "abc
  30. SELECT '"abc'::json; -- ERROR, quotes not closed
  31. ^
  32. <sql-statement>
  33. SELECT '"abc
  34. def"'::json; -- ERROR, unescaped newline in string constant
  35. </sql-statement>
  36. -stdin-:<main>: Fatal: Execution
  37. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  38. SELECT '"abc
  39. ^
  40. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  41. DETAIL: Character with value 0x0a must be escaped.
  42. CONTEXT: JSON data, line 1: "abc
  43. SELECT '"abc
  44. ^
  45. <sql-statement>
  46. SELECT '"\n\"\\"'::json; -- OK, legal escapes
  47. </sql-statement>
  48. <sql-statement>
  49. SELECT '"\v"'::json; -- ERROR, not a valid JSON escape
  50. </sql-statement>
  51. -stdin-:<main>: Fatal: Execution
  52. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  53. SELECT '"\v"'::json; -- ERROR, not a valid JSON escape
  54. ^
  55. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  56. DETAIL: Escape sequence "\v" is invalid.
  57. CONTEXT: JSON data, line 1: "\v...
  58. SELECT '"\v"'::json; -- ERROR, not a valid JSON escape
  59. ^
  60. <sql-statement>
  61. -- see json_encoding test for input with unicode escapes
  62. -- Numbers.
  63. SELECT '1'::json; -- OK
  64. </sql-statement>
  65. <sql-statement>
  66. SELECT '0'::json; -- OK
  67. </sql-statement>
  68. <sql-statement>
  69. SELECT '01'::json; -- ERROR, not valid according to JSON spec
  70. </sql-statement>
  71. -stdin-:<main>: Fatal: Execution
  72. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  73. SELECT '01'::json; -- ERROR, not valid according to JSON spec
  74. ^
  75. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  76. DETAIL: Token "01" is invalid.
  77. CONTEXT: JSON data, line 1: 01
  78. SELECT '01'::json; -- ERROR, not valid according to JSON spec
  79. ^
  80. <sql-statement>
  81. SELECT '0.1'::json; -- OK
  82. </sql-statement>
  83. <sql-statement>
  84. SELECT '9223372036854775808'::json; -- OK, even though it's too large for int8
  85. </sql-statement>
  86. <sql-statement>
  87. SELECT '1e100'::json; -- OK
  88. </sql-statement>
  89. <sql-statement>
  90. SELECT '1.3e100'::json; -- OK
  91. </sql-statement>
  92. <sql-statement>
  93. SELECT '1f2'::json; -- ERROR
  94. </sql-statement>
  95. -stdin-:<main>: Fatal: Execution
  96. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  97. SELECT '1f2'::json; -- ERROR
  98. ^
  99. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  100. DETAIL: Token "1f2" is invalid.
  101. CONTEXT: JSON data, line 1: 1f2
  102. SELECT '1f2'::json; -- ERROR
  103. ^
  104. <sql-statement>
  105. SELECT '0.x1'::json; -- ERROR
  106. </sql-statement>
  107. -stdin-:<main>: Fatal: Execution
  108. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  109. SELECT '0.x1'::json; -- ERROR
  110. ^
  111. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  112. DETAIL: Token "0.x1" is invalid.
  113. CONTEXT: JSON data, line 1: 0.x1
  114. SELECT '0.x1'::json; -- ERROR
  115. ^
  116. <sql-statement>
  117. SELECT '1.3ex100'::json; -- ERROR
  118. </sql-statement>
  119. -stdin-:<main>: Fatal: Execution
  120. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  121. SELECT '1.3ex100'::json; -- ERROR
  122. ^
  123. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  124. DETAIL: Token "1.3ex100" is invalid.
  125. CONTEXT: JSON data, line 1: 1.3ex100
  126. SELECT '1.3ex100'::json; -- ERROR
  127. ^
  128. <sql-statement>
  129. -- Arrays.
  130. SELECT '[]'::json; -- OK
  131. </sql-statement>
  132. <sql-statement>
  133. SELECT '[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]'::json; -- OK
  134. </sql-statement>
  135. <sql-statement>
  136. SELECT '[1,2]'::json; -- OK
  137. </sql-statement>
  138. <sql-statement>
  139. SELECT '[1,2,]'::json; -- ERROR, trailing comma
  140. </sql-statement>
  141. -stdin-:<main>: Fatal: Execution
  142. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  143. SELECT '[1,2,]'::json; -- ERROR, trailing comma
  144. ^
  145. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  146. DETAIL: Expected JSON value, but found "]".
  147. CONTEXT: JSON data, line 1: [1,2,]
  148. SELECT '[1,2,]'::json; -- ERROR, trailing comma
  149. ^
  150. <sql-statement>
  151. SELECT '[1,2'::json; -- ERROR, no closing bracket
  152. </sql-statement>
  153. -stdin-:<main>: Fatal: Execution
  154. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  155. SELECT '[1,2'::json; -- ERROR, no closing bracket
  156. ^
  157. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  158. DETAIL: The input string ended unexpectedly.
  159. CONTEXT: JSON data, line 1: [1,2
  160. SELECT '[1,2'::json; -- ERROR, no closing bracket
  161. ^
  162. <sql-statement>
  163. SELECT '[1,[2]'::json; -- ERROR, no closing bracket
  164. </sql-statement>
  165. -stdin-:<main>: Fatal: Execution
  166. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  167. SELECT '[1,[2]'::json; -- ERROR, no closing bracket
  168. ^
  169. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  170. DETAIL: The input string ended unexpectedly.
  171. CONTEXT: JSON data, line 1: [1,[2]
  172. SELECT '[1,[2]'::json; -- ERROR, no closing bracket
  173. ^
  174. <sql-statement>
  175. -- Objects.
  176. SELECT '{}'::json; -- OK
  177. </sql-statement>
  178. <sql-statement>
  179. SELECT '{"abc"}'::json; -- ERROR, no value
  180. </sql-statement>
  181. -stdin-:<main>: Fatal: Execution
  182. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  183. SELECT '{"abc"}'::json; -- ERROR, no value
  184. ^
  185. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  186. DETAIL: Expected ":", but found "}".
  187. CONTEXT: JSON data, line 1: {"abc"}
  188. SELECT '{"abc"}'::json; -- ERROR, no value
  189. ^
  190. <sql-statement>
  191. SELECT '{"abc":1}'::json; -- OK
  192. </sql-statement>
  193. <sql-statement>
  194. SELECT '{1:"abc"}'::json; -- ERROR, keys must be strings
  195. </sql-statement>
  196. -stdin-:<main>: Fatal: Execution
  197. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  198. SELECT '{1:"abc"}'::json; -- ERROR, keys must be strings
  199. ^
  200. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  201. DETAIL: Expected string or "}", but found "1".
  202. CONTEXT: JSON data, line 1: {1...
  203. SELECT '{1:"abc"}'::json; -- ERROR, keys must be strings
  204. ^
  205. <sql-statement>
  206. SELECT '{"abc",1}'::json; -- ERROR, wrong separator
  207. </sql-statement>
  208. -stdin-:<main>: Fatal: Execution
  209. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  210. SELECT '{"abc",1}'::json; -- ERROR, wrong separator
  211. ^
  212. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  213. DETAIL: Expected ":", but found ",".
  214. CONTEXT: JSON data, line 1: {"abc",...
  215. SELECT '{"abc",1}'::json; -- ERROR, wrong separator
  216. ^
  217. <sql-statement>
  218. SELECT '{"abc"=1}'::json; -- ERROR, totally wrong separator
  219. </sql-statement>
  220. -stdin-:<main>: Fatal: Execution
  221. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  222. SELECT '{"abc"=1}'::json; -- ERROR, totally wrong separator
  223. ^
  224. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  225. DETAIL: Token "=" is invalid.
  226. CONTEXT: JSON data, line 1: {"abc"=...
  227. SELECT '{"abc"=1}'::json; -- ERROR, totally wrong separator
  228. ^
  229. <sql-statement>
  230. SELECT '{"abc"::1}'::json; -- ERROR, another wrong separator
  231. </sql-statement>
  232. -stdin-:<main>: Fatal: Execution
  233. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  234. SELECT '{"abc"::1}'::json; -- ERROR, another wrong separator
  235. ^
  236. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  237. DETAIL: Expected JSON value, but found ":".
  238. CONTEXT: JSON data, line 1: {"abc"::...
  239. SELECT '{"abc"::1}'::json; -- ERROR, another wrong separator
  240. ^
  241. <sql-statement>
  242. SELECT '{"abc":1,"def":2,"ghi":[3,4],"hij":{"klm":5,"nop":[6]}}'::json; -- OK
  243. </sql-statement>
  244. <sql-statement>
  245. SELECT '{"abc":1:2}'::json; -- ERROR, colon in wrong spot
  246. </sql-statement>
  247. -stdin-:<main>: Fatal: Execution
  248. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  249. SELECT '{"abc":1:2}'::json; -- ERROR, colon in wrong spot
  250. ^
  251. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  252. DETAIL: Expected "," or "}", but found ":".
  253. CONTEXT: JSON data, line 1: {"abc":1:...
  254. SELECT '{"abc":1:2}'::json; -- ERROR, colon in wrong spot
  255. ^
  256. <sql-statement>
  257. SELECT '{"abc":1,3}'::json; -- ERROR, no value
  258. </sql-statement>
  259. -stdin-:<main>: Fatal: Execution
  260. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  261. SELECT '{"abc":1,3}'::json; -- ERROR, no value
  262. ^
  263. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  264. DETAIL: Expected string, but found "3".
  265. CONTEXT: JSON data, line 1: {"abc":1,3...
  266. SELECT '{"abc":1,3}'::json; -- ERROR, no value
  267. ^
  268. <sql-statement>
  269. -- Miscellaneous stuff.
  270. SELECT 'true'::json; -- OK
  271. </sql-statement>
  272. <sql-statement>
  273. SELECT 'false'::json; -- OK
  274. </sql-statement>
  275. <sql-statement>
  276. SELECT 'null'::json; -- OK
  277. </sql-statement>
  278. <sql-statement>
  279. SELECT ' true '::json; -- OK, even with extra whitespace
  280. </sql-statement>
  281. <sql-statement>
  282. SELECT 'true false'::json; -- ERROR, too many values
  283. </sql-statement>
  284. -stdin-:<main>: Fatal: Execution
  285. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  286. SELECT 'true false'::json; -- ERROR, too many values
  287. ^
  288. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  289. DETAIL: Expected end of input, but found "false".
  290. CONTEXT: JSON data, line 1: true false
  291. SELECT 'true false'::json; -- ERROR, too many values
  292. ^
  293. <sql-statement>
  294. SELECT 'true, false'::json; -- ERROR, too many values
  295. </sql-statement>
  296. -stdin-:<main>: Fatal: Execution
  297. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  298. SELECT 'true, false'::json; -- ERROR, too many values
  299. ^
  300. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  301. DETAIL: Expected end of input, but found ",".
  302. CONTEXT: JSON data, line 1: true,...
  303. SELECT 'true, false'::json; -- ERROR, too many values
  304. ^
  305. <sql-statement>
  306. SELECT 'truf'::json; -- ERROR, not a keyword
  307. </sql-statement>
  308. -stdin-:<main>: Fatal: Execution
  309. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  310. SELECT 'truf'::json; -- ERROR, not a keyword
  311. ^
  312. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  313. DETAIL: Token "truf" is invalid.
  314. CONTEXT: JSON data, line 1: truf
  315. SELECT 'truf'::json; -- ERROR, not a keyword
  316. ^
  317. <sql-statement>
  318. SELECT 'trues'::json; -- ERROR, not a keyword
  319. </sql-statement>
  320. -stdin-:<main>: Fatal: Execution
  321. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  322. SELECT 'trues'::json; -- ERROR, not a keyword
  323. ^
  324. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  325. DETAIL: Token "trues" is invalid.
  326. CONTEXT: JSON data, line 1: trues
  327. SELECT 'trues'::json; -- ERROR, not a keyword
  328. ^
  329. <sql-statement>
  330. SELECT ''::json; -- ERROR, no value
  331. </sql-statement>
  332. -stdin-:<main>: Fatal: Execution
  333. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  334. SELECT ''::json; -- ERROR, no value
  335. ^
  336. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  337. DETAIL: The input string ended unexpectedly.
  338. CONTEXT: JSON data, line 1:
  339. SELECT ''::json; -- ERROR, no value
  340. ^
  341. <sql-statement>
  342. SELECT ' '::json; -- ERROR, no value
  343. </sql-statement>
  344. -stdin-:<main>: Fatal: Execution
  345. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  346. SELECT ' '::json; -- ERROR, no value
  347. ^
  348. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  349. DETAIL: The input string ended unexpectedly.
  350. CONTEXT: JSON data, line 1:
  351. SELECT ' '::json; -- ERROR, no value
  352. ^
  353. <sql-statement>
  354. -- Multi-line JSON input to check ERROR reporting
  355. SELECT '{
  356. "one": 1,
  357. "two":"two",
  358. "three":
  359. true}'::json; -- OK
  360. </sql-statement>
  361. <sql-statement>
  362. SELECT '{
  363. "one": 1,
  364. "two":,"two", -- ERROR extraneous comma before field "two"
  365. "three":
  366. true}'::json;
  367. </sql-statement>
  368. -stdin-:<main>: Fatal: Execution
  369. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  370. SELECT '{
  371. ^
  372. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  373. DETAIL: Expected JSON value, but found ",".
  374. CONTEXT: JSON data, line 3: "two":,...
  375. SELECT '{
  376. ^
  377. <sql-statement>
  378. SELECT '{
  379. "one": 1,
  380. "two":"two",
  381. "averyveryveryveryveryveryveryveryveryverylongfieldname":}'::json;
  382. </sql-statement>
  383. -stdin-:<main>: Fatal: Execution
  384. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  385. SELECT '{
  386. ^
  387. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  388. DETAIL: Expected JSON value, but found "}".
  389. CONTEXT: JSON data, line 4: ...yveryveryveryveryveryveryveryverylongfieldname":}
  390. SELECT '{
  391. ^
  392. <sql-statement>
  393. -- ERROR missing value for last field
  394. --constructors
  395. -- array_to_json
  396. SELECT array_to_json(array(select 1 as a));
  397. </sql-statement>
  398. <sql-statement>
  399. SELECT array_to_json(array_agg(q),false) from (select x as b, x * 2 as c from generate_series(1,3) x) q;
  400. </sql-statement>
  401. -stdin-:<main>: Fatal: No such type: 0
  402. <sql-statement>
  403. SELECT array_to_json(array_agg(q),true) from (select x as b, x * 2 as c from generate_series(1,3) x) q;
  404. </sql-statement>
  405. -stdin-:<main>: Fatal: No such type: 0
  406. <sql-statement>
  407. SELECT array_to_json(array_agg(q),false)
  408. FROM ( SELECT $$a$$ || x AS b, y AS c,
  409. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  410. ROW(y.*,ARRAY[4,5,6])] AS z
  411. FROM generate_series(1,2) x,
  412. generate_series(4,5) y) q;
  413. </sql-statement>
  414. -stdin-:<main>: Error: Parse Sql
  415. -stdin-:<main>:3:16: Error: alternative is not implemented yet : 138
  416. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  417. ^
  418. -stdin-:<main>: Error: Type annotation
  419. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  420. SELECT array_to_json(array_agg(q),false)
  421. ^
  422. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  423. SELECT array_to_json(array_agg(q),false)
  424. ^
  425. <sql-statement>
  426. SELECT array_to_json(array_agg(x),false) from generate_series(5,10) x;
  427. </sql-statement>
  428. <sql-statement>
  429. SELECT array_to_json('{{1,5},{99,100}}'::int[]);
  430. </sql-statement>
  431. <sql-statement>
  432. -- row_to_json
  433. SELECT row_to_json(row(1,'foo'));
  434. </sql-statement>
  435. -stdin-:<main>: Error: Parse Sql
  436. -stdin-:<main>:2:8: Error: alternative is not implemented yet : 138
  437. SELECT row_to_json(row(1,'foo'));
  438. ^
  439. <sql-statement>
  440. SELECT row_to_json(q)
  441. FROM (SELECT $$a$$ || x AS b,
  442. y AS c,
  443. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  444. ROW(y.*,ARRAY[4,5,6])] AS z
  445. FROM generate_series(1,2) x,
  446. generate_series(4,5) y) q;
  447. </sql-statement>
  448. -stdin-:<main>: Error: Parse Sql
  449. -stdin-:<main>:4:10: Error: alternative is not implemented yet : 138
  450. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  451. ^
  452. -stdin-:<main>: Error: Type annotation
  453. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  454. SELECT row_to_json(q)
  455. ^
  456. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  457. SELECT row_to_json(q)
  458. ^
  459. <sql-statement>
  460. SELECT row_to_json(q,true)
  461. FROM (SELECT $$a$$ || x AS b,
  462. y AS c,
  463. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  464. ROW(y.*,ARRAY[4,5,6])] AS z
  465. FROM generate_series(1,2) x,
  466. generate_series(4,5) y) q;
  467. </sql-statement>
  468. -stdin-:<main>: Error: Parse Sql
  469. -stdin-:<main>:4:10: Error: alternative is not implemented yet : 138
  470. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  471. ^
  472. -stdin-:<main>: Error: Type annotation
  473. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  474. SELECT row_to_json(q,true)
  475. ^
  476. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  477. SELECT row_to_json(q,true)
  478. ^
  479. <sql-statement>
  480. CREATE TEMP TABLE rows AS
  481. SELECT x, 'txt' || x as y
  482. FROM generate_series(1,3) AS x;
  483. </sql-statement>
  484. -stdin-:<main>: Error: Parse Sql
  485. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 277
  486. CREATE TEMP TABLE rows AS
  487. ^
  488. <sql-statement>
  489. SELECT row_to_json(q,true)
  490. FROM rows q;
  491. </sql-statement>
  492. -stdin-:<main>: Fatal: Table metadata loading
  493. -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.rows
  494. <sql-statement>
  495. SELECT row_to_json(row((select array_agg(x) as d from generate_series(5,10) x)),false);
  496. </sql-statement>
  497. -stdin-:<main>: Error: Parse Sql
  498. -stdin-:<main>:1:8: Error: alternative is not implemented yet : 138
  499. SELECT row_to_json(row((select array_agg(x) as d from generate_series(5,10) x)),false);
  500. ^
  501. <sql-statement>
  502. -- anyarray column
  503. analyze rows;
  504. </sql-statement>
  505. -stdin-:<main>: Error: Parse Sql
  506. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 275
  507. -- anyarray column
  508. ^
  509. <sql-statement>
  510. select attname, to_json(histogram_bounds) histogram_bounds
  511. from pg_stats
  512. where tablename = 'rows' and
  513. schemaname = pg_my_temp_schema()::regnamespace::text
  514. order by 1;
  515. </sql-statement>
  516. -stdin-:<main>: Error: Type annotation
  517. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  518. select attname, to_json(histogram_bounds) histogram_bounds
  519. ^
  520. -stdin-:<main>:1:17: Error: At function: PgCall
  521. select attname, to_json(histogram_bounds) histogram_bounds
  522. ^
  523. -stdin-:<main>:1:17: Error: Unable to find an overload for proc to_json with given argument types: (anyarray)
  524. select attname, to_json(histogram_bounds) histogram_bounds
  525. ^
  526. <sql-statement>
  527. -- to_json, timestamps
  528. select to_json(timestamp '2014-05-28 12:22:35.614298');
  529. </sql-statement>
  530. -stdin-:<main>: Error: Type annotation
  531. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  532. -- to_json, timestamps
  533. ^
  534. -stdin-:<main>:2:8: Error: At function: PgCall
  535. select to_json(timestamp '2014-05-28 12:22:35.614298');
  536. ^
  537. -stdin-:<main>:2:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamp)
  538. select to_json(timestamp '2014-05-28 12:22:35.614298');
  539. ^
  540. <sql-statement>
  541. BEGIN;
  542. </sql-statement>
  543. <sql-statement>
  544. SET LOCAL TIME ZONE 10.5;
  545. </sql-statement>
  546. <sql-statement>
  547. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  548. </sql-statement>
  549. -stdin-:<main>: Error: Type annotation
  550. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  551. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  552. ^
  553. -stdin-:<main>:1:8: Error: At function: PgCall
  554. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  555. ^
  556. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamptz)
  557. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  558. ^
  559. <sql-statement>
  560. SET LOCAL TIME ZONE -8;
  561. </sql-statement>
  562. <sql-statement>
  563. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  564. </sql-statement>
  565. -stdin-:<main>: Error: Type annotation
  566. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  567. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  568. ^
  569. -stdin-:<main>:1:8: Error: At function: PgCall
  570. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  571. ^
  572. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamptz)
  573. select to_json(timestamptz '2014-05-28 12:22:35.614298-04');
  574. ^
  575. <sql-statement>
  576. COMMIT;
  577. </sql-statement>
  578. <sql-statement>
  579. select to_json(date '2014-05-28');
  580. </sql-statement>
  581. -stdin-:<main>: Error: Type annotation
  582. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  583. select to_json(date '2014-05-28');
  584. ^
  585. -stdin-:<main>:1:8: Error: At function: PgCall
  586. select to_json(date '2014-05-28');
  587. ^
  588. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (date)
  589. select to_json(date '2014-05-28');
  590. ^
  591. <sql-statement>
  592. select to_json(date 'Infinity');
  593. </sql-statement>
  594. -stdin-:<main>: Error: Type annotation
  595. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  596. select to_json(date 'Infinity');
  597. ^
  598. -stdin-:<main>:1:8: Error: At function: PgCall
  599. select to_json(date 'Infinity');
  600. ^
  601. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (date)
  602. select to_json(date 'Infinity');
  603. ^
  604. <sql-statement>
  605. select to_json(date '-Infinity');
  606. </sql-statement>
  607. -stdin-:<main>: Error: Type annotation
  608. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  609. select to_json(date '-Infinity');
  610. ^
  611. -stdin-:<main>:1:8: Error: At function: PgCall
  612. select to_json(date '-Infinity');
  613. ^
  614. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (date)
  615. select to_json(date '-Infinity');
  616. ^
  617. <sql-statement>
  618. select to_json(timestamp 'Infinity');
  619. </sql-statement>
  620. -stdin-:<main>: Error: Type annotation
  621. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  622. select to_json(timestamp 'Infinity');
  623. ^
  624. -stdin-:<main>:1:8: Error: At function: PgCall
  625. select to_json(timestamp 'Infinity');
  626. ^
  627. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamp)
  628. select to_json(timestamp 'Infinity');
  629. ^
  630. <sql-statement>
  631. select to_json(timestamp '-Infinity');
  632. </sql-statement>
  633. -stdin-:<main>: Error: Type annotation
  634. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  635. select to_json(timestamp '-Infinity');
  636. ^
  637. -stdin-:<main>:1:8: Error: At function: PgCall
  638. select to_json(timestamp '-Infinity');
  639. ^
  640. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamp)
  641. select to_json(timestamp '-Infinity');
  642. ^
  643. <sql-statement>
  644. select to_json(timestamptz 'Infinity');
  645. </sql-statement>
  646. -stdin-:<main>: Error: Type annotation
  647. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  648. select to_json(timestamptz 'Infinity');
  649. ^
  650. -stdin-:<main>:1:8: Error: At function: PgCall
  651. select to_json(timestamptz 'Infinity');
  652. ^
  653. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamptz)
  654. select to_json(timestamptz 'Infinity');
  655. ^
  656. <sql-statement>
  657. select to_json(timestamptz '-Infinity');
  658. </sql-statement>
  659. -stdin-:<main>: Error: Type annotation
  660. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  661. select to_json(timestamptz '-Infinity');
  662. ^
  663. -stdin-:<main>:1:8: Error: At function: PgCall
  664. select to_json(timestamptz '-Infinity');
  665. ^
  666. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_json with given argument types: (timestamptz)
  667. select to_json(timestamptz '-Infinity');
  668. ^
  669. <sql-statement>
  670. --json_agg
  671. SELECT json_agg(q)
  672. FROM ( SELECT $$a$$ || x AS b, y AS c,
  673. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  674. ROW(y.*,ARRAY[4,5,6])] AS z
  675. FROM generate_series(1,2) x,
  676. generate_series(4,5) y) q;
  677. </sql-statement>
  678. -stdin-:<main>: Error: Parse Sql
  679. -stdin-:<main>:4:16: Error: alternative is not implemented yet : 138
  680. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  681. ^
  682. -stdin-:<main>: Error: Type annotation
  683. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  684. --json_agg
  685. ^
  686. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  687. --json_agg
  688. ^
  689. <sql-statement>
  690. SELECT json_agg(q ORDER BY x, y)
  691. FROM rows q;
  692. </sql-statement>
  693. -stdin-:<main>: Error: Parse Sql
  694. -stdin-:<main>:1:8: Error: FuncCall: unsupported agg_order
  695. SELECT json_agg(q ORDER BY x, y)
  696. ^
  697. <sql-statement>
  698. UPDATE rows SET x = NULL WHERE x = 1;
  699. </sql-statement>
  700. -stdin-:<main>: Fatal: Pre type annotation
  701. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
  702. <sql-statement>
  703. SELECT json_agg(q ORDER BY x NULLS FIRST, y)
  704. FROM rows q;
  705. </sql-statement>
  706. -stdin-:<main>: Error: Parse Sql
  707. -stdin-:<main>:1:8: Error: FuncCall: unsupported agg_order
  708. SELECT json_agg(q ORDER BY x NULLS FIRST, y)
  709. ^
  710. <sql-statement>
  711. -- non-numeric output
  712. SELECT row_to_json(q)
  713. FROM (SELECT 'NaN'::float8 AS "float8field") q;
  714. </sql-statement>
  715. <sql-statement>
  716. SELECT row_to_json(q)
  717. FROM (SELECT 'Infinity'::float8 AS "float8field") q;
  718. </sql-statement>
  719. <sql-statement>
  720. SELECT row_to_json(q)
  721. FROM (SELECT '-Infinity'::float8 AS "float8field") q;
  722. </sql-statement>
  723. <sql-statement>
  724. -- json input
  725. SELECT row_to_json(q)
  726. FROM (SELECT '{"a":1,"b": [2,3,4,"d","e","f"],"c":{"p":1,"q":2}}'::json AS "jsonfield") q;
  727. </sql-statement>
  728. <sql-statement>
  729. -- json extraction functions
  730. CREATE TEMP TABLE test_json (
  731. json_type text,
  732. test_json json
  733. );
  734. </sql-statement>
  735. <sql-statement>
  736. INSERT INTO test_json VALUES
  737. ('scalar','"a scalar"'),
  738. ('array','["zero", "one","two",null,"four","five", [1,2,3],{"f1":9}]'),
  739. ('object','{"field1":"val1","field2":"val2","field3":null, "field4": 4, "field5": [1,2,3], "field6": {"f1":9}}');
  740. </sql-statement>
  741. <sql-statement>
  742. SELECT test_json -> 'x'
  743. FROM test_json
  744. WHERE json_type = 'scalar';
  745. </sql-statement>
  746. <sql-statement>
  747. SELECT test_json -> 'x'
  748. FROM test_json
  749. WHERE json_type = 'array';
  750. </sql-statement>
  751. <sql-statement>
  752. SELECT test_json -> 'x'
  753. FROM test_json
  754. WHERE json_type = 'object';
  755. </sql-statement>
  756. <sql-statement>
  757. SELECT test_json->'field2'
  758. FROM test_json
  759. WHERE json_type = 'object';
  760. </sql-statement>
  761. <sql-statement>
  762. SELECT test_json->>'field2'
  763. FROM test_json
  764. WHERE json_type = 'object';
  765. </sql-statement>
  766. <sql-statement>
  767. SELECT test_json -> 2
  768. FROM test_json
  769. WHERE json_type = 'scalar';
  770. </sql-statement>
  771. <sql-statement>
  772. SELECT test_json -> 2
  773. FROM test_json
  774. WHERE json_type = 'array';
  775. </sql-statement>
  776. <sql-statement>
  777. SELECT test_json -> -1
  778. FROM test_json
  779. WHERE json_type = 'array';
  780. </sql-statement>
  781. <sql-statement>
  782. SELECT test_json -> 2
  783. FROM test_json
  784. WHERE json_type = 'object';
  785. </sql-statement>
  786. <sql-statement>
  787. SELECT test_json->>2
  788. FROM test_json
  789. WHERE json_type = 'array';
  790. </sql-statement>
  791. <sql-statement>
  792. SELECT test_json ->> 6 FROM test_json WHERE json_type = 'array';
  793. </sql-statement>
  794. <sql-statement>
  795. SELECT test_json ->> 7 FROM test_json WHERE json_type = 'array';
  796. </sql-statement>
  797. <sql-statement>
  798. SELECT test_json ->> 'field4' FROM test_json WHERE json_type = 'object';
  799. </sql-statement>
  800. <sql-statement>
  801. SELECT test_json ->> 'field5' FROM test_json WHERE json_type = 'object';
  802. </sql-statement>
  803. <sql-statement>
  804. SELECT test_json ->> 'field6' FROM test_json WHERE json_type = 'object';
  805. </sql-statement>
  806. <sql-statement>
  807. SELECT json_object_keys(test_json)
  808. FROM test_json
  809. WHERE json_type = 'scalar';
  810. </sql-statement>
  811. -stdin-:<main>: Error: Parse Sql
  812. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  813. SELECT json_object_keys(test_json)
  814. ^
  815. <sql-statement>
  816. SELECT json_object_keys(test_json)
  817. FROM test_json
  818. WHERE json_type = 'array';
  819. </sql-statement>
  820. -stdin-:<main>: Error: Parse Sql
  821. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  822. SELECT json_object_keys(test_json)
  823. ^
  824. <sql-statement>
  825. SELECT json_object_keys(test_json)
  826. FROM test_json
  827. WHERE json_type = 'object';
  828. </sql-statement>
  829. -stdin-:<main>: Error: Parse Sql
  830. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  831. SELECT json_object_keys(test_json)
  832. ^
  833. <sql-statement>
  834. -- test extending object_keys resultset - initial resultset size is 256
  835. select count(*) from
  836. (select json_object_keys(json_object(array_agg(g)))
  837. from (select unnest(array['f'||n,n::text])as g
  838. from generate_series(1,300) as n) x ) y;
  839. </sql-statement>
  840. -stdin-:<main>: Error: Parse Sql
  841. -stdin-:<main>:4:19: Error: Generator functions are not allowed in: SELECT
  842. from (select unnest(array['f'||n,n::text])as g
  843. ^
  844. -stdin-:<main>:3:13: Error: Generator functions are not allowed in: SELECT
  845. (select json_object_keys(json_object(array_agg(g)))
  846. ^
  847. -stdin-:<main>: Error: Type annotation
  848. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  849. -- test extending object_keys resultset - initial resultset size is 256
  850. ^
  851. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  852. -- test extending object_keys resultset - initial resultset size is 256
  853. ^
  854. <sql-statement>
  855. -- nulls
  856. select (test_json->'field3') is null as expect_false
  857. from test_json
  858. where json_type = 'object';
  859. </sql-statement>
  860. <sql-statement>
  861. select (test_json->>'field3') is null as expect_true
  862. from test_json
  863. where json_type = 'object';
  864. </sql-statement>
  865. <sql-statement>
  866. select (test_json->3) is null as expect_false
  867. from test_json
  868. where json_type = 'array';
  869. </sql-statement>
  870. <sql-statement>
  871. select (test_json->>3) is null as expect_true
  872. from test_json
  873. where json_type = 'array';
  874. </sql-statement>
  875. <sql-statement>
  876. -- corner cases
  877. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json -> null::text;
  878. </sql-statement>
  879. <sql-statement>
  880. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json -> null::int;
  881. </sql-statement>
  882. <sql-statement>
  883. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json -> 1;
  884. </sql-statement>
  885. <sql-statement>
  886. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json -> -1;
  887. </sql-statement>
  888. <sql-statement>
  889. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json -> 'z';
  890. </sql-statement>
  891. <sql-statement>
  892. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json -> '';
  893. </sql-statement>
  894. <sql-statement>
  895. select '[{"b": "c"}, {"b": "cc"}]'::json -> 1;
  896. </sql-statement>
  897. <sql-statement>
  898. select '[{"b": "c"}, {"b": "cc"}]'::json -> 3;
  899. </sql-statement>
  900. <sql-statement>
  901. select '[{"b": "c"}, {"b": "cc"}]'::json -> 'z';
  902. </sql-statement>
  903. <sql-statement>
  904. select '{"a": "c", "b": null}'::json -> 'b';
  905. </sql-statement>
  906. <sql-statement>
  907. select '"foo"'::json -> 1;
  908. </sql-statement>
  909. <sql-statement>
  910. select '"foo"'::json -> 'z';
  911. </sql-statement>
  912. <sql-statement>
  913. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json ->> null::text;
  914. </sql-statement>
  915. <sql-statement>
  916. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json ->> null::int;
  917. </sql-statement>
  918. <sql-statement>
  919. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json ->> 1;
  920. </sql-statement>
  921. <sql-statement>
  922. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json ->> 'z';
  923. </sql-statement>
  924. <sql-statement>
  925. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json ->> '';
  926. </sql-statement>
  927. <sql-statement>
  928. select '[{"b": "c"}, {"b": "cc"}]'::json ->> 1;
  929. </sql-statement>
  930. <sql-statement>
  931. select '[{"b": "c"}, {"b": "cc"}]'::json ->> 3;
  932. </sql-statement>
  933. <sql-statement>
  934. select '[{"b": "c"}, {"b": "cc"}]'::json ->> 'z';
  935. </sql-statement>
  936. <sql-statement>
  937. select '{"a": "c", "b": null}'::json ->> 'b';
  938. </sql-statement>
  939. <sql-statement>
  940. select '"foo"'::json ->> 1;
  941. </sql-statement>
  942. <sql-statement>
  943. select '"foo"'::json ->> 'z';
  944. </sql-statement>
  945. <sql-statement>
  946. -- array length
  947. SELECT json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]');
  948. </sql-statement>
  949. <sql-statement>
  950. SELECT json_array_length('[]');
  951. </sql-statement>
  952. <sql-statement>
  953. SELECT json_array_length('{"f1":1,"f2":[5,6]}');
  954. </sql-statement>
  955. -stdin-:<main>: Fatal: Execution
  956. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  957. SELECT json_array_length('{"f1":1,"f2":[5,6]}');
  958. ^
  959. -stdin-:<main>:1:1: Fatal: ERROR: cannot get array length of a non-array
  960. SELECT json_array_length('{"f1":1,"f2":[5,6]}');
  961. ^
  962. <sql-statement>
  963. SELECT json_array_length('4');
  964. </sql-statement>
  965. -stdin-:<main>: Fatal: Execution
  966. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  967. SELECT json_array_length('4');
  968. ^
  969. -stdin-:<main>:1:1: Fatal: ERROR: cannot get array length of a scalar
  970. SELECT json_array_length('4');
  971. ^
  972. <sql-statement>
  973. -- each
  974. select json_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}');
  975. </sql-statement>
  976. -stdin-:<main>: Error: Parse Sql
  977. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  978. select json_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}');
  979. ^
  980. <sql-statement>
  981. select * from json_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":99,"f6":"stringy"}') q;
  982. </sql-statement>
  983. <sql-statement>
  984. select json_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":"null"}');
  985. </sql-statement>
  986. -stdin-:<main>: Error: Parse Sql
  987. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  988. select json_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":"null"}');
  989. ^
  990. <sql-statement>
  991. select * from json_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":99,"f6":"stringy"}') q;
  992. </sql-statement>
  993. <sql-statement>
  994. -- extract_path, extract_path_as_text
  995. select json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f4','f6');
  996. </sql-statement>
  997. <sql-statement>
  998. select json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f2');
  999. </sql-statement>
  1000. <sql-statement>
  1001. select json_extract_path('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',0::text);
  1002. </sql-statement>
  1003. <sql-statement>
  1004. select json_extract_path('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',1::text);
  1005. </sql-statement>
  1006. <sql-statement>
  1007. select json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f4','f6');
  1008. </sql-statement>
  1009. <sql-statement>
  1010. select json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f2');
  1011. </sql-statement>
  1012. <sql-statement>
  1013. select json_extract_path_text('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',0::text);
  1014. </sql-statement>
  1015. <sql-statement>
  1016. select json_extract_path_text('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',1::text);
  1017. </sql-statement>
  1018. <sql-statement>
  1019. -- extract_path nulls
  1020. select json_extract_path('{"f2":{"f3":1},"f4":{"f5":null,"f6":"stringy"}}','f4','f5') is null as expect_false;
  1021. </sql-statement>
  1022. <sql-statement>
  1023. select json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":null,"f6":"stringy"}}','f4','f5') is null as expect_true;
  1024. </sql-statement>
  1025. <sql-statement>
  1026. select json_extract_path('{"f2":{"f3":1},"f4":[0,1,2,null]}','f4','3') is null as expect_false;
  1027. </sql-statement>
  1028. <sql-statement>
  1029. select json_extract_path_text('{"f2":{"f3":1},"f4":[0,1,2,null]}','f4','3') is null as expect_true;
  1030. </sql-statement>
  1031. <sql-statement>
  1032. -- extract_path operators
  1033. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f4','f6'];
  1034. </sql-statement>
  1035. -stdin-:<main>: Error: Type annotation
  1036. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1037. -- extract_path operators
  1038. ^
  1039. -stdin-:<main>:2:61: Error: At function: PgOp
  1040. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f4','f6'];
  1041. ^
  1042. -stdin-:<main>:2:61: Error: No such operator: #>
  1043. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f4','f6'];
  1044. ^
  1045. <sql-statement>
  1046. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2'];
  1047. </sql-statement>
  1048. -stdin-:<main>: Error: Type annotation
  1049. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1050. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2'];
  1051. ^
  1052. -stdin-:<main>:1:61: Error: At function: PgOp
  1053. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2'];
  1054. ^
  1055. -stdin-:<main>:1:61: Error: No such operator: #>
  1056. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2'];
  1057. ^
  1058. <sql-statement>
  1059. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','0'];
  1060. </sql-statement>
  1061. -stdin-:<main>: Error: Type annotation
  1062. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1063. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','0'];
  1064. ^
  1065. -stdin-:<main>:1:61: Error: At function: PgOp
  1066. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','0'];
  1067. ^
  1068. -stdin-:<main>:1:61: Error: No such operator: #>
  1069. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','0'];
  1070. ^
  1071. <sql-statement>
  1072. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','1'];
  1073. </sql-statement>
  1074. -stdin-:<main>: Error: Type annotation
  1075. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1076. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','1'];
  1077. ^
  1078. -stdin-:<main>:1:61: Error: At function: PgOp
  1079. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','1'];
  1080. ^
  1081. -stdin-:<main>:1:61: Error: No such operator: #>
  1082. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>array['f2','1'];
  1083. ^
  1084. <sql-statement>
  1085. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f4','f6'];
  1086. </sql-statement>
  1087. -stdin-:<main>: Error: Type annotation
  1088. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1089. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f4','f6'];
  1090. ^
  1091. -stdin-:<main>:1:61: Error: At function: PgOp
  1092. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f4','f6'];
  1093. ^
  1094. -stdin-:<main>:1:61: Error: No such operator: #>>
  1095. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f4','f6'];
  1096. ^
  1097. <sql-statement>
  1098. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2'];
  1099. </sql-statement>
  1100. -stdin-:<main>: Error: Type annotation
  1101. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1102. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2'];
  1103. ^
  1104. -stdin-:<main>:1:61: Error: At function: PgOp
  1105. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2'];
  1106. ^
  1107. -stdin-:<main>:1:61: Error: No such operator: #>>
  1108. select '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2'];
  1109. ^
  1110. <sql-statement>
  1111. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','0'];
  1112. </sql-statement>
  1113. -stdin-:<main>: Error: Type annotation
  1114. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1115. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','0'];
  1116. ^
  1117. -stdin-:<main>:1:61: Error: At function: PgOp
  1118. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','0'];
  1119. ^
  1120. -stdin-:<main>:1:61: Error: No such operator: #>>
  1121. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','0'];
  1122. ^
  1123. <sql-statement>
  1124. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','1'];
  1125. </sql-statement>
  1126. -stdin-:<main>: Error: Type annotation
  1127. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1128. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','1'];
  1129. ^
  1130. -stdin-:<main>:1:61: Error: At function: PgOp
  1131. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','1'];
  1132. ^
  1133. -stdin-:<main>:1:61: Error: No such operator: #>>
  1134. select '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::json#>>array['f2','1'];
  1135. ^
  1136. <sql-statement>
  1137. -- corner cases for same
  1138. select '{"a": {"b":{"c": "foo"}}}'::json #> '{}';
  1139. </sql-statement>
  1140. -stdin-:<main>: Error: Type annotation
  1141. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1142. -- corner cases for same
  1143. ^
  1144. -stdin-:<main>:2:42: Error: At function: PgOp
  1145. select '{"a": {"b":{"c": "foo"}}}'::json #> '{}';
  1146. ^
  1147. -stdin-:<main>:2:42: Error: No such operator: #>
  1148. select '{"a": {"b":{"c": "foo"}}}'::json #> '{}';
  1149. ^
  1150. <sql-statement>
  1151. select '[1,2,3]'::json #> '{}';
  1152. </sql-statement>
  1153. -stdin-:<main>: Error: Type annotation
  1154. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1155. select '[1,2,3]'::json #> '{}';
  1156. ^
  1157. -stdin-:<main>:1:24: Error: At function: PgOp
  1158. select '[1,2,3]'::json #> '{}';
  1159. ^
  1160. -stdin-:<main>:1:24: Error: No such operator: #>
  1161. select '[1,2,3]'::json #> '{}';
  1162. ^
  1163. <sql-statement>
  1164. select '"foo"'::json #> '{}';
  1165. </sql-statement>
  1166. -stdin-:<main>: Error: Type annotation
  1167. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1168. select '"foo"'::json #> '{}';
  1169. ^
  1170. -stdin-:<main>:1:22: Error: At function: PgOp
  1171. select '"foo"'::json #> '{}';
  1172. ^
  1173. -stdin-:<main>:1:22: Error: No such operator: #>
  1174. select '"foo"'::json #> '{}';
  1175. ^
  1176. <sql-statement>
  1177. select '42'::json #> '{}';
  1178. </sql-statement>
  1179. -stdin-:<main>: Error: Type annotation
  1180. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1181. select '42'::json #> '{}';
  1182. ^
  1183. -stdin-:<main>:1:19: Error: At function: PgOp
  1184. select '42'::json #> '{}';
  1185. ^
  1186. -stdin-:<main>:1:19: Error: No such operator: #>
  1187. select '42'::json #> '{}';
  1188. ^
  1189. <sql-statement>
  1190. select 'null'::json #> '{}';
  1191. </sql-statement>
  1192. -stdin-:<main>: Error: Type annotation
  1193. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1194. select 'null'::json #> '{}';
  1195. ^
  1196. -stdin-:<main>:1:21: Error: At function: PgOp
  1197. select 'null'::json #> '{}';
  1198. ^
  1199. -stdin-:<main>:1:21: Error: No such operator: #>
  1200. select 'null'::json #> '{}';
  1201. ^
  1202. <sql-statement>
  1203. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a'];
  1204. </sql-statement>
  1205. -stdin-:<main>: Error: Type annotation
  1206. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1207. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a'];
  1208. ^
  1209. -stdin-:<main>:1:42: Error: At function: PgOp
  1210. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a'];
  1211. ^
  1212. -stdin-:<main>:1:42: Error: No such operator: #>
  1213. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a'];
  1214. ^
  1215. <sql-statement>
  1216. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', null];
  1217. </sql-statement>
  1218. -stdin-:<main>: Error: Type annotation
  1219. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1220. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', null];
  1221. ^
  1222. -stdin-:<main>:1:42: Error: At function: PgOp
  1223. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', null];
  1224. ^
  1225. -stdin-:<main>:1:42: Error: No such operator: #>
  1226. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', null];
  1227. ^
  1228. <sql-statement>
  1229. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', ''];
  1230. </sql-statement>
  1231. -stdin-:<main>: Error: Type annotation
  1232. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1233. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', ''];
  1234. ^
  1235. -stdin-:<main>:1:42: Error: At function: PgOp
  1236. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', ''];
  1237. ^
  1238. -stdin-:<main>:1:42: Error: No such operator: #>
  1239. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a', ''];
  1240. ^
  1241. <sql-statement>
  1242. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b'];
  1243. </sql-statement>
  1244. -stdin-:<main>: Error: Type annotation
  1245. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1246. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b'];
  1247. ^
  1248. -stdin-:<main>:1:42: Error: At function: PgOp
  1249. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b'];
  1250. ^
  1251. -stdin-:<main>:1:42: Error: No such operator: #>
  1252. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b'];
  1253. ^
  1254. <sql-statement>
  1255. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c'];
  1256. </sql-statement>
  1257. -stdin-:<main>: Error: Type annotation
  1258. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1259. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c'];
  1260. ^
  1261. -stdin-:<main>:1:42: Error: At function: PgOp
  1262. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c'];
  1263. ^
  1264. -stdin-:<main>:1:42: Error: No such operator: #>
  1265. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c'];
  1266. ^
  1267. <sql-statement>
  1268. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c','d'];
  1269. </sql-statement>
  1270. -stdin-:<main>: Error: Type annotation
  1271. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1272. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c','d'];
  1273. ^
  1274. -stdin-:<main>:1:42: Error: At function: PgOp
  1275. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c','d'];
  1276. ^
  1277. -stdin-:<main>:1:42: Error: No such operator: #>
  1278. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','b','c','d'];
  1279. ^
  1280. <sql-statement>
  1281. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','z','c'];
  1282. </sql-statement>
  1283. -stdin-:<main>: Error: Type annotation
  1284. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1285. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','z','c'];
  1286. ^
  1287. -stdin-:<main>:1:42: Error: At function: PgOp
  1288. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','z','c'];
  1289. ^
  1290. -stdin-:<main>:1:42: Error: No such operator: #>
  1291. select '{"a": {"b":{"c": "foo"}}}'::json #> array['a','z','c'];
  1292. ^
  1293. <sql-statement>
  1294. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','1','b'];
  1295. </sql-statement>
  1296. -stdin-:<main>: Error: Type annotation
  1297. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1298. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','1','b'];
  1299. ^
  1300. -stdin-:<main>:1:49: Error: At function: PgOp
  1301. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','1','b'];
  1302. ^
  1303. -stdin-:<main>:1:49: Error: No such operator: #>
  1304. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','1','b'];
  1305. ^
  1306. <sql-statement>
  1307. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','z','b'];
  1308. </sql-statement>
  1309. -stdin-:<main>: Error: Type annotation
  1310. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1311. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','z','b'];
  1312. ^
  1313. -stdin-:<main>:1:49: Error: At function: PgOp
  1314. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','z','b'];
  1315. ^
  1316. -stdin-:<main>:1:49: Error: No such operator: #>
  1317. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #> array['a','z','b'];
  1318. ^
  1319. <sql-statement>
  1320. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['1','b'];
  1321. </sql-statement>
  1322. -stdin-:<main>: Error: Type annotation
  1323. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1324. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['1','b'];
  1325. ^
  1326. -stdin-:<main>:1:42: Error: At function: PgOp
  1327. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['1','b'];
  1328. ^
  1329. -stdin-:<main>:1:42: Error: No such operator: #>
  1330. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['1','b'];
  1331. ^
  1332. <sql-statement>
  1333. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['z','b'];
  1334. </sql-statement>
  1335. -stdin-:<main>: Error: Type annotation
  1336. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1337. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['z','b'];
  1338. ^
  1339. -stdin-:<main>:1:42: Error: At function: PgOp
  1340. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['z','b'];
  1341. ^
  1342. -stdin-:<main>:1:42: Error: No such operator: #>
  1343. select '[{"b": "c"}, {"b": "cc"}]'::json #> array['z','b'];
  1344. ^
  1345. <sql-statement>
  1346. select '[{"b": "c"}, {"b": null}]'::json #> array['1','b'];
  1347. </sql-statement>
  1348. -stdin-:<main>: Error: Type annotation
  1349. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1350. select '[{"b": "c"}, {"b": null}]'::json #> array['1','b'];
  1351. ^
  1352. -stdin-:<main>:1:42: Error: At function: PgOp
  1353. select '[{"b": "c"}, {"b": null}]'::json #> array['1','b'];
  1354. ^
  1355. -stdin-:<main>:1:42: Error: No such operator: #>
  1356. select '[{"b": "c"}, {"b": null}]'::json #> array['1','b'];
  1357. ^
  1358. <sql-statement>
  1359. select '"foo"'::json #> array['z'];
  1360. </sql-statement>
  1361. -stdin-:<main>: Error: Type annotation
  1362. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1363. select '"foo"'::json #> array['z'];
  1364. ^
  1365. -stdin-:<main>:1:22: Error: At function: PgOp
  1366. select '"foo"'::json #> array['z'];
  1367. ^
  1368. -stdin-:<main>:1:22: Error: No such operator: #>
  1369. select '"foo"'::json #> array['z'];
  1370. ^
  1371. <sql-statement>
  1372. select '42'::json #> array['f2'];
  1373. </sql-statement>
  1374. -stdin-:<main>: Error: Type annotation
  1375. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1376. select '42'::json #> array['f2'];
  1377. ^
  1378. -stdin-:<main>:1:19: Error: At function: PgOp
  1379. select '42'::json #> array['f2'];
  1380. ^
  1381. -stdin-:<main>:1:19: Error: No such operator: #>
  1382. select '42'::json #> array['f2'];
  1383. ^
  1384. <sql-statement>
  1385. select '42'::json #> array['0'];
  1386. </sql-statement>
  1387. -stdin-:<main>: Error: Type annotation
  1388. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1389. select '42'::json #> array['0'];
  1390. ^
  1391. -stdin-:<main>:1:19: Error: At function: PgOp
  1392. select '42'::json #> array['0'];
  1393. ^
  1394. -stdin-:<main>:1:19: Error: No such operator: #>
  1395. select '42'::json #> array['0'];
  1396. ^
  1397. <sql-statement>
  1398. select '{"a": {"b":{"c": "foo"}}}'::json #>> '{}';
  1399. </sql-statement>
  1400. -stdin-:<main>: Error: Type annotation
  1401. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1402. select '{"a": {"b":{"c": "foo"}}}'::json #>> '{}';
  1403. ^
  1404. -stdin-:<main>:1:42: Error: At function: PgOp
  1405. select '{"a": {"b":{"c": "foo"}}}'::json #>> '{}';
  1406. ^
  1407. -stdin-:<main>:1:42: Error: No such operator: #>>
  1408. select '{"a": {"b":{"c": "foo"}}}'::json #>> '{}';
  1409. ^
  1410. <sql-statement>
  1411. select '[1,2,3]'::json #>> '{}';
  1412. </sql-statement>
  1413. -stdin-:<main>: Error: Type annotation
  1414. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1415. select '[1,2,3]'::json #>> '{}';
  1416. ^
  1417. -stdin-:<main>:1:24: Error: At function: PgOp
  1418. select '[1,2,3]'::json #>> '{}';
  1419. ^
  1420. -stdin-:<main>:1:24: Error: No such operator: #>>
  1421. select '[1,2,3]'::json #>> '{}';
  1422. ^
  1423. <sql-statement>
  1424. select '"foo"'::json #>> '{}';
  1425. </sql-statement>
  1426. -stdin-:<main>: Error: Type annotation
  1427. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1428. select '"foo"'::json #>> '{}';
  1429. ^
  1430. -stdin-:<main>:1:22: Error: At function: PgOp
  1431. select '"foo"'::json #>> '{}';
  1432. ^
  1433. -stdin-:<main>:1:22: Error: No such operator: #>>
  1434. select '"foo"'::json #>> '{}';
  1435. ^
  1436. <sql-statement>
  1437. select '42'::json #>> '{}';
  1438. </sql-statement>
  1439. -stdin-:<main>: Error: Type annotation
  1440. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1441. select '42'::json #>> '{}';
  1442. ^
  1443. -stdin-:<main>:1:19: Error: At function: PgOp
  1444. select '42'::json #>> '{}';
  1445. ^
  1446. -stdin-:<main>:1:19: Error: No such operator: #>>
  1447. select '42'::json #>> '{}';
  1448. ^
  1449. <sql-statement>
  1450. select 'null'::json #>> '{}';
  1451. </sql-statement>
  1452. -stdin-:<main>: Error: Type annotation
  1453. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1454. select 'null'::json #>> '{}';
  1455. ^
  1456. -stdin-:<main>:1:21: Error: At function: PgOp
  1457. select 'null'::json #>> '{}';
  1458. ^
  1459. -stdin-:<main>:1:21: Error: No such operator: #>>
  1460. select 'null'::json #>> '{}';
  1461. ^
  1462. <sql-statement>
  1463. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a'];
  1464. </sql-statement>
  1465. -stdin-:<main>: Error: Type annotation
  1466. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1467. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a'];
  1468. ^
  1469. -stdin-:<main>:1:42: Error: At function: PgOp
  1470. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a'];
  1471. ^
  1472. -stdin-:<main>:1:42: Error: No such operator: #>>
  1473. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a'];
  1474. ^
  1475. <sql-statement>
  1476. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', null];
  1477. </sql-statement>
  1478. -stdin-:<main>: Error: Type annotation
  1479. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1480. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', null];
  1481. ^
  1482. -stdin-:<main>:1:42: Error: At function: PgOp
  1483. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', null];
  1484. ^
  1485. -stdin-:<main>:1:42: Error: No such operator: #>>
  1486. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', null];
  1487. ^
  1488. <sql-statement>
  1489. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', ''];
  1490. </sql-statement>
  1491. -stdin-:<main>: Error: Type annotation
  1492. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1493. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', ''];
  1494. ^
  1495. -stdin-:<main>:1:42: Error: At function: PgOp
  1496. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', ''];
  1497. ^
  1498. -stdin-:<main>:1:42: Error: No such operator: #>>
  1499. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a', ''];
  1500. ^
  1501. <sql-statement>
  1502. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b'];
  1503. </sql-statement>
  1504. -stdin-:<main>: Error: Type annotation
  1505. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1506. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b'];
  1507. ^
  1508. -stdin-:<main>:1:42: Error: At function: PgOp
  1509. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b'];
  1510. ^
  1511. -stdin-:<main>:1:42: Error: No such operator: #>>
  1512. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b'];
  1513. ^
  1514. <sql-statement>
  1515. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c'];
  1516. </sql-statement>
  1517. -stdin-:<main>: Error: Type annotation
  1518. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1519. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c'];
  1520. ^
  1521. -stdin-:<main>:1:42: Error: At function: PgOp
  1522. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c'];
  1523. ^
  1524. -stdin-:<main>:1:42: Error: No such operator: #>>
  1525. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c'];
  1526. ^
  1527. <sql-statement>
  1528. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c','d'];
  1529. </sql-statement>
  1530. -stdin-:<main>: Error: Type annotation
  1531. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1532. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c','d'];
  1533. ^
  1534. -stdin-:<main>:1:42: Error: At function: PgOp
  1535. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c','d'];
  1536. ^
  1537. -stdin-:<main>:1:42: Error: No such operator: #>>
  1538. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','b','c','d'];
  1539. ^
  1540. <sql-statement>
  1541. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','z','c'];
  1542. </sql-statement>
  1543. -stdin-:<main>: Error: Type annotation
  1544. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1545. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','z','c'];
  1546. ^
  1547. -stdin-:<main>:1:42: Error: At function: PgOp
  1548. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','z','c'];
  1549. ^
  1550. -stdin-:<main>:1:42: Error: No such operator: #>>
  1551. select '{"a": {"b":{"c": "foo"}}}'::json #>> array['a','z','c'];
  1552. ^
  1553. <sql-statement>
  1554. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','1','b'];
  1555. </sql-statement>
  1556. -stdin-:<main>: Error: Type annotation
  1557. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1558. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','1','b'];
  1559. ^
  1560. -stdin-:<main>:1:49: Error: At function: PgOp
  1561. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','1','b'];
  1562. ^
  1563. -stdin-:<main>:1:49: Error: No such operator: #>>
  1564. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','1','b'];
  1565. ^
  1566. <sql-statement>
  1567. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','z','b'];
  1568. </sql-statement>
  1569. -stdin-:<main>: Error: Type annotation
  1570. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1571. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','z','b'];
  1572. ^
  1573. -stdin-:<main>:1:49: Error: At function: PgOp
  1574. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','z','b'];
  1575. ^
  1576. -stdin-:<main>:1:49: Error: No such operator: #>>
  1577. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::json #>> array['a','z','b'];
  1578. ^
  1579. <sql-statement>
  1580. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['1','b'];
  1581. </sql-statement>
  1582. -stdin-:<main>: Error: Type annotation
  1583. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1584. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['1','b'];
  1585. ^
  1586. -stdin-:<main>:1:42: Error: At function: PgOp
  1587. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['1','b'];
  1588. ^
  1589. -stdin-:<main>:1:42: Error: No such operator: #>>
  1590. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['1','b'];
  1591. ^
  1592. <sql-statement>
  1593. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['z','b'];
  1594. </sql-statement>
  1595. -stdin-:<main>: Error: Type annotation
  1596. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1597. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['z','b'];
  1598. ^
  1599. -stdin-:<main>:1:42: Error: At function: PgOp
  1600. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['z','b'];
  1601. ^
  1602. -stdin-:<main>:1:42: Error: No such operator: #>>
  1603. select '[{"b": "c"}, {"b": "cc"}]'::json #>> array['z','b'];
  1604. ^
  1605. <sql-statement>
  1606. select '[{"b": "c"}, {"b": null}]'::json #>> array['1','b'];
  1607. </sql-statement>
  1608. -stdin-:<main>: Error: Type annotation
  1609. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1610. select '[{"b": "c"}, {"b": null}]'::json #>> array['1','b'];
  1611. ^
  1612. -stdin-:<main>:1:42: Error: At function: PgOp
  1613. select '[{"b": "c"}, {"b": null}]'::json #>> array['1','b'];
  1614. ^
  1615. -stdin-:<main>:1:42: Error: No such operator: #>>
  1616. select '[{"b": "c"}, {"b": null}]'::json #>> array['1','b'];
  1617. ^
  1618. <sql-statement>
  1619. select '"foo"'::json #>> array['z'];
  1620. </sql-statement>
  1621. -stdin-:<main>: Error: Type annotation
  1622. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1623. select '"foo"'::json #>> array['z'];
  1624. ^
  1625. -stdin-:<main>:1:22: Error: At function: PgOp
  1626. select '"foo"'::json #>> array['z'];
  1627. ^
  1628. -stdin-:<main>:1:22: Error: No such operator: #>>
  1629. select '"foo"'::json #>> array['z'];
  1630. ^
  1631. <sql-statement>
  1632. select '42'::json #>> array['f2'];
  1633. </sql-statement>
  1634. -stdin-:<main>: Error: Type annotation
  1635. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1636. select '42'::json #>> array['f2'];
  1637. ^
  1638. -stdin-:<main>:1:19: Error: At function: PgOp
  1639. select '42'::json #>> array['f2'];
  1640. ^
  1641. -stdin-:<main>:1:19: Error: No such operator: #>>
  1642. select '42'::json #>> array['f2'];
  1643. ^
  1644. <sql-statement>
  1645. select '42'::json #>> array['0'];
  1646. </sql-statement>
  1647. -stdin-:<main>: Error: Type annotation
  1648. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1649. select '42'::json #>> array['0'];
  1650. ^
  1651. -stdin-:<main>:1:19: Error: At function: PgOp
  1652. select '42'::json #>> array['0'];
  1653. ^
  1654. -stdin-:<main>:1:19: Error: No such operator: #>>
  1655. select '42'::json #>> array['0'];
  1656. ^
  1657. <sql-statement>
  1658. -- array_elements
  1659. select json_array_elements('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]');
  1660. </sql-statement>
  1661. -stdin-:<main>: Error: Parse Sql
  1662. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  1663. select json_array_elements('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]');
  1664. ^
  1665. <sql-statement>
  1666. select * from json_array_elements('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]') q;
  1667. </sql-statement>
  1668. <sql-statement>
  1669. select json_array_elements_text('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]');
  1670. </sql-statement>
  1671. -stdin-:<main>: Error: Parse Sql
  1672. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  1673. select json_array_elements_text('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]');
  1674. ^
  1675. <sql-statement>
  1676. select * from json_array_elements_text('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]') q;
  1677. </sql-statement>
  1678. <sql-statement>
  1679. -- populate_record
  1680. create type jpop as (a text, b int, c timestamp);
  1681. </sql-statement>
  1682. -stdin-:<main>: Error: Parse Sql
  1683. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  1684. -- populate_record
  1685. ^
  1686. <sql-statement>
  1687. CREATE DOMAIN js_int_not_null AS int NOT NULL;
  1688. </sql-statement>
  1689. -stdin-:<main>: Error: Parse Sql
  1690. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  1691. CREATE DOMAIN js_int_not_null AS int NOT NULL;
  1692. ^
  1693. <sql-statement>
  1694. CREATE DOMAIN js_int_array_1d AS int[] CHECK(array_length(VALUE, 1) = 3);
  1695. </sql-statement>
  1696. -stdin-:<main>: Error: Parse Sql
  1697. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  1698. CREATE DOMAIN js_int_array_1d AS int[] CHECK(array_length(VALUE, 1) = 3);
  1699. ^
  1700. <sql-statement>
  1701. CREATE DOMAIN js_int_array_2d AS int[][] CHECK(array_length(VALUE, 2) = 3);
  1702. </sql-statement>
  1703. -stdin-:<main>: Error: Parse Sql
  1704. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  1705. CREATE DOMAIN js_int_array_2d AS int[][] CHECK(array_length(VALUE, 2) = 3);
  1706. ^
  1707. <sql-statement>
  1708. create type j_unordered_pair as (x int, y int);
  1709. </sql-statement>
  1710. -stdin-:<main>: Error: Parse Sql
  1711. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  1712. create type j_unordered_pair as (x int, y int);
  1713. ^
  1714. <sql-statement>
  1715. create domain j_ordered_pair as j_unordered_pair check((value).x <= (value).y);
  1716. </sql-statement>
  1717. -stdin-:<main>: Error: Parse Sql
  1718. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  1719. create domain j_ordered_pair as j_unordered_pair check((value).x <= (value).y);
  1720. ^
  1721. <sql-statement>
  1722. CREATE TYPE jsrec AS (
  1723. i int,
  1724. ia _int4,
  1725. ia1 int[],
  1726. ia2 int[][],
  1727. ia3 int[][][],
  1728. ia1d js_int_array_1d,
  1729. ia2d js_int_array_2d,
  1730. t text,
  1731. ta text[],
  1732. c char(10),
  1733. ca char(10)[],
  1734. ts timestamp,
  1735. js json,
  1736. jsb jsonb,
  1737. jsa json[],
  1738. rec jpop,
  1739. reca jpop[]
  1740. );
  1741. </sql-statement>
  1742. -stdin-:<main>: Error: Parse Sql
  1743. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  1744. CREATE TYPE jsrec AS (
  1745. ^
  1746. <sql-statement>
  1747. CREATE TYPE jsrec_i_not_null AS (
  1748. i js_int_not_null
  1749. );
  1750. </sql-statement>
  1751. -stdin-:<main>: Error: Parse Sql
  1752. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  1753. CREATE TYPE jsrec_i_not_null AS (
  1754. ^
  1755. <sql-statement>
  1756. select * from json_populate_record(null::jpop,'{"a":"blurfl","x":43.2}') q;
  1757. </sql-statement>
  1758. -stdin-:<main>: Error: Parse Sql
  1759. -stdin-:<main>:1:42: Error: Unknown type: jpop
  1760. select * from json_populate_record(null::jpop,'{"a":"blurfl","x":43.2}') q;
  1761. ^
  1762. <sql-statement>
  1763. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"a":"blurfl","x":43.2}') q;
  1764. </sql-statement>
  1765. -stdin-:<main>: Error: Parse Sql
  1766. -stdin-:<main>:1:70: Error: alternative is not implemented yet : 138
  1767. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"a":"blurfl","x":43.2}') q;
  1768. ^
  1769. <sql-statement>
  1770. select * from json_populate_record(null::jpop,'{"a":"blurfl","x":43.2}') q;
  1771. </sql-statement>
  1772. -stdin-:<main>: Error: Parse Sql
  1773. -stdin-:<main>:1:42: Error: Unknown type: jpop
  1774. select * from json_populate_record(null::jpop,'{"a":"blurfl","x":43.2}') q;
  1775. ^
  1776. <sql-statement>
  1777. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"a":"blurfl","x":43.2}') q;
  1778. </sql-statement>
  1779. -stdin-:<main>: Error: Parse Sql
  1780. -stdin-:<main>:1:70: Error: alternative is not implemented yet : 138
  1781. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"a":"blurfl","x":43.2}') q;
  1782. ^
  1783. <sql-statement>
  1784. select * from json_populate_record(null::jpop,'{"a":[100,200,false],"x":43.2}') q;
  1785. </sql-statement>
  1786. -stdin-:<main>: Error: Parse Sql
  1787. -stdin-:<main>:1:42: Error: Unknown type: jpop
  1788. select * from json_populate_record(null::jpop,'{"a":[100,200,false],"x":43.2}') q;
  1789. ^
  1790. <sql-statement>
  1791. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"a":[100,200,false],"x":43.2}') q;
  1792. </sql-statement>
  1793. -stdin-:<main>: Error: Parse Sql
  1794. -stdin-:<main>:1:70: Error: alternative is not implemented yet : 138
  1795. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"a":[100,200,false],"x":43.2}') q;
  1796. ^
  1797. <sql-statement>
  1798. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"c":[100,200,false],"x":43.2}') q;
  1799. </sql-statement>
  1800. -stdin-:<main>: Error: Parse Sql
  1801. -stdin-:<main>:1:70: Error: alternative is not implemented yet : 138
  1802. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{"c":[100,200,false],"x":43.2}') q;
  1803. ^
  1804. <sql-statement>
  1805. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{}') q;
  1806. </sql-statement>
  1807. -stdin-:<main>: Error: Parse Sql
  1808. -stdin-:<main>:1:70: Error: alternative is not implemented yet : 138
  1809. select * from json_populate_record(row('x',3,'2012-12-31 15:30:56')::jpop,'{}') q;
  1810. ^
  1811. <sql-statement>
  1812. SELECT i FROM json_populate_record(NULL::jsrec_i_not_null, '{"x": 43.2}') q;
  1813. </sql-statement>
  1814. -stdin-:<main>: Error: Parse Sql
  1815. -stdin-:<main>:1:42: Error: Unknown type: jsrec_i_not_null
  1816. SELECT i FROM json_populate_record(NULL::jsrec_i_not_null, '{"x": 43.2}') q;
  1817. ^
  1818. <sql-statement>
  1819. SELECT i FROM json_populate_record(NULL::jsrec_i_not_null, '{"i": null}') q;
  1820. </sql-statement>
  1821. -stdin-:<main>: Error: Parse Sql
  1822. -stdin-:<main>:1:42: Error: Unknown type: jsrec_i_not_null
  1823. SELECT i FROM json_populate_record(NULL::jsrec_i_not_null, '{"i": null}') q;
  1824. ^
  1825. <sql-statement>
  1826. SELECT i FROM json_populate_record(NULL::jsrec_i_not_null, '{"i": 12345}') q;
  1827. </sql-statement>
  1828. -stdin-:<main>: Error: Parse Sql
  1829. -stdin-:<main>:1:42: Error: Unknown type: jsrec_i_not_null
  1830. SELECT i FROM json_populate_record(NULL::jsrec_i_not_null, '{"i": 12345}') q;
  1831. ^
  1832. <sql-statement>
  1833. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": null}') q;
  1834. </sql-statement>
  1835. -stdin-:<main>: Error: Parse Sql
  1836. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1837. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": null}') q;
  1838. ^
  1839. <sql-statement>
  1840. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": 123}') q;
  1841. </sql-statement>
  1842. -stdin-:<main>: Error: Parse Sql
  1843. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1844. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": 123}') q;
  1845. ^
  1846. <sql-statement>
  1847. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [1, "2", null, 4]}') q;
  1848. </sql-statement>
  1849. -stdin-:<main>: Error: Parse Sql
  1850. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1851. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [1, "2", null, 4]}') q;
  1852. ^
  1853. <sql-statement>
  1854. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1, 2], [3, 4]]}') q;
  1855. </sql-statement>
  1856. -stdin-:<main>: Error: Parse Sql
  1857. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1858. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1, 2], [3, 4]]}') q;
  1859. ^
  1860. <sql-statement>
  1861. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1], 2]}') q;
  1862. </sql-statement>
  1863. -stdin-:<main>: Error: Parse Sql
  1864. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1865. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1], 2]}') q;
  1866. ^
  1867. <sql-statement>
  1868. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1], [2, 3]]}') q;
  1869. </sql-statement>
  1870. -stdin-:<main>: Error: Parse Sql
  1871. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1872. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": [[1], [2, 3]]}') q;
  1873. ^
  1874. <sql-statement>
  1875. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": "{1,2,3}"}') q;
  1876. </sql-statement>
  1877. -stdin-:<main>: Error: Parse Sql
  1878. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  1879. SELECT ia FROM json_populate_record(NULL::jsrec, '{"ia": "{1,2,3}"}') q;
  1880. ^
  1881. <sql-statement>
  1882. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": null}') q;
  1883. </sql-statement>
  1884. -stdin-:<main>: Error: Parse Sql
  1885. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1886. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": null}') q;
  1887. ^
  1888. <sql-statement>
  1889. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": 123}') q;
  1890. </sql-statement>
  1891. -stdin-:<main>: Error: Parse Sql
  1892. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1893. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": 123}') q;
  1894. ^
  1895. <sql-statement>
  1896. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": [1, "2", null, 4]}') q;
  1897. </sql-statement>
  1898. -stdin-:<main>: Error: Parse Sql
  1899. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1900. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": [1, "2", null, 4]}') q;
  1901. ^
  1902. <sql-statement>
  1903. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": [[1, 2, 3]]}') q;
  1904. </sql-statement>
  1905. -stdin-:<main>: Error: Parse Sql
  1906. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1907. SELECT ia1 FROM json_populate_record(NULL::jsrec, '{"ia1": [[1, 2, 3]]}') q;
  1908. ^
  1909. <sql-statement>
  1910. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": null}') q;
  1911. </sql-statement>
  1912. -stdin-:<main>: Error: Parse Sql
  1913. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  1914. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": null}') q;
  1915. ^
  1916. <sql-statement>
  1917. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": 123}') q;
  1918. </sql-statement>
  1919. -stdin-:<main>: Error: Parse Sql
  1920. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  1921. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": 123}') q;
  1922. ^
  1923. <sql-statement>
  1924. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": [1, "2", null, 4]}') q;
  1925. </sql-statement>
  1926. -stdin-:<main>: Error: Parse Sql
  1927. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  1928. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": [1, "2", null, 4]}') q;
  1929. ^
  1930. <sql-statement>
  1931. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": [1, "2", null]}') q;
  1932. </sql-statement>
  1933. -stdin-:<main>: Error: Parse Sql
  1934. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  1935. SELECT ia1d FROM json_populate_record(NULL::jsrec, '{"ia1d": [1, "2", null]}') q;
  1936. ^
  1937. <sql-statement>
  1938. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [1, "2", null, 4]}') q;
  1939. </sql-statement>
  1940. -stdin-:<main>: Error: Parse Sql
  1941. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1942. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [1, "2", null, 4]}') q;
  1943. ^
  1944. <sql-statement>
  1945. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], [null, 4]]}') q;
  1946. </sql-statement>
  1947. -stdin-:<main>: Error: Parse Sql
  1948. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1949. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], [null, 4]]}') q;
  1950. ^
  1951. <sql-statement>
  1952. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[], []]}') q;
  1953. </sql-statement>
  1954. -stdin-:<main>: Error: Parse Sql
  1955. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1956. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[], []]}') q;
  1957. ^
  1958. <sql-statement>
  1959. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], [3]]}') q;
  1960. </sql-statement>
  1961. -stdin-:<main>: Error: Parse Sql
  1962. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1963. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], [3]]}') q;
  1964. ^
  1965. <sql-statement>
  1966. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], 3, 4]}') q;
  1967. </sql-statement>
  1968. -stdin-:<main>: Error: Parse Sql
  1969. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1970. SELECT ia2 FROM json_populate_record(NULL::jsrec, '{"ia2": [[1, 2], 3, 4]}') q;
  1971. ^
  1972. <sql-statement>
  1973. SELECT ia2d FROM json_populate_record(NULL::jsrec, '{"ia2d": [[1, "2"], [null, 4]]}') q;
  1974. </sql-statement>
  1975. -stdin-:<main>: Error: Parse Sql
  1976. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  1977. SELECT ia2d FROM json_populate_record(NULL::jsrec, '{"ia2d": [[1, "2"], [null, 4]]}') q;
  1978. ^
  1979. <sql-statement>
  1980. SELECT ia2d FROM json_populate_record(NULL::jsrec, '{"ia2d": [[1, "2", 3], [null, 5, 6]]}') q;
  1981. </sql-statement>
  1982. -stdin-:<main>: Error: Parse Sql
  1983. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  1984. SELECT ia2d FROM json_populate_record(NULL::jsrec, '{"ia2d": [[1, "2", 3], [null, 5, 6]]}') q;
  1985. ^
  1986. <sql-statement>
  1987. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [1, "2", null, 4]}') q;
  1988. </sql-statement>
  1989. -stdin-:<main>: Error: Parse Sql
  1990. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1991. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [1, "2", null, 4]}') q;
  1992. ^
  1993. <sql-statement>
  1994. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [[1, 2], [null, 4]]}') q;
  1995. </sql-statement>
  1996. -stdin-:<main>: Error: Parse Sql
  1997. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  1998. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [[1, 2], [null, 4]]}') q;
  1999. ^
  2000. <sql-statement>
  2001. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[], []], [[], []], [[], []] ]}') q;
  2002. </sql-statement>
  2003. -stdin-:<main>: Error: Parse Sql
  2004. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2005. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[], []], [[], []], [[], []] ]}') q;
  2006. ^
  2007. <sql-statement>
  2008. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[1, 2]], [[3, 4]] ]}') q;
  2009. </sql-statement>
  2010. -stdin-:<main>: Error: Parse Sql
  2011. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2012. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[1, 2]], [[3, 4]] ]}') q;
  2013. ^
  2014. <sql-statement>
  2015. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8]] ]}') q;
  2016. </sql-statement>
  2017. -stdin-:<main>: Error: Parse Sql
  2018. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2019. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8]] ]}') q;
  2020. ^
  2021. <sql-statement>
  2022. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8], [9, 10]] ]}') q;
  2023. </sql-statement>
  2024. -stdin-:<main>: Error: Parse Sql
  2025. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2026. SELECT ia3 FROM json_populate_record(NULL::jsrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8], [9, 10]] ]}') q;
  2027. ^
  2028. <sql-statement>
  2029. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": null}') q;
  2030. </sql-statement>
  2031. -stdin-:<main>: Error: Parse Sql
  2032. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2033. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": null}') q;
  2034. ^
  2035. <sql-statement>
  2036. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": 123}') q;
  2037. </sql-statement>
  2038. -stdin-:<main>: Error: Parse Sql
  2039. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2040. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": 123}') q;
  2041. ^
  2042. <sql-statement>
  2043. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [1, "2", null, 4]}') q;
  2044. </sql-statement>
  2045. -stdin-:<main>: Error: Parse Sql
  2046. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2047. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [1, "2", null, 4]}') q;
  2048. ^
  2049. <sql-statement>
  2050. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [[1, 2, 3], {"k": "v"}]}') q;
  2051. </sql-statement>
  2052. -stdin-:<main>: Error: Parse Sql
  2053. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2054. SELECT ta FROM json_populate_record(NULL::jsrec, '{"ta": [[1, 2, 3], {"k": "v"}]}') q;
  2055. ^
  2056. <sql-statement>
  2057. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": null}') q;
  2058. </sql-statement>
  2059. -stdin-:<main>: Error: Parse Sql
  2060. -stdin-:<main>:1:42: Error: Unknown type: jsrec
  2061. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": null}') q;
  2062. ^
  2063. <sql-statement>
  2064. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": "aaa"}') q;
  2065. </sql-statement>
  2066. -stdin-:<main>: Error: Parse Sql
  2067. -stdin-:<main>:1:42: Error: Unknown type: jsrec
  2068. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": "aaa"}') q;
  2069. ^
  2070. <sql-statement>
  2071. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": "aaaaaaaaaa"}') q;
  2072. </sql-statement>
  2073. -stdin-:<main>: Error: Parse Sql
  2074. -stdin-:<main>:1:42: Error: Unknown type: jsrec
  2075. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": "aaaaaaaaaa"}') q;
  2076. ^
  2077. <sql-statement>
  2078. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": "aaaaaaaaaaaaa"}') q;
  2079. </sql-statement>
  2080. -stdin-:<main>: Error: Parse Sql
  2081. -stdin-:<main>:1:42: Error: Unknown type: jsrec
  2082. SELECT c FROM json_populate_record(NULL::jsrec, '{"c": "aaaaaaaaaaaaa"}') q;
  2083. ^
  2084. <sql-statement>
  2085. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": null}') q;
  2086. </sql-statement>
  2087. -stdin-:<main>: Error: Parse Sql
  2088. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2089. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": null}') q;
  2090. ^
  2091. <sql-statement>
  2092. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": 123}') q;
  2093. </sql-statement>
  2094. -stdin-:<main>: Error: Parse Sql
  2095. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2096. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": 123}') q;
  2097. ^
  2098. <sql-statement>
  2099. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": [1, "2", null, 4]}') q;
  2100. </sql-statement>
  2101. -stdin-:<main>: Error: Parse Sql
  2102. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2103. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": [1, "2", null, 4]}') q;
  2104. ^
  2105. <sql-statement>
  2106. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": ["aaaaaaaaaaaaaaaa"]}') q;
  2107. </sql-statement>
  2108. -stdin-:<main>: Error: Parse Sql
  2109. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2110. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": ["aaaaaaaaaaaaaaaa"]}') q;
  2111. ^
  2112. <sql-statement>
  2113. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": [[1, 2, 3], {"k": "v"}]}') q;
  2114. </sql-statement>
  2115. -stdin-:<main>: Error: Parse Sql
  2116. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2117. SELECT ca FROM json_populate_record(NULL::jsrec, '{"ca": [[1, 2, 3], {"k": "v"}]}') q;
  2118. ^
  2119. <sql-statement>
  2120. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": null}') q;
  2121. </sql-statement>
  2122. -stdin-:<main>: Error: Parse Sql
  2123. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2124. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": null}') q;
  2125. ^
  2126. <sql-statement>
  2127. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": true}') q;
  2128. </sql-statement>
  2129. -stdin-:<main>: Error: Parse Sql
  2130. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2131. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": true}') q;
  2132. ^
  2133. <sql-statement>
  2134. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": 123.45}') q;
  2135. </sql-statement>
  2136. -stdin-:<main>: Error: Parse Sql
  2137. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2138. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": 123.45}') q;
  2139. ^
  2140. <sql-statement>
  2141. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": "123.45"}') q;
  2142. </sql-statement>
  2143. -stdin-:<main>: Error: Parse Sql
  2144. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2145. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": "123.45"}') q;
  2146. ^
  2147. <sql-statement>
  2148. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": "abc"}') q;
  2149. </sql-statement>
  2150. -stdin-:<main>: Error: Parse Sql
  2151. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2152. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": "abc"}') q;
  2153. ^
  2154. <sql-statement>
  2155. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": [123, "123", null, {"key": "value"}]}') q;
  2156. </sql-statement>
  2157. -stdin-:<main>: Error: Parse Sql
  2158. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2159. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": [123, "123", null, {"key": "value"}]}') q;
  2160. ^
  2161. <sql-statement>
  2162. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2163. </sql-statement>
  2164. -stdin-:<main>: Error: Parse Sql
  2165. -stdin-:<main>:1:43: Error: Unknown type: jsrec
  2166. SELECT js FROM json_populate_record(NULL::jsrec, '{"js": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2167. ^
  2168. <sql-statement>
  2169. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": null}') q;
  2170. </sql-statement>
  2171. -stdin-:<main>: Error: Parse Sql
  2172. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2173. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": null}') q;
  2174. ^
  2175. <sql-statement>
  2176. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": true}') q;
  2177. </sql-statement>
  2178. -stdin-:<main>: Error: Parse Sql
  2179. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2180. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": true}') q;
  2181. ^
  2182. <sql-statement>
  2183. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": 123.45}') q;
  2184. </sql-statement>
  2185. -stdin-:<main>: Error: Parse Sql
  2186. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2187. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": 123.45}') q;
  2188. ^
  2189. <sql-statement>
  2190. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": "123.45"}') q;
  2191. </sql-statement>
  2192. -stdin-:<main>: Error: Parse Sql
  2193. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2194. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": "123.45"}') q;
  2195. ^
  2196. <sql-statement>
  2197. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": "abc"}') q;
  2198. </sql-statement>
  2199. -stdin-:<main>: Error: Parse Sql
  2200. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2201. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": "abc"}') q;
  2202. ^
  2203. <sql-statement>
  2204. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": [123, "123", null, {"key": "value"}]}') q;
  2205. </sql-statement>
  2206. -stdin-:<main>: Error: Parse Sql
  2207. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2208. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": [123, "123", null, {"key": "value"}]}') q;
  2209. ^
  2210. <sql-statement>
  2211. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2212. </sql-statement>
  2213. -stdin-:<main>: Error: Parse Sql
  2214. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2215. SELECT jsb FROM json_populate_record(NULL::jsrec, '{"jsb": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2216. ^
  2217. <sql-statement>
  2218. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": null}') q;
  2219. </sql-statement>
  2220. -stdin-:<main>: Error: Parse Sql
  2221. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2222. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": null}') q;
  2223. ^
  2224. <sql-statement>
  2225. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": 123}') q;
  2226. </sql-statement>
  2227. -stdin-:<main>: Error: Parse Sql
  2228. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2229. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": 123}') q;
  2230. ^
  2231. <sql-statement>
  2232. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": [1, "2", null, 4]}') q;
  2233. </sql-statement>
  2234. -stdin-:<main>: Error: Parse Sql
  2235. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2236. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": [1, "2", null, 4]}') q;
  2237. ^
  2238. <sql-statement>
  2239. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": ["aaa", null, [1, 2, "3", {}], { "k" : "v" }]}') q;
  2240. </sql-statement>
  2241. -stdin-:<main>: Error: Parse Sql
  2242. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2243. SELECT jsa FROM json_populate_record(NULL::jsrec, '{"jsa": ["aaa", null, [1, 2, "3", {}], { "k" : "v" }]}') q;
  2244. ^
  2245. <sql-statement>
  2246. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": 123}') q;
  2247. </sql-statement>
  2248. -stdin-:<main>: Error: Parse Sql
  2249. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2250. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": 123}') q;
  2251. ^
  2252. <sql-statement>
  2253. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": [1, 2]}') q;
  2254. </sql-statement>
  2255. -stdin-:<main>: Error: Parse Sql
  2256. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2257. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": [1, 2]}') q;
  2258. ^
  2259. <sql-statement>
  2260. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": {"a": "abc", "c": "01.02.2003", "x": 43.2}}') q;
  2261. </sql-statement>
  2262. -stdin-:<main>: Error: Parse Sql
  2263. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2264. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": {"a": "abc", "c": "01.02.2003", "x": 43.2}}') q;
  2265. ^
  2266. <sql-statement>
  2267. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": "(abc,42,01.02.2003)"}') q;
  2268. </sql-statement>
  2269. -stdin-:<main>: Error: Parse Sql
  2270. -stdin-:<main>:1:44: Error: Unknown type: jsrec
  2271. SELECT rec FROM json_populate_record(NULL::jsrec, '{"rec": "(abc,42,01.02.2003)"}') q;
  2272. ^
  2273. <sql-statement>
  2274. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": 123}') q;
  2275. </sql-statement>
  2276. -stdin-:<main>: Error: Parse Sql
  2277. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  2278. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": 123}') q;
  2279. ^
  2280. <sql-statement>
  2281. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": [1, 2]}') q;
  2282. </sql-statement>
  2283. -stdin-:<main>: Error: Parse Sql
  2284. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  2285. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": [1, 2]}') q;
  2286. ^
  2287. <sql-statement>
  2288. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]}') q;
  2289. </sql-statement>
  2290. -stdin-:<main>: Error: Parse Sql
  2291. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  2292. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]}') q;
  2293. ^
  2294. <sql-statement>
  2295. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": ["(abc,42,01.02.2003)"]}') q;
  2296. </sql-statement>
  2297. -stdin-:<main>: Error: Parse Sql
  2298. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  2299. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": ["(abc,42,01.02.2003)"]}') q;
  2300. ^
  2301. <sql-statement>
  2302. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": "{\"(abc,42,01.02.2003)\"}"}') q;
  2303. </sql-statement>
  2304. -stdin-:<main>: Error: Parse Sql
  2305. -stdin-:<main>:1:45: Error: Unknown type: jsrec
  2306. SELECT reca FROM json_populate_record(NULL::jsrec, '{"reca": "{\"(abc,42,01.02.2003)\"}"}') q;
  2307. ^
  2308. <sql-statement>
  2309. SELECT rec FROM json_populate_record(
  2310. row(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
  2311. row('x',3,'2012-12-31 15:30:56')::jpop,NULL)::jsrec,
  2312. '{"rec": {"a": "abc", "c": "01.02.2003", "x": 43.2}}'
  2313. ) q;
  2314. </sql-statement>
  2315. -stdin-:<main>: Error: Parse Sql
  2316. -stdin-:<main>:3:49: Error: alternative is not implemented yet : 138
  2317. row('x',3,'2012-12-31 15:30:56')::jpop,NULL)::jsrec,
  2318. ^
  2319. <sql-statement>
  2320. -- anonymous record type
  2321. SELECT json_populate_record(null::record, '{"x": 0, "y": 1}');
  2322. </sql-statement>
  2323. -stdin-:<main>: Error: Type annotation
  2324. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2325. -- anonymous record type
  2326. ^
  2327. -stdin-:<main>:2:8: Error: At function: PgCall
  2328. SELECT json_populate_record(null::record, '{"x": 0, "y": 1}');
  2329. ^
  2330. -stdin-:<main>:2:8: Error: Unable to find an overload for proc json_populate_record with given argument types: (record,unknown)
  2331. SELECT json_populate_record(null::record, '{"x": 0, "y": 1}');
  2332. ^
  2333. <sql-statement>
  2334. SELECT json_populate_record(row(1,2), '{"f1": 0, "f2": 1}');
  2335. </sql-statement>
  2336. -stdin-:<main>: Error: Parse Sql
  2337. -stdin-:<main>:1:8: Error: alternative is not implemented yet : 138
  2338. SELECT json_populate_record(row(1,2), '{"f1": 0, "f2": 1}');
  2339. ^
  2340. <sql-statement>
  2341. SELECT * FROM
  2342. json_populate_record(null::record, '{"x": 776}') AS (x int, y int);
  2343. </sql-statement>
  2344. -stdin-:<main>: Error: Parse Sql
  2345. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2346. SELECT * FROM
  2347. ^
  2348. <sql-statement>
  2349. -- composite domain
  2350. SELECT json_populate_record(null::j_ordered_pair, '{"x": 0, "y": 1}');
  2351. </sql-statement>
  2352. -stdin-:<main>: Error: Parse Sql
  2353. -stdin-:<main>:2:35: Error: Unknown type: j_ordered_pair
  2354. SELECT json_populate_record(null::j_ordered_pair, '{"x": 0, "y": 1}');
  2355. ^
  2356. <sql-statement>
  2357. SELECT json_populate_record(row(1,2)::j_ordered_pair, '{"x": 0}');
  2358. </sql-statement>
  2359. -stdin-:<main>: Error: Parse Sql
  2360. -stdin-:<main>:1:39: Error: alternative is not implemented yet : 138
  2361. SELECT json_populate_record(row(1,2)::j_ordered_pair, '{"x": 0}');
  2362. ^
  2363. <sql-statement>
  2364. SELECT json_populate_record(row(1,2)::j_ordered_pair, '{"x": 1, "y": 0}');
  2365. </sql-statement>
  2366. -stdin-:<main>: Error: Parse Sql
  2367. -stdin-:<main>:1:39: Error: alternative is not implemented yet : 138
  2368. SELECT json_populate_record(row(1,2)::j_ordered_pair, '{"x": 1, "y": 0}');
  2369. ^
  2370. <sql-statement>
  2371. -- populate_recordset
  2372. select * from json_populate_recordset(null::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2373. </sql-statement>
  2374. -stdin-:<main>: Error: Parse Sql
  2375. -stdin-:<main>:2:45: Error: Unknown type: jpop
  2376. select * from json_populate_recordset(null::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2377. ^
  2378. <sql-statement>
  2379. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2380. </sql-statement>
  2381. -stdin-:<main>: Error: Parse Sql
  2382. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 138
  2383. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2384. ^
  2385. <sql-statement>
  2386. select * from json_populate_recordset(null::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2387. </sql-statement>
  2388. -stdin-:<main>: Error: Parse Sql
  2389. -stdin-:<main>:1:45: Error: Unknown type: jpop
  2390. select * from json_populate_recordset(null::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2391. ^
  2392. <sql-statement>
  2393. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2394. </sql-statement>
  2395. -stdin-:<main>: Error: Parse Sql
  2396. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 138
  2397. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2398. ^
  2399. <sql-statement>
  2400. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2401. </sql-statement>
  2402. -stdin-:<main>: Error: Parse Sql
  2403. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 138
  2404. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2405. ^
  2406. <sql-statement>
  2407. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"c":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2408. </sql-statement>
  2409. -stdin-:<main>: Error: Parse Sql
  2410. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 138
  2411. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"c":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2412. ^
  2413. <sql-statement>
  2414. create type jpop2 as (a int, b json, c int, d int);
  2415. </sql-statement>
  2416. -stdin-:<main>: Error: Parse Sql
  2417. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  2418. create type jpop2 as (a int, b json, c int, d int);
  2419. ^
  2420. <sql-statement>
  2421. select * from json_populate_recordset(null::jpop2, '[{"a":2,"c":3,"b":{"z":4},"d":6}]') q;
  2422. </sql-statement>
  2423. -stdin-:<main>: Error: Parse Sql
  2424. -stdin-:<main>:1:45: Error: Unknown type: jpop2
  2425. select * from json_populate_recordset(null::jpop2, '[{"a":2,"c":3,"b":{"z":4},"d":6}]') q;
  2426. ^
  2427. <sql-statement>
  2428. select * from json_populate_recordset(null::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2429. </sql-statement>
  2430. -stdin-:<main>: Error: Parse Sql
  2431. -stdin-:<main>:1:45: Error: Unknown type: jpop
  2432. select * from json_populate_recordset(null::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2433. ^
  2434. <sql-statement>
  2435. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2436. </sql-statement>
  2437. -stdin-:<main>: Error: Parse Sql
  2438. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 138
  2439. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2440. ^
  2441. <sql-statement>
  2442. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2443. </sql-statement>
  2444. -stdin-:<main>: Error: Parse Sql
  2445. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 138
  2446. select * from json_populate_recordset(row('def',99,null)::jpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2447. ^
  2448. <sql-statement>
  2449. -- anonymous record type
  2450. SELECT json_populate_recordset(null::record, '[{"x": 0, "y": 1}]');
  2451. </sql-statement>
  2452. -stdin-:<main>: Error: Parse Sql
  2453. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  2454. SELECT json_populate_recordset(null::record, '[{"x": 0, "y": 1}]');
  2455. ^
  2456. <sql-statement>
  2457. SELECT json_populate_recordset(row(1,2), '[{"f1": 0, "f2": 1}]');
  2458. </sql-statement>
  2459. -stdin-:<main>: Error: Parse Sql
  2460. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  2461. SELECT json_populate_recordset(row(1,2), '[{"f1": 0, "f2": 1}]');
  2462. ^
  2463. <sql-statement>
  2464. SELECT i, json_populate_recordset(row(i,50), '[{"f1":"42"},{"f2":"43"}]')
  2465. FROM (VALUES (1),(2)) v(i);
  2466. </sql-statement>
  2467. -stdin-:<main>: Error: Parse Sql
  2468. -stdin-:<main>:1:11: Error: Generator functions are not allowed in: SELECT
  2469. SELECT i, json_populate_recordset(row(i,50), '[{"f1":"42"},{"f2":"43"}]')
  2470. ^
  2471. <sql-statement>
  2472. SELECT * FROM
  2473. json_populate_recordset(null::record, '[{"x": 776}]') AS (x int, y int);
  2474. </sql-statement>
  2475. -stdin-:<main>: Error: Parse Sql
  2476. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2477. SELECT * FROM
  2478. ^
  2479. <sql-statement>
  2480. -- empty array is a corner case
  2481. SELECT json_populate_recordset(null::record, '[]');
  2482. </sql-statement>
  2483. -stdin-:<main>: Error: Parse Sql
  2484. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  2485. SELECT json_populate_recordset(null::record, '[]');
  2486. ^
  2487. <sql-statement>
  2488. SELECT json_populate_recordset(row(1,2), '[]');
  2489. </sql-statement>
  2490. -stdin-:<main>: Error: Parse Sql
  2491. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  2492. SELECT json_populate_recordset(row(1,2), '[]');
  2493. ^
  2494. <sql-statement>
  2495. SELECT * FROM json_populate_recordset(NULL::jpop,'[]') q;
  2496. </sql-statement>
  2497. -stdin-:<main>: Error: Parse Sql
  2498. -stdin-:<main>:1:45: Error: Unknown type: jpop
  2499. SELECT * FROM json_populate_recordset(NULL::jpop,'[]') q;
  2500. ^
  2501. <sql-statement>
  2502. SELECT * FROM
  2503. json_populate_recordset(null::record, '[]') AS (x int, y int);
  2504. </sql-statement>
  2505. -stdin-:<main>: Error: Parse Sql
  2506. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2507. SELECT * FROM
  2508. ^
  2509. <sql-statement>
  2510. -- composite domain
  2511. SELECT json_populate_recordset(null::j_ordered_pair, '[{"x": 0, "y": 1}]');
  2512. </sql-statement>
  2513. -stdin-:<main>: Error: Parse Sql
  2514. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  2515. SELECT json_populate_recordset(null::j_ordered_pair, '[{"x": 0, "y": 1}]');
  2516. ^
  2517. <sql-statement>
  2518. SELECT json_populate_recordset(row(1,2)::j_ordered_pair, '[{"x": 0}, {"y": 3}]');
  2519. </sql-statement>
  2520. -stdin-:<main>: Error: Parse Sql
  2521. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  2522. SELECT json_populate_recordset(row(1,2)::j_ordered_pair, '[{"x": 0}, {"y": 3}]');
  2523. ^
  2524. <sql-statement>
  2525. SELECT json_populate_recordset(row(1,2)::j_ordered_pair, '[{"x": 1, "y": 0}]');
  2526. </sql-statement>
  2527. -stdin-:<main>: Error: Parse Sql
  2528. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  2529. SELECT json_populate_recordset(row(1,2)::j_ordered_pair, '[{"x": 1, "y": 0}]');
  2530. ^
  2531. <sql-statement>
  2532. -- negative cases where the wrong record type is supplied
  2533. select * from json_populate_recordset(row(0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  2534. </sql-statement>
  2535. -stdin-:<main>: Error: Parse Sql
  2536. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2537. -- negative cases where the wrong record type is supplied
  2538. ^
  2539. <sql-statement>
  2540. select * from json_populate_recordset(row(0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  2541. </sql-statement>
  2542. -stdin-:<main>: Error: Parse Sql
  2543. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2544. select * from json_populate_recordset(row(0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  2545. ^
  2546. <sql-statement>
  2547. select * from json_populate_recordset(row(0::int,0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  2548. </sql-statement>
  2549. -stdin-:<main>: Error: Parse Sql
  2550. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2551. select * from json_populate_recordset(row(0::int,0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  2552. ^
  2553. <sql-statement>
  2554. select * from json_populate_recordset(row(1000000000::int,50::int),'[{"b":"2"},{"a":"3"}]') q (a text, b text);
  2555. </sql-statement>
  2556. -stdin-:<main>: Error: Parse Sql
  2557. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2558. select * from json_populate_recordset(row(1000000000::int,50::int),'[{"b":"2"},{"a":"3"}]') q (a text, b text);
  2559. ^
  2560. <sql-statement>
  2561. -- test type info caching in json_populate_record()
  2562. CREATE TEMP TABLE jspoptest (js json);
  2563. </sql-statement>
  2564. <sql-statement>
  2565. INSERT INTO jspoptest
  2566. SELECT '{
  2567. "jsa": [1, "2", null, 4],
  2568. "rec": {"a": "abc", "c": "01.02.2003", "x": 43.2},
  2569. "reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]
  2570. }'::json
  2571. FROM generate_series(1, 3);
  2572. </sql-statement>
  2573. <sql-statement>
  2574. SELECT (json_populate_record(NULL::jsrec, js)).* FROM jspoptest;
  2575. </sql-statement>
  2576. -stdin-:<main>: Error: Parse Sql
  2577. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  2578. SELECT (json_populate_record(NULL::jsrec, js)).* FROM jspoptest;
  2579. ^
  2580. <sql-statement>
  2581. DROP TYPE jsrec;
  2582. </sql-statement>
  2583. -stdin-:<main>: Error: Parse Sql
  2584. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2585. DROP TYPE jsrec;
  2586. ^
  2587. <sql-statement>
  2588. DROP TYPE jsrec_i_not_null;
  2589. </sql-statement>
  2590. -stdin-:<main>: Error: Parse Sql
  2591. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2592. DROP TYPE jsrec_i_not_null;
  2593. ^
  2594. <sql-statement>
  2595. DROP DOMAIN js_int_not_null;
  2596. </sql-statement>
  2597. -stdin-:<main>: Error: Parse Sql
  2598. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2599. DROP DOMAIN js_int_not_null;
  2600. ^
  2601. <sql-statement>
  2602. DROP DOMAIN js_int_array_1d;
  2603. </sql-statement>
  2604. -stdin-:<main>: Error: Parse Sql
  2605. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2606. DROP DOMAIN js_int_array_1d;
  2607. ^
  2608. <sql-statement>
  2609. DROP DOMAIN js_int_array_2d;
  2610. </sql-statement>
  2611. -stdin-:<main>: Error: Parse Sql
  2612. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2613. DROP DOMAIN js_int_array_2d;
  2614. ^
  2615. <sql-statement>
  2616. DROP DOMAIN j_ordered_pair;
  2617. </sql-statement>
  2618. -stdin-:<main>: Error: Parse Sql
  2619. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2620. DROP DOMAIN j_ordered_pair;
  2621. ^
  2622. <sql-statement>
  2623. DROP TYPE j_unordered_pair;
  2624. </sql-statement>
  2625. -stdin-:<main>: Error: Parse Sql
  2626. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  2627. DROP TYPE j_unordered_pair;
  2628. ^
  2629. <sql-statement>
  2630. --json_typeof() function
  2631. select value, json_typeof(value)
  2632. from (values (json '123.4'),
  2633. (json '-1'),
  2634. (json '"foo"'),
  2635. (json 'true'),
  2636. (json 'false'),
  2637. (json 'null'),
  2638. (json '[1, 2, 3]'),
  2639. (json '[]'),
  2640. (json '{"x":"foo", "y":123}'),
  2641. (json '{}'),
  2642. (NULL::json))
  2643. as data(value);
  2644. </sql-statement>
  2645. <sql-statement>
  2646. -- json_build_array, json_build_object, json_object_agg
  2647. SELECT json_build_array('a',1,'b',1.2,'c',true,'d',null,'e',json '{"x": 3, "y": [1,2,3]}');
  2648. </sql-statement>
  2649. <sql-statement>
  2650. SELECT json_build_array('a', NULL); -- ok
  2651. </sql-statement>
  2652. <sql-statement>
  2653. SELECT json_build_array(VARIADIC NULL::text[]); -- ok
  2654. </sql-statement>
  2655. -stdin-:<main>: Error: Parse Sql
  2656. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2657. SELECT json_build_array(VARIADIC NULL::text[]); -- ok
  2658. ^
  2659. <sql-statement>
  2660. SELECT json_build_array(VARIADIC '{}'::text[]); -- ok
  2661. </sql-statement>
  2662. -stdin-:<main>: Error: Parse Sql
  2663. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2664. SELECT json_build_array(VARIADIC '{}'::text[]); -- ok
  2665. ^
  2666. <sql-statement>
  2667. SELECT json_build_array(VARIADIC '{a,b,c}'::text[]); -- ok
  2668. </sql-statement>
  2669. -stdin-:<main>: Error: Parse Sql
  2670. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2671. SELECT json_build_array(VARIADIC '{a,b,c}'::text[]); -- ok
  2672. ^
  2673. <sql-statement>
  2674. SELECT json_build_array(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  2675. </sql-statement>
  2676. -stdin-:<main>: Error: Parse Sql
  2677. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2678. SELECT json_build_array(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  2679. ^
  2680. <sql-statement>
  2681. SELECT json_build_array(VARIADIC '{1,2,3,4}'::text[]); -- ok
  2682. </sql-statement>
  2683. -stdin-:<main>: Error: Parse Sql
  2684. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2685. SELECT json_build_array(VARIADIC '{1,2,3,4}'::text[]); -- ok
  2686. ^
  2687. <sql-statement>
  2688. SELECT json_build_array(VARIADIC '{1,2,3,4}'::int[]); -- ok
  2689. </sql-statement>
  2690. -stdin-:<main>: Error: Parse Sql
  2691. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2692. SELECT json_build_array(VARIADIC '{1,2,3,4}'::int[]); -- ok
  2693. ^
  2694. <sql-statement>
  2695. SELECT json_build_array(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  2696. </sql-statement>
  2697. -stdin-:<main>: Error: Parse Sql
  2698. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2699. SELECT json_build_array(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  2700. ^
  2701. <sql-statement>
  2702. SELECT json_build_object('a',1,'b',1.2,'c',true,'d',null,'e',json '{"x": 3, "y": [1,2,3]}');
  2703. </sql-statement>
  2704. <sql-statement>
  2705. SELECT json_build_object(
  2706. 'a', json_build_object('b',false,'c',99),
  2707. 'd', json_build_object('e',array[9,8,7]::int[],
  2708. 'f', (select row_to_json(r) from ( select relkind, oid::regclass as name from pg_class where relname = 'pg_class') r)));
  2709. </sql-statement>
  2710. <sql-statement>
  2711. SELECT json_build_object('{a,b,c}'::text[]); -- error
  2712. </sql-statement>
  2713. -stdin-:<main>: Fatal: Execution
  2714. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2715. SELECT json_build_object('{a,b,c}'::text[]); -- error
  2716. ^
  2717. -stdin-:<main>:1:1: Fatal: ERROR: argument list must have even number of elements
  2718. HINT: The arguments of json_build_object() must consist of alternating keys and values.
  2719. SELECT json_build_object('{a,b,c}'::text[]); -- error
  2720. ^
  2721. <sql-statement>
  2722. SELECT json_build_object('{a,b,c}'::text[], '{d,e,f}'::text[]); -- error, key cannot be array
  2723. </sql-statement>
  2724. -stdin-:<main>: Fatal: Execution
  2725. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2726. SELECT json_build_object('{a,b,c}'::text[], '{d,e,f}'::text[]); -- error, key cannot be array
  2727. ^
  2728. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  2729. SELECT json_build_object('{a,b,c}'::text[], '{d,e,f}'::text[]); -- error, key cannot be array
  2730. ^
  2731. <sql-statement>
  2732. SELECT json_build_object('a', 'b', 'c'); -- error
  2733. </sql-statement>
  2734. -stdin-:<main>: Fatal: Execution
  2735. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2736. SELECT json_build_object('a', 'b', 'c'); -- error
  2737. ^
  2738. -stdin-:<main>:1:1: Fatal: ERROR: argument list must have even number of elements
  2739. HINT: The arguments of json_build_object() must consist of alternating keys and values.
  2740. SELECT json_build_object('a', 'b', 'c'); -- error
  2741. ^
  2742. <sql-statement>
  2743. SELECT json_build_object(NULL, 'a'); -- error, key cannot be NULL
  2744. </sql-statement>
  2745. -stdin-:<main>: Fatal: Execution
  2746. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2747. SELECT json_build_object(NULL, 'a'); -- error, key cannot be NULL
  2748. ^
  2749. -stdin-:<main>:1:1: Fatal: ERROR: argument 1 cannot be null
  2750. HINT: Object keys should be text.
  2751. SELECT json_build_object(NULL, 'a'); -- error, key cannot be NULL
  2752. ^
  2753. <sql-statement>
  2754. SELECT json_build_object('a', NULL); -- ok
  2755. </sql-statement>
  2756. <sql-statement>
  2757. SELECT json_build_object(VARIADIC NULL::text[]); -- ok
  2758. </sql-statement>
  2759. -stdin-:<main>: Error: Parse Sql
  2760. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2761. SELECT json_build_object(VARIADIC NULL::text[]); -- ok
  2762. ^
  2763. <sql-statement>
  2764. SELECT json_build_object(VARIADIC '{}'::text[]); -- ok
  2765. </sql-statement>
  2766. -stdin-:<main>: Error: Parse Sql
  2767. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2768. SELECT json_build_object(VARIADIC '{}'::text[]); -- ok
  2769. ^
  2770. <sql-statement>
  2771. SELECT json_build_object(VARIADIC '{a,b,c}'::text[]); -- error
  2772. </sql-statement>
  2773. -stdin-:<main>: Error: Parse Sql
  2774. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2775. SELECT json_build_object(VARIADIC '{a,b,c}'::text[]); -- error
  2776. ^
  2777. <sql-statement>
  2778. SELECT json_build_object(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  2779. </sql-statement>
  2780. -stdin-:<main>: Error: Parse Sql
  2781. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2782. SELECT json_build_object(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  2783. ^
  2784. <sql-statement>
  2785. SELECT json_build_object(VARIADIC ARRAY[NULL, 'a']::text[]); -- error, key cannot be NULL
  2786. </sql-statement>
  2787. -stdin-:<main>: Error: Parse Sql
  2788. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2789. SELECT json_build_object(VARIADIC ARRAY[NULL, 'a']::text[]); -- error, key cannot be NULL
  2790. ^
  2791. <sql-statement>
  2792. SELECT json_build_object(VARIADIC '{1,2,3,4}'::text[]); -- ok
  2793. </sql-statement>
  2794. -stdin-:<main>: Error: Parse Sql
  2795. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2796. SELECT json_build_object(VARIADIC '{1,2,3,4}'::text[]); -- ok
  2797. ^
  2798. <sql-statement>
  2799. SELECT json_build_object(VARIADIC '{1,2,3,4}'::int[]); -- ok
  2800. </sql-statement>
  2801. -stdin-:<main>: Error: Parse Sql
  2802. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2803. SELECT json_build_object(VARIADIC '{1,2,3,4}'::int[]); -- ok
  2804. ^
  2805. <sql-statement>
  2806. SELECT json_build_object(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  2807. </sql-statement>
  2808. -stdin-:<main>: Error: Parse Sql
  2809. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  2810. SELECT json_build_object(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  2811. ^
  2812. <sql-statement>
  2813. -- empty objects/arrays
  2814. SELECT json_build_array();
  2815. </sql-statement>
  2816. <sql-statement>
  2817. SELECT json_build_object();
  2818. </sql-statement>
  2819. <sql-statement>
  2820. -- make sure keys are quoted
  2821. SELECT json_build_object(1,2);
  2822. </sql-statement>
  2823. <sql-statement>
  2824. -- keys must be scalar and not null
  2825. SELECT json_build_object(null,2);
  2826. </sql-statement>
  2827. -stdin-:<main>: Fatal: Execution
  2828. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2829. -- keys must be scalar and not null
  2830. ^
  2831. -stdin-:<main>:1:1: Fatal: ERROR: argument 1 cannot be null
  2832. HINT: Object keys should be text.
  2833. -- keys must be scalar and not null
  2834. ^
  2835. <sql-statement>
  2836. SELECT json_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
  2837. </sql-statement>
  2838. -stdin-:<main>: Fatal: Execution
  2839. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2840. SELECT json_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
  2841. ^
  2842. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  2843. SELECT json_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
  2844. ^
  2845. <sql-statement>
  2846. SELECT json_build_object(json '{"a":1,"b":2}', 3);
  2847. </sql-statement>
  2848. -stdin-:<main>: Fatal: Execution
  2849. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2850. SELECT json_build_object(json '{"a":1,"b":2}', 3);
  2851. ^
  2852. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  2853. SELECT json_build_object(json '{"a":1,"b":2}', 3);
  2854. ^
  2855. <sql-statement>
  2856. SELECT json_build_object('{1,2,3}'::int[], 3);
  2857. </sql-statement>
  2858. -stdin-:<main>: Fatal: Execution
  2859. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2860. SELECT json_build_object('{1,2,3}'::int[], 3);
  2861. ^
  2862. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  2863. SELECT json_build_object('{1,2,3}'::int[], 3);
  2864. ^
  2865. <sql-statement>
  2866. CREATE TEMP TABLE foo (serial_num int, name text, type text);
  2867. </sql-statement>
  2868. <sql-statement>
  2869. INSERT INTO foo VALUES (847001,'t15','GE1043');
  2870. </sql-statement>
  2871. <sql-statement>
  2872. INSERT INTO foo VALUES (847002,'t16','GE1043');
  2873. </sql-statement>
  2874. <sql-statement>
  2875. INSERT INTO foo VALUES (847003,'sub-alpha','GESS90');
  2876. </sql-statement>
  2877. <sql-statement>
  2878. SELECT json_build_object('turbines',json_object_agg(serial_num,json_build_object('name',name,'type',type)))
  2879. FROM foo;
  2880. </sql-statement>
  2881. <sql-statement>
  2882. SELECT json_object_agg(name, type) FROM foo;
  2883. </sql-statement>
  2884. <sql-statement>
  2885. INSERT INTO foo VALUES (999999, NULL, 'bar');
  2886. </sql-statement>
  2887. <sql-statement>
  2888. SELECT json_object_agg(name, type) FROM foo;
  2889. </sql-statement>
  2890. -stdin-:<main>: Fatal: Execution
  2891. -stdin-:<main>:1:1: Fatal: Execution of node: YtMapReduce!
  2892. SELECT json_object_agg(name, type) FROM foo;
  2893. ^
  2894. -stdin-:<main>:1:1: Fatal: ERROR: field name must not be null
  2895. SELECT json_object_agg(name, type) FROM foo;
  2896. ^
  2897. <sql-statement>
  2898. -- json_object
  2899. -- empty object, one dimension
  2900. SELECT json_object('{}');
  2901. </sql-statement>
  2902. <sql-statement>
  2903. -- empty object, two dimensions
  2904. SELECT json_object('{}', '{}');
  2905. </sql-statement>
  2906. <sql-statement>
  2907. -- one dimension
  2908. SELECT json_object('{a,1,b,2,3,NULL,"d e f","a b c"}');
  2909. </sql-statement>
  2910. <sql-statement>
  2911. -- same but with two dimensions
  2912. SELECT json_object('{{a,1},{b,2},{3,NULL},{"d e f","a b c"}}');
  2913. </sql-statement>
  2914. <sql-statement>
  2915. -- odd number error
  2916. SELECT json_object('{a,b,c}');
  2917. </sql-statement>
  2918. -stdin-:<main>: Fatal: Execution
  2919. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2920. -- odd number error
  2921. ^
  2922. -stdin-:<main>:1:1: Fatal: ERROR: array must have even number of elements
  2923. -- odd number error
  2924. ^
  2925. <sql-statement>
  2926. -- one column error
  2927. SELECT json_object('{{a},{b}}');
  2928. </sql-statement>
  2929. -stdin-:<main>: Fatal: Execution
  2930. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2931. -- one column error
  2932. ^
  2933. -stdin-:<main>:1:1: Fatal: ERROR: array must have two columns
  2934. -- one column error
  2935. ^
  2936. <sql-statement>
  2937. -- too many columns error
  2938. SELECT json_object('{{a,b,c},{b,c,d}}');
  2939. </sql-statement>
  2940. -stdin-:<main>: Fatal: Execution
  2941. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2942. -- too many columns error
  2943. ^
  2944. -stdin-:<main>:1:1: Fatal: ERROR: array must have two columns
  2945. -- too many columns error
  2946. ^
  2947. <sql-statement>
  2948. -- too many dimensions error
  2949. SELECT json_object('{{{a,b},{c,d}},{{b,c},{d,e}}}');
  2950. </sql-statement>
  2951. -stdin-:<main>: Fatal: Execution
  2952. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2953. -- too many dimensions error
  2954. ^
  2955. -stdin-:<main>:1:1: Fatal: ERROR: wrong number of array subscripts
  2956. -- too many dimensions error
  2957. ^
  2958. <sql-statement>
  2959. --two argument form of json_object
  2960. select json_object('{a,b,c,"d e f"}','{1,2,3,"a b c"}');
  2961. </sql-statement>
  2962. <sql-statement>
  2963. -- too many dimensions
  2964. SELECT json_object('{{a,1},{b,2},{3,NULL},{"d e f","a b c"}}', '{{a,1},{b,2},{3,NULL},{"d e f","a b c"}}');
  2965. </sql-statement>
  2966. -stdin-:<main>: Fatal: Execution
  2967. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2968. -- too many dimensions
  2969. ^
  2970. -stdin-:<main>:1:1: Fatal: ERROR: wrong number of array subscripts
  2971. -- too many dimensions
  2972. ^
  2973. <sql-statement>
  2974. -- mismatched dimensions
  2975. select json_object('{a,b,c,"d e f",g}','{1,2,3,"a b c"}');
  2976. </sql-statement>
  2977. -stdin-:<main>: Fatal: Execution
  2978. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2979. -- mismatched dimensions
  2980. ^
  2981. -stdin-:<main>:1:1: Fatal: ERROR: mismatched array dimensions
  2982. -- mismatched dimensions
  2983. ^
  2984. <sql-statement>
  2985. select json_object('{a,b,c,"d e f"}','{1,2,3,"a b c",g}');
  2986. </sql-statement>
  2987. -stdin-:<main>: Fatal: Execution
  2988. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  2989. select json_object('{a,b,c,"d e f"}','{1,2,3,"a b c",g}');
  2990. ^
  2991. -stdin-:<main>:1:1: Fatal: ERROR: mismatched array dimensions
  2992. select json_object('{a,b,c,"d e f"}','{1,2,3,"a b c",g}');
  2993. ^
  2994. <sql-statement>
  2995. -- null key error
  2996. select json_object('{a,b,NULL,"d e f"}','{1,2,3,"a b c"}');
  2997. </sql-statement>
  2998. -stdin-:<main>: Fatal: Execution
  2999. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3000. -- null key error
  3001. ^
  3002. -stdin-:<main>:1:1: Fatal: ERROR: null value not allowed for object key
  3003. -- null key error
  3004. ^
  3005. <sql-statement>
  3006. -- empty key is allowed
  3007. select json_object('{a,b,"","d e f"}','{1,2,3,"a b c"}');
  3008. </sql-statement>
  3009. <sql-statement>
  3010. -- json_to_record and json_to_recordset
  3011. select * from json_to_record('{"a":1,"b":"foo","c":"bar"}')
  3012. as x(a int, b text, d text);
  3013. </sql-statement>
  3014. -stdin-:<main>: Error: Parse Sql
  3015. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3016. -- json_to_record and json_to_recordset
  3017. ^
  3018. <sql-statement>
  3019. select * from json_to_recordset('[{"a":1,"b":"foo","d":false},{"a":2,"b":"bar","c":true}]')
  3020. as x(a int, b text, c boolean);
  3021. </sql-statement>
  3022. -stdin-:<main>: Error: Parse Sql
  3023. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3024. select * from json_to_recordset('[{"a":1,"b":"foo","d":false},{"a":2,"b":"bar","c":true}]')
  3025. ^
  3026. <sql-statement>
  3027. select * from json_to_recordset('[{"a":1,"b":{"d":"foo"},"c":true},{"a":2,"c":false,"b":{"d":"bar"}}]')
  3028. as x(a int, b json, c boolean);
  3029. </sql-statement>
  3030. -stdin-:<main>: Error: Parse Sql
  3031. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3032. select * from json_to_recordset('[{"a":1,"b":{"d":"foo"},"c":true},{"a":2,"c":false,"b":{"d":"bar"}}]')
  3033. ^
  3034. <sql-statement>
  3035. select *, c is null as c_is_null
  3036. from json_to_record('{"a":1, "b":{"c":16, "d":2}, "x":8, "ca": ["1 2", 3], "ia": [[1,2],[3,4]], "r": {"a": "aaa", "b": 123}}'::json)
  3037. as t(a int, b json, c text, x int, ca char(5)[], ia int[][], r jpop);
  3038. </sql-statement>
  3039. -stdin-:<main>: Error: Parse Sql
  3040. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3041. select *, c is null as c_is_null
  3042. ^
  3043. <sql-statement>
  3044. select *, c is null as c_is_null
  3045. from json_to_recordset('[{"a":1, "b":{"c":16, "d":2}, "x":8}]'::json)
  3046. as t(a int, b json, c text, x int);
  3047. </sql-statement>
  3048. -stdin-:<main>: Error: Parse Sql
  3049. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3050. select *, c is null as c_is_null
  3051. ^
  3052. <sql-statement>
  3053. select * from json_to_record('{"ia": null}') as x(ia _int4);
  3054. </sql-statement>
  3055. -stdin-:<main>: Error: Parse Sql
  3056. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3057. select * from json_to_record('{"ia": null}') as x(ia _int4);
  3058. ^
  3059. <sql-statement>
  3060. select * from json_to_record('{"ia": 123}') as x(ia _int4);
  3061. </sql-statement>
  3062. -stdin-:<main>: Error: Parse Sql
  3063. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3064. select * from json_to_record('{"ia": 123}') as x(ia _int4);
  3065. ^
  3066. <sql-statement>
  3067. select * from json_to_record('{"ia": [1, "2", null, 4]}') as x(ia _int4);
  3068. </sql-statement>
  3069. -stdin-:<main>: Error: Parse Sql
  3070. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3071. select * from json_to_record('{"ia": [1, "2", null, 4]}') as x(ia _int4);
  3072. ^
  3073. <sql-statement>
  3074. select * from json_to_record('{"ia": [[1, 2], [3, 4]]}') as x(ia _int4);
  3075. </sql-statement>
  3076. -stdin-:<main>: Error: Parse Sql
  3077. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3078. select * from json_to_record('{"ia": [[1, 2], [3, 4]]}') as x(ia _int4);
  3079. ^
  3080. <sql-statement>
  3081. select * from json_to_record('{"ia": [[1], 2]}') as x(ia _int4);
  3082. </sql-statement>
  3083. -stdin-:<main>: Error: Parse Sql
  3084. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3085. select * from json_to_record('{"ia": [[1], 2]}') as x(ia _int4);
  3086. ^
  3087. <sql-statement>
  3088. select * from json_to_record('{"ia": [[1], [2, 3]]}') as x(ia _int4);
  3089. </sql-statement>
  3090. -stdin-:<main>: Error: Parse Sql
  3091. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3092. select * from json_to_record('{"ia": [[1], [2, 3]]}') as x(ia _int4);
  3093. ^
  3094. <sql-statement>
  3095. select * from json_to_record('{"ia2": [1, 2, 3]}') as x(ia2 int[][]);
  3096. </sql-statement>
  3097. -stdin-:<main>: Error: Parse Sql
  3098. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3099. select * from json_to_record('{"ia2": [1, 2, 3]}') as x(ia2 int[][]);
  3100. ^
  3101. <sql-statement>
  3102. select * from json_to_record('{"ia2": [[1, 2], [3, 4]]}') as x(ia2 int4[][]);
  3103. </sql-statement>
  3104. -stdin-:<main>: Error: Parse Sql
  3105. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3106. select * from json_to_record('{"ia2": [[1, 2], [3, 4]]}') as x(ia2 int4[][]);
  3107. ^
  3108. <sql-statement>
  3109. select * from json_to_record('{"ia2": [[[1], [2], [3]]]}') as x(ia2 int4[][]);
  3110. </sql-statement>
  3111. -stdin-:<main>: Error: Parse Sql
  3112. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3113. select * from json_to_record('{"ia2": [[[1], [2], [3]]]}') as x(ia2 int4[][]);
  3114. ^
  3115. <sql-statement>
  3116. select * from json_to_record('{"out": {"key": 1}}') as x(out json);
  3117. </sql-statement>
  3118. -stdin-:<main>: Error: Parse Sql
  3119. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3120. select * from json_to_record('{"out": {"key": 1}}') as x(out json);
  3121. ^
  3122. <sql-statement>
  3123. select * from json_to_record('{"out": [{"key": 1}]}') as x(out json);
  3124. </sql-statement>
  3125. -stdin-:<main>: Error: Parse Sql
  3126. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3127. select * from json_to_record('{"out": [{"key": 1}]}') as x(out json);
  3128. ^
  3129. <sql-statement>
  3130. select * from json_to_record('{"out": "{\"key\": 1}"}') as x(out json);
  3131. </sql-statement>
  3132. -stdin-:<main>: Error: Parse Sql
  3133. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3134. select * from json_to_record('{"out": "{\"key\": 1}"}') as x(out json);
  3135. ^
  3136. <sql-statement>
  3137. select * from json_to_record('{"out": {"key": 1}}') as x(out jsonb);
  3138. </sql-statement>
  3139. -stdin-:<main>: Error: Parse Sql
  3140. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3141. select * from json_to_record('{"out": {"key": 1}}') as x(out jsonb);
  3142. ^
  3143. <sql-statement>
  3144. select * from json_to_record('{"out": [{"key": 1}]}') as x(out jsonb);
  3145. </sql-statement>
  3146. -stdin-:<main>: Error: Parse Sql
  3147. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3148. select * from json_to_record('{"out": [{"key": 1}]}') as x(out jsonb);
  3149. ^
  3150. <sql-statement>
  3151. select * from json_to_record('{"out": "{\"key\": 1}"}') as x(out jsonb);
  3152. </sql-statement>
  3153. -stdin-:<main>: Error: Parse Sql
  3154. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3155. select * from json_to_record('{"out": "{\"key\": 1}"}') as x(out jsonb);
  3156. ^
  3157. <sql-statement>
  3158. -- json_strip_nulls
  3159. select json_strip_nulls(null);
  3160. </sql-statement>
  3161. <sql-statement>
  3162. select json_strip_nulls('1');
  3163. </sql-statement>
  3164. <sql-statement>
  3165. select json_strip_nulls('"a string"');
  3166. </sql-statement>
  3167. <sql-statement>
  3168. select json_strip_nulls('null');
  3169. </sql-statement>
  3170. <sql-statement>
  3171. select json_strip_nulls('[1,2,null,3,4]');
  3172. </sql-statement>
  3173. <sql-statement>
  3174. select json_strip_nulls('{"a":1,"b":null,"c":[2,null,3],"d":{"e":4,"f":null}}');
  3175. </sql-statement>
  3176. <sql-statement>
  3177. select json_strip_nulls('[1,{"a":1,"b":null,"c":2},3]');
  3178. </sql-statement>
  3179. <sql-statement>
  3180. -- an empty object is not null and should not be stripped
  3181. select json_strip_nulls('{"a": {"b": null, "c": null}, "d": {} }');
  3182. </sql-statement>
  3183. <sql-statement>
  3184. -- json to tsvector
  3185. select to_tsvector('{"a": "aaa bbb ddd ccc", "b": ["eee fff ggg"], "c": {"d": "hhh iii"}}'::json);
  3186. </sql-statement>
  3187. -stdin-:<main>: Fatal: Execution
  3188. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3189. -- json to tsvector
  3190. ^
  3191. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3192. -- json to tsvector
  3193. ^
  3194. <sql-statement>
  3195. -- json to tsvector with config
  3196. select to_tsvector('simple', '{"a": "aaa bbb ddd ccc", "b": ["eee fff ggg"], "c": {"d": "hhh iii"}}'::json);
  3197. </sql-statement>
  3198. -stdin-:<main>: Fatal: Execution
  3199. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3200. -- json to tsvector with config
  3201. ^
  3202. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "simple" does not exist
  3203. -- json to tsvector with config
  3204. ^
  3205. <sql-statement>
  3206. -- json to tsvector with stop words
  3207. select to_tsvector('english', '{"a": "aaa in bbb ddd ccc", "b": ["the eee fff ggg"], "c": {"d": "hhh. iii"}}'::json);
  3208. </sql-statement>
  3209. -stdin-:<main>: Fatal: Execution
  3210. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3211. -- json to tsvector with stop words
  3212. ^
  3213. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3214. -- json to tsvector with stop words
  3215. ^
  3216. <sql-statement>
  3217. -- json to tsvector with numeric values
  3218. select to_tsvector('english', '{"a": "aaa in bbb ddd ccc", "b": 123, "c": 456}'::json);
  3219. </sql-statement>
  3220. -stdin-:<main>: Fatal: Execution
  3221. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3222. -- json to tsvector with numeric values
  3223. ^
  3224. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3225. -- json to tsvector with numeric values
  3226. ^
  3227. <sql-statement>
  3228. -- json_to_tsvector
  3229. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"all"');
  3230. </sql-statement>
  3231. -stdin-:<main>: Fatal: Execution
  3232. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3233. -- json_to_tsvector
  3234. ^
  3235. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3236. -- json_to_tsvector
  3237. ^
  3238. <sql-statement>
  3239. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"key"');
  3240. </sql-statement>
  3241. -stdin-:<main>: Fatal: Execution
  3242. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3243. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"key"');
  3244. ^
  3245. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3246. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"key"');
  3247. ^
  3248. <sql-statement>
  3249. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"string"');
  3250. </sql-statement>
  3251. -stdin-:<main>: Fatal: Execution
  3252. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3253. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"string"');
  3254. ^
  3255. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3256. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"string"');
  3257. ^
  3258. <sql-statement>
  3259. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"numeric"');
  3260. </sql-statement>
  3261. -stdin-:<main>: Fatal: Execution
  3262. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3263. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"numeric"');
  3264. ^
  3265. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3266. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"numeric"');
  3267. ^
  3268. <sql-statement>
  3269. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"boolean"');
  3270. </sql-statement>
  3271. -stdin-:<main>: Fatal: Execution
  3272. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3273. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"boolean"');
  3274. ^
  3275. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3276. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"boolean"');
  3277. ^
  3278. <sql-statement>
  3279. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["string", "numeric"]');
  3280. </sql-statement>
  3281. -stdin-:<main>: Fatal: Execution
  3282. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3283. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["string", "numeric"]');
  3284. ^
  3285. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3286. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["string", "numeric"]');
  3287. ^
  3288. <sql-statement>
  3289. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"all"');
  3290. </sql-statement>
  3291. -stdin-:<main>: Fatal: Execution
  3292. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3293. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"all"');
  3294. ^
  3295. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3296. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"all"');
  3297. ^
  3298. <sql-statement>
  3299. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"key"');
  3300. </sql-statement>
  3301. -stdin-:<main>: Fatal: Execution
  3302. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3303. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"key"');
  3304. ^
  3305. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3306. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"key"');
  3307. ^
  3308. <sql-statement>
  3309. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"string"');
  3310. </sql-statement>
  3311. -stdin-:<main>: Fatal: Execution
  3312. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3313. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"string"');
  3314. ^
  3315. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3316. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"string"');
  3317. ^
  3318. <sql-statement>
  3319. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"numeric"');
  3320. </sql-statement>
  3321. -stdin-:<main>: Fatal: Execution
  3322. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3323. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"numeric"');
  3324. ^
  3325. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3326. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"numeric"');
  3327. ^
  3328. <sql-statement>
  3329. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"boolean"');
  3330. </sql-statement>
  3331. -stdin-:<main>: Fatal: Execution
  3332. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3333. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"boolean"');
  3334. ^
  3335. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3336. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '"boolean"');
  3337. ^
  3338. <sql-statement>
  3339. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["string", "numeric"]');
  3340. </sql-statement>
  3341. -stdin-:<main>: Fatal: Execution
  3342. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3343. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["string", "numeric"]');
  3344. ^
  3345. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3346. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["string", "numeric"]');
  3347. ^
  3348. <sql-statement>
  3349. -- to_tsvector corner cases
  3350. select to_tsvector('""'::json);
  3351. </sql-statement>
  3352. -stdin-:<main>: Fatal: Execution
  3353. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3354. -- to_tsvector corner cases
  3355. ^
  3356. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3357. -- to_tsvector corner cases
  3358. ^
  3359. <sql-statement>
  3360. select to_tsvector('{}'::json);
  3361. </sql-statement>
  3362. -stdin-:<main>: Fatal: Execution
  3363. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3364. select to_tsvector('{}'::json);
  3365. ^
  3366. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3367. select to_tsvector('{}'::json);
  3368. ^
  3369. <sql-statement>
  3370. select to_tsvector('[]'::json);
  3371. </sql-statement>
  3372. -stdin-:<main>: Fatal: Execution
  3373. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3374. select to_tsvector('[]'::json);
  3375. ^
  3376. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3377. select to_tsvector('[]'::json);
  3378. ^
  3379. <sql-statement>
  3380. select to_tsvector('null'::json);
  3381. </sql-statement>
  3382. -stdin-:<main>: Fatal: Execution
  3383. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3384. select to_tsvector('null'::json);
  3385. ^
  3386. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3387. select to_tsvector('null'::json);
  3388. ^
  3389. <sql-statement>
  3390. -- json_to_tsvector corner cases
  3391. select json_to_tsvector('""'::json, '"all"');
  3392. </sql-statement>
  3393. -stdin-:<main>: Fatal: Execution
  3394. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3395. -- json_to_tsvector corner cases
  3396. ^
  3397. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3398. -- json_to_tsvector corner cases
  3399. ^
  3400. <sql-statement>
  3401. select json_to_tsvector('{}'::json, '"all"');
  3402. </sql-statement>
  3403. -stdin-:<main>: Fatal: Execution
  3404. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3405. select json_to_tsvector('{}'::json, '"all"');
  3406. ^
  3407. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3408. select json_to_tsvector('{}'::json, '"all"');
  3409. ^
  3410. <sql-statement>
  3411. select json_to_tsvector('[]'::json, '"all"');
  3412. </sql-statement>
  3413. -stdin-:<main>: Fatal: Execution
  3414. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3415. select json_to_tsvector('[]'::json, '"all"');
  3416. ^
  3417. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3418. select json_to_tsvector('[]'::json, '"all"');
  3419. ^
  3420. <sql-statement>
  3421. select json_to_tsvector('null'::json, '"all"');
  3422. </sql-statement>
  3423. -stdin-:<main>: Fatal: Execution
  3424. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3425. select json_to_tsvector('null'::json, '"all"');
  3426. ^
  3427. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  3428. select json_to_tsvector('null'::json, '"all"');
  3429. ^
  3430. <sql-statement>
  3431. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '""');
  3432. </sql-statement>
  3433. -stdin-:<main>: Fatal: Execution
  3434. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3435. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '""');
  3436. ^
  3437. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3438. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '""');
  3439. ^
  3440. <sql-statement>
  3441. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '{}');
  3442. </sql-statement>
  3443. -stdin-:<main>: Fatal: Execution
  3444. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3445. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '{}');
  3446. ^
  3447. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3448. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '{}');
  3449. ^
  3450. <sql-statement>
  3451. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '[]');
  3452. </sql-statement>
  3453. -stdin-:<main>: Fatal: Execution
  3454. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3455. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '[]');
  3456. ^
  3457. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3458. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '[]');
  3459. ^
  3460. <sql-statement>
  3461. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, 'null');
  3462. </sql-statement>
  3463. -stdin-:<main>: Fatal: Execution
  3464. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3465. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, 'null');
  3466. ^
  3467. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3468. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, 'null');
  3469. ^
  3470. <sql-statement>
  3471. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["all", null]');
  3472. </sql-statement>
  3473. -stdin-:<main>: Fatal: Execution
  3474. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  3475. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["all", null]');
  3476. ^
  3477. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  3478. select json_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::json, '["all", null]');
  3479. ^
  3480. <sql-statement>
  3481. -- ts_headline for json
  3482. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3483. </sql-statement>
  3484. -stdin-:<main>: Error: Type annotation
  3485. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3486. -- ts_headline for json
  3487. ^
  3488. -stdin-:<main>:2:8: Error: At function: PgCall
  3489. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3490. ^
  3491. -stdin-:<main>:2:121: Error: At function: PgCall
  3492. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3493. ^
  3494. -stdin-:<main>:2:121: Error: No such proc: tsquery
  3495. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3496. ^
  3497. <sql-statement>
  3498. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3499. </sql-statement>
  3500. -stdin-:<main>: Error: Type annotation
  3501. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3502. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3503. ^
  3504. -stdin-:<main>:1:8: Error: At function: PgCall
  3505. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3506. ^
  3507. -stdin-:<main>:1:113: Error: At function: PgCall
  3508. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3509. ^
  3510. -stdin-:<main>:1:113: Error: No such proc: tsquery
  3511. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'));
  3512. ^
  3513. <sql-statement>
  3514. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3515. </sql-statement>
  3516. -stdin-:<main>: Error: Type annotation
  3517. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3518. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3519. ^
  3520. -stdin-:<main>:1:8: Error: At function: PgCall
  3521. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3522. ^
  3523. -stdin-:<main>:1:121: Error: At function: PgCall
  3524. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3525. ^
  3526. -stdin-:<main>:1:121: Error: No such proc: tsquery
  3527. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3528. ^
  3529. <sql-statement>
  3530. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3531. </sql-statement>
  3532. -stdin-:<main>: Error: Type annotation
  3533. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3534. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3535. ^
  3536. -stdin-:<main>:1:8: Error: At function: PgCall
  3537. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3538. ^
  3539. -stdin-:<main>:1:132: Error: At function: PgCall
  3540. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3541. ^
  3542. -stdin-:<main>:1:132: Error: No such proc: tsquery
  3543. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::json, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  3544. ^
  3545. <sql-statement>
  3546. -- corner cases for ts_headline with json
  3547. select ts_headline('null'::json, tsquery('aaa & bbb'));
  3548. </sql-statement>
  3549. -stdin-:<main>: Error: Type annotation
  3550. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3551. -- corner cases for ts_headline with json
  3552. ^
  3553. -stdin-:<main>:2:8: Error: At function: PgCall
  3554. select ts_headline('null'::json, tsquery('aaa & bbb'));
  3555. ^
  3556. -stdin-:<main>:2:34: Error: At function: PgCall
  3557. select ts_headline('null'::json, tsquery('aaa & bbb'));
  3558. ^
  3559. -stdin-:<main>:2:34: Error: No such proc: tsquery
  3560. select ts_headline('null'::json, tsquery('aaa & bbb'));
  3561. ^
  3562. <sql-statement>
  3563. select ts_headline('{}'::json, tsquery('aaa & bbb'));
  3564. </sql-statement>
  3565. -stdin-:<main>: Error: Type annotation
  3566. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3567. select ts_headline('{}'::json, tsquery('aaa & bbb'));
  3568. ^
  3569. -stdin-:<main>:1:8: Error: At function: PgCall
  3570. select ts_headline('{}'::json, tsquery('aaa & bbb'));
  3571. ^
  3572. -stdin-:<main>:1:32: Error: At function: PgCall
  3573. select ts_headline('{}'::json, tsquery('aaa & bbb'));
  3574. ^
  3575. -stdin-:<main>:1:32: Error: No such proc: tsquery
  3576. select ts_headline('{}'::json, tsquery('aaa & bbb'));
  3577. ^
  3578. <sql-statement>
  3579. select ts_headline('[]'::json, tsquery('aaa & bbb'));
  3580. </sql-statement>
  3581. -stdin-:<main>: Error: Type annotation
  3582. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  3583. select ts_headline('[]'::json, tsquery('aaa & bbb'));
  3584. ^
  3585. -stdin-:<main>:1:8: Error: At function: PgCall
  3586. select ts_headline('[]'::json, tsquery('aaa & bbb'));
  3587. ^
  3588. -stdin-:<main>:1:32: Error: At function: PgCall
  3589. select ts_headline('[]'::json, tsquery('aaa & bbb'));
  3590. ^
  3591. -stdin-:<main>:1:32: Error: No such proc: tsquery
  3592. select ts_headline('[]'::json, tsquery('aaa & bbb'));
  3593. ^