jsonb.err 309 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964
  1. Registering pre-existing tables
  2. testjsonb
  3. <sql-statement>
  4. -- Strings.
  5. SELECT '""'::jsonb; -- OK.
  6. </sql-statement>
  7. <sql-statement>
  8. SELECT $$''$$::jsonb; -- ERROR, single quotes are not allowed
  9. </sql-statement>
  10. -stdin-:<main>: Fatal: Execution
  11. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  12. SELECT $$''$$::jsonb; -- ERROR, single quotes are not allowed
  13. ^
  14. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  15. DETAIL: Token "'" is invalid.
  16. CONTEXT: JSON data, line 1: '...
  17. SELECT $$''$$::jsonb; -- ERROR, single quotes are not allowed
  18. ^
  19. <sql-statement>
  20. SELECT '"abc"'::jsonb; -- OK
  21. </sql-statement>
  22. <sql-statement>
  23. SELECT '"abc'::jsonb; -- ERROR, quotes not closed
  24. </sql-statement>
  25. -stdin-:<main>: Fatal: Execution
  26. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  27. SELECT '"abc'::jsonb; -- ERROR, quotes not closed
  28. ^
  29. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  30. DETAIL: Token ""abc" is invalid.
  31. CONTEXT: JSON data, line 1: "abc
  32. SELECT '"abc'::jsonb; -- ERROR, quotes not closed
  33. ^
  34. <sql-statement>
  35. SELECT '"abc
  36. def"'::jsonb; -- ERROR, unescaped newline in string constant
  37. </sql-statement>
  38. -stdin-:<main>: Fatal: Execution
  39. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  40. SELECT '"abc
  41. ^
  42. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  43. DETAIL: Character with value 0x0a must be escaped.
  44. CONTEXT: JSON data, line 1: "abc
  45. SELECT '"abc
  46. ^
  47. <sql-statement>
  48. SELECT '"\n\"\\"'::jsonb; -- OK, legal escapes
  49. </sql-statement>
  50. <sql-statement>
  51. SELECT '"\v"'::jsonb; -- ERROR, not a valid JSON escape
  52. </sql-statement>
  53. -stdin-:<main>: Fatal: Execution
  54. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  55. SELECT '"\v"'::jsonb; -- ERROR, not a valid JSON escape
  56. ^
  57. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  58. DETAIL: Escape sequence "\v" is invalid.
  59. CONTEXT: JSON data, line 1: "\v...
  60. SELECT '"\v"'::jsonb; -- ERROR, not a valid JSON escape
  61. ^
  62. <sql-statement>
  63. -- see json_encoding test for input with unicode escapes
  64. -- Numbers.
  65. SELECT '1'::jsonb; -- OK
  66. </sql-statement>
  67. <sql-statement>
  68. SELECT '0'::jsonb; -- OK
  69. </sql-statement>
  70. <sql-statement>
  71. SELECT '01'::jsonb; -- ERROR, not valid according to JSON spec
  72. </sql-statement>
  73. -stdin-:<main>: Fatal: Execution
  74. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  75. SELECT '01'::jsonb; -- ERROR, not valid according to JSON spec
  76. ^
  77. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  78. DETAIL: Token "01" is invalid.
  79. CONTEXT: JSON data, line 1: 01
  80. SELECT '01'::jsonb; -- ERROR, not valid according to JSON spec
  81. ^
  82. <sql-statement>
  83. SELECT '0.1'::jsonb; -- OK
  84. </sql-statement>
  85. <sql-statement>
  86. SELECT '9223372036854775808'::jsonb; -- OK, even though it's too large for int8
  87. </sql-statement>
  88. <sql-statement>
  89. SELECT '1e100'::jsonb; -- OK
  90. </sql-statement>
  91. <sql-statement>
  92. SELECT '1.3e100'::jsonb; -- OK
  93. </sql-statement>
  94. <sql-statement>
  95. SELECT '1f2'::jsonb; -- ERROR
  96. </sql-statement>
  97. -stdin-:<main>: Fatal: Execution
  98. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  99. SELECT '1f2'::jsonb; -- ERROR
  100. ^
  101. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  102. DETAIL: Token "1f2" is invalid.
  103. CONTEXT: JSON data, line 1: 1f2
  104. SELECT '1f2'::jsonb; -- ERROR
  105. ^
  106. <sql-statement>
  107. SELECT '0.x1'::jsonb; -- ERROR
  108. </sql-statement>
  109. -stdin-:<main>: Fatal: Execution
  110. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  111. SELECT '0.x1'::jsonb; -- ERROR
  112. ^
  113. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  114. DETAIL: Token "0.x1" is invalid.
  115. CONTEXT: JSON data, line 1: 0.x1
  116. SELECT '0.x1'::jsonb; -- ERROR
  117. ^
  118. <sql-statement>
  119. SELECT '1.3ex100'::jsonb; -- ERROR
  120. </sql-statement>
  121. -stdin-:<main>: Fatal: Execution
  122. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  123. SELECT '1.3ex100'::jsonb; -- ERROR
  124. ^
  125. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  126. DETAIL: Token "1.3ex100" is invalid.
  127. CONTEXT: JSON data, line 1: 1.3ex100
  128. SELECT '1.3ex100'::jsonb; -- ERROR
  129. ^
  130. <sql-statement>
  131. -- Arrays.
  132. SELECT '[]'::jsonb; -- OK
  133. </sql-statement>
  134. <sql-statement>
  135. SELECT '[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]'::jsonb; -- OK
  136. </sql-statement>
  137. <sql-statement>
  138. SELECT '[1,2]'::jsonb; -- OK
  139. </sql-statement>
  140. <sql-statement>
  141. SELECT '[1,2,]'::jsonb; -- ERROR, trailing comma
  142. </sql-statement>
  143. -stdin-:<main>: Fatal: Execution
  144. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  145. SELECT '[1,2,]'::jsonb; -- ERROR, trailing comma
  146. ^
  147. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  148. DETAIL: Expected JSON value, but found "]".
  149. CONTEXT: JSON data, line 1: [1,2,]
  150. SELECT '[1,2,]'::jsonb; -- ERROR, trailing comma
  151. ^
  152. <sql-statement>
  153. SELECT '[1,2'::jsonb; -- ERROR, no closing bracket
  154. </sql-statement>
  155. -stdin-:<main>: Fatal: Execution
  156. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  157. SELECT '[1,2'::jsonb; -- ERROR, no closing bracket
  158. ^
  159. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  160. DETAIL: The input string ended unexpectedly.
  161. CONTEXT: JSON data, line 1: [1,2
  162. SELECT '[1,2'::jsonb; -- ERROR, no closing bracket
  163. ^
  164. <sql-statement>
  165. SELECT '[1,[2]'::jsonb; -- ERROR, no closing bracket
  166. </sql-statement>
  167. -stdin-:<main>: Fatal: Execution
  168. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  169. SELECT '[1,[2]'::jsonb; -- ERROR, no closing bracket
  170. ^
  171. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  172. DETAIL: The input string ended unexpectedly.
  173. CONTEXT: JSON data, line 1: [1,[2]
  174. SELECT '[1,[2]'::jsonb; -- ERROR, no closing bracket
  175. ^
  176. <sql-statement>
  177. -- Objects.
  178. SELECT '{}'::jsonb; -- OK
  179. </sql-statement>
  180. <sql-statement>
  181. SELECT '{"abc"}'::jsonb; -- ERROR, no value
  182. </sql-statement>
  183. -stdin-:<main>: Fatal: Execution
  184. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  185. SELECT '{"abc"}'::jsonb; -- ERROR, no value
  186. ^
  187. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  188. DETAIL: Expected ":", but found "}".
  189. CONTEXT: JSON data, line 1: {"abc"}
  190. SELECT '{"abc"}'::jsonb; -- ERROR, no value
  191. ^
  192. <sql-statement>
  193. SELECT '{"abc":1}'::jsonb; -- OK
  194. </sql-statement>
  195. <sql-statement>
  196. SELECT '{1:"abc"}'::jsonb; -- ERROR, keys must be strings
  197. </sql-statement>
  198. -stdin-:<main>: Fatal: Execution
  199. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  200. SELECT '{1:"abc"}'::jsonb; -- ERROR, keys must be strings
  201. ^
  202. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  203. DETAIL: Expected string or "}", but found "1".
  204. CONTEXT: JSON data, line 1: {1...
  205. SELECT '{1:"abc"}'::jsonb; -- ERROR, keys must be strings
  206. ^
  207. <sql-statement>
  208. SELECT '{"abc",1}'::jsonb; -- ERROR, wrong separator
  209. </sql-statement>
  210. -stdin-:<main>: Fatal: Execution
  211. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  212. SELECT '{"abc",1}'::jsonb; -- ERROR, wrong separator
  213. ^
  214. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  215. DETAIL: Expected ":", but found ",".
  216. CONTEXT: JSON data, line 1: {"abc",...
  217. SELECT '{"abc",1}'::jsonb; -- ERROR, wrong separator
  218. ^
  219. <sql-statement>
  220. SELECT '{"abc"=1}'::jsonb; -- ERROR, totally wrong separator
  221. </sql-statement>
  222. -stdin-:<main>: Fatal: Execution
  223. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  224. SELECT '{"abc"=1}'::jsonb; -- ERROR, totally wrong separator
  225. ^
  226. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  227. DETAIL: Token "=" is invalid.
  228. CONTEXT: JSON data, line 1: {"abc"=...
  229. SELECT '{"abc"=1}'::jsonb; -- ERROR, totally wrong separator
  230. ^
  231. <sql-statement>
  232. SELECT '{"abc"::1}'::jsonb; -- ERROR, another wrong separator
  233. </sql-statement>
  234. -stdin-:<main>: Fatal: Execution
  235. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  236. SELECT '{"abc"::1}'::jsonb; -- ERROR, another wrong separator
  237. ^
  238. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  239. DETAIL: Expected JSON value, but found ":".
  240. CONTEXT: JSON data, line 1: {"abc"::...
  241. SELECT '{"abc"::1}'::jsonb; -- ERROR, another wrong separator
  242. ^
  243. <sql-statement>
  244. SELECT '{"abc":1,"def":2,"ghi":[3,4],"hij":{"klm":5,"nop":[6]}}'::jsonb; -- OK
  245. </sql-statement>
  246. <sql-statement>
  247. SELECT '{"abc":1:2}'::jsonb; -- ERROR, colon in wrong spot
  248. </sql-statement>
  249. -stdin-:<main>: Fatal: Execution
  250. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  251. SELECT '{"abc":1:2}'::jsonb; -- ERROR, colon in wrong spot
  252. ^
  253. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  254. DETAIL: Expected "," or "}", but found ":".
  255. CONTEXT: JSON data, line 1: {"abc":1:...
  256. SELECT '{"abc":1:2}'::jsonb; -- ERROR, colon in wrong spot
  257. ^
  258. <sql-statement>
  259. SELECT '{"abc":1,3}'::jsonb; -- ERROR, no value
  260. </sql-statement>
  261. -stdin-:<main>: Fatal: Execution
  262. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  263. SELECT '{"abc":1,3}'::jsonb; -- ERROR, no value
  264. ^
  265. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  266. DETAIL: Expected string, but found "3".
  267. CONTEXT: JSON data, line 1: {"abc":1,3...
  268. SELECT '{"abc":1,3}'::jsonb; -- ERROR, no value
  269. ^
  270. <sql-statement>
  271. -- Miscellaneous stuff.
  272. SELECT 'true'::jsonb; -- OK
  273. </sql-statement>
  274. <sql-statement>
  275. SELECT 'false'::jsonb; -- OK
  276. </sql-statement>
  277. <sql-statement>
  278. SELECT 'null'::jsonb; -- OK
  279. </sql-statement>
  280. <sql-statement>
  281. SELECT ' true '::jsonb; -- OK, even with extra whitespace
  282. </sql-statement>
  283. <sql-statement>
  284. SELECT 'true false'::jsonb; -- ERROR, too many values
  285. </sql-statement>
  286. -stdin-:<main>: Fatal: Execution
  287. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  288. SELECT 'true false'::jsonb; -- ERROR, too many values
  289. ^
  290. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  291. DETAIL: Expected end of input, but found "false".
  292. CONTEXT: JSON data, line 1: true false
  293. SELECT 'true false'::jsonb; -- ERROR, too many values
  294. ^
  295. <sql-statement>
  296. SELECT 'true, false'::jsonb; -- ERROR, too many values
  297. </sql-statement>
  298. -stdin-:<main>: Fatal: Execution
  299. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  300. SELECT 'true, false'::jsonb; -- ERROR, too many values
  301. ^
  302. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  303. DETAIL: Expected end of input, but found ",".
  304. CONTEXT: JSON data, line 1: true,...
  305. SELECT 'true, false'::jsonb; -- ERROR, too many values
  306. ^
  307. <sql-statement>
  308. SELECT 'truf'::jsonb; -- ERROR, not a keyword
  309. </sql-statement>
  310. -stdin-:<main>: Fatal: Execution
  311. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  312. SELECT 'truf'::jsonb; -- ERROR, not a keyword
  313. ^
  314. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  315. DETAIL: Token "truf" is invalid.
  316. CONTEXT: JSON data, line 1: truf
  317. SELECT 'truf'::jsonb; -- ERROR, not a keyword
  318. ^
  319. <sql-statement>
  320. SELECT 'trues'::jsonb; -- ERROR, not a keyword
  321. </sql-statement>
  322. -stdin-:<main>: Fatal: Execution
  323. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  324. SELECT 'trues'::jsonb; -- ERROR, not a keyword
  325. ^
  326. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  327. DETAIL: Token "trues" is invalid.
  328. CONTEXT: JSON data, line 1: trues
  329. SELECT 'trues'::jsonb; -- ERROR, not a keyword
  330. ^
  331. <sql-statement>
  332. SELECT ''::jsonb; -- ERROR, no value
  333. </sql-statement>
  334. -stdin-:<main>: Fatal: Execution
  335. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  336. SELECT ''::jsonb; -- ERROR, no value
  337. ^
  338. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  339. DETAIL: The input string ended unexpectedly.
  340. CONTEXT: JSON data, line 1:
  341. SELECT ''::jsonb; -- ERROR, no value
  342. ^
  343. <sql-statement>
  344. SELECT ' '::jsonb; -- ERROR, no value
  345. </sql-statement>
  346. -stdin-:<main>: Fatal: Execution
  347. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  348. SELECT ' '::jsonb; -- ERROR, no value
  349. ^
  350. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  351. DETAIL: The input string ended unexpectedly.
  352. CONTEXT: JSON data, line 1:
  353. SELECT ' '::jsonb; -- ERROR, no value
  354. ^
  355. <sql-statement>
  356. -- Multi-line JSON input to check ERROR reporting
  357. SELECT '{
  358. "one": 1,
  359. "two":"two",
  360. "three":
  361. true}'::jsonb; -- OK
  362. </sql-statement>
  363. <sql-statement>
  364. SELECT '{
  365. "one": 1,
  366. "two":,"two", -- ERROR extraneous comma before field "two"
  367. "three":
  368. true}'::jsonb;
  369. </sql-statement>
  370. -stdin-:<main>: Fatal: Execution
  371. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  372. SELECT '{
  373. ^
  374. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  375. DETAIL: Expected JSON value, but found ",".
  376. CONTEXT: JSON data, line 3: "two":,...
  377. SELECT '{
  378. ^
  379. <sql-statement>
  380. SELECT '{
  381. "one": 1,
  382. "two":"two",
  383. "averyveryveryveryveryveryveryveryveryverylongfieldname":}'::jsonb;
  384. </sql-statement>
  385. -stdin-:<main>: Fatal: Execution
  386. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  387. SELECT '{
  388. ^
  389. -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type json
  390. DETAIL: Expected JSON value, but found "}".
  391. CONTEXT: JSON data, line 4: ...yveryveryveryveryveryveryveryverylongfieldname":}
  392. SELECT '{
  393. ^
  394. <sql-statement>
  395. -- ERROR missing value for last field
  396. -- make sure jsonb is passed through json generators without being escaped
  397. SELECT array_to_json(ARRAY [jsonb '{"a":1}', jsonb '{"b":[2,3]}']);
  398. </sql-statement>
  399. <sql-statement>
  400. -- anyarray column
  401. CREATE TEMP TABLE rows AS
  402. SELECT x, 'txt' || x as y
  403. FROM generate_series(1,3) AS x;
  404. </sql-statement>
  405. -stdin-:<main>: Error: Parse Sql
  406. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 277
  407. -- anyarray column
  408. ^
  409. <sql-statement>
  410. analyze rows;
  411. </sql-statement>
  412. -stdin-:<main>: Error: Parse Sql
  413. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 275
  414. analyze rows;
  415. ^
  416. <sql-statement>
  417. select attname, to_jsonb(histogram_bounds) histogram_bounds
  418. from pg_stats
  419. where tablename = 'rows' and
  420. schemaname = pg_my_temp_schema()::regnamespace::text
  421. order by 1;
  422. </sql-statement>
  423. -stdin-:<main>: Error: Type annotation
  424. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  425. select attname, to_jsonb(histogram_bounds) histogram_bounds
  426. ^
  427. -stdin-:<main>:1:17: Error: At function: PgCall
  428. select attname, to_jsonb(histogram_bounds) histogram_bounds
  429. ^
  430. -stdin-:<main>:1:17: Error: Unable to find an overload for proc to_jsonb with given argument types: (anyarray)
  431. select attname, to_jsonb(histogram_bounds) histogram_bounds
  432. ^
  433. <sql-statement>
  434. -- to_jsonb, timestamps
  435. select to_jsonb(timestamp '2014-05-28 12:22:35.614298');
  436. </sql-statement>
  437. -stdin-:<main>: Error: Type annotation
  438. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  439. -- to_jsonb, timestamps
  440. ^
  441. -stdin-:<main>:2:8: Error: At function: PgCall
  442. select to_jsonb(timestamp '2014-05-28 12:22:35.614298');
  443. ^
  444. -stdin-:<main>:2:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamp)
  445. select to_jsonb(timestamp '2014-05-28 12:22:35.614298');
  446. ^
  447. <sql-statement>
  448. BEGIN;
  449. </sql-statement>
  450. <sql-statement>
  451. SET LOCAL TIME ZONE 10.5;
  452. </sql-statement>
  453. <sql-statement>
  454. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  455. </sql-statement>
  456. -stdin-:<main>: Error: Type annotation
  457. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  458. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  459. ^
  460. -stdin-:<main>:1:8: Error: At function: PgCall
  461. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  462. ^
  463. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamptz)
  464. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  465. ^
  466. <sql-statement>
  467. SET LOCAL TIME ZONE -8;
  468. </sql-statement>
  469. <sql-statement>
  470. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  471. </sql-statement>
  472. -stdin-:<main>: Error: Type annotation
  473. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  474. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  475. ^
  476. -stdin-:<main>:1:8: Error: At function: PgCall
  477. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  478. ^
  479. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamptz)
  480. select to_jsonb(timestamptz '2014-05-28 12:22:35.614298-04');
  481. ^
  482. <sql-statement>
  483. COMMIT;
  484. </sql-statement>
  485. <sql-statement>
  486. select to_jsonb(date '2014-05-28');
  487. </sql-statement>
  488. -stdin-:<main>: Error: Type annotation
  489. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  490. select to_jsonb(date '2014-05-28');
  491. ^
  492. -stdin-:<main>:1:8: Error: At function: PgCall
  493. select to_jsonb(date '2014-05-28');
  494. ^
  495. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (date)
  496. select to_jsonb(date '2014-05-28');
  497. ^
  498. <sql-statement>
  499. select to_jsonb(date 'Infinity');
  500. </sql-statement>
  501. -stdin-:<main>: Error: Type annotation
  502. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  503. select to_jsonb(date 'Infinity');
  504. ^
  505. -stdin-:<main>:1:8: Error: At function: PgCall
  506. select to_jsonb(date 'Infinity');
  507. ^
  508. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (date)
  509. select to_jsonb(date 'Infinity');
  510. ^
  511. <sql-statement>
  512. select to_jsonb(date '-Infinity');
  513. </sql-statement>
  514. -stdin-:<main>: Error: Type annotation
  515. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  516. select to_jsonb(date '-Infinity');
  517. ^
  518. -stdin-:<main>:1:8: Error: At function: PgCall
  519. select to_jsonb(date '-Infinity');
  520. ^
  521. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (date)
  522. select to_jsonb(date '-Infinity');
  523. ^
  524. <sql-statement>
  525. select to_jsonb(timestamp 'Infinity');
  526. </sql-statement>
  527. -stdin-:<main>: Error: Type annotation
  528. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  529. select to_jsonb(timestamp 'Infinity');
  530. ^
  531. -stdin-:<main>:1:8: Error: At function: PgCall
  532. select to_jsonb(timestamp 'Infinity');
  533. ^
  534. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamp)
  535. select to_jsonb(timestamp 'Infinity');
  536. ^
  537. <sql-statement>
  538. select to_jsonb(timestamp '-Infinity');
  539. </sql-statement>
  540. -stdin-:<main>: Error: Type annotation
  541. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  542. select to_jsonb(timestamp '-Infinity');
  543. ^
  544. -stdin-:<main>:1:8: Error: At function: PgCall
  545. select to_jsonb(timestamp '-Infinity');
  546. ^
  547. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamp)
  548. select to_jsonb(timestamp '-Infinity');
  549. ^
  550. <sql-statement>
  551. select to_jsonb(timestamptz 'Infinity');
  552. </sql-statement>
  553. -stdin-:<main>: Error: Type annotation
  554. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  555. select to_jsonb(timestamptz 'Infinity');
  556. ^
  557. -stdin-:<main>:1:8: Error: At function: PgCall
  558. select to_jsonb(timestamptz 'Infinity');
  559. ^
  560. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamptz)
  561. select to_jsonb(timestamptz 'Infinity');
  562. ^
  563. <sql-statement>
  564. select to_jsonb(timestamptz '-Infinity');
  565. </sql-statement>
  566. -stdin-:<main>: Error: Type annotation
  567. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  568. select to_jsonb(timestamptz '-Infinity');
  569. ^
  570. -stdin-:<main>:1:8: Error: At function: PgCall
  571. select to_jsonb(timestamptz '-Infinity');
  572. ^
  573. -stdin-:<main>:1:8: Error: Unable to find an overload for proc to_jsonb with given argument types: (timestamptz)
  574. select to_jsonb(timestamptz '-Infinity');
  575. ^
  576. <sql-statement>
  577. --jsonb_agg
  578. SELECT jsonb_agg(q)
  579. FROM ( SELECT $$a$$ || x AS b, y AS c,
  580. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  581. ROW(y.*,ARRAY[4,5,6])] AS z
  582. FROM generate_series(1,2) x,
  583. generate_series(4,5) y) q;
  584. </sql-statement>
  585. -stdin-:<main>: Error: Parse Sql
  586. -stdin-:<main>:4:16: Error: alternative is not implemented yet : 138
  587. ARRAY[ROW(x.*,ARRAY[1,2,3]),
  588. ^
  589. -stdin-:<main>: Error: Type annotation
  590. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  591. --jsonb_agg
  592. ^
  593. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  594. --jsonb_agg
  595. ^
  596. <sql-statement>
  597. SELECT jsonb_agg(q ORDER BY x, y)
  598. FROM rows q;
  599. </sql-statement>
  600. -stdin-:<main>: Error: Parse Sql
  601. -stdin-:<main>:1:8: Error: FuncCall: unsupported agg_order
  602. SELECT jsonb_agg(q ORDER BY x, y)
  603. ^
  604. <sql-statement>
  605. UPDATE rows SET x = NULL WHERE x = 1;
  606. </sql-statement>
  607. -stdin-:<main>: Fatal: Pre type annotation
  608. -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'.
  609. <sql-statement>
  610. SELECT jsonb_agg(q ORDER BY x NULLS FIRST, y)
  611. FROM rows q;
  612. </sql-statement>
  613. -stdin-:<main>: Error: Parse Sql
  614. -stdin-:<main>:1:8: Error: FuncCall: unsupported agg_order
  615. SELECT jsonb_agg(q ORDER BY x NULLS FIRST, y)
  616. ^
  617. <sql-statement>
  618. -- jsonb extraction functions
  619. CREATE TEMP TABLE test_jsonb (
  620. json_type text,
  621. test_json jsonb
  622. );
  623. </sql-statement>
  624. <sql-statement>
  625. INSERT INTO test_jsonb VALUES
  626. ('scalar','"a scalar"'),
  627. ('array','["zero", "one","two",null,"four","five", [1,2,3],{"f1":9}]'),
  628. ('object','{"field1":"val1","field2":"val2","field3":null, "field4": 4, "field5": [1,2,3], "field6": {"f1":9}}');
  629. </sql-statement>
  630. <sql-statement>
  631. SELECT test_json -> 'x' FROM test_jsonb WHERE json_type = 'scalar';
  632. </sql-statement>
  633. <sql-statement>
  634. SELECT test_json -> 'x' FROM test_jsonb WHERE json_type = 'array';
  635. </sql-statement>
  636. <sql-statement>
  637. SELECT test_json -> 'x' FROM test_jsonb WHERE json_type = 'object';
  638. </sql-statement>
  639. <sql-statement>
  640. SELECT test_json -> 'field2' FROM test_jsonb WHERE json_type = 'object';
  641. </sql-statement>
  642. <sql-statement>
  643. SELECT test_json ->> 'field2' FROM test_jsonb WHERE json_type = 'scalar';
  644. </sql-statement>
  645. <sql-statement>
  646. SELECT test_json ->> 'field2' FROM test_jsonb WHERE json_type = 'array';
  647. </sql-statement>
  648. <sql-statement>
  649. SELECT test_json ->> 'field2' FROM test_jsonb WHERE json_type = 'object';
  650. </sql-statement>
  651. <sql-statement>
  652. SELECT test_json -> 2 FROM test_jsonb WHERE json_type = 'scalar';
  653. </sql-statement>
  654. <sql-statement>
  655. SELECT test_json -> 2 FROM test_jsonb WHERE json_type = 'array';
  656. </sql-statement>
  657. <sql-statement>
  658. SELECT test_json -> 9 FROM test_jsonb WHERE json_type = 'array';
  659. </sql-statement>
  660. <sql-statement>
  661. SELECT test_json -> 2 FROM test_jsonb WHERE json_type = 'object';
  662. </sql-statement>
  663. <sql-statement>
  664. SELECT test_json ->> 6 FROM test_jsonb WHERE json_type = 'array';
  665. </sql-statement>
  666. <sql-statement>
  667. SELECT test_json ->> 7 FROM test_jsonb WHERE json_type = 'array';
  668. </sql-statement>
  669. <sql-statement>
  670. SELECT test_json ->> 'field4' FROM test_jsonb WHERE json_type = 'object';
  671. </sql-statement>
  672. <sql-statement>
  673. SELECT test_json ->> 'field5' FROM test_jsonb WHERE json_type = 'object';
  674. </sql-statement>
  675. <sql-statement>
  676. SELECT test_json ->> 'field6' FROM test_jsonb WHERE json_type = 'object';
  677. </sql-statement>
  678. <sql-statement>
  679. SELECT test_json ->> 2 FROM test_jsonb WHERE json_type = 'scalar';
  680. </sql-statement>
  681. <sql-statement>
  682. SELECT test_json ->> 2 FROM test_jsonb WHERE json_type = 'array';
  683. </sql-statement>
  684. <sql-statement>
  685. SELECT test_json ->> 2 FROM test_jsonb WHERE json_type = 'object';
  686. </sql-statement>
  687. <sql-statement>
  688. SELECT jsonb_object_keys(test_json) FROM test_jsonb WHERE json_type = 'scalar';
  689. </sql-statement>
  690. -stdin-:<main>: Error: Parse Sql
  691. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  692. SELECT jsonb_object_keys(test_json) FROM test_jsonb WHERE json_type = 'scalar';
  693. ^
  694. <sql-statement>
  695. SELECT jsonb_object_keys(test_json) FROM test_jsonb WHERE json_type = 'array';
  696. </sql-statement>
  697. -stdin-:<main>: Error: Parse Sql
  698. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  699. SELECT jsonb_object_keys(test_json) FROM test_jsonb WHERE json_type = 'array';
  700. ^
  701. <sql-statement>
  702. SELECT jsonb_object_keys(test_json) FROM test_jsonb WHERE json_type = 'object';
  703. </sql-statement>
  704. -stdin-:<main>: Error: Parse Sql
  705. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  706. SELECT jsonb_object_keys(test_json) FROM test_jsonb WHERE json_type = 'object';
  707. ^
  708. <sql-statement>
  709. -- nulls
  710. SELECT (test_json->'field3') IS NULL AS expect_false FROM test_jsonb WHERE json_type = 'object';
  711. </sql-statement>
  712. <sql-statement>
  713. SELECT (test_json->>'field3') IS NULL AS expect_true FROM test_jsonb WHERE json_type = 'object';
  714. </sql-statement>
  715. <sql-statement>
  716. SELECT (test_json->3) IS NULL AS expect_false FROM test_jsonb WHERE json_type = 'array';
  717. </sql-statement>
  718. <sql-statement>
  719. SELECT (test_json->>3) IS NULL AS expect_true FROM test_jsonb WHERE json_type = 'array';
  720. </sql-statement>
  721. <sql-statement>
  722. -- corner cases
  723. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb -> null::text;
  724. </sql-statement>
  725. <sql-statement>
  726. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb -> null::int;
  727. </sql-statement>
  728. <sql-statement>
  729. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb -> 1;
  730. </sql-statement>
  731. <sql-statement>
  732. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb -> 'z';
  733. </sql-statement>
  734. <sql-statement>
  735. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb -> '';
  736. </sql-statement>
  737. <sql-statement>
  738. select '[{"b": "c"}, {"b": "cc"}]'::jsonb -> 1;
  739. </sql-statement>
  740. <sql-statement>
  741. select '[{"b": "c"}, {"b": "cc"}]'::jsonb -> 3;
  742. </sql-statement>
  743. <sql-statement>
  744. select '[{"b": "c"}, {"b": "cc"}]'::jsonb -> 'z';
  745. </sql-statement>
  746. <sql-statement>
  747. select '{"a": "c", "b": null}'::jsonb -> 'b';
  748. </sql-statement>
  749. <sql-statement>
  750. select '"foo"'::jsonb -> 1;
  751. </sql-statement>
  752. <sql-statement>
  753. select '"foo"'::jsonb -> 'z';
  754. </sql-statement>
  755. <sql-statement>
  756. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb ->> null::text;
  757. </sql-statement>
  758. <sql-statement>
  759. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb ->> null::int;
  760. </sql-statement>
  761. <sql-statement>
  762. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb ->> 1;
  763. </sql-statement>
  764. <sql-statement>
  765. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb ->> 'z';
  766. </sql-statement>
  767. <sql-statement>
  768. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb ->> '';
  769. </sql-statement>
  770. <sql-statement>
  771. select '[{"b": "c"}, {"b": "cc"}]'::jsonb ->> 1;
  772. </sql-statement>
  773. <sql-statement>
  774. select '[{"b": "c"}, {"b": "cc"}]'::jsonb ->> 3;
  775. </sql-statement>
  776. <sql-statement>
  777. select '[{"b": "c"}, {"b": "cc"}]'::jsonb ->> 'z';
  778. </sql-statement>
  779. <sql-statement>
  780. select '{"a": "c", "b": null}'::jsonb ->> 'b';
  781. </sql-statement>
  782. <sql-statement>
  783. select '"foo"'::jsonb ->> 1;
  784. </sql-statement>
  785. <sql-statement>
  786. select '"foo"'::jsonb ->> 'z';
  787. </sql-statement>
  788. <sql-statement>
  789. -- equality and inequality
  790. SELECT '{"x":"y"}'::jsonb = '{"x":"y"}'::jsonb;
  791. </sql-statement>
  792. <sql-statement>
  793. SELECT '{"x":"y"}'::jsonb = '{"x":"z"}'::jsonb;
  794. </sql-statement>
  795. <sql-statement>
  796. SELECT '{"x":"y"}'::jsonb <> '{"x":"y"}'::jsonb;
  797. </sql-statement>
  798. <sql-statement>
  799. SELECT '{"x":"y"}'::jsonb <> '{"x":"z"}'::jsonb;
  800. </sql-statement>
  801. <sql-statement>
  802. -- containment
  803. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"a":"b"}');
  804. </sql-statement>
  805. <sql-statement>
  806. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"a":"b", "c":null}');
  807. </sql-statement>
  808. <sql-statement>
  809. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"a":"b", "g":null}');
  810. </sql-statement>
  811. <sql-statement>
  812. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"g":null}');
  813. </sql-statement>
  814. <sql-statement>
  815. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"a":"c"}');
  816. </sql-statement>
  817. <sql-statement>
  818. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"a":"b"}');
  819. </sql-statement>
  820. <sql-statement>
  821. SELECT jsonb_contains('{"a":"b", "b":1, "c":null}', '{"a":"b", "c":"q"}');
  822. </sql-statement>
  823. <sql-statement>
  824. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"a":"b"}';
  825. </sql-statement>
  826. <sql-statement>
  827. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"a":"b", "c":null}';
  828. </sql-statement>
  829. <sql-statement>
  830. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"a":"b", "g":null}';
  831. </sql-statement>
  832. <sql-statement>
  833. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"g":null}';
  834. </sql-statement>
  835. <sql-statement>
  836. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"a":"c"}';
  837. </sql-statement>
  838. <sql-statement>
  839. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"a":"b"}';
  840. </sql-statement>
  841. <sql-statement>
  842. SELECT '{"a":"b", "b":1, "c":null}'::jsonb @> '{"a":"b", "c":"q"}';
  843. </sql-statement>
  844. <sql-statement>
  845. SELECT '[1,2]'::jsonb @> '[1,2,2]'::jsonb;
  846. </sql-statement>
  847. <sql-statement>
  848. SELECT '[1,1,2]'::jsonb @> '[1,2,2]'::jsonb;
  849. </sql-statement>
  850. <sql-statement>
  851. SELECT '[[1,2]]'::jsonb @> '[[1,2,2]]'::jsonb;
  852. </sql-statement>
  853. <sql-statement>
  854. SELECT '[1,2,2]'::jsonb <@ '[1,2]'::jsonb;
  855. </sql-statement>
  856. <sql-statement>
  857. SELECT '[1,2,2]'::jsonb <@ '[1,1,2]'::jsonb;
  858. </sql-statement>
  859. <sql-statement>
  860. SELECT '[[1,2,2]]'::jsonb <@ '[[1,2]]'::jsonb;
  861. </sql-statement>
  862. <sql-statement>
  863. SELECT jsonb_contained('{"a":"b"}', '{"a":"b", "b":1, "c":null}');
  864. </sql-statement>
  865. <sql-statement>
  866. SELECT jsonb_contained('{"a":"b", "c":null}', '{"a":"b", "b":1, "c":null}');
  867. </sql-statement>
  868. <sql-statement>
  869. SELECT jsonb_contained('{"a":"b", "g":null}', '{"a":"b", "b":1, "c":null}');
  870. </sql-statement>
  871. <sql-statement>
  872. SELECT jsonb_contained('{"g":null}', '{"a":"b", "b":1, "c":null}');
  873. </sql-statement>
  874. <sql-statement>
  875. SELECT jsonb_contained('{"a":"c"}', '{"a":"b", "b":1, "c":null}');
  876. </sql-statement>
  877. <sql-statement>
  878. SELECT jsonb_contained('{"a":"b"}', '{"a":"b", "b":1, "c":null}');
  879. </sql-statement>
  880. <sql-statement>
  881. SELECT jsonb_contained('{"a":"b", "c":"q"}', '{"a":"b", "b":1, "c":null}');
  882. </sql-statement>
  883. <sql-statement>
  884. SELECT '{"a":"b"}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  885. </sql-statement>
  886. <sql-statement>
  887. SELECT '{"a":"b", "c":null}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  888. </sql-statement>
  889. <sql-statement>
  890. SELECT '{"a":"b", "g":null}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  891. </sql-statement>
  892. <sql-statement>
  893. SELECT '{"g":null}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  894. </sql-statement>
  895. <sql-statement>
  896. SELECT '{"a":"c"}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  897. </sql-statement>
  898. <sql-statement>
  899. SELECT '{"a":"b"}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  900. </sql-statement>
  901. <sql-statement>
  902. SELECT '{"a":"b", "c":"q"}'::jsonb <@ '{"a":"b", "b":1, "c":null}';
  903. </sql-statement>
  904. <sql-statement>
  905. -- Raw scalar may contain another raw scalar, array may contain a raw scalar
  906. SELECT '[5]'::jsonb @> '[5]';
  907. </sql-statement>
  908. <sql-statement>
  909. SELECT '5'::jsonb @> '5';
  910. </sql-statement>
  911. <sql-statement>
  912. SELECT '[5]'::jsonb @> '5';
  913. </sql-statement>
  914. <sql-statement>
  915. -- But a raw scalar cannot contain an array
  916. SELECT '5'::jsonb @> '[5]';
  917. </sql-statement>
  918. <sql-statement>
  919. -- In general, one thing should always contain itself. Test array containment:
  920. SELECT '["9", ["7", "3"], 1]'::jsonb @> '["9", ["7", "3"], 1]'::jsonb;
  921. </sql-statement>
  922. <sql-statement>
  923. SELECT '["9", ["7", "3"], ["1"]]'::jsonb @> '["9", ["7", "3"], ["1"]]'::jsonb;
  924. </sql-statement>
  925. <sql-statement>
  926. -- array containment string matching confusion bug
  927. SELECT '{ "name": "Bob", "tags": [ "enim", "qui"]}'::jsonb @> '{"tags":["qu"]}';
  928. </sql-statement>
  929. <sql-statement>
  930. -- array length
  931. SELECT jsonb_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]');
  932. </sql-statement>
  933. <sql-statement>
  934. SELECT jsonb_array_length('[]');
  935. </sql-statement>
  936. <sql-statement>
  937. SELECT jsonb_array_length('{"f1":1,"f2":[5,6]}');
  938. </sql-statement>
  939. -stdin-:<main>: Fatal: Execution
  940. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  941. SELECT jsonb_array_length('{"f1":1,"f2":[5,6]}');
  942. ^
  943. -stdin-:<main>:1:1: Fatal: ERROR: cannot get array length of a non-array
  944. SELECT jsonb_array_length('{"f1":1,"f2":[5,6]}');
  945. ^
  946. <sql-statement>
  947. SELECT jsonb_array_length('4');
  948. </sql-statement>
  949. -stdin-:<main>: Fatal: Execution
  950. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  951. SELECT jsonb_array_length('4');
  952. ^
  953. -stdin-:<main>:1:1: Fatal: ERROR: cannot get array length of a scalar
  954. SELECT jsonb_array_length('4');
  955. ^
  956. <sql-statement>
  957. -- each
  958. SELECT jsonb_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}');
  959. </sql-statement>
  960. -stdin-:<main>: Error: Parse Sql
  961. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  962. SELECT jsonb_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}');
  963. ^
  964. <sql-statement>
  965. SELECT jsonb_each('{"a":{"b":"c","c":"b","1":"first"},"b":[1,2],"c":"cc","1":"first","n":null}'::jsonb) AS q;
  966. </sql-statement>
  967. -stdin-:<main>: Error: Parse Sql
  968. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  969. SELECT jsonb_each('{"a":{"b":"c","c":"b","1":"first"},"b":[1,2],"c":"cc","1":"first","n":null}'::jsonb) AS q;
  970. ^
  971. <sql-statement>
  972. SELECT * FROM jsonb_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":99,"f6":"stringy"}') q;
  973. </sql-statement>
  974. <sql-statement>
  975. SELECT * FROM jsonb_each('{"a":{"b":"c","c":"b","1":"first"},"b":[1,2],"c":"cc","1":"first","n":null}'::jsonb) AS q;
  976. </sql-statement>
  977. <sql-statement>
  978. SELECT jsonb_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":"null"}');
  979. </sql-statement>
  980. -stdin-:<main>: Error: Parse Sql
  981. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  982. SELECT jsonb_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":"null"}');
  983. ^
  984. <sql-statement>
  985. SELECT jsonb_each_text('{"a":{"b":"c","c":"b","1":"first"},"b":[1,2],"c":"cc","1":"first","n":null}'::jsonb) AS q;
  986. </sql-statement>
  987. -stdin-:<main>: Error: Parse Sql
  988. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  989. SELECT jsonb_each_text('{"a":{"b":"c","c":"b","1":"first"},"b":[1,2],"c":"cc","1":"first","n":null}'::jsonb) AS q;
  990. ^
  991. <sql-statement>
  992. SELECT * FROM jsonb_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null,"f5":99,"f6":"stringy"}') q;
  993. </sql-statement>
  994. <sql-statement>
  995. SELECT * FROM jsonb_each_text('{"a":{"b":"c","c":"b","1":"first"},"b":[1,2],"c":"cc","1":"first","n":null}'::jsonb) AS q;
  996. </sql-statement>
  997. <sql-statement>
  998. -- exists
  999. SELECT jsonb_exists('{"a":null, "b":"qq"}', 'a');
  1000. </sql-statement>
  1001. <sql-statement>
  1002. SELECT jsonb_exists('{"a":null, "b":"qq"}', 'b');
  1003. </sql-statement>
  1004. <sql-statement>
  1005. SELECT jsonb_exists('{"a":null, "b":"qq"}', 'c');
  1006. </sql-statement>
  1007. <sql-statement>
  1008. SELECT jsonb_exists('{"a":"null", "b":"qq"}', 'a');
  1009. </sql-statement>
  1010. <sql-statement>
  1011. SELECT jsonb '{"a":null, "b":"qq"}' ? 'a';
  1012. </sql-statement>
  1013. <sql-statement>
  1014. SELECT jsonb '{"a":null, "b":"qq"}' ? 'b';
  1015. </sql-statement>
  1016. <sql-statement>
  1017. SELECT jsonb '{"a":null, "b":"qq"}' ? 'c';
  1018. </sql-statement>
  1019. <sql-statement>
  1020. SELECT jsonb '{"a":"null", "b":"qq"}' ? 'a';
  1021. </sql-statement>
  1022. <sql-statement>
  1023. -- array exists - array elements should behave as keys
  1024. SELECT count(*) from testjsonb WHERE j->'array' ? 'bar';
  1025. </sql-statement>
  1026. <sql-statement>
  1027. -- type sensitive array exists - should return no rows (since "exists" only
  1028. -- matches strings that are either object keys or array elements)
  1029. SELECT count(*) from testjsonb WHERE j->'array' ? '5'::text;
  1030. </sql-statement>
  1031. <sql-statement>
  1032. -- However, a raw scalar is *contained* within the array
  1033. SELECT count(*) from testjsonb WHERE j->'array' @> '5'::jsonb;
  1034. </sql-statement>
  1035. <sql-statement>
  1036. SELECT jsonb_exists_any('{"a":null, "b":"qq"}', ARRAY['a','b']);
  1037. </sql-statement>
  1038. <sql-statement>
  1039. SELECT jsonb_exists_any('{"a":null, "b":"qq"}', ARRAY['b','a']);
  1040. </sql-statement>
  1041. <sql-statement>
  1042. SELECT jsonb_exists_any('{"a":null, "b":"qq"}', ARRAY['c','a']);
  1043. </sql-statement>
  1044. <sql-statement>
  1045. SELECT jsonb_exists_any('{"a":null, "b":"qq"}', ARRAY['c','d']);
  1046. </sql-statement>
  1047. <sql-statement>
  1048. SELECT jsonb_exists_any('{"a":null, "b":"qq"}', '{}'::text[]);
  1049. </sql-statement>
  1050. <sql-statement>
  1051. SELECT jsonb '{"a":null, "b":"qq"}' ?| ARRAY['a','b'];
  1052. </sql-statement>
  1053. <sql-statement>
  1054. SELECT jsonb '{"a":null, "b":"qq"}' ?| ARRAY['b','a'];
  1055. </sql-statement>
  1056. <sql-statement>
  1057. SELECT jsonb '{"a":null, "b":"qq"}' ?| ARRAY['c','a'];
  1058. </sql-statement>
  1059. <sql-statement>
  1060. SELECT jsonb '{"a":null, "b":"qq"}' ?| ARRAY['c','d'];
  1061. </sql-statement>
  1062. <sql-statement>
  1063. SELECT jsonb '{"a":null, "b":"qq"}' ?| '{}'::text[];
  1064. </sql-statement>
  1065. <sql-statement>
  1066. SELECT jsonb_exists_all('{"a":null, "b":"qq"}', ARRAY['a','b']);
  1067. </sql-statement>
  1068. <sql-statement>
  1069. SELECT jsonb_exists_all('{"a":null, "b":"qq"}', ARRAY['b','a']);
  1070. </sql-statement>
  1071. <sql-statement>
  1072. SELECT jsonb_exists_all('{"a":null, "b":"qq"}', ARRAY['c','a']);
  1073. </sql-statement>
  1074. <sql-statement>
  1075. SELECT jsonb_exists_all('{"a":null, "b":"qq"}', ARRAY['c','d']);
  1076. </sql-statement>
  1077. <sql-statement>
  1078. SELECT jsonb_exists_all('{"a":null, "b":"qq"}', '{}'::text[]);
  1079. </sql-statement>
  1080. <sql-statement>
  1081. SELECT jsonb '{"a":null, "b":"qq"}' ?& ARRAY['a','b'];
  1082. </sql-statement>
  1083. <sql-statement>
  1084. SELECT jsonb '{"a":null, "b":"qq"}' ?& ARRAY['b','a'];
  1085. </sql-statement>
  1086. <sql-statement>
  1087. SELECT jsonb '{"a":null, "b":"qq"}' ?& ARRAY['c','a'];
  1088. </sql-statement>
  1089. <sql-statement>
  1090. SELECT jsonb '{"a":null, "b":"qq"}' ?& ARRAY['c','d'];
  1091. </sql-statement>
  1092. <sql-statement>
  1093. SELECT jsonb '{"a":null, "b":"qq"}' ?& ARRAY['a','a', 'b', 'b', 'b'];
  1094. </sql-statement>
  1095. <sql-statement>
  1096. SELECT jsonb '{"a":null, "b":"qq"}' ?& '{}'::text[];
  1097. </sql-statement>
  1098. <sql-statement>
  1099. -- typeof
  1100. SELECT jsonb_typeof('{}') AS object;
  1101. </sql-statement>
  1102. <sql-statement>
  1103. SELECT jsonb_typeof('{"c":3,"p":"o"}') AS object;
  1104. </sql-statement>
  1105. <sql-statement>
  1106. SELECT jsonb_typeof('[]') AS array;
  1107. </sql-statement>
  1108. <sql-statement>
  1109. SELECT jsonb_typeof('["a", 1]') AS array;
  1110. </sql-statement>
  1111. <sql-statement>
  1112. SELECT jsonb_typeof('null') AS "null";
  1113. </sql-statement>
  1114. <sql-statement>
  1115. SELECT jsonb_typeof('1') AS number;
  1116. </sql-statement>
  1117. <sql-statement>
  1118. SELECT jsonb_typeof('-1') AS number;
  1119. </sql-statement>
  1120. <sql-statement>
  1121. SELECT jsonb_typeof('1.0') AS number;
  1122. </sql-statement>
  1123. <sql-statement>
  1124. SELECT jsonb_typeof('1e2') AS number;
  1125. </sql-statement>
  1126. <sql-statement>
  1127. SELECT jsonb_typeof('-1.0') AS number;
  1128. </sql-statement>
  1129. <sql-statement>
  1130. SELECT jsonb_typeof('true') AS boolean;
  1131. </sql-statement>
  1132. <sql-statement>
  1133. SELECT jsonb_typeof('false') AS boolean;
  1134. </sql-statement>
  1135. <sql-statement>
  1136. SELECT jsonb_typeof('"hello"') AS string;
  1137. </sql-statement>
  1138. <sql-statement>
  1139. SELECT jsonb_typeof('"true"') AS string;
  1140. </sql-statement>
  1141. <sql-statement>
  1142. SELECT jsonb_typeof('"1.0"') AS string;
  1143. </sql-statement>
  1144. <sql-statement>
  1145. -- jsonb_build_array, jsonb_build_object, jsonb_object_agg
  1146. SELECT jsonb_build_array('a',1,'b',1.2,'c',true,'d',null,'e',json '{"x": 3, "y": [1,2,3]}');
  1147. </sql-statement>
  1148. -stdin-:<main>: Fatal: Execution
  1149. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1150. -- jsonb_build_array, jsonb_build_object, jsonb_object_agg
  1151. ^
  1152. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1153. -- jsonb_build_array, jsonb_build_object, jsonb_object_agg
  1154. ^
  1155. <sql-statement>
  1156. SELECT jsonb_build_array('a', NULL); -- ok
  1157. </sql-statement>
  1158. -stdin-:<main>: Fatal: Execution
  1159. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1160. SELECT jsonb_build_array('a', NULL); -- ok
  1161. ^
  1162. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1163. SELECT jsonb_build_array('a', NULL); -- ok
  1164. ^
  1165. <sql-statement>
  1166. SELECT jsonb_build_array(VARIADIC NULL::text[]); -- ok
  1167. </sql-statement>
  1168. -stdin-:<main>: Error: Parse Sql
  1169. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1170. SELECT jsonb_build_array(VARIADIC NULL::text[]); -- ok
  1171. ^
  1172. <sql-statement>
  1173. SELECT jsonb_build_array(VARIADIC '{}'::text[]); -- ok
  1174. </sql-statement>
  1175. -stdin-:<main>: Error: Parse Sql
  1176. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1177. SELECT jsonb_build_array(VARIADIC '{}'::text[]); -- ok
  1178. ^
  1179. <sql-statement>
  1180. SELECT jsonb_build_array(VARIADIC '{a,b,c}'::text[]); -- ok
  1181. </sql-statement>
  1182. -stdin-:<main>: Error: Parse Sql
  1183. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1184. SELECT jsonb_build_array(VARIADIC '{a,b,c}'::text[]); -- ok
  1185. ^
  1186. <sql-statement>
  1187. SELECT jsonb_build_array(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  1188. </sql-statement>
  1189. -stdin-:<main>: Error: Parse Sql
  1190. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1191. SELECT jsonb_build_array(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  1192. ^
  1193. <sql-statement>
  1194. SELECT jsonb_build_array(VARIADIC '{1,2,3,4}'::text[]); -- ok
  1195. </sql-statement>
  1196. -stdin-:<main>: Error: Parse Sql
  1197. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1198. SELECT jsonb_build_array(VARIADIC '{1,2,3,4}'::text[]); -- ok
  1199. ^
  1200. <sql-statement>
  1201. SELECT jsonb_build_array(VARIADIC '{1,2,3,4}'::int[]); -- ok
  1202. </sql-statement>
  1203. -stdin-:<main>: Error: Parse Sql
  1204. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1205. SELECT jsonb_build_array(VARIADIC '{1,2,3,4}'::int[]); -- ok
  1206. ^
  1207. <sql-statement>
  1208. SELECT jsonb_build_array(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  1209. </sql-statement>
  1210. -stdin-:<main>: Error: Parse Sql
  1211. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1212. SELECT jsonb_build_array(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  1213. ^
  1214. <sql-statement>
  1215. SELECT jsonb_build_object('a',1,'b',1.2,'c',true,'d',null,'e',json '{"x": 3, "y": [1,2,3]}');
  1216. </sql-statement>
  1217. -stdin-:<main>: Fatal: Execution
  1218. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1219. SELECT jsonb_build_object('a',1,'b',1.2,'c',true,'d',null,'e',json '{"x": 3, "y": [1,2,3]}');
  1220. ^
  1221. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1222. SELECT jsonb_build_object('a',1,'b',1.2,'c',true,'d',null,'e',json '{"x": 3, "y": [1,2,3]}');
  1223. ^
  1224. <sql-statement>
  1225. SELECT jsonb_build_object(
  1226. 'a', jsonb_build_object('b',false,'c',99),
  1227. 'd', jsonb_build_object('e',array[9,8,7]::int[],
  1228. 'f', (select row_to_json(r) from ( select relkind, oid::regclass as name from pg_class where relname = 'pg_class') r)));
  1229. </sql-statement>
  1230. -stdin-:<main>: Fatal: Execution
  1231. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1232. SELECT jsonb_build_object(
  1233. ^
  1234. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1235. SELECT jsonb_build_object(
  1236. ^
  1237. <sql-statement>
  1238. SELECT jsonb_build_object('{a,b,c}'::text[]); -- error
  1239. </sql-statement>
  1240. -stdin-:<main>: Fatal: Execution
  1241. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1242. SELECT jsonb_build_object('{a,b,c}'::text[]); -- error
  1243. ^
  1244. -stdin-:<main>:1:1: Fatal: ERROR: argument list must have even number of elements
  1245. HINT: The arguments of jsonb_build_object() must consist of alternating keys and values.
  1246. SELECT jsonb_build_object('{a,b,c}'::text[]); -- error
  1247. ^
  1248. <sql-statement>
  1249. SELECT jsonb_build_object('{a,b,c}'::text[], '{d,e,f}'::text[]); -- error, key cannot be array
  1250. </sql-statement>
  1251. -stdin-:<main>: Fatal: Execution
  1252. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1253. SELECT jsonb_build_object('{a,b,c}'::text[], '{d,e,f}'::text[]); -- error, key cannot be array
  1254. ^
  1255. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  1256. SELECT jsonb_build_object('{a,b,c}'::text[], '{d,e,f}'::text[]); -- error, key cannot be array
  1257. ^
  1258. <sql-statement>
  1259. SELECT jsonb_build_object('a', 'b', 'c'); -- error
  1260. </sql-statement>
  1261. -stdin-:<main>: Fatal: Execution
  1262. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1263. SELECT jsonb_build_object('a', 'b', 'c'); -- error
  1264. ^
  1265. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1266. SELECT jsonb_build_object('a', 'b', 'c'); -- error
  1267. ^
  1268. <sql-statement>
  1269. SELECT jsonb_build_object(NULL, 'a'); -- error, key cannot be NULL
  1270. </sql-statement>
  1271. -stdin-:<main>: Fatal: Execution
  1272. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1273. SELECT jsonb_build_object(NULL, 'a'); -- error, key cannot be NULL
  1274. ^
  1275. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1276. SELECT jsonb_build_object(NULL, 'a'); -- error, key cannot be NULL
  1277. ^
  1278. <sql-statement>
  1279. SELECT jsonb_build_object('a', NULL); -- ok
  1280. </sql-statement>
  1281. -stdin-:<main>: Fatal: Execution
  1282. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1283. SELECT jsonb_build_object('a', NULL); -- ok
  1284. ^
  1285. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1286. SELECT jsonb_build_object('a', NULL); -- ok
  1287. ^
  1288. <sql-statement>
  1289. SELECT jsonb_build_object(VARIADIC NULL::text[]); -- ok
  1290. </sql-statement>
  1291. -stdin-:<main>: Error: Parse Sql
  1292. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1293. SELECT jsonb_build_object(VARIADIC NULL::text[]); -- ok
  1294. ^
  1295. <sql-statement>
  1296. SELECT jsonb_build_object(VARIADIC '{}'::text[]); -- ok
  1297. </sql-statement>
  1298. -stdin-:<main>: Error: Parse Sql
  1299. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1300. SELECT jsonb_build_object(VARIADIC '{}'::text[]); -- ok
  1301. ^
  1302. <sql-statement>
  1303. SELECT jsonb_build_object(VARIADIC '{a,b,c}'::text[]); -- error
  1304. </sql-statement>
  1305. -stdin-:<main>: Error: Parse Sql
  1306. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1307. SELECT jsonb_build_object(VARIADIC '{a,b,c}'::text[]); -- error
  1308. ^
  1309. <sql-statement>
  1310. SELECT jsonb_build_object(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  1311. </sql-statement>
  1312. -stdin-:<main>: Error: Parse Sql
  1313. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1314. SELECT jsonb_build_object(VARIADIC ARRAY['a', NULL]::text[]); -- ok
  1315. ^
  1316. <sql-statement>
  1317. SELECT jsonb_build_object(VARIADIC ARRAY[NULL, 'a']::text[]); -- error, key cannot be NULL
  1318. </sql-statement>
  1319. -stdin-:<main>: Error: Parse Sql
  1320. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1321. SELECT jsonb_build_object(VARIADIC ARRAY[NULL, 'a']::text[]); -- error, key cannot be NULL
  1322. ^
  1323. <sql-statement>
  1324. SELECT jsonb_build_object(VARIADIC '{1,2,3,4}'::text[]); -- ok
  1325. </sql-statement>
  1326. -stdin-:<main>: Error: Parse Sql
  1327. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1328. SELECT jsonb_build_object(VARIADIC '{1,2,3,4}'::text[]); -- ok
  1329. ^
  1330. <sql-statement>
  1331. SELECT jsonb_build_object(VARIADIC '{1,2,3,4}'::int[]); -- ok
  1332. </sql-statement>
  1333. -stdin-:<main>: Error: Parse Sql
  1334. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1335. SELECT jsonb_build_object(VARIADIC '{1,2,3,4}'::int[]); -- ok
  1336. ^
  1337. <sql-statement>
  1338. SELECT jsonb_build_object(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  1339. </sql-statement>
  1340. -stdin-:<main>: Error: Parse Sql
  1341. -stdin-:<main>:1:8: Error: FuncCall: unsupported func_variadic
  1342. SELECT jsonb_build_object(VARIADIC '{{1,4},{2,5},{3,6}}'::int[][]); -- ok
  1343. ^
  1344. <sql-statement>
  1345. -- empty objects/arrays
  1346. SELECT jsonb_build_array();
  1347. </sql-statement>
  1348. <sql-statement>
  1349. SELECT jsonb_build_object();
  1350. </sql-statement>
  1351. <sql-statement>
  1352. -- make sure keys are quoted
  1353. SELECT jsonb_build_object(1,2);
  1354. </sql-statement>
  1355. <sql-statement>
  1356. -- keys must be scalar and not null
  1357. SELECT jsonb_build_object(null,2);
  1358. </sql-statement>
  1359. -stdin-:<main>: Fatal: Execution
  1360. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1361. -- keys must be scalar and not null
  1362. ^
  1363. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1364. -- keys must be scalar and not null
  1365. ^
  1366. <sql-statement>
  1367. SELECT jsonb_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
  1368. </sql-statement>
  1369. -stdin-:<main>: Fatal: Execution
  1370. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1371. SELECT jsonb_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
  1372. ^
  1373. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  1374. SELECT jsonb_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
  1375. ^
  1376. <sql-statement>
  1377. SELECT jsonb_build_object(json '{"a":1,"b":2}', 3);
  1378. </sql-statement>
  1379. -stdin-:<main>: Fatal: Execution
  1380. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1381. SELECT jsonb_build_object(json '{"a":1,"b":2}', 3);
  1382. ^
  1383. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  1384. SELECT jsonb_build_object(json '{"a":1,"b":2}', 3);
  1385. ^
  1386. <sql-statement>
  1387. SELECT jsonb_build_object('{1,2,3}'::int[], 3);
  1388. </sql-statement>
  1389. -stdin-:<main>: Fatal: Execution
  1390. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1391. SELECT jsonb_build_object('{1,2,3}'::int[], 3);
  1392. ^
  1393. -stdin-:<main>:1:1: Fatal: ERROR: key value must be scalar, not array, composite, or json
  1394. SELECT jsonb_build_object('{1,2,3}'::int[], 3);
  1395. ^
  1396. <sql-statement>
  1397. -- handling of NULL values
  1398. SELECT jsonb_object_agg(1, NULL::jsonb);
  1399. </sql-statement>
  1400. <sql-statement>
  1401. SELECT jsonb_object_agg(NULL, '{"a":1}');
  1402. </sql-statement>
  1403. -stdin-:<main>: Fatal: Execution
  1404. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1405. SELECT jsonb_object_agg(NULL, '{"a":1}');
  1406. ^
  1407. -stdin-:<main>:1:1: Fatal: ERROR: field name must not be null
  1408. SELECT jsonb_object_agg(NULL, '{"a":1}');
  1409. ^
  1410. <sql-statement>
  1411. CREATE TEMP TABLE foo (serial_num int, name text, type text);
  1412. </sql-statement>
  1413. <sql-statement>
  1414. INSERT INTO foo VALUES (847001,'t15','GE1043');
  1415. </sql-statement>
  1416. <sql-statement>
  1417. INSERT INTO foo VALUES (847002,'t16','GE1043');
  1418. </sql-statement>
  1419. <sql-statement>
  1420. INSERT INTO foo VALUES (847003,'sub-alpha','GESS90');
  1421. </sql-statement>
  1422. <sql-statement>
  1423. SELECT jsonb_build_object('turbines',jsonb_object_agg(serial_num,jsonb_build_object('name',name,'type',type)))
  1424. FROM foo;
  1425. </sql-statement>
  1426. -stdin-:<main>: Fatal: Execution
  1427. -stdin-:<main>:1:1: Fatal: Execution of node: YtMapReduce!
  1428. SELECT jsonb_build_object('turbines',jsonb_object_agg(serial_num,jsonb_build_object('name',name,'type',type)))
  1429. ^
  1430. -stdin-:<main>:1:1: Fatal: ERROR: could not determine data type for argument 1
  1431. SELECT jsonb_build_object('turbines',jsonb_object_agg(serial_num,jsonb_build_object('name',name,'type',type)))
  1432. ^
  1433. <sql-statement>
  1434. SELECT jsonb_object_agg(name, type) FROM foo;
  1435. </sql-statement>
  1436. <sql-statement>
  1437. INSERT INTO foo VALUES (999999, NULL, 'bar');
  1438. </sql-statement>
  1439. <sql-statement>
  1440. SELECT jsonb_object_agg(name, type) FROM foo;
  1441. </sql-statement>
  1442. -stdin-:<main>: Fatal: Execution
  1443. -stdin-:<main>:1:1: Fatal: Execution of node: YtMapReduce!
  1444. SELECT jsonb_object_agg(name, type) FROM foo;
  1445. ^
  1446. -stdin-:<main>:1:1: Fatal: ERROR: field name must not be null
  1447. SELECT jsonb_object_agg(name, type) FROM foo;
  1448. ^
  1449. <sql-statement>
  1450. -- jsonb_object
  1451. -- empty object, one dimension
  1452. SELECT jsonb_object('{}');
  1453. </sql-statement>
  1454. <sql-statement>
  1455. -- empty object, two dimensions
  1456. SELECT jsonb_object('{}', '{}');
  1457. </sql-statement>
  1458. <sql-statement>
  1459. -- one dimension
  1460. SELECT jsonb_object('{a,1,b,2,3,NULL,"d e f","a b c"}');
  1461. </sql-statement>
  1462. <sql-statement>
  1463. -- same but with two dimensions
  1464. SELECT jsonb_object('{{a,1},{b,2},{3,NULL},{"d e f","a b c"}}');
  1465. </sql-statement>
  1466. <sql-statement>
  1467. -- odd number error
  1468. SELECT jsonb_object('{a,b,c}');
  1469. </sql-statement>
  1470. -stdin-:<main>: Fatal: Execution
  1471. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1472. -- odd number error
  1473. ^
  1474. -stdin-:<main>:1:1: Fatal: ERROR: array must have even number of elements
  1475. -- odd number error
  1476. ^
  1477. <sql-statement>
  1478. -- one column error
  1479. SELECT jsonb_object('{{a},{b}}');
  1480. </sql-statement>
  1481. -stdin-:<main>: Fatal: Execution
  1482. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1483. -- one column error
  1484. ^
  1485. -stdin-:<main>:1:1: Fatal: ERROR: array must have two columns
  1486. -- one column error
  1487. ^
  1488. <sql-statement>
  1489. -- too many columns error
  1490. SELECT jsonb_object('{{a,b,c},{b,c,d}}');
  1491. </sql-statement>
  1492. -stdin-:<main>: Fatal: Execution
  1493. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1494. -- too many columns error
  1495. ^
  1496. -stdin-:<main>:1:1: Fatal: ERROR: array must have two columns
  1497. -- too many columns error
  1498. ^
  1499. <sql-statement>
  1500. -- too many dimensions error
  1501. SELECT jsonb_object('{{{a,b},{c,d}},{{b,c},{d,e}}}');
  1502. </sql-statement>
  1503. -stdin-:<main>: Fatal: Execution
  1504. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1505. -- too many dimensions error
  1506. ^
  1507. -stdin-:<main>:1:1: Fatal: ERROR: wrong number of array subscripts
  1508. -- too many dimensions error
  1509. ^
  1510. <sql-statement>
  1511. --two argument form of jsonb_object
  1512. select jsonb_object('{a,b,c,"d e f"}','{1,2,3,"a b c"}');
  1513. </sql-statement>
  1514. <sql-statement>
  1515. -- too many dimensions
  1516. SELECT jsonb_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"}}');
  1517. </sql-statement>
  1518. -stdin-:<main>: Fatal: Execution
  1519. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1520. -- too many dimensions
  1521. ^
  1522. -stdin-:<main>:1:1: Fatal: ERROR: wrong number of array subscripts
  1523. -- too many dimensions
  1524. ^
  1525. <sql-statement>
  1526. -- mismatched dimensions
  1527. select jsonb_object('{a,b,c,"d e f",g}','{1,2,3,"a b c"}');
  1528. </sql-statement>
  1529. -stdin-:<main>: Fatal: Execution
  1530. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1531. -- mismatched dimensions
  1532. ^
  1533. -stdin-:<main>:1:1: Fatal: ERROR: mismatched array dimensions
  1534. -- mismatched dimensions
  1535. ^
  1536. <sql-statement>
  1537. select jsonb_object('{a,b,c,"d e f"}','{1,2,3,"a b c",g}');
  1538. </sql-statement>
  1539. -stdin-:<main>: Fatal: Execution
  1540. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1541. select jsonb_object('{a,b,c,"d e f"}','{1,2,3,"a b c",g}');
  1542. ^
  1543. -stdin-:<main>:1:1: Fatal: ERROR: mismatched array dimensions
  1544. select jsonb_object('{a,b,c,"d e f"}','{1,2,3,"a b c",g}');
  1545. ^
  1546. <sql-statement>
  1547. -- null key error
  1548. select jsonb_object('{a,b,NULL,"d e f"}','{1,2,3,"a b c"}');
  1549. </sql-statement>
  1550. -stdin-:<main>: Fatal: Execution
  1551. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  1552. -- null key error
  1553. ^
  1554. -stdin-:<main>:1:1: Fatal: ERROR: null value not allowed for object key
  1555. -- null key error
  1556. ^
  1557. <sql-statement>
  1558. -- empty key is allowed
  1559. select jsonb_object('{a,b,"","d e f"}','{1,2,3,"a b c"}');
  1560. </sql-statement>
  1561. <sql-statement>
  1562. -- extract_path, extract_path_as_text
  1563. SELECT jsonb_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f4','f6');
  1564. </sql-statement>
  1565. <sql-statement>
  1566. SELECT jsonb_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f2');
  1567. </sql-statement>
  1568. <sql-statement>
  1569. SELECT jsonb_extract_path('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',0::text);
  1570. </sql-statement>
  1571. <sql-statement>
  1572. SELECT jsonb_extract_path('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',1::text);
  1573. </sql-statement>
  1574. <sql-statement>
  1575. SELECT jsonb_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f4','f6');
  1576. </sql-statement>
  1577. <sql-statement>
  1578. SELECT jsonb_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}','f2');
  1579. </sql-statement>
  1580. <sql-statement>
  1581. SELECT jsonb_extract_path_text('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',0::text);
  1582. </sql-statement>
  1583. <sql-statement>
  1584. SELECT jsonb_extract_path_text('{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}','f2',1::text);
  1585. </sql-statement>
  1586. <sql-statement>
  1587. -- extract_path nulls
  1588. SELECT jsonb_extract_path('{"f2":{"f3":1},"f4":{"f5":null,"f6":"stringy"}}','f4','f5') IS NULL AS expect_false;
  1589. </sql-statement>
  1590. <sql-statement>
  1591. SELECT jsonb_extract_path_text('{"f2":{"f3":1},"f4":{"f5":null,"f6":"stringy"}}','f4','f5') IS NULL AS expect_true;
  1592. </sql-statement>
  1593. <sql-statement>
  1594. SELECT jsonb_extract_path('{"f2":{"f3":1},"f4":[0,1,2,null]}','f4','3') IS NULL AS expect_false;
  1595. </sql-statement>
  1596. <sql-statement>
  1597. SELECT jsonb_extract_path_text('{"f2":{"f3":1},"f4":[0,1,2,null]}','f4','3') IS NULL AS expect_true;
  1598. </sql-statement>
  1599. <sql-statement>
  1600. -- extract_path operators
  1601. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f4','f6'];
  1602. </sql-statement>
  1603. -stdin-:<main>: Error: Type annotation
  1604. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1605. -- extract_path operators
  1606. ^
  1607. -stdin-:<main>:2:62: Error: At function: PgOp
  1608. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f4','f6'];
  1609. ^
  1610. -stdin-:<main>:2:62: Error: No such operator: #>
  1611. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f4','f6'];
  1612. ^
  1613. <sql-statement>
  1614. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2'];
  1615. </sql-statement>
  1616. -stdin-:<main>: Error: Type annotation
  1617. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1618. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2'];
  1619. ^
  1620. -stdin-:<main>:1:62: Error: At function: PgOp
  1621. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2'];
  1622. ^
  1623. -stdin-:<main>:1:62: Error: No such operator: #>
  1624. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2'];
  1625. ^
  1626. <sql-statement>
  1627. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','0'];
  1628. </sql-statement>
  1629. -stdin-:<main>: Error: Type annotation
  1630. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1631. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','0'];
  1632. ^
  1633. -stdin-:<main>:1:62: Error: At function: PgOp
  1634. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','0'];
  1635. ^
  1636. -stdin-:<main>:1:62: Error: No such operator: #>
  1637. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','0'];
  1638. ^
  1639. <sql-statement>
  1640. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','1'];
  1641. </sql-statement>
  1642. -stdin-:<main>: Error: Type annotation
  1643. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1644. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','1'];
  1645. ^
  1646. -stdin-:<main>:1:62: Error: At function: PgOp
  1647. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','1'];
  1648. ^
  1649. -stdin-:<main>:1:62: Error: No such operator: #>
  1650. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>array['f2','1'];
  1651. ^
  1652. <sql-statement>
  1653. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f4','f6'];
  1654. </sql-statement>
  1655. -stdin-:<main>: Error: Type annotation
  1656. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1657. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f4','f6'];
  1658. ^
  1659. -stdin-:<main>:1:62: Error: At function: PgOp
  1660. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f4','f6'];
  1661. ^
  1662. -stdin-:<main>:1:62: Error: No such operator: #>>
  1663. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f4','f6'];
  1664. ^
  1665. <sql-statement>
  1666. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2'];
  1667. </sql-statement>
  1668. -stdin-:<main>: Error: Type annotation
  1669. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1670. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2'];
  1671. ^
  1672. -stdin-:<main>:1:62: Error: At function: PgOp
  1673. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2'];
  1674. ^
  1675. -stdin-:<main>:1:62: Error: No such operator: #>>
  1676. SELECT '{"f2":{"f3":1},"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2'];
  1677. ^
  1678. <sql-statement>
  1679. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','0'];
  1680. </sql-statement>
  1681. -stdin-:<main>: Error: Type annotation
  1682. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1683. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','0'];
  1684. ^
  1685. -stdin-:<main>:1:62: Error: At function: PgOp
  1686. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','0'];
  1687. ^
  1688. -stdin-:<main>:1:62: Error: No such operator: #>>
  1689. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','0'];
  1690. ^
  1691. <sql-statement>
  1692. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','1'];
  1693. </sql-statement>
  1694. -stdin-:<main>: Error: Type annotation
  1695. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1696. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','1'];
  1697. ^
  1698. -stdin-:<main>:1:62: Error: At function: PgOp
  1699. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','1'];
  1700. ^
  1701. -stdin-:<main>:1:62: Error: No such operator: #>>
  1702. SELECT '{"f2":["f3",1],"f4":{"f5":99,"f6":"stringy"}}'::jsonb#>>array['f2','1'];
  1703. ^
  1704. <sql-statement>
  1705. -- corner cases for same
  1706. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> '{}';
  1707. </sql-statement>
  1708. -stdin-:<main>: Error: Type annotation
  1709. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1710. -- corner cases for same
  1711. ^
  1712. -stdin-:<main>:2:43: Error: At function: PgOp
  1713. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> '{}';
  1714. ^
  1715. -stdin-:<main>:2:43: Error: No such operator: #>
  1716. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> '{}';
  1717. ^
  1718. <sql-statement>
  1719. select '[1,2,3]'::jsonb #> '{}';
  1720. </sql-statement>
  1721. -stdin-:<main>: Error: Type annotation
  1722. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1723. select '[1,2,3]'::jsonb #> '{}';
  1724. ^
  1725. -stdin-:<main>:1:25: Error: At function: PgOp
  1726. select '[1,2,3]'::jsonb #> '{}';
  1727. ^
  1728. -stdin-:<main>:1:25: Error: No such operator: #>
  1729. select '[1,2,3]'::jsonb #> '{}';
  1730. ^
  1731. <sql-statement>
  1732. select '"foo"'::jsonb #> '{}';
  1733. </sql-statement>
  1734. -stdin-:<main>: Error: Type annotation
  1735. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1736. select '"foo"'::jsonb #> '{}';
  1737. ^
  1738. -stdin-:<main>:1:23: Error: At function: PgOp
  1739. select '"foo"'::jsonb #> '{}';
  1740. ^
  1741. -stdin-:<main>:1:23: Error: No such operator: #>
  1742. select '"foo"'::jsonb #> '{}';
  1743. ^
  1744. <sql-statement>
  1745. select '42'::jsonb #> '{}';
  1746. </sql-statement>
  1747. -stdin-:<main>: Error: Type annotation
  1748. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1749. select '42'::jsonb #> '{}';
  1750. ^
  1751. -stdin-:<main>:1:20: Error: At function: PgOp
  1752. select '42'::jsonb #> '{}';
  1753. ^
  1754. -stdin-:<main>:1:20: Error: No such operator: #>
  1755. select '42'::jsonb #> '{}';
  1756. ^
  1757. <sql-statement>
  1758. select 'null'::jsonb #> '{}';
  1759. </sql-statement>
  1760. -stdin-:<main>: Error: Type annotation
  1761. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1762. select 'null'::jsonb #> '{}';
  1763. ^
  1764. -stdin-:<main>:1:22: Error: At function: PgOp
  1765. select 'null'::jsonb #> '{}';
  1766. ^
  1767. -stdin-:<main>:1:22: Error: No such operator: #>
  1768. select 'null'::jsonb #> '{}';
  1769. ^
  1770. <sql-statement>
  1771. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a'];
  1772. </sql-statement>
  1773. -stdin-:<main>: Error: Type annotation
  1774. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1775. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a'];
  1776. ^
  1777. -stdin-:<main>:1:43: Error: At function: PgOp
  1778. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a'];
  1779. ^
  1780. -stdin-:<main>:1:43: Error: No such operator: #>
  1781. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a'];
  1782. ^
  1783. <sql-statement>
  1784. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', null];
  1785. </sql-statement>
  1786. -stdin-:<main>: Error: Type annotation
  1787. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1788. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', null];
  1789. ^
  1790. -stdin-:<main>:1:43: Error: At function: PgOp
  1791. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', null];
  1792. ^
  1793. -stdin-:<main>:1:43: Error: No such operator: #>
  1794. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', null];
  1795. ^
  1796. <sql-statement>
  1797. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', ''];
  1798. </sql-statement>
  1799. -stdin-:<main>: Error: Type annotation
  1800. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1801. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', ''];
  1802. ^
  1803. -stdin-:<main>:1:43: Error: At function: PgOp
  1804. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', ''];
  1805. ^
  1806. -stdin-:<main>:1:43: Error: No such operator: #>
  1807. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a', ''];
  1808. ^
  1809. <sql-statement>
  1810. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b'];
  1811. </sql-statement>
  1812. -stdin-:<main>: Error: Type annotation
  1813. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1814. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b'];
  1815. ^
  1816. -stdin-:<main>:1:43: Error: At function: PgOp
  1817. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b'];
  1818. ^
  1819. -stdin-:<main>:1:43: Error: No such operator: #>
  1820. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b'];
  1821. ^
  1822. <sql-statement>
  1823. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c'];
  1824. </sql-statement>
  1825. -stdin-:<main>: Error: Type annotation
  1826. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1827. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c'];
  1828. ^
  1829. -stdin-:<main>:1:43: Error: At function: PgOp
  1830. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c'];
  1831. ^
  1832. -stdin-:<main>:1:43: Error: No such operator: #>
  1833. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c'];
  1834. ^
  1835. <sql-statement>
  1836. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c','d'];
  1837. </sql-statement>
  1838. -stdin-:<main>: Error: Type annotation
  1839. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1840. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c','d'];
  1841. ^
  1842. -stdin-:<main>:1:43: Error: At function: PgOp
  1843. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c','d'];
  1844. ^
  1845. -stdin-:<main>:1:43: Error: No such operator: #>
  1846. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','b','c','d'];
  1847. ^
  1848. <sql-statement>
  1849. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','z','c'];
  1850. </sql-statement>
  1851. -stdin-:<main>: Error: Type annotation
  1852. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1853. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','z','c'];
  1854. ^
  1855. -stdin-:<main>:1:43: Error: At function: PgOp
  1856. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','z','c'];
  1857. ^
  1858. -stdin-:<main>:1:43: Error: No such operator: #>
  1859. select '{"a": {"b":{"c": "foo"}}}'::jsonb #> array['a','z','c'];
  1860. ^
  1861. <sql-statement>
  1862. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','1','b'];
  1863. </sql-statement>
  1864. -stdin-:<main>: Error: Type annotation
  1865. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1866. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','1','b'];
  1867. ^
  1868. -stdin-:<main>:1:50: Error: At function: PgOp
  1869. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','1','b'];
  1870. ^
  1871. -stdin-:<main>:1:50: Error: No such operator: #>
  1872. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','1','b'];
  1873. ^
  1874. <sql-statement>
  1875. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','z','b'];
  1876. </sql-statement>
  1877. -stdin-:<main>: Error: Type annotation
  1878. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1879. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','z','b'];
  1880. ^
  1881. -stdin-:<main>:1:50: Error: At function: PgOp
  1882. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','z','b'];
  1883. ^
  1884. -stdin-:<main>:1:50: Error: No such operator: #>
  1885. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #> array['a','z','b'];
  1886. ^
  1887. <sql-statement>
  1888. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['1','b'];
  1889. </sql-statement>
  1890. -stdin-:<main>: Error: Type annotation
  1891. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1892. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['1','b'];
  1893. ^
  1894. -stdin-:<main>:1:43: Error: At function: PgOp
  1895. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['1','b'];
  1896. ^
  1897. -stdin-:<main>:1:43: Error: No such operator: #>
  1898. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['1','b'];
  1899. ^
  1900. <sql-statement>
  1901. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['z','b'];
  1902. </sql-statement>
  1903. -stdin-:<main>: Error: Type annotation
  1904. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1905. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['z','b'];
  1906. ^
  1907. -stdin-:<main>:1:43: Error: At function: PgOp
  1908. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['z','b'];
  1909. ^
  1910. -stdin-:<main>:1:43: Error: No such operator: #>
  1911. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #> array['z','b'];
  1912. ^
  1913. <sql-statement>
  1914. select '[{"b": "c"}, {"b": null}]'::jsonb #> array['1','b'];
  1915. </sql-statement>
  1916. -stdin-:<main>: Error: Type annotation
  1917. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1918. select '[{"b": "c"}, {"b": null}]'::jsonb #> array['1','b'];
  1919. ^
  1920. -stdin-:<main>:1:43: Error: At function: PgOp
  1921. select '[{"b": "c"}, {"b": null}]'::jsonb #> array['1','b'];
  1922. ^
  1923. -stdin-:<main>:1:43: Error: No such operator: #>
  1924. select '[{"b": "c"}, {"b": null}]'::jsonb #> array['1','b'];
  1925. ^
  1926. <sql-statement>
  1927. select '"foo"'::jsonb #> array['z'];
  1928. </sql-statement>
  1929. -stdin-:<main>: Error: Type annotation
  1930. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1931. select '"foo"'::jsonb #> array['z'];
  1932. ^
  1933. -stdin-:<main>:1:23: Error: At function: PgOp
  1934. select '"foo"'::jsonb #> array['z'];
  1935. ^
  1936. -stdin-:<main>:1:23: Error: No such operator: #>
  1937. select '"foo"'::jsonb #> array['z'];
  1938. ^
  1939. <sql-statement>
  1940. select '42'::jsonb #> array['f2'];
  1941. </sql-statement>
  1942. -stdin-:<main>: Error: Type annotation
  1943. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1944. select '42'::jsonb #> array['f2'];
  1945. ^
  1946. -stdin-:<main>:1:20: Error: At function: PgOp
  1947. select '42'::jsonb #> array['f2'];
  1948. ^
  1949. -stdin-:<main>:1:20: Error: No such operator: #>
  1950. select '42'::jsonb #> array['f2'];
  1951. ^
  1952. <sql-statement>
  1953. select '42'::jsonb #> array['0'];
  1954. </sql-statement>
  1955. -stdin-:<main>: Error: Type annotation
  1956. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1957. select '42'::jsonb #> array['0'];
  1958. ^
  1959. -stdin-:<main>:1:20: Error: At function: PgOp
  1960. select '42'::jsonb #> array['0'];
  1961. ^
  1962. -stdin-:<main>:1:20: Error: No such operator: #>
  1963. select '42'::jsonb #> array['0'];
  1964. ^
  1965. <sql-statement>
  1966. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> '{}';
  1967. </sql-statement>
  1968. -stdin-:<main>: Error: Type annotation
  1969. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1970. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> '{}';
  1971. ^
  1972. -stdin-:<main>:1:43: Error: At function: PgOp
  1973. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> '{}';
  1974. ^
  1975. -stdin-:<main>:1:43: Error: No such operator: #>>
  1976. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> '{}';
  1977. ^
  1978. <sql-statement>
  1979. select '[1,2,3]'::jsonb #>> '{}';
  1980. </sql-statement>
  1981. -stdin-:<main>: Error: Type annotation
  1982. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1983. select '[1,2,3]'::jsonb #>> '{}';
  1984. ^
  1985. -stdin-:<main>:1:25: Error: At function: PgOp
  1986. select '[1,2,3]'::jsonb #>> '{}';
  1987. ^
  1988. -stdin-:<main>:1:25: Error: No such operator: #>>
  1989. select '[1,2,3]'::jsonb #>> '{}';
  1990. ^
  1991. <sql-statement>
  1992. select '"foo"'::jsonb #>> '{}';
  1993. </sql-statement>
  1994. -stdin-:<main>: Error: Type annotation
  1995. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  1996. select '"foo"'::jsonb #>> '{}';
  1997. ^
  1998. -stdin-:<main>:1:23: Error: At function: PgOp
  1999. select '"foo"'::jsonb #>> '{}';
  2000. ^
  2001. -stdin-:<main>:1:23: Error: No such operator: #>>
  2002. select '"foo"'::jsonb #>> '{}';
  2003. ^
  2004. <sql-statement>
  2005. select '42'::jsonb #>> '{}';
  2006. </sql-statement>
  2007. -stdin-:<main>: Error: Type annotation
  2008. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2009. select '42'::jsonb #>> '{}';
  2010. ^
  2011. -stdin-:<main>:1:20: Error: At function: PgOp
  2012. select '42'::jsonb #>> '{}';
  2013. ^
  2014. -stdin-:<main>:1:20: Error: No such operator: #>>
  2015. select '42'::jsonb #>> '{}';
  2016. ^
  2017. <sql-statement>
  2018. select 'null'::jsonb #>> '{}';
  2019. </sql-statement>
  2020. -stdin-:<main>: Error: Type annotation
  2021. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2022. select 'null'::jsonb #>> '{}';
  2023. ^
  2024. -stdin-:<main>:1:22: Error: At function: PgOp
  2025. select 'null'::jsonb #>> '{}';
  2026. ^
  2027. -stdin-:<main>:1:22: Error: No such operator: #>>
  2028. select 'null'::jsonb #>> '{}';
  2029. ^
  2030. <sql-statement>
  2031. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a'];
  2032. </sql-statement>
  2033. -stdin-:<main>: Error: Type annotation
  2034. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2035. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a'];
  2036. ^
  2037. -stdin-:<main>:1:43: Error: At function: PgOp
  2038. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a'];
  2039. ^
  2040. -stdin-:<main>:1:43: Error: No such operator: #>>
  2041. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a'];
  2042. ^
  2043. <sql-statement>
  2044. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', null];
  2045. </sql-statement>
  2046. -stdin-:<main>: Error: Type annotation
  2047. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2048. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', null];
  2049. ^
  2050. -stdin-:<main>:1:43: Error: At function: PgOp
  2051. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', null];
  2052. ^
  2053. -stdin-:<main>:1:43: Error: No such operator: #>>
  2054. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', null];
  2055. ^
  2056. <sql-statement>
  2057. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', ''];
  2058. </sql-statement>
  2059. -stdin-:<main>: Error: Type annotation
  2060. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2061. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', ''];
  2062. ^
  2063. -stdin-:<main>:1:43: Error: At function: PgOp
  2064. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', ''];
  2065. ^
  2066. -stdin-:<main>:1:43: Error: No such operator: #>>
  2067. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a', ''];
  2068. ^
  2069. <sql-statement>
  2070. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b'];
  2071. </sql-statement>
  2072. -stdin-:<main>: Error: Type annotation
  2073. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2074. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b'];
  2075. ^
  2076. -stdin-:<main>:1:43: Error: At function: PgOp
  2077. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b'];
  2078. ^
  2079. -stdin-:<main>:1:43: Error: No such operator: #>>
  2080. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b'];
  2081. ^
  2082. <sql-statement>
  2083. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c'];
  2084. </sql-statement>
  2085. -stdin-:<main>: Error: Type annotation
  2086. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2087. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c'];
  2088. ^
  2089. -stdin-:<main>:1:43: Error: At function: PgOp
  2090. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c'];
  2091. ^
  2092. -stdin-:<main>:1:43: Error: No such operator: #>>
  2093. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c'];
  2094. ^
  2095. <sql-statement>
  2096. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c','d'];
  2097. </sql-statement>
  2098. -stdin-:<main>: Error: Type annotation
  2099. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2100. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c','d'];
  2101. ^
  2102. -stdin-:<main>:1:43: Error: At function: PgOp
  2103. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c','d'];
  2104. ^
  2105. -stdin-:<main>:1:43: Error: No such operator: #>>
  2106. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','b','c','d'];
  2107. ^
  2108. <sql-statement>
  2109. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','z','c'];
  2110. </sql-statement>
  2111. -stdin-:<main>: Error: Type annotation
  2112. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2113. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','z','c'];
  2114. ^
  2115. -stdin-:<main>:1:43: Error: At function: PgOp
  2116. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','z','c'];
  2117. ^
  2118. -stdin-:<main>:1:43: Error: No such operator: #>>
  2119. select '{"a": {"b":{"c": "foo"}}}'::jsonb #>> array['a','z','c'];
  2120. ^
  2121. <sql-statement>
  2122. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','1','b'];
  2123. </sql-statement>
  2124. -stdin-:<main>: Error: Type annotation
  2125. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2126. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','1','b'];
  2127. ^
  2128. -stdin-:<main>:1:50: Error: At function: PgOp
  2129. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','1','b'];
  2130. ^
  2131. -stdin-:<main>:1:50: Error: No such operator: #>>
  2132. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','1','b'];
  2133. ^
  2134. <sql-statement>
  2135. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','z','b'];
  2136. </sql-statement>
  2137. -stdin-:<main>: Error: Type annotation
  2138. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2139. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','z','b'];
  2140. ^
  2141. -stdin-:<main>:1:50: Error: At function: PgOp
  2142. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','z','b'];
  2143. ^
  2144. -stdin-:<main>:1:50: Error: No such operator: #>>
  2145. select '{"a": [{"b": "c"}, {"b": "cc"}]}'::jsonb #>> array['a','z','b'];
  2146. ^
  2147. <sql-statement>
  2148. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['1','b'];
  2149. </sql-statement>
  2150. -stdin-:<main>: Error: Type annotation
  2151. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2152. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['1','b'];
  2153. ^
  2154. -stdin-:<main>:1:43: Error: At function: PgOp
  2155. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['1','b'];
  2156. ^
  2157. -stdin-:<main>:1:43: Error: No such operator: #>>
  2158. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['1','b'];
  2159. ^
  2160. <sql-statement>
  2161. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['z','b'];
  2162. </sql-statement>
  2163. -stdin-:<main>: Error: Type annotation
  2164. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2165. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['z','b'];
  2166. ^
  2167. -stdin-:<main>:1:43: Error: At function: PgOp
  2168. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['z','b'];
  2169. ^
  2170. -stdin-:<main>:1:43: Error: No such operator: #>>
  2171. select '[{"b": "c"}, {"b": "cc"}]'::jsonb #>> array['z','b'];
  2172. ^
  2173. <sql-statement>
  2174. select '[{"b": "c"}, {"b": null}]'::jsonb #>> array['1','b'];
  2175. </sql-statement>
  2176. -stdin-:<main>: Error: Type annotation
  2177. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2178. select '[{"b": "c"}, {"b": null}]'::jsonb #>> array['1','b'];
  2179. ^
  2180. -stdin-:<main>:1:43: Error: At function: PgOp
  2181. select '[{"b": "c"}, {"b": null}]'::jsonb #>> array['1','b'];
  2182. ^
  2183. -stdin-:<main>:1:43: Error: No such operator: #>>
  2184. select '[{"b": "c"}, {"b": null}]'::jsonb #>> array['1','b'];
  2185. ^
  2186. <sql-statement>
  2187. select '"foo"'::jsonb #>> array['z'];
  2188. </sql-statement>
  2189. -stdin-:<main>: Error: Type annotation
  2190. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2191. select '"foo"'::jsonb #>> array['z'];
  2192. ^
  2193. -stdin-:<main>:1:23: Error: At function: PgOp
  2194. select '"foo"'::jsonb #>> array['z'];
  2195. ^
  2196. -stdin-:<main>:1:23: Error: No such operator: #>>
  2197. select '"foo"'::jsonb #>> array['z'];
  2198. ^
  2199. <sql-statement>
  2200. select '42'::jsonb #>> array['f2'];
  2201. </sql-statement>
  2202. -stdin-:<main>: Error: Type annotation
  2203. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2204. select '42'::jsonb #>> array['f2'];
  2205. ^
  2206. -stdin-:<main>:1:20: Error: At function: PgOp
  2207. select '42'::jsonb #>> array['f2'];
  2208. ^
  2209. -stdin-:<main>:1:20: Error: No such operator: #>>
  2210. select '42'::jsonb #>> array['f2'];
  2211. ^
  2212. <sql-statement>
  2213. select '42'::jsonb #>> array['0'];
  2214. </sql-statement>
  2215. -stdin-:<main>: Error: Type annotation
  2216. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2217. select '42'::jsonb #>> array['0'];
  2218. ^
  2219. -stdin-:<main>:1:20: Error: At function: PgOp
  2220. select '42'::jsonb #>> array['0'];
  2221. ^
  2222. -stdin-:<main>:1:20: Error: No such operator: #>>
  2223. select '42'::jsonb #>> array['0'];
  2224. ^
  2225. <sql-statement>
  2226. -- array_elements
  2227. SELECT jsonb_array_elements('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false]');
  2228. </sql-statement>
  2229. -stdin-:<main>: Error: Parse Sql
  2230. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  2231. SELECT jsonb_array_elements('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false]');
  2232. ^
  2233. <sql-statement>
  2234. SELECT * FROM jsonb_array_elements('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false]') q;
  2235. </sql-statement>
  2236. <sql-statement>
  2237. SELECT jsonb_array_elements_text('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]');
  2238. </sql-statement>
  2239. -stdin-:<main>: Error: Parse Sql
  2240. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  2241. SELECT jsonb_array_elements_text('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]');
  2242. ^
  2243. <sql-statement>
  2244. SELECT * FROM jsonb_array_elements_text('[1,true,[1,[2,3]],null,{"f1":1,"f2":[7,8,9]},false,"stringy"]') q;
  2245. </sql-statement>
  2246. <sql-statement>
  2247. -- populate_record
  2248. CREATE TYPE jbpop AS (a text, b int, c timestamp);
  2249. </sql-statement>
  2250. -stdin-:<main>: Error: Parse Sql
  2251. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  2252. -- populate_record
  2253. ^
  2254. <sql-statement>
  2255. CREATE DOMAIN jsb_int_not_null AS int NOT NULL;
  2256. </sql-statement>
  2257. -stdin-:<main>: Error: Parse Sql
  2258. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  2259. CREATE DOMAIN jsb_int_not_null AS int NOT NULL;
  2260. ^
  2261. <sql-statement>
  2262. CREATE DOMAIN jsb_int_array_1d AS int[] CHECK(array_length(VALUE, 1) = 3);
  2263. </sql-statement>
  2264. -stdin-:<main>: Error: Parse Sql
  2265. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  2266. CREATE DOMAIN jsb_int_array_1d AS int[] CHECK(array_length(VALUE, 1) = 3);
  2267. ^
  2268. <sql-statement>
  2269. CREATE DOMAIN jsb_int_array_2d AS int[][] CHECK(array_length(VALUE, 2) = 3);
  2270. </sql-statement>
  2271. -stdin-:<main>: Error: Parse Sql
  2272. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  2273. CREATE DOMAIN jsb_int_array_2d AS int[][] CHECK(array_length(VALUE, 2) = 3);
  2274. ^
  2275. <sql-statement>
  2276. create type jb_unordered_pair as (x int, y int);
  2277. </sql-statement>
  2278. -stdin-:<main>: Error: Parse Sql
  2279. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  2280. create type jb_unordered_pair as (x int, y int);
  2281. ^
  2282. <sql-statement>
  2283. create domain jb_ordered_pair as jb_unordered_pair check((value).x <= (value).y);
  2284. </sql-statement>
  2285. -stdin-:<main>: Error: Parse Sql
  2286. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 272
  2287. create domain jb_ordered_pair as jb_unordered_pair check((value).x <= (value).y);
  2288. ^
  2289. <sql-statement>
  2290. CREATE TYPE jsbrec AS (
  2291. i int,
  2292. ia _int4,
  2293. ia1 int[],
  2294. ia2 int[][],
  2295. ia3 int[][][],
  2296. ia1d jsb_int_array_1d,
  2297. ia2d jsb_int_array_2d,
  2298. t text,
  2299. ta text[],
  2300. c char(10),
  2301. ca char(10)[],
  2302. ts timestamp,
  2303. js json,
  2304. jsb jsonb,
  2305. jsa json[],
  2306. rec jbpop,
  2307. reca jbpop[]
  2308. );
  2309. </sql-statement>
  2310. -stdin-:<main>: Error: Parse Sql
  2311. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  2312. CREATE TYPE jsbrec AS (
  2313. ^
  2314. <sql-statement>
  2315. CREATE TYPE jsbrec_i_not_null AS (
  2316. i jsb_int_not_null
  2317. );
  2318. </sql-statement>
  2319. -stdin-:<main>: Error: Parse Sql
  2320. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 314
  2321. CREATE TYPE jsbrec_i_not_null AS (
  2322. ^
  2323. <sql-statement>
  2324. SELECT * FROM jsonb_populate_record(NULL::jbpop,'{"a":"blurfl","x":43.2}') q;
  2325. </sql-statement>
  2326. -stdin-:<main>: Error: Parse Sql
  2327. -stdin-:<main>:1:43: Error: Unknown type: jbpop
  2328. SELECT * FROM jsonb_populate_record(NULL::jbpop,'{"a":"blurfl","x":43.2}') q;
  2329. ^
  2330. <sql-statement>
  2331. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"a":"blurfl","x":43.2}') q;
  2332. </sql-statement>
  2333. -stdin-:<main>: Error: Parse Sql
  2334. -stdin-:<main>:1:71: Error: alternative is not implemented yet : 138
  2335. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"a":"blurfl","x":43.2}') q;
  2336. ^
  2337. <sql-statement>
  2338. SELECT * FROM jsonb_populate_record(NULL::jbpop,'{"a":"blurfl","x":43.2}') q;
  2339. </sql-statement>
  2340. -stdin-:<main>: Error: Parse Sql
  2341. -stdin-:<main>:1:43: Error: Unknown type: jbpop
  2342. SELECT * FROM jsonb_populate_record(NULL::jbpop,'{"a":"blurfl","x":43.2}') q;
  2343. ^
  2344. <sql-statement>
  2345. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"a":"blurfl","x":43.2}') q;
  2346. </sql-statement>
  2347. -stdin-:<main>: Error: Parse Sql
  2348. -stdin-:<main>:1:71: Error: alternative is not implemented yet : 138
  2349. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"a":"blurfl","x":43.2}') q;
  2350. ^
  2351. <sql-statement>
  2352. SELECT * FROM jsonb_populate_record(NULL::jbpop,'{"a":[100,200,false],"x":43.2}') q;
  2353. </sql-statement>
  2354. -stdin-:<main>: Error: Parse Sql
  2355. -stdin-:<main>:1:43: Error: Unknown type: jbpop
  2356. SELECT * FROM jsonb_populate_record(NULL::jbpop,'{"a":[100,200,false],"x":43.2}') q;
  2357. ^
  2358. <sql-statement>
  2359. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"a":[100,200,false],"x":43.2}') q;
  2360. </sql-statement>
  2361. -stdin-:<main>: Error: Parse Sql
  2362. -stdin-:<main>:1:71: Error: alternative is not implemented yet : 138
  2363. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"a":[100,200,false],"x":43.2}') q;
  2364. ^
  2365. <sql-statement>
  2366. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"c":[100,200,false],"x":43.2}') q;
  2367. </sql-statement>
  2368. -stdin-:<main>: Error: Parse Sql
  2369. -stdin-:<main>:1:71: Error: alternative is not implemented yet : 138
  2370. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop,'{"c":[100,200,false],"x":43.2}') q;
  2371. ^
  2372. <sql-statement>
  2373. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop, '{}') q;
  2374. </sql-statement>
  2375. -stdin-:<main>: Error: Parse Sql
  2376. -stdin-:<main>:1:71: Error: alternative is not implemented yet : 138
  2377. SELECT * FROM jsonb_populate_record(row('x',3,'2012-12-31 15:30:56')::jbpop, '{}') q;
  2378. ^
  2379. <sql-statement>
  2380. SELECT i FROM jsonb_populate_record(NULL::jsbrec_i_not_null, '{"x": 43.2}') q;
  2381. </sql-statement>
  2382. -stdin-:<main>: Error: Parse Sql
  2383. -stdin-:<main>:1:43: Error: Unknown type: jsbrec_i_not_null
  2384. SELECT i FROM jsonb_populate_record(NULL::jsbrec_i_not_null, '{"x": 43.2}') q;
  2385. ^
  2386. <sql-statement>
  2387. SELECT i FROM jsonb_populate_record(NULL::jsbrec_i_not_null, '{"i": null}') q;
  2388. </sql-statement>
  2389. -stdin-:<main>: Error: Parse Sql
  2390. -stdin-:<main>:1:43: Error: Unknown type: jsbrec_i_not_null
  2391. SELECT i FROM jsonb_populate_record(NULL::jsbrec_i_not_null, '{"i": null}') q;
  2392. ^
  2393. <sql-statement>
  2394. SELECT i FROM jsonb_populate_record(NULL::jsbrec_i_not_null, '{"i": 12345}') q;
  2395. </sql-statement>
  2396. -stdin-:<main>: Error: Parse Sql
  2397. -stdin-:<main>:1:43: Error: Unknown type: jsbrec_i_not_null
  2398. SELECT i FROM jsonb_populate_record(NULL::jsbrec_i_not_null, '{"i": 12345}') q;
  2399. ^
  2400. <sql-statement>
  2401. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": null}') q;
  2402. </sql-statement>
  2403. -stdin-:<main>: Error: Parse Sql
  2404. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2405. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": null}') q;
  2406. ^
  2407. <sql-statement>
  2408. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": 123}') q;
  2409. </sql-statement>
  2410. -stdin-:<main>: Error: Parse Sql
  2411. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2412. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": 123}') q;
  2413. ^
  2414. <sql-statement>
  2415. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [1, "2", null, 4]}') q;
  2416. </sql-statement>
  2417. -stdin-:<main>: Error: Parse Sql
  2418. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2419. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [1, "2", null, 4]}') q;
  2420. ^
  2421. <sql-statement>
  2422. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1, 2], [3, 4]]}') q;
  2423. </sql-statement>
  2424. -stdin-:<main>: Error: Parse Sql
  2425. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2426. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1, 2], [3, 4]]}') q;
  2427. ^
  2428. <sql-statement>
  2429. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1], 2]}') q;
  2430. </sql-statement>
  2431. -stdin-:<main>: Error: Parse Sql
  2432. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2433. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1], 2]}') q;
  2434. ^
  2435. <sql-statement>
  2436. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1], [2, 3]]}') q;
  2437. </sql-statement>
  2438. -stdin-:<main>: Error: Parse Sql
  2439. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2440. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": [[1], [2, 3]]}') q;
  2441. ^
  2442. <sql-statement>
  2443. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": "{1,2,3}"}') q;
  2444. </sql-statement>
  2445. -stdin-:<main>: Error: Parse Sql
  2446. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2447. SELECT ia FROM jsonb_populate_record(NULL::jsbrec, '{"ia": "{1,2,3}"}') q;
  2448. ^
  2449. <sql-statement>
  2450. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": null}') q;
  2451. </sql-statement>
  2452. -stdin-:<main>: Error: Parse Sql
  2453. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2454. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": null}') q;
  2455. ^
  2456. <sql-statement>
  2457. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": 123}') q;
  2458. </sql-statement>
  2459. -stdin-:<main>: Error: Parse Sql
  2460. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2461. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": 123}') q;
  2462. ^
  2463. <sql-statement>
  2464. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": [1, "2", null, 4]}') q;
  2465. </sql-statement>
  2466. -stdin-:<main>: Error: Parse Sql
  2467. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2468. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": [1, "2", null, 4]}') q;
  2469. ^
  2470. <sql-statement>
  2471. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": [[1, 2, 3]]}') q;
  2472. </sql-statement>
  2473. -stdin-:<main>: Error: Parse Sql
  2474. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2475. SELECT ia1 FROM jsonb_populate_record(NULL::jsbrec, '{"ia1": [[1, 2, 3]]}') q;
  2476. ^
  2477. <sql-statement>
  2478. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": null}') q;
  2479. </sql-statement>
  2480. -stdin-:<main>: Error: Parse Sql
  2481. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2482. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": null}') q;
  2483. ^
  2484. <sql-statement>
  2485. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": 123}') q;
  2486. </sql-statement>
  2487. -stdin-:<main>: Error: Parse Sql
  2488. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2489. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": 123}') q;
  2490. ^
  2491. <sql-statement>
  2492. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": [1, "2", null, 4]}') q;
  2493. </sql-statement>
  2494. -stdin-:<main>: Error: Parse Sql
  2495. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2496. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": [1, "2", null, 4]}') q;
  2497. ^
  2498. <sql-statement>
  2499. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": [1, "2", null]}') q;
  2500. </sql-statement>
  2501. -stdin-:<main>: Error: Parse Sql
  2502. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2503. SELECT ia1d FROM jsonb_populate_record(NULL::jsbrec, '{"ia1d": [1, "2", null]}') q;
  2504. ^
  2505. <sql-statement>
  2506. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [1, "2", null, 4]}') q;
  2507. </sql-statement>
  2508. -stdin-:<main>: Error: Parse Sql
  2509. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2510. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [1, "2", null, 4]}') q;
  2511. ^
  2512. <sql-statement>
  2513. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], [null, 4]]}') q;
  2514. </sql-statement>
  2515. -stdin-:<main>: Error: Parse Sql
  2516. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2517. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], [null, 4]]}') q;
  2518. ^
  2519. <sql-statement>
  2520. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[], []]}') q;
  2521. </sql-statement>
  2522. -stdin-:<main>: Error: Parse Sql
  2523. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2524. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[], []]}') q;
  2525. ^
  2526. <sql-statement>
  2527. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], [3]]}') q;
  2528. </sql-statement>
  2529. -stdin-:<main>: Error: Parse Sql
  2530. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2531. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], [3]]}') q;
  2532. ^
  2533. <sql-statement>
  2534. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], 3, 4]}') q;
  2535. </sql-statement>
  2536. -stdin-:<main>: Error: Parse Sql
  2537. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2538. SELECT ia2 FROM jsonb_populate_record(NULL::jsbrec, '{"ia2": [[1, 2], 3, 4]}') q;
  2539. ^
  2540. <sql-statement>
  2541. SELECT ia2d FROM jsonb_populate_record(NULL::jsbrec, '{"ia2d": [[1, "2"], [null, 4]]}') q;
  2542. </sql-statement>
  2543. -stdin-:<main>: Error: Parse Sql
  2544. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2545. SELECT ia2d FROM jsonb_populate_record(NULL::jsbrec, '{"ia2d": [[1, "2"], [null, 4]]}') q;
  2546. ^
  2547. <sql-statement>
  2548. SELECT ia2d FROM jsonb_populate_record(NULL::jsbrec, '{"ia2d": [[1, "2", 3], [null, 5, 6]]}') q;
  2549. </sql-statement>
  2550. -stdin-:<main>: Error: Parse Sql
  2551. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2552. SELECT ia2d FROM jsonb_populate_record(NULL::jsbrec, '{"ia2d": [[1, "2", 3], [null, 5, 6]]}') q;
  2553. ^
  2554. <sql-statement>
  2555. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [1, "2", null, 4]}') q;
  2556. </sql-statement>
  2557. -stdin-:<main>: Error: Parse Sql
  2558. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2559. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [1, "2", null, 4]}') q;
  2560. ^
  2561. <sql-statement>
  2562. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [[1, 2], [null, 4]]}') q;
  2563. </sql-statement>
  2564. -stdin-:<main>: Error: Parse Sql
  2565. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2566. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [[1, 2], [null, 4]]}') q;
  2567. ^
  2568. <sql-statement>
  2569. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[], []], [[], []], [[], []] ]}') q;
  2570. </sql-statement>
  2571. -stdin-:<main>: Error: Parse Sql
  2572. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2573. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[], []], [[], []], [[], []] ]}') q;
  2574. ^
  2575. <sql-statement>
  2576. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[1, 2]], [[3, 4]] ]}') q;
  2577. </sql-statement>
  2578. -stdin-:<main>: Error: Parse Sql
  2579. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2580. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[1, 2]], [[3, 4]] ]}') q;
  2581. ^
  2582. <sql-statement>
  2583. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8]] ]}') q;
  2584. </sql-statement>
  2585. -stdin-:<main>: Error: Parse Sql
  2586. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2587. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8]] ]}') q;
  2588. ^
  2589. <sql-statement>
  2590. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8], [9, 10]] ]}') q;
  2591. </sql-statement>
  2592. -stdin-:<main>: Error: Parse Sql
  2593. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2594. SELECT ia3 FROM jsonb_populate_record(NULL::jsbrec, '{"ia3": [ [[1, 2], [3, 4]], [[5, 6], [7, 8], [9, 10]] ]}') q;
  2595. ^
  2596. <sql-statement>
  2597. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": null}') q;
  2598. </sql-statement>
  2599. -stdin-:<main>: Error: Parse Sql
  2600. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2601. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": null}') q;
  2602. ^
  2603. <sql-statement>
  2604. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": 123}') q;
  2605. </sql-statement>
  2606. -stdin-:<main>: Error: Parse Sql
  2607. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2608. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": 123}') q;
  2609. ^
  2610. <sql-statement>
  2611. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [1, "2", null, 4]}') q;
  2612. </sql-statement>
  2613. -stdin-:<main>: Error: Parse Sql
  2614. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2615. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [1, "2", null, 4]}') q;
  2616. ^
  2617. <sql-statement>
  2618. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [[1, 2, 3], {"k": "v"}]}') q;
  2619. </sql-statement>
  2620. -stdin-:<main>: Error: Parse Sql
  2621. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2622. SELECT ta FROM jsonb_populate_record(NULL::jsbrec, '{"ta": [[1, 2, 3], {"k": "v"}]}') q;
  2623. ^
  2624. <sql-statement>
  2625. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": null}') q;
  2626. </sql-statement>
  2627. -stdin-:<main>: Error: Parse Sql
  2628. -stdin-:<main>:1:43: Error: Unknown type: jsbrec
  2629. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": null}') q;
  2630. ^
  2631. <sql-statement>
  2632. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": "aaa"}') q;
  2633. </sql-statement>
  2634. -stdin-:<main>: Error: Parse Sql
  2635. -stdin-:<main>:1:43: Error: Unknown type: jsbrec
  2636. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": "aaa"}') q;
  2637. ^
  2638. <sql-statement>
  2639. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": "aaaaaaaaaa"}') q;
  2640. </sql-statement>
  2641. -stdin-:<main>: Error: Parse Sql
  2642. -stdin-:<main>:1:43: Error: Unknown type: jsbrec
  2643. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": "aaaaaaaaaa"}') q;
  2644. ^
  2645. <sql-statement>
  2646. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": "aaaaaaaaaaaaa"}') q;
  2647. </sql-statement>
  2648. -stdin-:<main>: Error: Parse Sql
  2649. -stdin-:<main>:1:43: Error: Unknown type: jsbrec
  2650. SELECT c FROM jsonb_populate_record(NULL::jsbrec, '{"c": "aaaaaaaaaaaaa"}') q;
  2651. ^
  2652. <sql-statement>
  2653. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": null}') q;
  2654. </sql-statement>
  2655. -stdin-:<main>: Error: Parse Sql
  2656. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2657. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": null}') q;
  2658. ^
  2659. <sql-statement>
  2660. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": 123}') q;
  2661. </sql-statement>
  2662. -stdin-:<main>: Error: Parse Sql
  2663. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2664. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": 123}') q;
  2665. ^
  2666. <sql-statement>
  2667. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": [1, "2", null, 4]}') q;
  2668. </sql-statement>
  2669. -stdin-:<main>: Error: Parse Sql
  2670. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2671. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": [1, "2", null, 4]}') q;
  2672. ^
  2673. <sql-statement>
  2674. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": ["aaaaaaaaaaaaaaaa"]}') q;
  2675. </sql-statement>
  2676. -stdin-:<main>: Error: Parse Sql
  2677. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2678. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": ["aaaaaaaaaaaaaaaa"]}') q;
  2679. ^
  2680. <sql-statement>
  2681. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": [[1, 2, 3], {"k": "v"}]}') q;
  2682. </sql-statement>
  2683. -stdin-:<main>: Error: Parse Sql
  2684. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2685. SELECT ca FROM jsonb_populate_record(NULL::jsbrec, '{"ca": [[1, 2, 3], {"k": "v"}]}') q;
  2686. ^
  2687. <sql-statement>
  2688. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": null}') q;
  2689. </sql-statement>
  2690. -stdin-:<main>: Error: Parse Sql
  2691. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2692. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": null}') q;
  2693. ^
  2694. <sql-statement>
  2695. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": true}') q;
  2696. </sql-statement>
  2697. -stdin-:<main>: Error: Parse Sql
  2698. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2699. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": true}') q;
  2700. ^
  2701. <sql-statement>
  2702. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": 123.45}') q;
  2703. </sql-statement>
  2704. -stdin-:<main>: Error: Parse Sql
  2705. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2706. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": 123.45}') q;
  2707. ^
  2708. <sql-statement>
  2709. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": "123.45"}') q;
  2710. </sql-statement>
  2711. -stdin-:<main>: Error: Parse Sql
  2712. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2713. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": "123.45"}') q;
  2714. ^
  2715. <sql-statement>
  2716. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": "abc"}') q;
  2717. </sql-statement>
  2718. -stdin-:<main>: Error: Parse Sql
  2719. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2720. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": "abc"}') q;
  2721. ^
  2722. <sql-statement>
  2723. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": [123, "123", null, {"key": "value"}]}') q;
  2724. </sql-statement>
  2725. -stdin-:<main>: Error: Parse Sql
  2726. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2727. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": [123, "123", null, {"key": "value"}]}') q;
  2728. ^
  2729. <sql-statement>
  2730. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2731. </sql-statement>
  2732. -stdin-:<main>: Error: Parse Sql
  2733. -stdin-:<main>:1:44: Error: Unknown type: jsbrec
  2734. SELECT js FROM jsonb_populate_record(NULL::jsbrec, '{"js": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2735. ^
  2736. <sql-statement>
  2737. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": null}') q;
  2738. </sql-statement>
  2739. -stdin-:<main>: Error: Parse Sql
  2740. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2741. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": null}') q;
  2742. ^
  2743. <sql-statement>
  2744. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": true}') q;
  2745. </sql-statement>
  2746. -stdin-:<main>: Error: Parse Sql
  2747. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2748. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": true}') q;
  2749. ^
  2750. <sql-statement>
  2751. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": 123.45}') q;
  2752. </sql-statement>
  2753. -stdin-:<main>: Error: Parse Sql
  2754. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2755. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": 123.45}') q;
  2756. ^
  2757. <sql-statement>
  2758. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": "123.45"}') q;
  2759. </sql-statement>
  2760. -stdin-:<main>: Error: Parse Sql
  2761. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2762. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": "123.45"}') q;
  2763. ^
  2764. <sql-statement>
  2765. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": "abc"}') q;
  2766. </sql-statement>
  2767. -stdin-:<main>: Error: Parse Sql
  2768. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2769. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": "abc"}') q;
  2770. ^
  2771. <sql-statement>
  2772. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": [123, "123", null, {"key": "value"}]}') q;
  2773. </sql-statement>
  2774. -stdin-:<main>: Error: Parse Sql
  2775. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2776. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": [123, "123", null, {"key": "value"}]}') q;
  2777. ^
  2778. <sql-statement>
  2779. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2780. </sql-statement>
  2781. -stdin-:<main>: Error: Parse Sql
  2782. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2783. SELECT jsb FROM jsonb_populate_record(NULL::jsbrec, '{"jsb": {"a": "bbb", "b": null, "c": 123.45}}') q;
  2784. ^
  2785. <sql-statement>
  2786. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": null}') q;
  2787. </sql-statement>
  2788. -stdin-:<main>: Error: Parse Sql
  2789. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2790. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": null}') q;
  2791. ^
  2792. <sql-statement>
  2793. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": 123}') q;
  2794. </sql-statement>
  2795. -stdin-:<main>: Error: Parse Sql
  2796. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2797. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": 123}') q;
  2798. ^
  2799. <sql-statement>
  2800. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": [1, "2", null, 4]}') q;
  2801. </sql-statement>
  2802. -stdin-:<main>: Error: Parse Sql
  2803. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2804. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": [1, "2", null, 4]}') q;
  2805. ^
  2806. <sql-statement>
  2807. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": ["aaa", null, [1, 2, "3", {}], { "k" : "v" }]}') q;
  2808. </sql-statement>
  2809. -stdin-:<main>: Error: Parse Sql
  2810. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2811. SELECT jsa FROM jsonb_populate_record(NULL::jsbrec, '{"jsa": ["aaa", null, [1, 2, "3", {}], { "k" : "v" }]}') q;
  2812. ^
  2813. <sql-statement>
  2814. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": 123}') q;
  2815. </sql-statement>
  2816. -stdin-:<main>: Error: Parse Sql
  2817. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2818. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": 123}') q;
  2819. ^
  2820. <sql-statement>
  2821. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": [1, 2]}') q;
  2822. </sql-statement>
  2823. -stdin-:<main>: Error: Parse Sql
  2824. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2825. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": [1, 2]}') q;
  2826. ^
  2827. <sql-statement>
  2828. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": {"a": "abc", "c": "01.02.2003", "x": 43.2}}') q;
  2829. </sql-statement>
  2830. -stdin-:<main>: Error: Parse Sql
  2831. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2832. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": {"a": "abc", "c": "01.02.2003", "x": 43.2}}') q;
  2833. ^
  2834. <sql-statement>
  2835. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": "(abc,42,01.02.2003)"}') q;
  2836. </sql-statement>
  2837. -stdin-:<main>: Error: Parse Sql
  2838. -stdin-:<main>:1:45: Error: Unknown type: jsbrec
  2839. SELECT rec FROM jsonb_populate_record(NULL::jsbrec, '{"rec": "(abc,42,01.02.2003)"}') q;
  2840. ^
  2841. <sql-statement>
  2842. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": 123}') q;
  2843. </sql-statement>
  2844. -stdin-:<main>: Error: Parse Sql
  2845. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2846. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": 123}') q;
  2847. ^
  2848. <sql-statement>
  2849. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": [1, 2]}') q;
  2850. </sql-statement>
  2851. -stdin-:<main>: Error: Parse Sql
  2852. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2853. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": [1, 2]}') q;
  2854. ^
  2855. <sql-statement>
  2856. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]}') q;
  2857. </sql-statement>
  2858. -stdin-:<main>: Error: Parse Sql
  2859. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2860. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]}') q;
  2861. ^
  2862. <sql-statement>
  2863. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": ["(abc,42,01.02.2003)"]}') q;
  2864. </sql-statement>
  2865. -stdin-:<main>: Error: Parse Sql
  2866. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2867. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": ["(abc,42,01.02.2003)"]}') q;
  2868. ^
  2869. <sql-statement>
  2870. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": "{\"(abc,42,01.02.2003)\"}"}') q;
  2871. </sql-statement>
  2872. -stdin-:<main>: Error: Parse Sql
  2873. -stdin-:<main>:1:46: Error: Unknown type: jsbrec
  2874. SELECT reca FROM jsonb_populate_record(NULL::jsbrec, '{"reca": "{\"(abc,42,01.02.2003)\"}"}') q;
  2875. ^
  2876. <sql-statement>
  2877. SELECT rec FROM jsonb_populate_record(
  2878. row(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
  2879. row('x',3,'2012-12-31 15:30:56')::jbpop,NULL)::jsbrec,
  2880. '{"rec": {"a": "abc", "c": "01.02.2003", "x": 43.2}}'
  2881. ) q;
  2882. </sql-statement>
  2883. -stdin-:<main>: Error: Parse Sql
  2884. -stdin-:<main>:3:50: Error: alternative is not implemented yet : 138
  2885. row('x',3,'2012-12-31 15:30:56')::jbpop,NULL)::jsbrec,
  2886. ^
  2887. <sql-statement>
  2888. -- anonymous record type
  2889. SELECT jsonb_populate_record(null::record, '{"x": 0, "y": 1}');
  2890. </sql-statement>
  2891. -stdin-:<main>: Error: Type annotation
  2892. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  2893. -- anonymous record type
  2894. ^
  2895. -stdin-:<main>:2:8: Error: At function: PgCall
  2896. SELECT jsonb_populate_record(null::record, '{"x": 0, "y": 1}');
  2897. ^
  2898. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_populate_record with given argument types: (record,unknown)
  2899. SELECT jsonb_populate_record(null::record, '{"x": 0, "y": 1}');
  2900. ^
  2901. <sql-statement>
  2902. SELECT jsonb_populate_record(row(1,2), '{"f1": 0, "f2": 1}');
  2903. </sql-statement>
  2904. -stdin-:<main>: Error: Parse Sql
  2905. -stdin-:<main>:1:8: Error: alternative is not implemented yet : 138
  2906. SELECT jsonb_populate_record(row(1,2), '{"f1": 0, "f2": 1}');
  2907. ^
  2908. <sql-statement>
  2909. SELECT * FROM
  2910. jsonb_populate_record(null::record, '{"x": 776}') AS (x int, y int);
  2911. </sql-statement>
  2912. -stdin-:<main>: Error: Parse Sql
  2913. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  2914. SELECT * FROM
  2915. ^
  2916. <sql-statement>
  2917. -- composite domain
  2918. SELECT jsonb_populate_record(null::jb_ordered_pair, '{"x": 0, "y": 1}');
  2919. </sql-statement>
  2920. -stdin-:<main>: Error: Parse Sql
  2921. -stdin-:<main>:2:36: Error: Unknown type: jb_ordered_pair
  2922. SELECT jsonb_populate_record(null::jb_ordered_pair, '{"x": 0, "y": 1}');
  2923. ^
  2924. <sql-statement>
  2925. SELECT jsonb_populate_record(row(1,2)::jb_ordered_pair, '{"x": 0}');
  2926. </sql-statement>
  2927. -stdin-:<main>: Error: Parse Sql
  2928. -stdin-:<main>:1:40: Error: alternative is not implemented yet : 138
  2929. SELECT jsonb_populate_record(row(1,2)::jb_ordered_pair, '{"x": 0}');
  2930. ^
  2931. <sql-statement>
  2932. SELECT jsonb_populate_record(row(1,2)::jb_ordered_pair, '{"x": 1, "y": 0}');
  2933. </sql-statement>
  2934. -stdin-:<main>: Error: Parse Sql
  2935. -stdin-:<main>:1:40: Error: alternative is not implemented yet : 138
  2936. SELECT jsonb_populate_record(row(1,2)::jb_ordered_pair, '{"x": 1, "y": 0}');
  2937. ^
  2938. <sql-statement>
  2939. -- populate_recordset
  2940. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2941. </sql-statement>
  2942. -stdin-:<main>: Error: Parse Sql
  2943. -stdin-:<main>:2:46: Error: Unknown type: jbpop
  2944. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2945. ^
  2946. <sql-statement>
  2947. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2948. </sql-statement>
  2949. -stdin-:<main>: Error: Parse Sql
  2950. -stdin-:<main>:1:60: Error: alternative is not implemented yet : 138
  2951. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2952. ^
  2953. <sql-statement>
  2954. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2955. </sql-statement>
  2956. -stdin-:<main>: Error: Parse Sql
  2957. -stdin-:<main>:1:46: Error: Unknown type: jbpop
  2958. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2959. ^
  2960. <sql-statement>
  2961. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2962. </sql-statement>
  2963. -stdin-:<main>: Error: Parse Sql
  2964. -stdin-:<main>:1:60: Error: alternative is not implemented yet : 138
  2965. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2966. ^
  2967. <sql-statement>
  2968. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2969. </sql-statement>
  2970. -stdin-:<main>: Error: Parse Sql
  2971. -stdin-:<main>:1:60: Error: alternative is not implemented yet : 138
  2972. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2973. ^
  2974. <sql-statement>
  2975. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"c":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2976. </sql-statement>
  2977. -stdin-:<main>: Error: Parse Sql
  2978. -stdin-:<main>:1:60: Error: alternative is not implemented yet : 138
  2979. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"c":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2980. ^
  2981. <sql-statement>
  2982. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2983. </sql-statement>
  2984. -stdin-:<main>: Error: Parse Sql
  2985. -stdin-:<main>:1:46: Error: Unknown type: jbpop
  2986. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2987. ^
  2988. <sql-statement>
  2989. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2990. </sql-statement>
  2991. -stdin-:<main>: Error: Parse Sql
  2992. -stdin-:<main>:1:60: Error: alternative is not implemented yet : 138
  2993. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":"blurfl","x":43.2},{"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2994. ^
  2995. <sql-statement>
  2996. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  2997. </sql-statement>
  2998. -stdin-:<main>: Error: Parse Sql
  2999. -stdin-:<main>:1:60: Error: alternative is not implemented yet : 138
  3000. SELECT * FROM jsonb_populate_recordset(row('def',99,NULL)::jbpop,'[{"a":[100,200,300],"x":43.2},{"a":{"z":true},"b":3,"c":"2012-01-20 10:42:53"}]') q;
  3001. ^
  3002. <sql-statement>
  3003. -- anonymous record type
  3004. SELECT jsonb_populate_recordset(null::record, '[{"x": 0, "y": 1}]');
  3005. </sql-statement>
  3006. -stdin-:<main>: Error: Parse Sql
  3007. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  3008. SELECT jsonb_populate_recordset(null::record, '[{"x": 0, "y": 1}]');
  3009. ^
  3010. <sql-statement>
  3011. SELECT jsonb_populate_recordset(row(1,2), '[{"f1": 0, "f2": 1}]');
  3012. </sql-statement>
  3013. -stdin-:<main>: Error: Parse Sql
  3014. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  3015. SELECT jsonb_populate_recordset(row(1,2), '[{"f1": 0, "f2": 1}]');
  3016. ^
  3017. <sql-statement>
  3018. SELECT i, jsonb_populate_recordset(row(i,50), '[{"f1":"42"},{"f2":"43"}]')
  3019. FROM (VALUES (1),(2)) v(i);
  3020. </sql-statement>
  3021. -stdin-:<main>: Error: Parse Sql
  3022. -stdin-:<main>:1:11: Error: Generator functions are not allowed in: SELECT
  3023. SELECT i, jsonb_populate_recordset(row(i,50), '[{"f1":"42"},{"f2":"43"}]')
  3024. ^
  3025. <sql-statement>
  3026. SELECT * FROM
  3027. jsonb_populate_recordset(null::record, '[{"x": 776}]') AS (x int, y int);
  3028. </sql-statement>
  3029. -stdin-:<main>: Error: Parse Sql
  3030. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3031. SELECT * FROM
  3032. ^
  3033. <sql-statement>
  3034. -- empty array is a corner case
  3035. SELECT jsonb_populate_recordset(null::record, '[]');
  3036. </sql-statement>
  3037. -stdin-:<main>: Error: Parse Sql
  3038. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  3039. SELECT jsonb_populate_recordset(null::record, '[]');
  3040. ^
  3041. <sql-statement>
  3042. SELECT jsonb_populate_recordset(row(1,2), '[]');
  3043. </sql-statement>
  3044. -stdin-:<main>: Error: Parse Sql
  3045. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  3046. SELECT jsonb_populate_recordset(row(1,2), '[]');
  3047. ^
  3048. <sql-statement>
  3049. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[]') q;
  3050. </sql-statement>
  3051. -stdin-:<main>: Error: Parse Sql
  3052. -stdin-:<main>:1:46: Error: Unknown type: jbpop
  3053. SELECT * FROM jsonb_populate_recordset(NULL::jbpop,'[]') q;
  3054. ^
  3055. <sql-statement>
  3056. SELECT * FROM
  3057. jsonb_populate_recordset(null::record, '[]') AS (x int, y int);
  3058. </sql-statement>
  3059. -stdin-:<main>: Error: Parse Sql
  3060. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3061. SELECT * FROM
  3062. ^
  3063. <sql-statement>
  3064. -- composite domain
  3065. SELECT jsonb_populate_recordset(null::jb_ordered_pair, '[{"x": 0, "y": 1}]');
  3066. </sql-statement>
  3067. -stdin-:<main>: Error: Parse Sql
  3068. -stdin-:<main>:2:8: Error: Generator functions are not allowed in: SELECT
  3069. SELECT jsonb_populate_recordset(null::jb_ordered_pair, '[{"x": 0, "y": 1}]');
  3070. ^
  3071. <sql-statement>
  3072. SELECT jsonb_populate_recordset(row(1,2)::jb_ordered_pair, '[{"x": 0}, {"y": 3}]');
  3073. </sql-statement>
  3074. -stdin-:<main>: Error: Parse Sql
  3075. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  3076. SELECT jsonb_populate_recordset(row(1,2)::jb_ordered_pair, '[{"x": 0}, {"y": 3}]');
  3077. ^
  3078. <sql-statement>
  3079. SELECT jsonb_populate_recordset(row(1,2)::jb_ordered_pair, '[{"x": 1, "y": 0}]');
  3080. </sql-statement>
  3081. -stdin-:<main>: Error: Parse Sql
  3082. -stdin-:<main>:1:8: Error: Generator functions are not allowed in: SELECT
  3083. SELECT jsonb_populate_recordset(row(1,2)::jb_ordered_pair, '[{"x": 1, "y": 0}]');
  3084. ^
  3085. <sql-statement>
  3086. -- negative cases where the wrong record type is supplied
  3087. select * from jsonb_populate_recordset(row(0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  3088. </sql-statement>
  3089. -stdin-:<main>: Error: Parse Sql
  3090. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3091. -- negative cases where the wrong record type is supplied
  3092. ^
  3093. <sql-statement>
  3094. select * from jsonb_populate_recordset(row(0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  3095. </sql-statement>
  3096. -stdin-:<main>: Error: Parse Sql
  3097. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3098. select * from jsonb_populate_recordset(row(0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  3099. ^
  3100. <sql-statement>
  3101. select * from jsonb_populate_recordset(row(0::int,0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  3102. </sql-statement>
  3103. -stdin-:<main>: Error: Parse Sql
  3104. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3105. select * from jsonb_populate_recordset(row(0::int,0::int,0::int),'[{"a":"1","b":"2"},{"a":"3"}]') q (a text, b text);
  3106. ^
  3107. <sql-statement>
  3108. select * from jsonb_populate_recordset(row(1000000000::int,50::int),'[{"b":"2"},{"a":"3"}]') q (a text, b text);
  3109. </sql-statement>
  3110. -stdin-:<main>: Error: Parse Sql
  3111. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3112. select * from jsonb_populate_recordset(row(1000000000::int,50::int),'[{"b":"2"},{"a":"3"}]') q (a text, b text);
  3113. ^
  3114. <sql-statement>
  3115. -- jsonb_to_record and jsonb_to_recordset
  3116. select * from jsonb_to_record('{"a":1,"b":"foo","c":"bar"}')
  3117. as x(a int, b text, d text);
  3118. </sql-statement>
  3119. -stdin-:<main>: Error: Parse Sql
  3120. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3121. -- jsonb_to_record and jsonb_to_recordset
  3122. ^
  3123. <sql-statement>
  3124. select * from jsonb_to_recordset('[{"a":1,"b":"foo","d":false},{"a":2,"b":"bar","c":true}]')
  3125. as x(a int, b text, c boolean);
  3126. </sql-statement>
  3127. -stdin-:<main>: Error: Parse Sql
  3128. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3129. select * from jsonb_to_recordset('[{"a":1,"b":"foo","d":false},{"a":2,"b":"bar","c":true}]')
  3130. ^
  3131. <sql-statement>
  3132. select *, c is null as c_is_null
  3133. from jsonb_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}}'::jsonb)
  3134. as t(a int, b jsonb, c text, x int, ca char(5)[], ia int[][], r jbpop);
  3135. </sql-statement>
  3136. -stdin-:<main>: Error: Parse Sql
  3137. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3138. select *, c is null as c_is_null
  3139. ^
  3140. <sql-statement>
  3141. select *, c is null as c_is_null
  3142. from jsonb_to_recordset('[{"a":1, "b":{"c":16, "d":2}, "x":8}]'::jsonb)
  3143. as t(a int, b jsonb, c text, x int);
  3144. </sql-statement>
  3145. -stdin-:<main>: Error: Parse Sql
  3146. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3147. select *, c is null as c_is_null
  3148. ^
  3149. <sql-statement>
  3150. select * from jsonb_to_record('{"ia": null}') as x(ia _int4);
  3151. </sql-statement>
  3152. -stdin-:<main>: Error: Parse Sql
  3153. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3154. select * from jsonb_to_record('{"ia": null}') as x(ia _int4);
  3155. ^
  3156. <sql-statement>
  3157. select * from jsonb_to_record('{"ia": 123}') as x(ia _int4);
  3158. </sql-statement>
  3159. -stdin-:<main>: Error: Parse Sql
  3160. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3161. select * from jsonb_to_record('{"ia": 123}') as x(ia _int4);
  3162. ^
  3163. <sql-statement>
  3164. select * from jsonb_to_record('{"ia": [1, "2", null, 4]}') as x(ia _int4);
  3165. </sql-statement>
  3166. -stdin-:<main>: Error: Parse Sql
  3167. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3168. select * from jsonb_to_record('{"ia": [1, "2", null, 4]}') as x(ia _int4);
  3169. ^
  3170. <sql-statement>
  3171. select * from jsonb_to_record('{"ia": [[1, 2], [3, 4]]}') as x(ia _int4);
  3172. </sql-statement>
  3173. -stdin-:<main>: Error: Parse Sql
  3174. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3175. select * from jsonb_to_record('{"ia": [[1, 2], [3, 4]]}') as x(ia _int4);
  3176. ^
  3177. <sql-statement>
  3178. select * from jsonb_to_record('{"ia": [[1], 2]}') as x(ia _int4);
  3179. </sql-statement>
  3180. -stdin-:<main>: Error: Parse Sql
  3181. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3182. select * from jsonb_to_record('{"ia": [[1], 2]}') as x(ia _int4);
  3183. ^
  3184. <sql-statement>
  3185. select * from jsonb_to_record('{"ia": [[1], [2, 3]]}') as x(ia _int4);
  3186. </sql-statement>
  3187. -stdin-:<main>: Error: Parse Sql
  3188. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3189. select * from jsonb_to_record('{"ia": [[1], [2, 3]]}') as x(ia _int4);
  3190. ^
  3191. <sql-statement>
  3192. select * from jsonb_to_record('{"ia2": [1, 2, 3]}') as x(ia2 int[][]);
  3193. </sql-statement>
  3194. -stdin-:<main>: Error: Parse Sql
  3195. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3196. select * from jsonb_to_record('{"ia2": [1, 2, 3]}') as x(ia2 int[][]);
  3197. ^
  3198. <sql-statement>
  3199. select * from jsonb_to_record('{"ia2": [[1, 2], [3, 4]]}') as x(ia2 int4[][]);
  3200. </sql-statement>
  3201. -stdin-:<main>: Error: Parse Sql
  3202. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3203. select * from jsonb_to_record('{"ia2": [[1, 2], [3, 4]]}') as x(ia2 int4[][]);
  3204. ^
  3205. <sql-statement>
  3206. select * from jsonb_to_record('{"ia2": [[[1], [2], [3]]]}') as x(ia2 int4[][]);
  3207. </sql-statement>
  3208. -stdin-:<main>: Error: Parse Sql
  3209. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3210. select * from jsonb_to_record('{"ia2": [[[1], [2], [3]]]}') as x(ia2 int4[][]);
  3211. ^
  3212. <sql-statement>
  3213. select * from jsonb_to_record('{"out": {"key": 1}}') as x(out json);
  3214. </sql-statement>
  3215. -stdin-:<main>: Error: Parse Sql
  3216. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3217. select * from jsonb_to_record('{"out": {"key": 1}}') as x(out json);
  3218. ^
  3219. <sql-statement>
  3220. select * from jsonb_to_record('{"out": [{"key": 1}]}') as x(out json);
  3221. </sql-statement>
  3222. -stdin-:<main>: Error: Parse Sql
  3223. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3224. select * from jsonb_to_record('{"out": [{"key": 1}]}') as x(out json);
  3225. ^
  3226. <sql-statement>
  3227. select * from jsonb_to_record('{"out": "{\"key\": 1}"}') as x(out json);
  3228. </sql-statement>
  3229. -stdin-:<main>: Error: Parse Sql
  3230. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3231. select * from jsonb_to_record('{"out": "{\"key\": 1}"}') as x(out json);
  3232. ^
  3233. <sql-statement>
  3234. select * from jsonb_to_record('{"out": {"key": 1}}') as x(out jsonb);
  3235. </sql-statement>
  3236. -stdin-:<main>: Error: Parse Sql
  3237. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3238. select * from jsonb_to_record('{"out": {"key": 1}}') as x(out jsonb);
  3239. ^
  3240. <sql-statement>
  3241. select * from jsonb_to_record('{"out": [{"key": 1}]}') as x(out jsonb);
  3242. </sql-statement>
  3243. -stdin-:<main>: Error: Parse Sql
  3244. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3245. select * from jsonb_to_record('{"out": [{"key": 1}]}') as x(out jsonb);
  3246. ^
  3247. <sql-statement>
  3248. select * from jsonb_to_record('{"out": "{\"key\": 1}"}') as x(out jsonb);
  3249. </sql-statement>
  3250. -stdin-:<main>: Error: Parse Sql
  3251. -stdin-:<main>:1:1: Error: RangeFunction: unsupported coldeflist
  3252. select * from jsonb_to_record('{"out": "{\"key\": 1}"}') as x(out jsonb);
  3253. ^
  3254. <sql-statement>
  3255. -- test type info caching in jsonb_populate_record()
  3256. CREATE TEMP TABLE jsbpoptest (js jsonb);
  3257. </sql-statement>
  3258. <sql-statement>
  3259. INSERT INTO jsbpoptest
  3260. SELECT '{
  3261. "jsa": [1, "2", null, 4],
  3262. "rec": {"a": "abc", "c": "01.02.2003", "x": 43.2},
  3263. "reca": [{"a": "abc", "b": 456}, null, {"c": "01.02.2003", "x": 43.2}]
  3264. }'::jsonb
  3265. FROM generate_series(1, 3);
  3266. </sql-statement>
  3267. <sql-statement>
  3268. SELECT (jsonb_populate_record(NULL::jsbrec, js)).* FROM jsbpoptest;
  3269. </sql-statement>
  3270. -stdin-:<main>: Error: Parse Sql
  3271. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  3272. SELECT (jsonb_populate_record(NULL::jsbrec, js)).* FROM jsbpoptest;
  3273. ^
  3274. <sql-statement>
  3275. DROP TYPE jsbrec;
  3276. </sql-statement>
  3277. -stdin-:<main>: Error: Parse Sql
  3278. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3279. DROP TYPE jsbrec;
  3280. ^
  3281. <sql-statement>
  3282. DROP TYPE jsbrec_i_not_null;
  3283. </sql-statement>
  3284. -stdin-:<main>: Error: Parse Sql
  3285. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3286. DROP TYPE jsbrec_i_not_null;
  3287. ^
  3288. <sql-statement>
  3289. DROP DOMAIN jsb_int_not_null;
  3290. </sql-statement>
  3291. -stdin-:<main>: Error: Parse Sql
  3292. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3293. DROP DOMAIN jsb_int_not_null;
  3294. ^
  3295. <sql-statement>
  3296. DROP DOMAIN jsb_int_array_1d;
  3297. </sql-statement>
  3298. -stdin-:<main>: Error: Parse Sql
  3299. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3300. DROP DOMAIN jsb_int_array_1d;
  3301. ^
  3302. <sql-statement>
  3303. DROP DOMAIN jsb_int_array_2d;
  3304. </sql-statement>
  3305. -stdin-:<main>: Error: Parse Sql
  3306. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3307. DROP DOMAIN jsb_int_array_2d;
  3308. ^
  3309. <sql-statement>
  3310. DROP DOMAIN jb_ordered_pair;
  3311. </sql-statement>
  3312. -stdin-:<main>: Error: Parse Sql
  3313. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3314. DROP DOMAIN jb_ordered_pair;
  3315. ^
  3316. <sql-statement>
  3317. DROP TYPE jb_unordered_pair;
  3318. </sql-statement>
  3319. -stdin-:<main>: Error: Parse Sql
  3320. -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
  3321. DROP TYPE jb_unordered_pair;
  3322. ^
  3323. <sql-statement>
  3324. -- indexing
  3325. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":null}';
  3326. </sql-statement>
  3327. <sql-statement>
  3328. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":"CC"}';
  3329. </sql-statement>
  3330. <sql-statement>
  3331. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":"CC", "public":true}';
  3332. </sql-statement>
  3333. <sql-statement>
  3334. SELECT count(*) FROM testjsonb WHERE j @> '{"age":25}';
  3335. </sql-statement>
  3336. <sql-statement>
  3337. SELECT count(*) FROM testjsonb WHERE j @> '{"age":25.0}';
  3338. </sql-statement>
  3339. <sql-statement>
  3340. SELECT count(*) FROM testjsonb WHERE j ? 'public';
  3341. </sql-statement>
  3342. <sql-statement>
  3343. SELECT count(*) FROM testjsonb WHERE j ? 'bar';
  3344. </sql-statement>
  3345. <sql-statement>
  3346. SELECT count(*) FROM testjsonb WHERE j ?| ARRAY['public','disabled'];
  3347. </sql-statement>
  3348. <sql-statement>
  3349. SELECT count(*) FROM testjsonb WHERE j ?& ARRAY['public','disabled'];
  3350. </sql-statement>
  3351. <sql-statement>
  3352. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == null';
  3353. </sql-statement>
  3354. <sql-statement>
  3355. SELECT count(*) FROM testjsonb WHERE j @@ '"CC" == $.wait';
  3356. </sql-statement>
  3357. <sql-statement>
  3358. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == "CC" && true == $.public';
  3359. </sql-statement>
  3360. <sql-statement>
  3361. SELECT count(*) FROM testjsonb WHERE j @@ '$.age == 25';
  3362. </sql-statement>
  3363. <sql-statement>
  3364. SELECT count(*) FROM testjsonb WHERE j @@ '$.age == 25.0';
  3365. </sql-statement>
  3366. <sql-statement>
  3367. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($)';
  3368. </sql-statement>
  3369. <sql-statement>
  3370. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.public)';
  3371. </sql-statement>
  3372. <sql-statement>
  3373. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.bar)';
  3374. </sql-statement>
  3375. <sql-statement>
  3376. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.public) || exists($.disabled)';
  3377. </sql-statement>
  3378. <sql-statement>
  3379. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.public) && exists($.disabled)';
  3380. </sql-statement>
  3381. <sql-statement>
  3382. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? (@ == null)';
  3383. </sql-statement>
  3384. <sql-statement>
  3385. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? ("CC" == @)';
  3386. </sql-statement>
  3387. <sql-statement>
  3388. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.wait == "CC" && true == @.public)';
  3389. </sql-statement>
  3390. <sql-statement>
  3391. SELECT count(*) FROM testjsonb WHERE j @? '$.age ? (@ == 25)';
  3392. </sql-statement>
  3393. <sql-statement>
  3394. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.age == 25.0)';
  3395. </sql-statement>
  3396. <sql-statement>
  3397. SELECT count(*) FROM testjsonb WHERE j @? '$';
  3398. </sql-statement>
  3399. <sql-statement>
  3400. SELECT count(*) FROM testjsonb WHERE j @? '$.public';
  3401. </sql-statement>
  3402. <sql-statement>
  3403. SELECT count(*) FROM testjsonb WHERE j @? '$.bar';
  3404. </sql-statement>
  3405. <sql-statement>
  3406. CREATE INDEX jidx ON testjsonb USING gin (j);
  3407. </sql-statement>
  3408. <sql-statement>
  3409. SET enable_seqscan = off;
  3410. </sql-statement>
  3411. -stdin-:<main>: Error: Parse Sql
  3412. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_seqscan
  3413. SET enable_seqscan = off;
  3414. ^
  3415. <sql-statement>
  3416. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":null}';
  3417. </sql-statement>
  3418. <sql-statement>
  3419. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":"CC"}';
  3420. </sql-statement>
  3421. <sql-statement>
  3422. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":"CC", "public":true}';
  3423. </sql-statement>
  3424. <sql-statement>
  3425. SELECT count(*) FROM testjsonb WHERE j @> '{"age":25}';
  3426. </sql-statement>
  3427. <sql-statement>
  3428. SELECT count(*) FROM testjsonb WHERE j @> '{"age":25.0}';
  3429. </sql-statement>
  3430. <sql-statement>
  3431. SELECT count(*) FROM testjsonb WHERE j @> '{"array":["foo"]}';
  3432. </sql-statement>
  3433. <sql-statement>
  3434. SELECT count(*) FROM testjsonb WHERE j @> '{"array":["bar"]}';
  3435. </sql-statement>
  3436. <sql-statement>
  3437. -- exercise GIN_SEARCH_MODE_ALL
  3438. SELECT count(*) FROM testjsonb WHERE j @> '{}';
  3439. </sql-statement>
  3440. <sql-statement>
  3441. SELECT count(*) FROM testjsonb WHERE j ? 'public';
  3442. </sql-statement>
  3443. <sql-statement>
  3444. SELECT count(*) FROM testjsonb WHERE j ? 'bar';
  3445. </sql-statement>
  3446. <sql-statement>
  3447. SELECT count(*) FROM testjsonb WHERE j ?| ARRAY['public','disabled'];
  3448. </sql-statement>
  3449. <sql-statement>
  3450. SELECT count(*) FROM testjsonb WHERE j ?& ARRAY['public','disabled'];
  3451. </sql-statement>
  3452. <sql-statement>
  3453. EXPLAIN (COSTS OFF)
  3454. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == null';
  3455. </sql-statement>
  3456. -stdin-:<main>: Error: Parse Sql
  3457. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 276
  3458. EXPLAIN (COSTS OFF)
  3459. ^
  3460. <sql-statement>
  3461. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == null';
  3462. </sql-statement>
  3463. <sql-statement>
  3464. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($ ? (@.wait == null))';
  3465. </sql-statement>
  3466. <sql-statement>
  3467. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.wait ? (@ == null))';
  3468. </sql-statement>
  3469. <sql-statement>
  3470. SELECT count(*) FROM testjsonb WHERE j @@ '"CC" == $.wait';
  3471. </sql-statement>
  3472. <sql-statement>
  3473. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == "CC" && true == $.public';
  3474. </sql-statement>
  3475. <sql-statement>
  3476. SELECT count(*) FROM testjsonb WHERE j @@ '$.age == 25';
  3477. </sql-statement>
  3478. <sql-statement>
  3479. SELECT count(*) FROM testjsonb WHERE j @@ '$.age == 25.0';
  3480. </sql-statement>
  3481. <sql-statement>
  3482. SELECT count(*) FROM testjsonb WHERE j @@ '$.array[*] == "foo"';
  3483. </sql-statement>
  3484. <sql-statement>
  3485. SELECT count(*) FROM testjsonb WHERE j @@ '$.array[*] == "bar"';
  3486. </sql-statement>
  3487. <sql-statement>
  3488. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($ ? (@.array[*] == "bar"))';
  3489. </sql-statement>
  3490. <sql-statement>
  3491. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.array ? (@[*] == "bar"))';
  3492. </sql-statement>
  3493. <sql-statement>
  3494. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.array[*] ? (@ == "bar"))';
  3495. </sql-statement>
  3496. <sql-statement>
  3497. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($)';
  3498. </sql-statement>
  3499. <sql-statement>
  3500. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.public)';
  3501. </sql-statement>
  3502. <sql-statement>
  3503. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.bar)';
  3504. </sql-statement>
  3505. <sql-statement>
  3506. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.public) || exists($.disabled)';
  3507. </sql-statement>
  3508. <sql-statement>
  3509. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.public) && exists($.disabled)';
  3510. </sql-statement>
  3511. <sql-statement>
  3512. EXPLAIN (COSTS OFF)
  3513. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? (@ == null)';
  3514. </sql-statement>
  3515. -stdin-:<main>: Error: Parse Sql
  3516. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 276
  3517. EXPLAIN (COSTS OFF)
  3518. ^
  3519. <sql-statement>
  3520. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? (@ == null)';
  3521. </sql-statement>
  3522. <sql-statement>
  3523. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? ("CC" == @)';
  3524. </sql-statement>
  3525. <sql-statement>
  3526. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.wait == "CC" && true == @.public)';
  3527. </sql-statement>
  3528. <sql-statement>
  3529. SELECT count(*) FROM testjsonb WHERE j @? '$.age ? (@ == 25)';
  3530. </sql-statement>
  3531. <sql-statement>
  3532. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.age == 25.0)';
  3533. </sql-statement>
  3534. <sql-statement>
  3535. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.array[*] == "bar")';
  3536. </sql-statement>
  3537. <sql-statement>
  3538. SELECT count(*) FROM testjsonb WHERE j @? '$.array ? (@[*] == "bar")';
  3539. </sql-statement>
  3540. <sql-statement>
  3541. SELECT count(*) FROM testjsonb WHERE j @? '$.array[*] ? (@ == "bar")';
  3542. </sql-statement>
  3543. <sql-statement>
  3544. SELECT count(*) FROM testjsonb WHERE j @? '$';
  3545. </sql-statement>
  3546. <sql-statement>
  3547. SELECT count(*) FROM testjsonb WHERE j @? '$.public';
  3548. </sql-statement>
  3549. <sql-statement>
  3550. SELECT count(*) FROM testjsonb WHERE j @? '$.bar';
  3551. </sql-statement>
  3552. <sql-statement>
  3553. -- array exists - array elements should behave as keys (for GIN index scans too)
  3554. CREATE INDEX jidx_array ON testjsonb USING gin((j->'array'));
  3555. </sql-statement>
  3556. -stdin-:<main>: Error: Parse Sql
  3557. -stdin-:<main>:1:1: Error: index expression is not supported yet
  3558. -- array exists - array elements should behave as keys (for GIN index scans too)
  3559. ^
  3560. <sql-statement>
  3561. SELECT count(*) from testjsonb WHERE j->'array' ? 'bar';
  3562. </sql-statement>
  3563. <sql-statement>
  3564. -- type sensitive array exists - should return no rows (since "exists" only
  3565. -- matches strings that are either object keys or array elements)
  3566. SELECT count(*) from testjsonb WHERE j->'array' ? '5'::text;
  3567. </sql-statement>
  3568. <sql-statement>
  3569. -- However, a raw scalar is *contained* within the array
  3570. SELECT count(*) from testjsonb WHERE j->'array' @> '5'::jsonb;
  3571. </sql-statement>
  3572. <sql-statement>
  3573. RESET enable_seqscan;
  3574. </sql-statement>
  3575. -stdin-:<main>: Error: Parse Sql
  3576. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  3577. RESET enable_seqscan;
  3578. ^
  3579. <sql-statement>
  3580. SELECT count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow;
  3581. </sql-statement>
  3582. -stdin-:<main>: Error: Parse Sql
  3583. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  3584. SELECT count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow;
  3585. ^
  3586. -stdin-:<main>: Error: Type annotation
  3587. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  3588. SELECT count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow;
  3589. ^
  3590. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  3591. SELECT count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow;
  3592. ^
  3593. <sql-statement>
  3594. SELECT key, count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow GROUP BY key ORDER BY count DESC, key;
  3595. </sql-statement>
  3596. -stdin-:<main>: Error: Parse Sql
  3597. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  3598. SELECT key, count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow GROUP BY key ORDER BY count DESC, key;
  3599. ^
  3600. -stdin-:<main>: Error: Type annotation
  3601. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
  3602. SELECT key, count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow GROUP BY key ORDER BY count DESC, key;
  3603. ^
  3604. -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
  3605. SELECT key, count(*) FROM (SELECT (jsonb_each(j)).key FROM testjsonb) AS wow GROUP BY key ORDER BY count DESC, key;
  3606. ^
  3607. <sql-statement>
  3608. -- sort/hash
  3609. SELECT count(distinct j) FROM testjsonb;
  3610. </sql-statement>
  3611. <sql-statement>
  3612. SET enable_hashagg = off;
  3613. </sql-statement>
  3614. -stdin-:<main>: Error: Parse Sql
  3615. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_hashagg
  3616. SET enable_hashagg = off;
  3617. ^
  3618. <sql-statement>
  3619. SELECT count(*) FROM (SELECT j FROM (SELECT * FROM testjsonb UNION ALL SELECT * FROM testjsonb) js GROUP BY j) js2;
  3620. </sql-statement>
  3621. <sql-statement>
  3622. SET enable_hashagg = on;
  3623. </sql-statement>
  3624. -stdin-:<main>: Error: Parse Sql
  3625. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_hashagg
  3626. SET enable_hashagg = on;
  3627. ^
  3628. <sql-statement>
  3629. SET enable_sort = off;
  3630. </sql-statement>
  3631. -stdin-:<main>: Error: Parse Sql
  3632. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_sort
  3633. SET enable_sort = off;
  3634. ^
  3635. <sql-statement>
  3636. SELECT count(*) FROM (SELECT j FROM (SELECT * FROM testjsonb UNION ALL SELECT * FROM testjsonb) js GROUP BY j) js2;
  3637. </sql-statement>
  3638. <sql-statement>
  3639. SELECT distinct * FROM (values (jsonb '{}' || ''::text),('{}')) v(j);
  3640. </sql-statement>
  3641. -stdin-:<main>: Error: Type annotation
  3642. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgSelect, At function: PgSetItem, At function: PgValuesList
  3643. SELECT distinct * FROM (values (jsonb '{}' || ''::text),('{}')) v(j);
  3644. ^
  3645. -stdin-:<main>:1:44: Error: At function: PgOp
  3646. SELECT distinct * FROM (values (jsonb '{}' || ''::text),('{}')) v(j);
  3647. ^
  3648. -stdin-:<main>:1:44: Error: Unable to find an overload for operator || with given argument type(s): (jsonb,text)
  3649. SELECT distinct * FROM (values (jsonb '{}' || ''::text),('{}')) v(j);
  3650. ^
  3651. <sql-statement>
  3652. SET enable_sort = on;
  3653. </sql-statement>
  3654. -stdin-:<main>: Error: Parse Sql
  3655. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_sort
  3656. SET enable_sort = on;
  3657. ^
  3658. <sql-statement>
  3659. RESET enable_hashagg;
  3660. </sql-statement>
  3661. -stdin-:<main>: Error: Parse Sql
  3662. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  3663. RESET enable_hashagg;
  3664. ^
  3665. <sql-statement>
  3666. RESET enable_sort;
  3667. </sql-statement>
  3668. -stdin-:<main>: Error: Parse Sql
  3669. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  3670. RESET enable_sort;
  3671. ^
  3672. <sql-statement>
  3673. DROP INDEX jidx;
  3674. </sql-statement>
  3675. -stdin-:<main>: Error: Pre type annotation
  3676. -stdin-:<main>:1:1: Error: Unexpected tag: pgObject
  3677. DROP INDEX jidx;
  3678. ^
  3679. <sql-statement>
  3680. DROP INDEX jidx_array;
  3681. </sql-statement>
  3682. -stdin-:<main>: Error: Pre type annotation
  3683. -stdin-:<main>:1:1: Error: Unexpected tag: pgObject
  3684. DROP INDEX jidx_array;
  3685. ^
  3686. <sql-statement>
  3687. -- btree
  3688. CREATE INDEX jidx ON testjsonb USING btree (j);
  3689. </sql-statement>
  3690. <sql-statement>
  3691. SET enable_seqscan = off;
  3692. </sql-statement>
  3693. -stdin-:<main>: Error: Parse Sql
  3694. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_seqscan
  3695. SET enable_seqscan = off;
  3696. ^
  3697. <sql-statement>
  3698. SELECT count(*) FROM testjsonb WHERE j > '{"p":1}';
  3699. </sql-statement>
  3700. <sql-statement>
  3701. SELECT count(*) FROM testjsonb WHERE j = '{"pos":98, "line":371, "node":"CBA", "indexed":true}';
  3702. </sql-statement>
  3703. <sql-statement>
  3704. --gin path opclass
  3705. DROP INDEX jidx;
  3706. </sql-statement>
  3707. -stdin-:<main>: Error: Pre type annotation
  3708. -stdin-:<main>:1:1: Error: Unexpected tag: pgObject
  3709. --gin path opclass
  3710. ^
  3711. <sql-statement>
  3712. CREATE INDEX jidx ON testjsonb USING gin (j jsonb_path_ops);
  3713. </sql-statement>
  3714. <sql-statement>
  3715. SET enable_seqscan = off;
  3716. </sql-statement>
  3717. -stdin-:<main>: Error: Parse Sql
  3718. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_seqscan
  3719. SET enable_seqscan = off;
  3720. ^
  3721. <sql-statement>
  3722. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":null}';
  3723. </sql-statement>
  3724. <sql-statement>
  3725. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":"CC"}';
  3726. </sql-statement>
  3727. <sql-statement>
  3728. SELECT count(*) FROM testjsonb WHERE j @> '{"wait":"CC", "public":true}';
  3729. </sql-statement>
  3730. <sql-statement>
  3731. SELECT count(*) FROM testjsonb WHERE j @> '{"age":25}';
  3732. </sql-statement>
  3733. <sql-statement>
  3734. SELECT count(*) FROM testjsonb WHERE j @> '{"age":25.0}';
  3735. </sql-statement>
  3736. <sql-statement>
  3737. -- exercise GIN_SEARCH_MODE_ALL
  3738. SELECT count(*) FROM testjsonb WHERE j @> '{}';
  3739. </sql-statement>
  3740. <sql-statement>
  3741. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == null';
  3742. </sql-statement>
  3743. <sql-statement>
  3744. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($ ? (@.wait == null))';
  3745. </sql-statement>
  3746. <sql-statement>
  3747. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.wait ? (@ == null))';
  3748. </sql-statement>
  3749. <sql-statement>
  3750. SELECT count(*) FROM testjsonb WHERE j @@ '"CC" == $.wait';
  3751. </sql-statement>
  3752. <sql-statement>
  3753. SELECT count(*) FROM testjsonb WHERE j @@ '$.wait == "CC" && true == $.public';
  3754. </sql-statement>
  3755. <sql-statement>
  3756. SELECT count(*) FROM testjsonb WHERE j @@ '$.age == 25';
  3757. </sql-statement>
  3758. <sql-statement>
  3759. SELECT count(*) FROM testjsonb WHERE j @@ '$.age == 25.0';
  3760. </sql-statement>
  3761. <sql-statement>
  3762. SELECT count(*) FROM testjsonb WHERE j @@ '$.array[*] == "foo"';
  3763. </sql-statement>
  3764. <sql-statement>
  3765. SELECT count(*) FROM testjsonb WHERE j @@ '$.array[*] == "bar"';
  3766. </sql-statement>
  3767. <sql-statement>
  3768. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($ ? (@.array[*] == "bar"))';
  3769. </sql-statement>
  3770. <sql-statement>
  3771. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.array ? (@[*] == "bar"))';
  3772. </sql-statement>
  3773. <sql-statement>
  3774. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($.array[*] ? (@ == "bar"))';
  3775. </sql-statement>
  3776. <sql-statement>
  3777. SELECT count(*) FROM testjsonb WHERE j @@ 'exists($)';
  3778. </sql-statement>
  3779. <sql-statement>
  3780. EXPLAIN (COSTS OFF)
  3781. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? (@ == null)';
  3782. </sql-statement>
  3783. -stdin-:<main>: Error: Parse Sql
  3784. -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 276
  3785. EXPLAIN (COSTS OFF)
  3786. ^
  3787. <sql-statement>
  3788. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? (@ == null)';
  3789. </sql-statement>
  3790. <sql-statement>
  3791. SELECT count(*) FROM testjsonb WHERE j @? '$.wait ? ("CC" == @)';
  3792. </sql-statement>
  3793. <sql-statement>
  3794. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.wait == "CC" && true == @.public)';
  3795. </sql-statement>
  3796. <sql-statement>
  3797. SELECT count(*) FROM testjsonb WHERE j @? '$.age ? (@ == 25)';
  3798. </sql-statement>
  3799. <sql-statement>
  3800. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.age == 25.0)';
  3801. </sql-statement>
  3802. <sql-statement>
  3803. SELECT count(*) FROM testjsonb WHERE j @? '$ ? (@.array[*] == "bar")';
  3804. </sql-statement>
  3805. <sql-statement>
  3806. SELECT count(*) FROM testjsonb WHERE j @? '$.array ? (@[*] == "bar")';
  3807. </sql-statement>
  3808. <sql-statement>
  3809. SELECT count(*) FROM testjsonb WHERE j @? '$.array[*] ? (@ == "bar")';
  3810. </sql-statement>
  3811. <sql-statement>
  3812. SELECT count(*) FROM testjsonb WHERE j @? '$';
  3813. </sql-statement>
  3814. <sql-statement>
  3815. SELECT count(*) FROM testjsonb WHERE j @? '$.public';
  3816. </sql-statement>
  3817. <sql-statement>
  3818. SELECT count(*) FROM testjsonb WHERE j @? '$.bar';
  3819. </sql-statement>
  3820. <sql-statement>
  3821. RESET enable_seqscan;
  3822. </sql-statement>
  3823. -stdin-:<main>: Error: Parse Sql
  3824. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  3825. RESET enable_seqscan;
  3826. ^
  3827. <sql-statement>
  3828. DROP INDEX jidx;
  3829. </sql-statement>
  3830. -stdin-:<main>: Error: Pre type annotation
  3831. -stdin-:<main>:1:1: Error: Unexpected tag: pgObject
  3832. DROP INDEX jidx;
  3833. ^
  3834. <sql-statement>
  3835. -- nested tests
  3836. SELECT '{"ff":{"a":12,"b":16}}'::jsonb;
  3837. </sql-statement>
  3838. <sql-statement>
  3839. SELECT '{"ff":{"a":12,"b":16},"qq":123}'::jsonb;
  3840. </sql-statement>
  3841. <sql-statement>
  3842. SELECT '{"aa":["a","aaa"],"qq":{"a":12,"b":16,"c":["c1","c2"],"d":{"d1":"d1","d2":"d2","d1":"d3"}}}'::jsonb;
  3843. </sql-statement>
  3844. <sql-statement>
  3845. SELECT '{"aa":["a","aaa"],"qq":{"a":"12","b":"16","c":["c1","c2"],"d":{"d1":"d1","d2":"d2"}}}'::jsonb;
  3846. </sql-statement>
  3847. <sql-statement>
  3848. SELECT '{"aa":["a","aaa"],"qq":{"a":"12","b":"16","c":["c1","c2",["c3"],{"c4":4}],"d":{"d1":"d1","d2":"d2"}}}'::jsonb;
  3849. </sql-statement>
  3850. <sql-statement>
  3851. SELECT '{"ff":["a","aaa"]}'::jsonb;
  3852. </sql-statement>
  3853. <sql-statement>
  3854. SELECT
  3855. '{"ff":{"a":12,"b":16},"qq":123,"x":[1,2],"Y":null}'::jsonb -> 'ff',
  3856. '{"ff":{"a":12,"b":16},"qq":123,"x":[1,2],"Y":null}'::jsonb -> 'qq',
  3857. ('{"ff":{"a":12,"b":16},"qq":123,"x":[1,2],"Y":null}'::jsonb -> 'Y') IS NULL AS f,
  3858. ('{"ff":{"a":12,"b":16},"qq":123,"x":[1,2],"Y":null}'::jsonb ->> 'Y') IS NULL AS t,
  3859. '{"ff":{"a":12,"b":16},"qq":123,"x":[1,2],"Y":null}'::jsonb -> 'x';
  3860. </sql-statement>
  3861. <sql-statement>
  3862. -- nested containment
  3863. SELECT '{"a":[1,2],"c":"b"}'::jsonb @> '{"a":[1,2]}';
  3864. </sql-statement>
  3865. <sql-statement>
  3866. SELECT '{"a":[2,1],"c":"b"}'::jsonb @> '{"a":[1,2]}';
  3867. </sql-statement>
  3868. <sql-statement>
  3869. SELECT '{"a":{"1":2},"c":"b"}'::jsonb @> '{"a":[1,2]}';
  3870. </sql-statement>
  3871. <sql-statement>
  3872. SELECT '{"a":{"2":1},"c":"b"}'::jsonb @> '{"a":[1,2]}';
  3873. </sql-statement>
  3874. <sql-statement>
  3875. SELECT '{"a":{"1":2},"c":"b"}'::jsonb @> '{"a":{"1":2}}';
  3876. </sql-statement>
  3877. <sql-statement>
  3878. SELECT '{"a":{"2":1},"c":"b"}'::jsonb @> '{"a":{"1":2}}';
  3879. </sql-statement>
  3880. <sql-statement>
  3881. SELECT '["a","b"]'::jsonb @> '["a","b","c","b"]';
  3882. </sql-statement>
  3883. <sql-statement>
  3884. SELECT '["a","b","c","b"]'::jsonb @> '["a","b"]';
  3885. </sql-statement>
  3886. <sql-statement>
  3887. SELECT '["a","b","c",[1,2]]'::jsonb @> '["a",[1,2]]';
  3888. </sql-statement>
  3889. <sql-statement>
  3890. SELECT '["a","b","c",[1,2]]'::jsonb @> '["b",[1,2]]';
  3891. </sql-statement>
  3892. <sql-statement>
  3893. SELECT '{"a":[1,2],"c":"b"}'::jsonb @> '{"a":[1]}';
  3894. </sql-statement>
  3895. <sql-statement>
  3896. SELECT '{"a":[1,2],"c":"b"}'::jsonb @> '{"a":[2]}';
  3897. </sql-statement>
  3898. <sql-statement>
  3899. SELECT '{"a":[1,2],"c":"b"}'::jsonb @> '{"a":[3]}';
  3900. </sql-statement>
  3901. <sql-statement>
  3902. SELECT '{"a":[1,2,{"c":3,"x":4}],"c":"b"}'::jsonb @> '{"a":[{"c":3}]}';
  3903. </sql-statement>
  3904. <sql-statement>
  3905. SELECT '{"a":[1,2,{"c":3,"x":4}],"c":"b"}'::jsonb @> '{"a":[{"x":4}]}';
  3906. </sql-statement>
  3907. <sql-statement>
  3908. SELECT '{"a":[1,2,{"c":3,"x":4}],"c":"b"}'::jsonb @> '{"a":[{"x":4},3]}';
  3909. </sql-statement>
  3910. <sql-statement>
  3911. SELECT '{"a":[1,2,{"c":3,"x":4}],"c":"b"}'::jsonb @> '{"a":[{"x":4},1]}';
  3912. </sql-statement>
  3913. <sql-statement>
  3914. -- check some corner cases for indexed nested containment (bug #13756)
  3915. create temp table nestjsonb (j jsonb);
  3916. </sql-statement>
  3917. <sql-statement>
  3918. insert into nestjsonb (j) values ('{"a":[["b",{"x":1}],["b",{"x":2}]],"c":3}');
  3919. </sql-statement>
  3920. <sql-statement>
  3921. insert into nestjsonb (j) values ('[[14,2,3]]');
  3922. </sql-statement>
  3923. <sql-statement>
  3924. insert into nestjsonb (j) values ('[1,[14,2,3]]');
  3925. </sql-statement>
  3926. <sql-statement>
  3927. create index on nestjsonb using gin(j jsonb_path_ops);
  3928. </sql-statement>
  3929. <sql-statement>
  3930. set enable_seqscan = on;
  3931. </sql-statement>
  3932. -stdin-:<main>: Error: Parse Sql
  3933. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_seqscan
  3934. set enable_seqscan = on;
  3935. ^
  3936. <sql-statement>
  3937. set enable_bitmapscan = off;
  3938. </sql-statement>
  3939. -stdin-:<main>: Error: Parse Sql
  3940. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_bitmapscan
  3941. set enable_bitmapscan = off;
  3942. ^
  3943. <sql-statement>
  3944. select * from nestjsonb where j @> '{"a":[[{"x":2}]]}'::jsonb;
  3945. </sql-statement>
  3946. <sql-statement>
  3947. select * from nestjsonb where j @> '{"c":3}';
  3948. </sql-statement>
  3949. <sql-statement>
  3950. select * from nestjsonb where j @> '[[14]]';
  3951. </sql-statement>
  3952. <sql-statement>
  3953. set enable_seqscan = off;
  3954. </sql-statement>
  3955. -stdin-:<main>: Error: Parse Sql
  3956. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_seqscan
  3957. set enable_seqscan = off;
  3958. ^
  3959. <sql-statement>
  3960. set enable_bitmapscan = on;
  3961. </sql-statement>
  3962. -stdin-:<main>: Error: Parse Sql
  3963. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported name: enable_bitmapscan
  3964. set enable_bitmapscan = on;
  3965. ^
  3966. <sql-statement>
  3967. select * from nestjsonb where j @> '{"a":[[{"x":2}]]}'::jsonb;
  3968. </sql-statement>
  3969. <sql-statement>
  3970. select * from nestjsonb where j @> '{"c":3}';
  3971. </sql-statement>
  3972. <sql-statement>
  3973. select * from nestjsonb where j @> '[[14]]';
  3974. </sql-statement>
  3975. <sql-statement>
  3976. reset enable_seqscan;
  3977. </sql-statement>
  3978. -stdin-:<main>: Error: Parse Sql
  3979. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  3980. reset enable_seqscan;
  3981. ^
  3982. <sql-statement>
  3983. reset enable_bitmapscan;
  3984. </sql-statement>
  3985. -stdin-:<main>: Error: Parse Sql
  3986. -stdin-:<main>:1:1: Error: VariableSetStmt, not supported kind: 4
  3987. reset enable_bitmapscan;
  3988. ^
  3989. <sql-statement>
  3990. -- nested object field / array index lookup
  3991. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'n';
  3992. </sql-statement>
  3993. <sql-statement>
  3994. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'a';
  3995. </sql-statement>
  3996. <sql-statement>
  3997. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'b';
  3998. </sql-statement>
  3999. <sql-statement>
  4000. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'c';
  4001. </sql-statement>
  4002. <sql-statement>
  4003. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'd';
  4004. </sql-statement>
  4005. <sql-statement>
  4006. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'd' -> '1';
  4007. </sql-statement>
  4008. <sql-statement>
  4009. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 'e';
  4010. </sql-statement>
  4011. <sql-statement>
  4012. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb -> 0; --expecting error
  4013. </sql-statement>
  4014. <sql-statement>
  4015. SELECT '["a","b","c",[1,2],null]'::jsonb -> 0;
  4016. </sql-statement>
  4017. <sql-statement>
  4018. SELECT '["a","b","c",[1,2],null]'::jsonb -> 1;
  4019. </sql-statement>
  4020. <sql-statement>
  4021. SELECT '["a","b","c",[1,2],null]'::jsonb -> 2;
  4022. </sql-statement>
  4023. <sql-statement>
  4024. SELECT '["a","b","c",[1,2],null]'::jsonb -> 3;
  4025. </sql-statement>
  4026. <sql-statement>
  4027. SELECT '["a","b","c",[1,2],null]'::jsonb -> 3 -> 1;
  4028. </sql-statement>
  4029. <sql-statement>
  4030. SELECT '["a","b","c",[1,2],null]'::jsonb -> 4;
  4031. </sql-statement>
  4032. <sql-statement>
  4033. SELECT '["a","b","c",[1,2],null]'::jsonb -> 5;
  4034. </sql-statement>
  4035. <sql-statement>
  4036. SELECT '["a","b","c",[1,2],null]'::jsonb -> -1;
  4037. </sql-statement>
  4038. <sql-statement>
  4039. SELECT '["a","b","c",[1,2],null]'::jsonb -> -5;
  4040. </sql-statement>
  4041. <sql-statement>
  4042. SELECT '["a","b","c",[1,2],null]'::jsonb -> -6;
  4043. </sql-statement>
  4044. <sql-statement>
  4045. --nested path extraction
  4046. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{0}';
  4047. </sql-statement>
  4048. -stdin-:<main>: Error: Type annotation
  4049. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4050. --nested path extraction
  4051. ^
  4052. -stdin-:<main>:2:39: Error: At function: PgOp
  4053. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{0}';
  4054. ^
  4055. -stdin-:<main>:2:39: Error: No such operator: #>
  4056. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{0}';
  4057. ^
  4058. <sql-statement>
  4059. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{a}';
  4060. </sql-statement>
  4061. -stdin-:<main>: Error: Type annotation
  4062. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4063. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{a}';
  4064. ^
  4065. -stdin-:<main>:1:39: Error: At function: PgOp
  4066. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{a}';
  4067. ^
  4068. -stdin-:<main>:1:39: Error: No such operator: #>
  4069. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{a}';
  4070. ^
  4071. <sql-statement>
  4072. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c}';
  4073. </sql-statement>
  4074. -stdin-:<main>: Error: Type annotation
  4075. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4076. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c}';
  4077. ^
  4078. -stdin-:<main>:1:39: Error: At function: PgOp
  4079. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c}';
  4080. ^
  4081. -stdin-:<main>:1:39: Error: No such operator: #>
  4082. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c}';
  4083. ^
  4084. <sql-statement>
  4085. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,0}';
  4086. </sql-statement>
  4087. -stdin-:<main>: Error: Type annotation
  4088. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4089. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,0}';
  4090. ^
  4091. -stdin-:<main>:1:39: Error: At function: PgOp
  4092. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,0}';
  4093. ^
  4094. -stdin-:<main>:1:39: Error: No such operator: #>
  4095. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,0}';
  4096. ^
  4097. <sql-statement>
  4098. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,1}';
  4099. </sql-statement>
  4100. -stdin-:<main>: Error: Type annotation
  4101. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4102. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,1}';
  4103. ^
  4104. -stdin-:<main>:1:39: Error: At function: PgOp
  4105. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,1}';
  4106. ^
  4107. -stdin-:<main>:1:39: Error: No such operator: #>
  4108. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,1}';
  4109. ^
  4110. <sql-statement>
  4111. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,2}';
  4112. </sql-statement>
  4113. -stdin-:<main>: Error: Type annotation
  4114. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4115. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,2}';
  4116. ^
  4117. -stdin-:<main>:1:39: Error: At function: PgOp
  4118. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,2}';
  4119. ^
  4120. -stdin-:<main>:1:39: Error: No such operator: #>
  4121. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,2}';
  4122. ^
  4123. <sql-statement>
  4124. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,3}';
  4125. </sql-statement>
  4126. -stdin-:<main>: Error: Type annotation
  4127. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4128. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,3}';
  4129. ^
  4130. -stdin-:<main>:1:39: Error: At function: PgOp
  4131. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,3}';
  4132. ^
  4133. -stdin-:<main>:1:39: Error: No such operator: #>
  4134. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,3}';
  4135. ^
  4136. <sql-statement>
  4137. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-1}';
  4138. </sql-statement>
  4139. -stdin-:<main>: Error: Type annotation
  4140. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4141. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-1}';
  4142. ^
  4143. -stdin-:<main>:1:39: Error: At function: PgOp
  4144. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-1}';
  4145. ^
  4146. -stdin-:<main>:1:39: Error: No such operator: #>
  4147. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-1}';
  4148. ^
  4149. <sql-statement>
  4150. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-3}';
  4151. </sql-statement>
  4152. -stdin-:<main>: Error: Type annotation
  4153. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4154. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-3}';
  4155. ^
  4156. -stdin-:<main>:1:39: Error: At function: PgOp
  4157. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-3}';
  4158. ^
  4159. -stdin-:<main>:1:39: Error: No such operator: #>
  4160. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-3}';
  4161. ^
  4162. <sql-statement>
  4163. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-4}';
  4164. </sql-statement>
  4165. -stdin-:<main>: Error: Type annotation
  4166. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4167. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-4}';
  4168. ^
  4169. -stdin-:<main>:1:39: Error: At function: PgOp
  4170. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-4}';
  4171. ^
  4172. -stdin-:<main>:1:39: Error: No such operator: #>
  4173. SELECT '{"a":"b","c":[1,2,3]}'::jsonb #> '{c,-4}';
  4174. ^
  4175. <sql-statement>
  4176. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{0}';
  4177. </sql-statement>
  4178. -stdin-:<main>: Error: Type annotation
  4179. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4180. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{0}';
  4181. ^
  4182. -stdin-:<main>:1:44: Error: At function: PgOp
  4183. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{0}';
  4184. ^
  4185. -stdin-:<main>:1:44: Error: No such operator: #>
  4186. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{0}';
  4187. ^
  4188. <sql-statement>
  4189. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{3}';
  4190. </sql-statement>
  4191. -stdin-:<main>: Error: Type annotation
  4192. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4193. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{3}';
  4194. ^
  4195. -stdin-:<main>:1:44: Error: At function: PgOp
  4196. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{3}';
  4197. ^
  4198. -stdin-:<main>:1:44: Error: No such operator: #>
  4199. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{3}';
  4200. ^
  4201. <sql-statement>
  4202. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4}';
  4203. </sql-statement>
  4204. -stdin-:<main>: Error: Type annotation
  4205. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4206. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4}';
  4207. ^
  4208. -stdin-:<main>:1:44: Error: At function: PgOp
  4209. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4}';
  4210. ^
  4211. -stdin-:<main>:1:44: Error: No such operator: #>
  4212. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4}';
  4213. ^
  4214. <sql-statement>
  4215. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4,5}';
  4216. </sql-statement>
  4217. -stdin-:<main>: Error: Type annotation
  4218. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4219. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4,5}';
  4220. ^
  4221. -stdin-:<main>:1:44: Error: At function: PgOp
  4222. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4,5}';
  4223. ^
  4224. -stdin-:<main>:1:44: Error: No such operator: #>
  4225. SELECT '[0,1,2,[3,4],{"5":"five"}]'::jsonb #> '{4,5}';
  4226. ^
  4227. <sql-statement>
  4228. --nested exists
  4229. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb ? 'n';
  4230. </sql-statement>
  4231. <sql-statement>
  4232. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb ? 'a';
  4233. </sql-statement>
  4234. <sql-statement>
  4235. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb ? 'b';
  4236. </sql-statement>
  4237. <sql-statement>
  4238. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb ? 'c';
  4239. </sql-statement>
  4240. <sql-statement>
  4241. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb ? 'd';
  4242. </sql-statement>
  4243. <sql-statement>
  4244. SELECT '{"n":null,"a":1,"b":[1,2],"c":{"1":2},"d":{"1":[2,3]}}'::jsonb ? 'e';
  4245. </sql-statement>
  4246. <sql-statement>
  4247. -- jsonb_strip_nulls
  4248. select jsonb_strip_nulls(null);
  4249. </sql-statement>
  4250. <sql-statement>
  4251. select jsonb_strip_nulls('1');
  4252. </sql-statement>
  4253. <sql-statement>
  4254. select jsonb_strip_nulls('"a string"');
  4255. </sql-statement>
  4256. <sql-statement>
  4257. select jsonb_strip_nulls('null');
  4258. </sql-statement>
  4259. <sql-statement>
  4260. select jsonb_strip_nulls('[1,2,null,3,4]');
  4261. </sql-statement>
  4262. <sql-statement>
  4263. select jsonb_strip_nulls('{"a":1,"b":null,"c":[2,null,3],"d":{"e":4,"f":null}}');
  4264. </sql-statement>
  4265. <sql-statement>
  4266. select jsonb_strip_nulls('[1,{"a":1,"b":null,"c":2},3]');
  4267. </sql-statement>
  4268. <sql-statement>
  4269. -- an empty object is not null and should not be stripped
  4270. select jsonb_strip_nulls('{"a": {"b": null, "c": null}, "d": {} }');
  4271. </sql-statement>
  4272. <sql-statement>
  4273. select jsonb_pretty('{"a": "test", "b": [1, 2, 3], "c": "test3", "d":{"dd": "test4", "dd2":{"ddd": "test5"}}}');
  4274. </sql-statement>
  4275. <sql-statement>
  4276. select jsonb_pretty('[{"f1":1,"f2":null},2,null,[[{"x":true},6,7],8],3]');
  4277. </sql-statement>
  4278. <sql-statement>
  4279. select jsonb_pretty('{"a":["b", "c"], "d": {"e":"f"}}');
  4280. </sql-statement>
  4281. <sql-statement>
  4282. select jsonb_concat('{"d": "test", "a": [1, 2]}', '{"g": "test2", "c": {"c1":1, "c2":2}}');
  4283. </sql-statement>
  4284. <sql-statement>
  4285. select '{"aa":1 , "b":2, "cq":3}'::jsonb || '{"cq":"l", "b":"g", "fg":false}';
  4286. </sql-statement>
  4287. <sql-statement>
  4288. select '{"aa":1 , "b":2, "cq":3}'::jsonb || '{"aq":"l"}';
  4289. </sql-statement>
  4290. <sql-statement>
  4291. select '{"aa":1 , "b":2, "cq":3}'::jsonb || '{"aa":"l"}';
  4292. </sql-statement>
  4293. <sql-statement>
  4294. select '{"aa":1 , "b":2, "cq":3}'::jsonb || '{}';
  4295. </sql-statement>
  4296. <sql-statement>
  4297. select '["a", "b"]'::jsonb || '["c"]';
  4298. </sql-statement>
  4299. <sql-statement>
  4300. select '["a", "b"]'::jsonb || '["c", "d"]';
  4301. </sql-statement>
  4302. <sql-statement>
  4303. select '["c"]' || '["a", "b"]'::jsonb;
  4304. </sql-statement>
  4305. <sql-statement>
  4306. select '["a", "b"]'::jsonb || '"c"';
  4307. </sql-statement>
  4308. <sql-statement>
  4309. select '"c"' || '["a", "b"]'::jsonb;
  4310. </sql-statement>
  4311. <sql-statement>
  4312. select '[]'::jsonb || '["a"]'::jsonb;
  4313. </sql-statement>
  4314. <sql-statement>
  4315. select '[]'::jsonb || '"a"'::jsonb;
  4316. </sql-statement>
  4317. <sql-statement>
  4318. select '"b"'::jsonb || '"a"'::jsonb;
  4319. </sql-statement>
  4320. <sql-statement>
  4321. select '{}'::jsonb || '{"a":"b"}'::jsonb;
  4322. </sql-statement>
  4323. <sql-statement>
  4324. select '[]'::jsonb || '{"a":"b"}'::jsonb;
  4325. </sql-statement>
  4326. <sql-statement>
  4327. select '{"a":"b"}'::jsonb || '[]'::jsonb;
  4328. </sql-statement>
  4329. <sql-statement>
  4330. select '"a"'::jsonb || '{"a":1}';
  4331. </sql-statement>
  4332. <sql-statement>
  4333. select '{"a":1}' || '"a"'::jsonb;
  4334. </sql-statement>
  4335. <sql-statement>
  4336. select '[3]'::jsonb || '{}'::jsonb;
  4337. </sql-statement>
  4338. <sql-statement>
  4339. select '3'::jsonb || '[]'::jsonb;
  4340. </sql-statement>
  4341. <sql-statement>
  4342. select '3'::jsonb || '4'::jsonb;
  4343. </sql-statement>
  4344. <sql-statement>
  4345. select '3'::jsonb || '{}'::jsonb;
  4346. </sql-statement>
  4347. <sql-statement>
  4348. select '["a", "b"]'::jsonb || '{"c":1}';
  4349. </sql-statement>
  4350. <sql-statement>
  4351. select '{"c": 1}'::jsonb || '["a", "b"]';
  4352. </sql-statement>
  4353. <sql-statement>
  4354. select '{}'::jsonb || '{"cq":"l", "b":"g", "fg":false}';
  4355. </sql-statement>
  4356. <sql-statement>
  4357. select pg_column_size('{}'::jsonb || '{}'::jsonb) = pg_column_size('{}'::jsonb);
  4358. </sql-statement>
  4359. <sql-statement>
  4360. select pg_column_size('{"aa":1}'::jsonb || '{"b":2}'::jsonb) = pg_column_size('{"aa":1, "b":2}'::jsonb);
  4361. </sql-statement>
  4362. <sql-statement>
  4363. select pg_column_size('{"aa":1, "b":2}'::jsonb || '{}'::jsonb) = pg_column_size('{"aa":1, "b":2}'::jsonb);
  4364. </sql-statement>
  4365. <sql-statement>
  4366. select pg_column_size('{}'::jsonb || '{"aa":1, "b":2}'::jsonb) = pg_column_size('{"aa":1, "b":2}'::jsonb);
  4367. </sql-statement>
  4368. <sql-statement>
  4369. select jsonb_delete('{"a":1 , "b":2, "c":3}'::jsonb, 'a');
  4370. </sql-statement>
  4371. <sql-statement>
  4372. select jsonb_delete('{"a":null , "b":2, "c":3}'::jsonb, 'a');
  4373. </sql-statement>
  4374. <sql-statement>
  4375. select jsonb_delete('{"a":1 , "b":2, "c":3}'::jsonb, 'b');
  4376. </sql-statement>
  4377. <sql-statement>
  4378. select jsonb_delete('{"a":1 , "b":2, "c":3}'::jsonb, 'c');
  4379. </sql-statement>
  4380. <sql-statement>
  4381. select jsonb_delete('{"a":1 , "b":2, "c":3}'::jsonb, 'd');
  4382. </sql-statement>
  4383. <sql-statement>
  4384. select '{"a":1 , "b":2, "c":3}'::jsonb - 'a';
  4385. </sql-statement>
  4386. <sql-statement>
  4387. select '{"a":null , "b":2, "c":3}'::jsonb - 'a';
  4388. </sql-statement>
  4389. <sql-statement>
  4390. select '{"a":1 , "b":2, "c":3}'::jsonb - 'b';
  4391. </sql-statement>
  4392. <sql-statement>
  4393. select '{"a":1 , "b":2, "c":3}'::jsonb - 'c';
  4394. </sql-statement>
  4395. <sql-statement>
  4396. select '{"a":1 , "b":2, "c":3}'::jsonb - 'd';
  4397. </sql-statement>
  4398. <sql-statement>
  4399. select pg_column_size('{"a":1 , "b":2, "c":3}'::jsonb - 'b') = pg_column_size('{"a":1, "b":2}'::jsonb);
  4400. </sql-statement>
  4401. <sql-statement>
  4402. select '["a","b","c"]'::jsonb - 3;
  4403. </sql-statement>
  4404. <sql-statement>
  4405. select '["a","b","c"]'::jsonb - 2;
  4406. </sql-statement>
  4407. <sql-statement>
  4408. select '["a","b","c"]'::jsonb - 1;
  4409. </sql-statement>
  4410. <sql-statement>
  4411. select '["a","b","c"]'::jsonb - 0;
  4412. </sql-statement>
  4413. <sql-statement>
  4414. select '["a","b","c"]'::jsonb - -1;
  4415. </sql-statement>
  4416. <sql-statement>
  4417. select '["a","b","c"]'::jsonb - -2;
  4418. </sql-statement>
  4419. <sql-statement>
  4420. select '["a","b","c"]'::jsonb - -3;
  4421. </sql-statement>
  4422. <sql-statement>
  4423. select '["a","b","c"]'::jsonb - -4;
  4424. </sql-statement>
  4425. <sql-statement>
  4426. select '{"a":1 , "b":2, "c":3}'::jsonb - '{b}'::text[];
  4427. </sql-statement>
  4428. -stdin-:<main>: Error: Type annotation
  4429. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4430. select '{"a":1 , "b":2, "c":3}'::jsonb - '{b}'::text[];
  4431. ^
  4432. -stdin-:<main>:1:40: Error: At function: PgOp
  4433. select '{"a":1 , "b":2, "c":3}'::jsonb - '{b}'::text[];
  4434. ^
  4435. -stdin-:<main>:1:40: Error: Unable to find an overload for operator - with given argument type(s): (jsonb,_text)
  4436. select '{"a":1 , "b":2, "c":3}'::jsonb - '{b}'::text[];
  4437. ^
  4438. <sql-statement>
  4439. select '{"a":1 , "b":2, "c":3}'::jsonb - '{c,b}'::text[];
  4440. </sql-statement>
  4441. -stdin-:<main>: Error: Type annotation
  4442. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4443. select '{"a":1 , "b":2, "c":3}'::jsonb - '{c,b}'::text[];
  4444. ^
  4445. -stdin-:<main>:1:40: Error: At function: PgOp
  4446. select '{"a":1 , "b":2, "c":3}'::jsonb - '{c,b}'::text[];
  4447. ^
  4448. -stdin-:<main>:1:40: Error: Unable to find an overload for operator - with given argument type(s): (jsonb,_text)
  4449. select '{"a":1 , "b":2, "c":3}'::jsonb - '{c,b}'::text[];
  4450. ^
  4451. <sql-statement>
  4452. select '{"a":1 , "b":2, "c":3}'::jsonb - '{}'::text[];
  4453. </sql-statement>
  4454. -stdin-:<main>: Error: Type annotation
  4455. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4456. select '{"a":1 , "b":2, "c":3}'::jsonb - '{}'::text[];
  4457. ^
  4458. -stdin-:<main>:1:40: Error: At function: PgOp
  4459. select '{"a":1 , "b":2, "c":3}'::jsonb - '{}'::text[];
  4460. ^
  4461. -stdin-:<main>:1:40: Error: Unable to find an overload for operator - with given argument type(s): (jsonb,_text)
  4462. select '{"a":1 , "b":2, "c":3}'::jsonb - '{}'::text[];
  4463. ^
  4464. <sql-statement>
  4465. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '[1,2,3]');
  4466. </sql-statement>
  4467. -stdin-:<main>: Error: Type annotation
  4468. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4469. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '[1,2,3]');
  4470. ^
  4471. -stdin-:<main>:1:8: Error: At function: PgCall
  4472. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '[1,2,3]');
  4473. ^
  4474. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4475. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '[1,2,3]');
  4476. ^
  4477. <sql-statement>
  4478. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '[1,2,3]');
  4479. </sql-statement>
  4480. -stdin-:<main>: Error: Type annotation
  4481. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4482. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '[1,2,3]');
  4483. ^
  4484. -stdin-:<main>:1:8: Error: At function: PgCall
  4485. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '[1,2,3]');
  4486. ^
  4487. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4488. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '[1,2,3]');
  4489. ^
  4490. <sql-statement>
  4491. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '[1,2,3]');
  4492. </sql-statement>
  4493. -stdin-:<main>: Error: Type annotation
  4494. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4495. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '[1,2,3]');
  4496. ^
  4497. -stdin-:<main>:1:8: Error: At function: PgCall
  4498. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '[1,2,3]');
  4499. ^
  4500. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4501. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '[1,2,3]');
  4502. ^
  4503. <sql-statement>
  4504. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '[1,2,3]');
  4505. </sql-statement>
  4506. -stdin-:<main>: Error: Type annotation
  4507. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4508. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '[1,2,3]');
  4509. ^
  4510. -stdin-:<main>:1:8: Error: At function: PgCall
  4511. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '[1,2,3]');
  4512. ^
  4513. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4514. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '[1,2,3]');
  4515. ^
  4516. <sql-statement>
  4517. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '{"1": 2}');
  4518. </sql-statement>
  4519. -stdin-:<main>: Error: Type annotation
  4520. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4521. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '{"1": 2}');
  4522. ^
  4523. -stdin-:<main>:1:8: Error: At function: PgCall
  4524. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '{"1": 2}');
  4525. ^
  4526. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4527. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{n}', '{"1": 2}');
  4528. ^
  4529. <sql-statement>
  4530. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"1": 2}');
  4531. </sql-statement>
  4532. -stdin-:<main>: Error: Type annotation
  4533. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4534. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"1": 2}');
  4535. ^
  4536. -stdin-:<main>:1:8: Error: At function: PgCall
  4537. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"1": 2}');
  4538. ^
  4539. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4540. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"1": 2}');
  4541. ^
  4542. <sql-statement>
  4543. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '{"1": 2}');
  4544. </sql-statement>
  4545. -stdin-:<main>: Error: Type annotation
  4546. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4547. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '{"1": 2}');
  4548. ^
  4549. -stdin-:<main>:1:8: Error: At function: PgCall
  4550. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '{"1": 2}');
  4551. ^
  4552. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4553. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,1,0}', '{"1": 2}');
  4554. ^
  4555. <sql-statement>
  4556. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '{"1": 2}');
  4557. </sql-statement>
  4558. -stdin-:<main>: Error: Type annotation
  4559. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4560. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '{"1": 2}');
  4561. ^
  4562. -stdin-:<main>:1:8: Error: At function: PgCall
  4563. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '{"1": 2}');
  4564. ^
  4565. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4566. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{d,NULL,0}', '{"1": 2}');
  4567. ^
  4568. <sql-statement>
  4569. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '"test"');
  4570. </sql-statement>
  4571. -stdin-:<main>: Error: Type annotation
  4572. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4573. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '"test"');
  4574. ^
  4575. -stdin-:<main>:1:8: Error: At function: PgCall
  4576. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '"test"');
  4577. ^
  4578. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4579. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '"test"');
  4580. ^
  4581. <sql-statement>
  4582. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"f": "test"}');
  4583. </sql-statement>
  4584. -stdin-:<main>: Error: Type annotation
  4585. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4586. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"f": "test"}');
  4587. ^
  4588. -stdin-:<main>:1:8: Error: At function: PgCall
  4589. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"f": "test"}');
  4590. ^
  4591. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (jsonb,unknown,unknown)
  4592. select jsonb_set('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb, '{b,-1}', '{"f": "test"}');
  4593. ^
  4594. <sql-statement>
  4595. select jsonb_delete_path('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}', '{n}');
  4596. </sql-statement>
  4597. <sql-statement>
  4598. select jsonb_delete_path('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}', '{b,-1}');
  4599. </sql-statement>
  4600. <sql-statement>
  4601. select jsonb_delete_path('{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}', '{d,1,0}');
  4602. </sql-statement>
  4603. <sql-statement>
  4604. select '{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb #- '{n}';
  4605. </sql-statement>
  4606. <sql-statement>
  4607. select '{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb #- '{b,-1}';
  4608. </sql-statement>
  4609. <sql-statement>
  4610. select '{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb #- '{b,-1e}'; -- invalid array subscript
  4611. </sql-statement>
  4612. -stdin-:<main>: Fatal: Execution
  4613. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4614. select '{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb #- '{b,-1e}'; -- invalid array subscript
  4615. ^
  4616. -stdin-:<main>:1:1: Fatal: ERROR: path element at position 2 is not an integer: "-1e"
  4617. select '{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb #- '{b,-1e}'; -- invalid array subscript
  4618. ^
  4619. <sql-statement>
  4620. select '{"n":null, "a":1, "b":[1,2], "c":{"1":2}, "d":{"1":[2,3]}}'::jsonb #- '{d,1,0}';
  4621. </sql-statement>
  4622. <sql-statement>
  4623. -- empty structure and error conditions for delete and replace
  4624. select '"a"'::jsonb - 'a'; -- error
  4625. </sql-statement>
  4626. -stdin-:<main>: Fatal: Execution
  4627. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4628. -- empty structure and error conditions for delete and replace
  4629. ^
  4630. -stdin-:<main>:1:1: Fatal: ERROR: cannot delete from scalar
  4631. -- empty structure and error conditions for delete and replace
  4632. ^
  4633. <sql-statement>
  4634. select '{}'::jsonb - 'a';
  4635. </sql-statement>
  4636. <sql-statement>
  4637. select '[]'::jsonb - 'a';
  4638. </sql-statement>
  4639. <sql-statement>
  4640. select '"a"'::jsonb - 1; -- error
  4641. </sql-statement>
  4642. -stdin-:<main>: Fatal: Execution
  4643. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4644. select '"a"'::jsonb - 1; -- error
  4645. ^
  4646. -stdin-:<main>:1:1: Fatal: ERROR: cannot delete from scalar
  4647. select '"a"'::jsonb - 1; -- error
  4648. ^
  4649. <sql-statement>
  4650. select '{}'::jsonb - 1; -- error
  4651. </sql-statement>
  4652. -stdin-:<main>: Fatal: Execution
  4653. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4654. select '{}'::jsonb - 1; -- error
  4655. ^
  4656. -stdin-:<main>:1:1: Fatal: ERROR: cannot delete from object using integer index
  4657. select '{}'::jsonb - 1; -- error
  4658. ^
  4659. <sql-statement>
  4660. select '[]'::jsonb - 1;
  4661. </sql-statement>
  4662. <sql-statement>
  4663. select '"a"'::jsonb #- '{a}'; -- error
  4664. </sql-statement>
  4665. -stdin-:<main>: Fatal: Execution
  4666. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4667. select '"a"'::jsonb #- '{a}'; -- error
  4668. ^
  4669. -stdin-:<main>:1:1: Fatal: ERROR: cannot delete path in scalar
  4670. select '"a"'::jsonb #- '{a}'; -- error
  4671. ^
  4672. <sql-statement>
  4673. select '{}'::jsonb #- '{a}';
  4674. </sql-statement>
  4675. <sql-statement>
  4676. select '[]'::jsonb #- '{a}';
  4677. </sql-statement>
  4678. <sql-statement>
  4679. select jsonb_set('"a"','{a}','"b"'); --error
  4680. </sql-statement>
  4681. -stdin-:<main>: Error: Type annotation
  4682. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4683. select jsonb_set('"a"','{a}','"b"'); --error
  4684. ^
  4685. -stdin-:<main>:1:8: Error: At function: PgCall
  4686. select jsonb_set('"a"','{a}','"b"'); --error
  4687. ^
  4688. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4689. select jsonb_set('"a"','{a}','"b"'); --error
  4690. ^
  4691. <sql-statement>
  4692. select jsonb_set('{}','{a}','"b"', false);
  4693. </sql-statement>
  4694. <sql-statement>
  4695. select jsonb_set('[]','{1}','"b"', false);
  4696. </sql-statement>
  4697. <sql-statement>
  4698. select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0}','[2,3,4]', false);
  4699. </sql-statement>
  4700. <sql-statement>
  4701. -- jsonb_set adding instead of replacing
  4702. -- prepend to array
  4703. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{b,-33}','{"foo":123}');
  4704. </sql-statement>
  4705. -stdin-:<main>: Error: Type annotation
  4706. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4707. -- jsonb_set adding instead of replacing
  4708. ^
  4709. -stdin-:<main>:3:8: Error: At function: PgCall
  4710. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{b,-33}','{"foo":123}');
  4711. ^
  4712. -stdin-:<main>:3:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4713. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{b,-33}','{"foo":123}');
  4714. ^
  4715. <sql-statement>
  4716. -- append to array
  4717. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{b,33}','{"foo":123}');
  4718. </sql-statement>
  4719. -stdin-:<main>: Error: Type annotation
  4720. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4721. -- append to array
  4722. ^
  4723. -stdin-:<main>:2:8: Error: At function: PgCall
  4724. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{b,33}','{"foo":123}');
  4725. ^
  4726. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4727. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{b,33}','{"foo":123}');
  4728. ^
  4729. <sql-statement>
  4730. -- check nesting levels addition
  4731. select jsonb_set('{"a":1,"b":[4,5,[0,1,2],6,7],"c":{"d":4}}','{b,2,33}','{"foo":123}');
  4732. </sql-statement>
  4733. -stdin-:<main>: Error: Type annotation
  4734. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4735. -- check nesting levels addition
  4736. ^
  4737. -stdin-:<main>:2:8: Error: At function: PgCall
  4738. select jsonb_set('{"a":1,"b":[4,5,[0,1,2],6,7],"c":{"d":4}}','{b,2,33}','{"foo":123}');
  4739. ^
  4740. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4741. select jsonb_set('{"a":1,"b":[4,5,[0,1,2],6,7],"c":{"d":4}}','{b,2,33}','{"foo":123}');
  4742. ^
  4743. <sql-statement>
  4744. -- add new key
  4745. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{c,e}','{"foo":123}');
  4746. </sql-statement>
  4747. -stdin-:<main>: Error: Type annotation
  4748. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4749. -- add new key
  4750. ^
  4751. -stdin-:<main>:2:8: Error: At function: PgCall
  4752. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{c,e}','{"foo":123}');
  4753. ^
  4754. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4755. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{c,e}','{"foo":123}');
  4756. ^
  4757. <sql-statement>
  4758. -- adding doesn't do anything if elements before last aren't present
  4759. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,-33}','{"foo":123}');
  4760. </sql-statement>
  4761. -stdin-:<main>: Error: Type annotation
  4762. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4763. -- adding doesn't do anything if elements before last aren't present
  4764. ^
  4765. -stdin-:<main>:2:8: Error: At function: PgCall
  4766. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,-33}','{"foo":123}');
  4767. ^
  4768. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4769. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,-33}','{"foo":123}');
  4770. ^
  4771. <sql-statement>
  4772. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,y}','{"foo":123}');
  4773. </sql-statement>
  4774. -stdin-:<main>: Error: Type annotation
  4775. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4776. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,y}','{"foo":123}');
  4777. ^
  4778. -stdin-:<main>:1:8: Error: At function: PgCall
  4779. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,y}','{"foo":123}');
  4780. ^
  4781. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4782. select jsonb_set('{"a":1,"b":[0,1,2],"c":{"d":4}}','{x,y}','{"foo":123}');
  4783. ^
  4784. <sql-statement>
  4785. -- add to empty object
  4786. select jsonb_set('{}','{x}','{"foo":123}');
  4787. </sql-statement>
  4788. -stdin-:<main>: Error: Type annotation
  4789. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4790. -- add to empty object
  4791. ^
  4792. -stdin-:<main>:2:8: Error: At function: PgCall
  4793. select jsonb_set('{}','{x}','{"foo":123}');
  4794. ^
  4795. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4796. select jsonb_set('{}','{x}','{"foo":123}');
  4797. ^
  4798. <sql-statement>
  4799. --add to empty array
  4800. select jsonb_set('[]','{0}','{"foo":123}');
  4801. </sql-statement>
  4802. -stdin-:<main>: Error: Type annotation
  4803. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4804. --add to empty array
  4805. ^
  4806. -stdin-:<main>:2:8: Error: At function: PgCall
  4807. select jsonb_set('[]','{0}','{"foo":123}');
  4808. ^
  4809. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4810. select jsonb_set('[]','{0}','{"foo":123}');
  4811. ^
  4812. <sql-statement>
  4813. select jsonb_set('[]','{99}','{"foo":123}');
  4814. </sql-statement>
  4815. -stdin-:<main>: Error: Type annotation
  4816. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4817. select jsonb_set('[]','{99}','{"foo":123}');
  4818. ^
  4819. -stdin-:<main>:1:8: Error: At function: PgCall
  4820. select jsonb_set('[]','{99}','{"foo":123}');
  4821. ^
  4822. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4823. select jsonb_set('[]','{99}','{"foo":123}');
  4824. ^
  4825. <sql-statement>
  4826. select jsonb_set('[]','{-99}','{"foo":123}');
  4827. </sql-statement>
  4828. -stdin-:<main>: Error: Type annotation
  4829. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4830. select jsonb_set('[]','{-99}','{"foo":123}');
  4831. ^
  4832. -stdin-:<main>:1:8: Error: At function: PgCall
  4833. select jsonb_set('[]','{-99}','{"foo":123}');
  4834. ^
  4835. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4836. select jsonb_set('[]','{-99}','{"foo":123}');
  4837. ^
  4838. <sql-statement>
  4839. select jsonb_set('{"a": [1, 2, 3]}', '{a, non_integer}', '"new_value"');
  4840. </sql-statement>
  4841. -stdin-:<main>: Error: Type annotation
  4842. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4843. select jsonb_set('{"a": [1, 2, 3]}', '{a, non_integer}', '"new_value"');
  4844. ^
  4845. -stdin-:<main>:1:8: Error: At function: PgCall
  4846. select jsonb_set('{"a": [1, 2, 3]}', '{a, non_integer}', '"new_value"');
  4847. ^
  4848. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4849. select jsonb_set('{"a": [1, 2, 3]}', '{a, non_integer}', '"new_value"');
  4850. ^
  4851. <sql-statement>
  4852. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, non_integer}', '"new_value"');
  4853. </sql-statement>
  4854. -stdin-:<main>: Error: Type annotation
  4855. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4856. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, non_integer}', '"new_value"');
  4857. ^
  4858. -stdin-:<main>:1:8: Error: At function: PgCall
  4859. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, non_integer}', '"new_value"');
  4860. ^
  4861. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4862. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, non_integer}', '"new_value"');
  4863. ^
  4864. <sql-statement>
  4865. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, NULL}', '"new_value"');
  4866. </sql-statement>
  4867. -stdin-:<main>: Error: Type annotation
  4868. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4869. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, NULL}', '"new_value"');
  4870. ^
  4871. -stdin-:<main>:1:8: Error: At function: PgCall
  4872. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, NULL}', '"new_value"');
  4873. ^
  4874. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set with given argument types: (unknown,unknown,unknown)
  4875. select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, NULL}', '"new_value"');
  4876. ^
  4877. <sql-statement>
  4878. -- jsonb_set_lax
  4879. \pset null NULL
  4880. </sql-statement>
  4881. <sql-statement>
  4882. -- pass though non nulls to jsonb_set
  4883. select jsonb_set_lax('{"a":1,"b":2}','{b}','5') ;
  4884. </sql-statement>
  4885. -stdin-:<main>: Error: Type annotation
  4886. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4887. -- pass though non nulls to jsonb_set
  4888. ^
  4889. -stdin-:<main>:2:8: Error: At function: PgCall
  4890. select jsonb_set_lax('{"a":1,"b":2}','{b}','5') ;
  4891. ^
  4892. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set_lax with given argument types: (unknown,unknown,unknown)
  4893. select jsonb_set_lax('{"a":1,"b":2}','{b}','5') ;
  4894. ^
  4895. <sql-statement>
  4896. select jsonb_set_lax('{"a":1,"b":2}','{d}','6', true) ;
  4897. </sql-statement>
  4898. -stdin-:<main>: Error: Type annotation
  4899. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4900. select jsonb_set_lax('{"a":1,"b":2}','{d}','6', true) ;
  4901. ^
  4902. -stdin-:<main>:1:8: Error: At function: PgCall
  4903. select jsonb_set_lax('{"a":1,"b":2}','{d}','6', true) ;
  4904. ^
  4905. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set_lax with given argument types: (unknown,unknown,unknown,bool)
  4906. select jsonb_set_lax('{"a":1,"b":2}','{d}','6', true) ;
  4907. ^
  4908. <sql-statement>
  4909. -- using the default treatment
  4910. select jsonb_set_lax('{"a":1,"b":2}','{b}',null);
  4911. </sql-statement>
  4912. -stdin-:<main>: Error: Type annotation
  4913. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4914. -- using the default treatment
  4915. ^
  4916. -stdin-:<main>:2:8: Error: At function: PgCall
  4917. select jsonb_set_lax('{"a":1,"b":2}','{b}',null);
  4918. ^
  4919. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_set_lax with given argument types: (unknown,unknown,unknown)
  4920. select jsonb_set_lax('{"a":1,"b":2}','{b}',null);
  4921. ^
  4922. <sql-statement>
  4923. select jsonb_set_lax('{"a":1,"b":2}','{d}',null,true);
  4924. </sql-statement>
  4925. -stdin-:<main>: Error: Type annotation
  4926. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4927. select jsonb_set_lax('{"a":1,"b":2}','{d}',null,true);
  4928. ^
  4929. -stdin-:<main>:1:8: Error: At function: PgCall
  4930. select jsonb_set_lax('{"a":1,"b":2}','{d}',null,true);
  4931. ^
  4932. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_set_lax with given argument types: (unknown,unknown,unknown,bool)
  4933. select jsonb_set_lax('{"a":1,"b":2}','{d}',null,true);
  4934. ^
  4935. <sql-statement>
  4936. -- errors
  4937. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, true, null);
  4938. </sql-statement>
  4939. -stdin-:<main>: Fatal: Execution
  4940. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4941. -- errors
  4942. ^
  4943. -stdin-:<main>:1:1: Fatal: ERROR: null_value_treatment must be "delete_key", "return_target", "use_json_null", or "raise_exception"
  4944. -- errors
  4945. ^
  4946. <sql-statement>
  4947. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, true, 'no_such_treatment');
  4948. </sql-statement>
  4949. -stdin-:<main>: Fatal: Execution
  4950. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  4951. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, true, 'no_such_treatment');
  4952. ^
  4953. -stdin-:<main>:1:1: Fatal: ERROR: null_value_treatment must be "delete_key", "return_target", "use_json_null", or "raise_exception"
  4954. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, true, 'no_such_treatment');
  4955. ^
  4956. <sql-statement>
  4957. -- explicit treatments
  4958. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'raise_exception') as raise_exception;
  4959. </sql-statement>
  4960. -stdin-:<main>: Error: Parse Sql
  4961. -stdin-:<main>:2:8: Error: alternative is not implemented yet : 118
  4962. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'raise_exception') as raise_exception;
  4963. ^
  4964. <sql-statement>
  4965. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'return_target') as return_target;
  4966. </sql-statement>
  4967. -stdin-:<main>: Error: Parse Sql
  4968. -stdin-:<main>:1:8: Error: alternative is not implemented yet : 118
  4969. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'return_target') as return_target;
  4970. ^
  4971. <sql-statement>
  4972. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'delete_key') as delete_key;
  4973. </sql-statement>
  4974. -stdin-:<main>: Error: Parse Sql
  4975. -stdin-:<main>:1:8: Error: alternative is not implemented yet : 118
  4976. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'delete_key') as delete_key;
  4977. ^
  4978. <sql-statement>
  4979. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'use_json_null') as use_json_null;
  4980. </sql-statement>
  4981. -stdin-:<main>: Error: Parse Sql
  4982. -stdin-:<main>:1:8: Error: alternative is not implemented yet : 118
  4983. select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'use_json_null') as use_json_null;
  4984. ^
  4985. <sql-statement>
  4986. \pset null ''
  4987. </sql-statement>
  4988. <sql-statement>
  4989. -- jsonb_insert
  4990. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"');
  4991. </sql-statement>
  4992. -stdin-:<main>: Error: Type annotation
  4993. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  4994. -- jsonb_insert
  4995. ^
  4996. -stdin-:<main>:2:8: Error: At function: PgCall
  4997. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"');
  4998. ^
  4999. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5000. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"');
  5001. ^
  5002. <sql-statement>
  5003. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"', true);
  5004. </sql-statement>
  5005. <sql-statement>
  5006. select jsonb_insert('{"a": {"b": {"c": [0, 1, "test1", "test2"]}}}', '{a, b, c, 2}', '"new_value"');
  5007. </sql-statement>
  5008. -stdin-:<main>: Error: Type annotation
  5009. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5010. select jsonb_insert('{"a": {"b": {"c": [0, 1, "test1", "test2"]}}}', '{a, b, c, 2}', '"new_value"');
  5011. ^
  5012. -stdin-:<main>:1:8: Error: At function: PgCall
  5013. select jsonb_insert('{"a": {"b": {"c": [0, 1, "test1", "test2"]}}}', '{a, b, c, 2}', '"new_value"');
  5014. ^
  5015. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5016. select jsonb_insert('{"a": {"b": {"c": [0, 1, "test1", "test2"]}}}', '{a, b, c, 2}', '"new_value"');
  5017. ^
  5018. <sql-statement>
  5019. select jsonb_insert('{"a": {"b": {"c": [0, 1, "test1", "test2"]}}}', '{a, b, c, 2}', '"new_value"', true);
  5020. </sql-statement>
  5021. <sql-statement>
  5022. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '{"b": "value"}');
  5023. </sql-statement>
  5024. -stdin-:<main>: Error: Type annotation
  5025. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5026. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '{"b": "value"}');
  5027. ^
  5028. -stdin-:<main>:1:8: Error: At function: PgCall
  5029. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '{"b": "value"}');
  5030. ^
  5031. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5032. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '{"b": "value"}');
  5033. ^
  5034. <sql-statement>
  5035. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '["value1", "value2"]');
  5036. </sql-statement>
  5037. -stdin-:<main>: Error: Type annotation
  5038. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5039. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '["value1", "value2"]');
  5040. ^
  5041. -stdin-:<main>:1:8: Error: At function: PgCall
  5042. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '["value1", "value2"]');
  5043. ^
  5044. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5045. select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '["value1", "value2"]');
  5046. ^
  5047. <sql-statement>
  5048. -- edge cases
  5049. select jsonb_insert('{"a": [0,1,2]}', '{a, 0}', '"new_value"');
  5050. </sql-statement>
  5051. -stdin-:<main>: Error: Type annotation
  5052. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5053. -- edge cases
  5054. ^
  5055. -stdin-:<main>:2:8: Error: At function: PgCall
  5056. select jsonb_insert('{"a": [0,1,2]}', '{a, 0}', '"new_value"');
  5057. ^
  5058. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5059. select jsonb_insert('{"a": [0,1,2]}', '{a, 0}', '"new_value"');
  5060. ^
  5061. <sql-statement>
  5062. select jsonb_insert('{"a": [0,1,2]}', '{a, 0}', '"new_value"', true);
  5063. </sql-statement>
  5064. <sql-statement>
  5065. select jsonb_insert('{"a": [0,1,2]}', '{a, 2}', '"new_value"');
  5066. </sql-statement>
  5067. -stdin-:<main>: Error: Type annotation
  5068. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5069. select jsonb_insert('{"a": [0,1,2]}', '{a, 2}', '"new_value"');
  5070. ^
  5071. -stdin-:<main>:1:8: Error: At function: PgCall
  5072. select jsonb_insert('{"a": [0,1,2]}', '{a, 2}', '"new_value"');
  5073. ^
  5074. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5075. select jsonb_insert('{"a": [0,1,2]}', '{a, 2}', '"new_value"');
  5076. ^
  5077. <sql-statement>
  5078. select jsonb_insert('{"a": [0,1,2]}', '{a, 2}', '"new_value"', true);
  5079. </sql-statement>
  5080. <sql-statement>
  5081. select jsonb_insert('{"a": [0,1,2]}', '{a, -1}', '"new_value"');
  5082. </sql-statement>
  5083. -stdin-:<main>: Error: Type annotation
  5084. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5085. select jsonb_insert('{"a": [0,1,2]}', '{a, -1}', '"new_value"');
  5086. ^
  5087. -stdin-:<main>:1:8: Error: At function: PgCall
  5088. select jsonb_insert('{"a": [0,1,2]}', '{a, -1}', '"new_value"');
  5089. ^
  5090. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5091. select jsonb_insert('{"a": [0,1,2]}', '{a, -1}', '"new_value"');
  5092. ^
  5093. <sql-statement>
  5094. select jsonb_insert('{"a": [0,1,2]}', '{a, -1}', '"new_value"', true);
  5095. </sql-statement>
  5096. <sql-statement>
  5097. select jsonb_insert('[]', '{1}', '"new_value"');
  5098. </sql-statement>
  5099. -stdin-:<main>: Error: Type annotation
  5100. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5101. select jsonb_insert('[]', '{1}', '"new_value"');
  5102. ^
  5103. -stdin-:<main>:1:8: Error: At function: PgCall
  5104. select jsonb_insert('[]', '{1}', '"new_value"');
  5105. ^
  5106. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5107. select jsonb_insert('[]', '{1}', '"new_value"');
  5108. ^
  5109. <sql-statement>
  5110. select jsonb_insert('[]', '{1}', '"new_value"', true);
  5111. </sql-statement>
  5112. <sql-statement>
  5113. select jsonb_insert('{"a": []}', '{a, 1}', '"new_value"');
  5114. </sql-statement>
  5115. -stdin-:<main>: Error: Type annotation
  5116. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5117. select jsonb_insert('{"a": []}', '{a, 1}', '"new_value"');
  5118. ^
  5119. -stdin-:<main>:1:8: Error: At function: PgCall
  5120. select jsonb_insert('{"a": []}', '{a, 1}', '"new_value"');
  5121. ^
  5122. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5123. select jsonb_insert('{"a": []}', '{a, 1}', '"new_value"');
  5124. ^
  5125. <sql-statement>
  5126. select jsonb_insert('{"a": []}', '{a, 1}', '"new_value"', true);
  5127. </sql-statement>
  5128. <sql-statement>
  5129. select jsonb_insert('{"a": [0,1,2]}', '{a, 10}', '"new_value"');
  5130. </sql-statement>
  5131. -stdin-:<main>: Error: Type annotation
  5132. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5133. select jsonb_insert('{"a": [0,1,2]}', '{a, 10}', '"new_value"');
  5134. ^
  5135. -stdin-:<main>:1:8: Error: At function: PgCall
  5136. select jsonb_insert('{"a": [0,1,2]}', '{a, 10}', '"new_value"');
  5137. ^
  5138. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5139. select jsonb_insert('{"a": [0,1,2]}', '{a, 10}', '"new_value"');
  5140. ^
  5141. <sql-statement>
  5142. select jsonb_insert('{"a": [0,1,2]}', '{a, -10}', '"new_value"');
  5143. </sql-statement>
  5144. -stdin-:<main>: Error: Type annotation
  5145. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5146. select jsonb_insert('{"a": [0,1,2]}', '{a, -10}', '"new_value"');
  5147. ^
  5148. -stdin-:<main>:1:8: Error: At function: PgCall
  5149. select jsonb_insert('{"a": [0,1,2]}', '{a, -10}', '"new_value"');
  5150. ^
  5151. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5152. select jsonb_insert('{"a": [0,1,2]}', '{a, -10}', '"new_value"');
  5153. ^
  5154. <sql-statement>
  5155. -- jsonb_insert should be able to insert new value for objects, but not to replace
  5156. select jsonb_insert('{"a": {"b": "value"}}', '{a, c}', '"new_value"');
  5157. </sql-statement>
  5158. -stdin-:<main>: Error: Type annotation
  5159. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5160. -- jsonb_insert should be able to insert new value for objects, but not to replace
  5161. ^
  5162. -stdin-:<main>:2:8: Error: At function: PgCall
  5163. select jsonb_insert('{"a": {"b": "value"}}', '{a, c}', '"new_value"');
  5164. ^
  5165. -stdin-:<main>:2:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5166. select jsonb_insert('{"a": {"b": "value"}}', '{a, c}', '"new_value"');
  5167. ^
  5168. <sql-statement>
  5169. select jsonb_insert('{"a": {"b": "value"}}', '{a, c}', '"new_value"', true);
  5170. </sql-statement>
  5171. <sql-statement>
  5172. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"');
  5173. </sql-statement>
  5174. -stdin-:<main>: Error: Type annotation
  5175. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  5176. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"');
  5177. ^
  5178. -stdin-:<main>:1:8: Error: At function: PgCall
  5179. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"');
  5180. ^
  5181. -stdin-:<main>:1:8: Error: Unable to find an overload for proc jsonb_insert with given argument types: (unknown,unknown,unknown)
  5182. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"');
  5183. ^
  5184. <sql-statement>
  5185. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"', true);
  5186. </sql-statement>
  5187. -stdin-:<main>: Fatal: Execution
  5188. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5189. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"', true);
  5190. ^
  5191. -stdin-:<main>:1:1: Fatal: ERROR: cannot replace existing key
  5192. HINT: Try using the function jsonb_set to replace key value.
  5193. select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"', true);
  5194. ^
  5195. <sql-statement>
  5196. -- jsonb subscript
  5197. select ('123'::jsonb)['a'];
  5198. </sql-statement>
  5199. -stdin-:<main>: Error: Parse Sql
  5200. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5201. -- jsonb subscript
  5202. ^
  5203. <sql-statement>
  5204. select ('123'::jsonb)[0];
  5205. </sql-statement>
  5206. -stdin-:<main>: Error: Parse Sql
  5207. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5208. select ('123'::jsonb)[0];
  5209. ^
  5210. <sql-statement>
  5211. select ('123'::jsonb)[NULL];
  5212. </sql-statement>
  5213. -stdin-:<main>: Error: Parse Sql
  5214. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5215. select ('123'::jsonb)[NULL];
  5216. ^
  5217. <sql-statement>
  5218. select ('{"a": 1}'::jsonb)['a'];
  5219. </sql-statement>
  5220. -stdin-:<main>: Error: Parse Sql
  5221. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5222. select ('{"a": 1}'::jsonb)['a'];
  5223. ^
  5224. <sql-statement>
  5225. select ('{"a": 1}'::jsonb)[0];
  5226. </sql-statement>
  5227. -stdin-:<main>: Error: Parse Sql
  5228. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5229. select ('{"a": 1}'::jsonb)[0];
  5230. ^
  5231. <sql-statement>
  5232. select ('{"a": 1}'::jsonb)['not_exist'];
  5233. </sql-statement>
  5234. -stdin-:<main>: Error: Parse Sql
  5235. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5236. select ('{"a": 1}'::jsonb)['not_exist'];
  5237. ^
  5238. <sql-statement>
  5239. select ('{"a": 1}'::jsonb)[NULL];
  5240. </sql-statement>
  5241. -stdin-:<main>: Error: Parse Sql
  5242. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5243. select ('{"a": 1}'::jsonb)[NULL];
  5244. ^
  5245. <sql-statement>
  5246. select ('[1, "2", null]'::jsonb)['a'];
  5247. </sql-statement>
  5248. -stdin-:<main>: Error: Parse Sql
  5249. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5250. select ('[1, "2", null]'::jsonb)['a'];
  5251. ^
  5252. <sql-statement>
  5253. select ('[1, "2", null]'::jsonb)[0];
  5254. </sql-statement>
  5255. -stdin-:<main>: Error: Parse Sql
  5256. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5257. select ('[1, "2", null]'::jsonb)[0];
  5258. ^
  5259. <sql-statement>
  5260. select ('[1, "2", null]'::jsonb)['1'];
  5261. </sql-statement>
  5262. -stdin-:<main>: Error: Parse Sql
  5263. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5264. select ('[1, "2", null]'::jsonb)['1'];
  5265. ^
  5266. <sql-statement>
  5267. select ('[1, "2", null]'::jsonb)[1.0];
  5268. </sql-statement>
  5269. -stdin-:<main>: Error: Parse Sql
  5270. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5271. select ('[1, "2", null]'::jsonb)[1.0];
  5272. ^
  5273. <sql-statement>
  5274. select ('[1, "2", null]'::jsonb)[2];
  5275. </sql-statement>
  5276. -stdin-:<main>: Error: Parse Sql
  5277. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5278. select ('[1, "2", null]'::jsonb)[2];
  5279. ^
  5280. <sql-statement>
  5281. select ('[1, "2", null]'::jsonb)[3];
  5282. </sql-statement>
  5283. -stdin-:<main>: Error: Parse Sql
  5284. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5285. select ('[1, "2", null]'::jsonb)[3];
  5286. ^
  5287. <sql-statement>
  5288. select ('[1, "2", null]'::jsonb)[-2];
  5289. </sql-statement>
  5290. -stdin-:<main>: Error: Parse Sql
  5291. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5292. select ('[1, "2", null]'::jsonb)[-2];
  5293. ^
  5294. <sql-statement>
  5295. select ('[1, "2", null]'::jsonb)[1]['a'];
  5296. </sql-statement>
  5297. -stdin-:<main>: Error: Parse Sql
  5298. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5299. select ('[1, "2", null]'::jsonb)[1]['a'];
  5300. ^
  5301. <sql-statement>
  5302. select ('[1, "2", null]'::jsonb)[1][0];
  5303. </sql-statement>
  5304. -stdin-:<main>: Error: Parse Sql
  5305. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5306. select ('[1, "2", null]'::jsonb)[1][0];
  5307. ^
  5308. <sql-statement>
  5309. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['b'];
  5310. </sql-statement>
  5311. -stdin-:<main>: Error: Parse Sql
  5312. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5313. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['b'];
  5314. ^
  5315. <sql-statement>
  5316. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['d'];
  5317. </sql-statement>
  5318. -stdin-:<main>: Error: Parse Sql
  5319. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5320. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['d'];
  5321. ^
  5322. <sql-statement>
  5323. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['d'][1];
  5324. </sql-statement>
  5325. -stdin-:<main>: Error: Parse Sql
  5326. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5327. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['d'][1];
  5328. ^
  5329. <sql-statement>
  5330. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['d']['a'];
  5331. </sql-statement>
  5332. -stdin-:<main>: Error: Parse Sql
  5333. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5334. select ('{"a": 1, "b": "c", "d": [1, 2, 3]}'::jsonb)['d']['a'];
  5335. ^
  5336. <sql-statement>
  5337. select ('{"a": {"a1": {"a2": "aaa"}}, "b": "bbb", "c": "ccc"}'::jsonb)['a']['a1'];
  5338. </sql-statement>
  5339. -stdin-:<main>: Error: Parse Sql
  5340. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5341. select ('{"a": {"a1": {"a2": "aaa"}}, "b": "bbb", "c": "ccc"}'::jsonb)['a']['a1'];
  5342. ^
  5343. <sql-statement>
  5344. select ('{"a": {"a1": {"a2": "aaa"}}, "b": "bbb", "c": "ccc"}'::jsonb)['a']['a1']['a2'];
  5345. </sql-statement>
  5346. -stdin-:<main>: Error: Parse Sql
  5347. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5348. select ('{"a": {"a1": {"a2": "aaa"}}, "b": "bbb", "c": "ccc"}'::jsonb)['a']['a1']['a2'];
  5349. ^
  5350. <sql-statement>
  5351. select ('{"a": {"a1": {"a2": "aaa"}}, "b": "bbb", "c": "ccc"}'::jsonb)['a']['a1']['a2']['a3'];
  5352. </sql-statement>
  5353. -stdin-:<main>: Error: Parse Sql
  5354. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5355. select ('{"a": {"a1": {"a2": "aaa"}}, "b": "bbb", "c": "ccc"}'::jsonb)['a']['a1']['a2']['a3'];
  5356. ^
  5357. <sql-statement>
  5358. select ('{"a": ["a1", {"b1": ["aaa", "bbb", "ccc"]}], "b": "bb"}'::jsonb)['a'][1]['b1'];
  5359. </sql-statement>
  5360. -stdin-:<main>: Error: Parse Sql
  5361. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5362. select ('{"a": ["a1", {"b1": ["aaa", "bbb", "ccc"]}], "b": "bb"}'::jsonb)['a'][1]['b1'];
  5363. ^
  5364. <sql-statement>
  5365. select ('{"a": ["a1", {"b1": ["aaa", "bbb", "ccc"]}], "b": "bb"}'::jsonb)['a'][1]['b1'][2];
  5366. </sql-statement>
  5367. -stdin-:<main>: Error: Parse Sql
  5368. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5369. select ('{"a": ["a1", {"b1": ["aaa", "bbb", "ccc"]}], "b": "bb"}'::jsonb)['a'][1]['b1'][2];
  5370. ^
  5371. <sql-statement>
  5372. -- slices are not supported
  5373. select ('{"a": 1}'::jsonb)['a':'b'];
  5374. </sql-statement>
  5375. -stdin-:<main>: Error: Parse Sql
  5376. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5377. -- slices are not supported
  5378. ^
  5379. <sql-statement>
  5380. select ('[1, "2", null]'::jsonb)[1:2];
  5381. </sql-statement>
  5382. -stdin-:<main>: Error: Parse Sql
  5383. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5384. select ('[1, "2", null]'::jsonb)[1:2];
  5385. ^
  5386. <sql-statement>
  5387. select ('[1, "2", null]'::jsonb)[:2];
  5388. </sql-statement>
  5389. -stdin-:<main>: Error: Parse Sql
  5390. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5391. select ('[1, "2", null]'::jsonb)[:2];
  5392. ^
  5393. <sql-statement>
  5394. select ('[1, "2", null]'::jsonb)[1:];
  5395. </sql-statement>
  5396. -stdin-:<main>: Error: Parse Sql
  5397. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5398. select ('[1, "2", null]'::jsonb)[1:];
  5399. ^
  5400. <sql-statement>
  5401. select ('[1, "2", null]'::jsonb)[:];
  5402. </sql-statement>
  5403. -stdin-:<main>: Error: Parse Sql
  5404. -stdin-:<main>:1:1: Error: alternative is not implemented yet : 360
  5405. select ('[1, "2", null]'::jsonb)[:];
  5406. ^
  5407. <sql-statement>
  5408. create TEMP TABLE test_jsonb_subscript (
  5409. id int,
  5410. test_json jsonb
  5411. );
  5412. </sql-statement>
  5413. <sql-statement>
  5414. insert into test_jsonb_subscript values
  5415. (1, '{}'), -- empty jsonb
  5416. (2, '{"key": "value"}'); -- jsonb with data
  5417. </sql-statement>
  5418. <sql-statement>
  5419. -- update empty jsonb
  5420. update test_jsonb_subscript set test_json['a'] = '1' where id = 1;
  5421. </sql-statement>
  5422. -stdin-:<main>: Fatal: Pre type annotation
  5423. -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'.
  5424. <sql-statement>
  5425. select * from test_jsonb_subscript;
  5426. </sql-statement>
  5427. <sql-statement>
  5428. -- update jsonb with some data
  5429. update test_jsonb_subscript set test_json['a'] = '1' where id = 2;
  5430. </sql-statement>
  5431. -stdin-:<main>: Fatal: Pre type annotation
  5432. -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'.
  5433. <sql-statement>
  5434. select * from test_jsonb_subscript;
  5435. </sql-statement>
  5436. <sql-statement>
  5437. -- replace jsonb
  5438. update test_jsonb_subscript set test_json['a'] = '"test"';
  5439. </sql-statement>
  5440. -stdin-:<main>: Fatal: Pre type annotation
  5441. -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'.
  5442. <sql-statement>
  5443. select * from test_jsonb_subscript;
  5444. </sql-statement>
  5445. <sql-statement>
  5446. -- replace by object
  5447. update test_jsonb_subscript set test_json['a'] = '{"b": 1}'::jsonb;
  5448. </sql-statement>
  5449. -stdin-:<main>: Fatal: Pre type annotation
  5450. -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'.
  5451. <sql-statement>
  5452. select * from test_jsonb_subscript;
  5453. </sql-statement>
  5454. <sql-statement>
  5455. -- replace by array
  5456. update test_jsonb_subscript set test_json['a'] = '[1, 2, 3]'::jsonb;
  5457. </sql-statement>
  5458. -stdin-:<main>: Fatal: Pre type annotation
  5459. -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'.
  5460. <sql-statement>
  5461. select * from test_jsonb_subscript;
  5462. </sql-statement>
  5463. <sql-statement>
  5464. -- use jsonb subscription in where clause
  5465. select * from test_jsonb_subscript where test_json['key'] = '"value"';
  5466. </sql-statement>
  5467. -stdin-:<main>: Error: Parse Sql
  5468. -stdin-:<main>:2:59: Error: alternative is not implemented yet : 360
  5469. select * from test_jsonb_subscript where test_json['key'] = '"value"';
  5470. ^
  5471. <sql-statement>
  5472. select * from test_jsonb_subscript where test_json['key_doesnt_exists'] = '"value"';
  5473. </sql-statement>
  5474. -stdin-:<main>: Error: Parse Sql
  5475. -stdin-:<main>:1:73: Error: alternative is not implemented yet : 360
  5476. select * from test_jsonb_subscript where test_json['key_doesnt_exists'] = '"value"';
  5477. ^
  5478. <sql-statement>
  5479. select * from test_jsonb_subscript where test_json['key'] = '"wrong_value"';
  5480. </sql-statement>
  5481. -stdin-:<main>: Error: Parse Sql
  5482. -stdin-:<main>:1:59: Error: alternative is not implemented yet : 360
  5483. select * from test_jsonb_subscript where test_json['key'] = '"wrong_value"';
  5484. ^
  5485. <sql-statement>
  5486. -- NULL
  5487. update test_jsonb_subscript set test_json[NULL] = '1';
  5488. </sql-statement>
  5489. -stdin-:<main>: Fatal: Pre type annotation
  5490. -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'.
  5491. <sql-statement>
  5492. update test_jsonb_subscript set test_json['another_key'] = NULL;
  5493. </sql-statement>
  5494. -stdin-:<main>: Fatal: Pre type annotation
  5495. -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'.
  5496. <sql-statement>
  5497. select * from test_jsonb_subscript;
  5498. </sql-statement>
  5499. <sql-statement>
  5500. -- NULL as jsonb source
  5501. insert into test_jsonb_subscript values (3, NULL);
  5502. </sql-statement>
  5503. <sql-statement>
  5504. update test_jsonb_subscript set test_json['a'] = '1' where id = 3;
  5505. </sql-statement>
  5506. -stdin-:<main>: Fatal: Pre type annotation
  5507. -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'.
  5508. <sql-statement>
  5509. select * from test_jsonb_subscript;
  5510. </sql-statement>
  5511. <sql-statement>
  5512. update test_jsonb_subscript set test_json = NULL where id = 3;
  5513. </sql-statement>
  5514. -stdin-:<main>: Fatal: Pre type annotation
  5515. -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'.
  5516. <sql-statement>
  5517. update test_jsonb_subscript set test_json[0] = '1';
  5518. </sql-statement>
  5519. -stdin-:<main>: Fatal: Pre type annotation
  5520. -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'.
  5521. <sql-statement>
  5522. select * from test_jsonb_subscript;
  5523. </sql-statement>
  5524. <sql-statement>
  5525. -- Fill the gaps logic
  5526. delete from test_jsonb_subscript;
  5527. </sql-statement>
  5528. -stdin-:<main>: Fatal: Pre type annotation
  5529. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5530. <sql-statement>
  5531. insert into test_jsonb_subscript values (1, '[0]');
  5532. </sql-statement>
  5533. <sql-statement>
  5534. update test_jsonb_subscript set test_json[5] = '1';
  5535. </sql-statement>
  5536. -stdin-:<main>: Fatal: Pre type annotation
  5537. -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'.
  5538. <sql-statement>
  5539. select * from test_jsonb_subscript;
  5540. </sql-statement>
  5541. <sql-statement>
  5542. update test_jsonb_subscript set test_json[-4] = '1';
  5543. </sql-statement>
  5544. -stdin-:<main>: Fatal: Pre type annotation
  5545. -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'.
  5546. <sql-statement>
  5547. select * from test_jsonb_subscript;
  5548. </sql-statement>
  5549. <sql-statement>
  5550. update test_jsonb_subscript set test_json[-8] = '1';
  5551. </sql-statement>
  5552. -stdin-:<main>: Fatal: Pre type annotation
  5553. -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'.
  5554. <sql-statement>
  5555. select * from test_jsonb_subscript;
  5556. </sql-statement>
  5557. <sql-statement>
  5558. -- keep consistent values position
  5559. delete from test_jsonb_subscript;
  5560. </sql-statement>
  5561. -stdin-:<main>: Fatal: Pre type annotation
  5562. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5563. <sql-statement>
  5564. insert into test_jsonb_subscript values (1, '[]');
  5565. </sql-statement>
  5566. <sql-statement>
  5567. update test_jsonb_subscript set test_json[5] = '1';
  5568. </sql-statement>
  5569. -stdin-:<main>: Fatal: Pre type annotation
  5570. -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'.
  5571. <sql-statement>
  5572. select * from test_jsonb_subscript;
  5573. </sql-statement>
  5574. <sql-statement>
  5575. -- create the whole path
  5576. delete from test_jsonb_subscript;
  5577. </sql-statement>
  5578. -stdin-:<main>: Fatal: Pre type annotation
  5579. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5580. <sql-statement>
  5581. insert into test_jsonb_subscript values (1, '{}');
  5582. </sql-statement>
  5583. <sql-statement>
  5584. update test_jsonb_subscript set test_json['a'][0]['b'][0]['c'] = '1';
  5585. </sql-statement>
  5586. -stdin-:<main>: Fatal: Pre type annotation
  5587. -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'.
  5588. <sql-statement>
  5589. select * from test_jsonb_subscript;
  5590. </sql-statement>
  5591. <sql-statement>
  5592. delete from test_jsonb_subscript;
  5593. </sql-statement>
  5594. -stdin-:<main>: Fatal: Pre type annotation
  5595. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5596. <sql-statement>
  5597. insert into test_jsonb_subscript values (1, '{}');
  5598. </sql-statement>
  5599. <sql-statement>
  5600. update test_jsonb_subscript set test_json['a'][2]['b'][2]['c'][2] = '1';
  5601. </sql-statement>
  5602. -stdin-:<main>: Fatal: Pre type annotation
  5603. -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'.
  5604. <sql-statement>
  5605. select * from test_jsonb_subscript;
  5606. </sql-statement>
  5607. <sql-statement>
  5608. -- create the whole path with already existing keys
  5609. delete from test_jsonb_subscript;
  5610. </sql-statement>
  5611. -stdin-:<main>: Fatal: Pre type annotation
  5612. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5613. <sql-statement>
  5614. insert into test_jsonb_subscript values (1, '{"b": 1}');
  5615. </sql-statement>
  5616. <sql-statement>
  5617. update test_jsonb_subscript set test_json['a'][0] = '2';
  5618. </sql-statement>
  5619. -stdin-:<main>: Fatal: Pre type annotation
  5620. -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'.
  5621. <sql-statement>
  5622. select * from test_jsonb_subscript;
  5623. </sql-statement>
  5624. <sql-statement>
  5625. -- the start jsonb is an object, first subscript is treated as a key
  5626. delete from test_jsonb_subscript;
  5627. </sql-statement>
  5628. -stdin-:<main>: Fatal: Pre type annotation
  5629. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5630. <sql-statement>
  5631. insert into test_jsonb_subscript values (1, '{}');
  5632. </sql-statement>
  5633. <sql-statement>
  5634. update test_jsonb_subscript set test_json[0]['a'] = '1';
  5635. </sql-statement>
  5636. -stdin-:<main>: Fatal: Pre type annotation
  5637. -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'.
  5638. <sql-statement>
  5639. select * from test_jsonb_subscript;
  5640. </sql-statement>
  5641. <sql-statement>
  5642. -- the start jsonb is an array
  5643. delete from test_jsonb_subscript;
  5644. </sql-statement>
  5645. -stdin-:<main>: Fatal: Pre type annotation
  5646. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5647. <sql-statement>
  5648. insert into test_jsonb_subscript values (1, '[]');
  5649. </sql-statement>
  5650. <sql-statement>
  5651. update test_jsonb_subscript set test_json[0]['a'] = '1';
  5652. </sql-statement>
  5653. -stdin-:<main>: Fatal: Pre type annotation
  5654. -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'.
  5655. <sql-statement>
  5656. update test_jsonb_subscript set test_json[2]['b'] = '2';
  5657. </sql-statement>
  5658. -stdin-:<main>: Fatal: Pre type annotation
  5659. -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'.
  5660. <sql-statement>
  5661. select * from test_jsonb_subscript;
  5662. </sql-statement>
  5663. <sql-statement>
  5664. -- overwriting an existing path
  5665. delete from test_jsonb_subscript;
  5666. </sql-statement>
  5667. -stdin-:<main>: Fatal: Pre type annotation
  5668. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5669. <sql-statement>
  5670. insert into test_jsonb_subscript values (1, '{}');
  5671. </sql-statement>
  5672. <sql-statement>
  5673. update test_jsonb_subscript set test_json['a']['b'][1] = '1';
  5674. </sql-statement>
  5675. -stdin-:<main>: Fatal: Pre type annotation
  5676. -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'.
  5677. <sql-statement>
  5678. update test_jsonb_subscript set test_json['a']['b'][10] = '1';
  5679. </sql-statement>
  5680. -stdin-:<main>: Fatal: Pre type annotation
  5681. -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'.
  5682. <sql-statement>
  5683. select * from test_jsonb_subscript;
  5684. </sql-statement>
  5685. <sql-statement>
  5686. delete from test_jsonb_subscript;
  5687. </sql-statement>
  5688. -stdin-:<main>: Fatal: Pre type annotation
  5689. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5690. <sql-statement>
  5691. insert into test_jsonb_subscript values (1, '[]');
  5692. </sql-statement>
  5693. <sql-statement>
  5694. update test_jsonb_subscript set test_json[0][0][0] = '1';
  5695. </sql-statement>
  5696. -stdin-:<main>: Fatal: Pre type annotation
  5697. -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'.
  5698. <sql-statement>
  5699. update test_jsonb_subscript set test_json[0][0][1] = '1';
  5700. </sql-statement>
  5701. -stdin-:<main>: Fatal: Pre type annotation
  5702. -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'.
  5703. <sql-statement>
  5704. select * from test_jsonb_subscript;
  5705. </sql-statement>
  5706. <sql-statement>
  5707. delete from test_jsonb_subscript;
  5708. </sql-statement>
  5709. -stdin-:<main>: Fatal: Pre type annotation
  5710. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5711. <sql-statement>
  5712. insert into test_jsonb_subscript values (1, '{}');
  5713. </sql-statement>
  5714. <sql-statement>
  5715. update test_jsonb_subscript set test_json['a']['b'][10] = '1';
  5716. </sql-statement>
  5717. -stdin-:<main>: Fatal: Pre type annotation
  5718. -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'.
  5719. <sql-statement>
  5720. update test_jsonb_subscript set test_json['a'][10][10] = '1';
  5721. </sql-statement>
  5722. -stdin-:<main>: Fatal: Pre type annotation
  5723. -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'.
  5724. <sql-statement>
  5725. select * from test_jsonb_subscript;
  5726. </sql-statement>
  5727. <sql-statement>
  5728. -- an empty sub element
  5729. delete from test_jsonb_subscript;
  5730. </sql-statement>
  5731. -stdin-:<main>: Fatal: Pre type annotation
  5732. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5733. <sql-statement>
  5734. insert into test_jsonb_subscript values (1, '{"a": {}}');
  5735. </sql-statement>
  5736. <sql-statement>
  5737. update test_jsonb_subscript set test_json['a']['b']['c'][2] = '1';
  5738. </sql-statement>
  5739. -stdin-:<main>: Fatal: Pre type annotation
  5740. -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'.
  5741. <sql-statement>
  5742. select * from test_jsonb_subscript;
  5743. </sql-statement>
  5744. <sql-statement>
  5745. delete from test_jsonb_subscript;
  5746. </sql-statement>
  5747. -stdin-:<main>: Fatal: Pre type annotation
  5748. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5749. <sql-statement>
  5750. insert into test_jsonb_subscript values (1, '{"a": []}');
  5751. </sql-statement>
  5752. <sql-statement>
  5753. update test_jsonb_subscript set test_json['a'][1]['c'][2] = '1';
  5754. </sql-statement>
  5755. -stdin-:<main>: Fatal: Pre type annotation
  5756. -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'.
  5757. <sql-statement>
  5758. select * from test_jsonb_subscript;
  5759. </sql-statement>
  5760. <sql-statement>
  5761. -- trying replace assuming a composite object, but it's an element or a value
  5762. delete from test_jsonb_subscript;
  5763. </sql-statement>
  5764. -stdin-:<main>: Fatal: Pre type annotation
  5765. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5766. <sql-statement>
  5767. insert into test_jsonb_subscript values (1, '{"a": 1}');
  5768. </sql-statement>
  5769. <sql-statement>
  5770. update test_jsonb_subscript set test_json['a']['b'] = '1';
  5771. </sql-statement>
  5772. -stdin-:<main>: Fatal: Pre type annotation
  5773. -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'.
  5774. <sql-statement>
  5775. update test_jsonb_subscript set test_json['a']['b']['c'] = '1';
  5776. </sql-statement>
  5777. -stdin-:<main>: Fatal: Pre type annotation
  5778. -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'.
  5779. <sql-statement>
  5780. update test_jsonb_subscript set test_json['a'][0] = '1';
  5781. </sql-statement>
  5782. -stdin-:<main>: Fatal: Pre type annotation
  5783. -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'.
  5784. <sql-statement>
  5785. update test_jsonb_subscript set test_json['a'][0]['c'] = '1';
  5786. </sql-statement>
  5787. -stdin-:<main>: Fatal: Pre type annotation
  5788. -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'.
  5789. <sql-statement>
  5790. update test_jsonb_subscript set test_json['a'][0][0] = '1';
  5791. </sql-statement>
  5792. -stdin-:<main>: Fatal: Pre type annotation
  5793. -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'.
  5794. <sql-statement>
  5795. -- trying replace assuming a composite object, but it's a raw scalar
  5796. delete from test_jsonb_subscript;
  5797. </sql-statement>
  5798. -stdin-:<main>: Fatal: Pre type annotation
  5799. -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_delete' 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'.
  5800. <sql-statement>
  5801. insert into test_jsonb_subscript values (1, 'null');
  5802. </sql-statement>
  5803. <sql-statement>
  5804. update test_jsonb_subscript set test_json[0] = '1';
  5805. </sql-statement>
  5806. -stdin-:<main>: Fatal: Pre type annotation
  5807. -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'.
  5808. <sql-statement>
  5809. update test_jsonb_subscript set test_json[0][0] = '1';
  5810. </sql-statement>
  5811. -stdin-:<main>: Fatal: Pre type annotation
  5812. -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'.
  5813. <sql-statement>
  5814. -- jsonb to tsvector
  5815. select to_tsvector('{"a": "aaa bbb ddd ccc", "b": ["eee fff ggg"], "c": {"d": "hhh iii"}}'::jsonb);
  5816. </sql-statement>
  5817. -stdin-:<main>: Fatal: Execution
  5818. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5819. -- jsonb to tsvector
  5820. ^
  5821. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  5822. -- jsonb to tsvector
  5823. ^
  5824. <sql-statement>
  5825. -- jsonb to tsvector with config
  5826. select to_tsvector('simple', '{"a": "aaa bbb ddd ccc", "b": ["eee fff ggg"], "c": {"d": "hhh iii"}}'::jsonb);
  5827. </sql-statement>
  5828. -stdin-:<main>: Fatal: Execution
  5829. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5830. -- jsonb to tsvector with config
  5831. ^
  5832. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "simple" does not exist
  5833. -- jsonb to tsvector with config
  5834. ^
  5835. <sql-statement>
  5836. -- jsonb to tsvector with stop words
  5837. select to_tsvector('english', '{"a": "aaa in bbb ddd ccc", "b": ["the eee fff ggg"], "c": {"d": "hhh. iii"}}'::jsonb);
  5838. </sql-statement>
  5839. -stdin-:<main>: Fatal: Execution
  5840. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5841. -- jsonb to tsvector with stop words
  5842. ^
  5843. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5844. -- jsonb to tsvector with stop words
  5845. ^
  5846. <sql-statement>
  5847. -- jsonb to tsvector with numeric values
  5848. select to_tsvector('english', '{"a": "aaa in bbb ddd ccc", "b": 123, "c": 456}'::jsonb);
  5849. </sql-statement>
  5850. -stdin-:<main>: Fatal: Execution
  5851. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5852. -- jsonb to tsvector with numeric values
  5853. ^
  5854. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5855. -- jsonb to tsvector with numeric values
  5856. ^
  5857. <sql-statement>
  5858. -- jsonb_to_tsvector
  5859. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"all"');
  5860. </sql-statement>
  5861. -stdin-:<main>: Fatal: Execution
  5862. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5863. -- jsonb_to_tsvector
  5864. ^
  5865. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5866. -- jsonb_to_tsvector
  5867. ^
  5868. <sql-statement>
  5869. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"key"');
  5870. </sql-statement>
  5871. -stdin-:<main>: Fatal: Execution
  5872. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5873. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"key"');
  5874. ^
  5875. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5876. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"key"');
  5877. ^
  5878. <sql-statement>
  5879. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"string"');
  5880. </sql-statement>
  5881. -stdin-:<main>: Fatal: Execution
  5882. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5883. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"string"');
  5884. ^
  5885. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5886. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"string"');
  5887. ^
  5888. <sql-statement>
  5889. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"numeric"');
  5890. </sql-statement>
  5891. -stdin-:<main>: Fatal: Execution
  5892. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5893. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"numeric"');
  5894. ^
  5895. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5896. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"numeric"');
  5897. ^
  5898. <sql-statement>
  5899. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"boolean"');
  5900. </sql-statement>
  5901. -stdin-:<main>: Fatal: Execution
  5902. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5903. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"boolean"');
  5904. ^
  5905. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5906. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"boolean"');
  5907. ^
  5908. <sql-statement>
  5909. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["string", "numeric"]');
  5910. </sql-statement>
  5911. -stdin-:<main>: Fatal: Execution
  5912. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5913. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["string", "numeric"]');
  5914. ^
  5915. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5916. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["string", "numeric"]');
  5917. ^
  5918. <sql-statement>
  5919. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"all"');
  5920. </sql-statement>
  5921. -stdin-:<main>: Fatal: Execution
  5922. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5923. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"all"');
  5924. ^
  5925. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5926. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"all"');
  5927. ^
  5928. <sql-statement>
  5929. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"key"');
  5930. </sql-statement>
  5931. -stdin-:<main>: Fatal: Execution
  5932. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5933. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"key"');
  5934. ^
  5935. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5936. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"key"');
  5937. ^
  5938. <sql-statement>
  5939. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"string"');
  5940. </sql-statement>
  5941. -stdin-:<main>: Fatal: Execution
  5942. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5943. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"string"');
  5944. ^
  5945. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5946. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"string"');
  5947. ^
  5948. <sql-statement>
  5949. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"numeric"');
  5950. </sql-statement>
  5951. -stdin-:<main>: Fatal: Execution
  5952. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5953. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"numeric"');
  5954. ^
  5955. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5956. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"numeric"');
  5957. ^
  5958. <sql-statement>
  5959. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"boolean"');
  5960. </sql-statement>
  5961. -stdin-:<main>: Fatal: Execution
  5962. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5963. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"boolean"');
  5964. ^
  5965. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5966. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '"boolean"');
  5967. ^
  5968. <sql-statement>
  5969. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["string", "numeric"]');
  5970. </sql-statement>
  5971. -stdin-:<main>: Fatal: Execution
  5972. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5973. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["string", "numeric"]');
  5974. ^
  5975. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  5976. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["string", "numeric"]');
  5977. ^
  5978. <sql-statement>
  5979. -- to_tsvector corner cases
  5980. select to_tsvector('""'::jsonb);
  5981. </sql-statement>
  5982. -stdin-:<main>: Fatal: Execution
  5983. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5984. -- to_tsvector corner cases
  5985. ^
  5986. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  5987. -- to_tsvector corner cases
  5988. ^
  5989. <sql-statement>
  5990. select to_tsvector('{}'::jsonb);
  5991. </sql-statement>
  5992. -stdin-:<main>: Fatal: Execution
  5993. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  5994. select to_tsvector('{}'::jsonb);
  5995. ^
  5996. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  5997. select to_tsvector('{}'::jsonb);
  5998. ^
  5999. <sql-statement>
  6000. select to_tsvector('[]'::jsonb);
  6001. </sql-statement>
  6002. -stdin-:<main>: Fatal: Execution
  6003. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6004. select to_tsvector('[]'::jsonb);
  6005. ^
  6006. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  6007. select to_tsvector('[]'::jsonb);
  6008. ^
  6009. <sql-statement>
  6010. select to_tsvector('null'::jsonb);
  6011. </sql-statement>
  6012. -stdin-:<main>: Fatal: Execution
  6013. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6014. select to_tsvector('null'::jsonb);
  6015. ^
  6016. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  6017. select to_tsvector('null'::jsonb);
  6018. ^
  6019. <sql-statement>
  6020. -- jsonb_to_tsvector corner cases
  6021. select jsonb_to_tsvector('""'::jsonb, '"all"');
  6022. </sql-statement>
  6023. -stdin-:<main>: Fatal: Execution
  6024. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6025. -- jsonb_to_tsvector corner cases
  6026. ^
  6027. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  6028. -- jsonb_to_tsvector corner cases
  6029. ^
  6030. <sql-statement>
  6031. select jsonb_to_tsvector('{}'::jsonb, '"all"');
  6032. </sql-statement>
  6033. -stdin-:<main>: Fatal: Execution
  6034. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6035. select jsonb_to_tsvector('{}'::jsonb, '"all"');
  6036. ^
  6037. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  6038. select jsonb_to_tsvector('{}'::jsonb, '"all"');
  6039. ^
  6040. <sql-statement>
  6041. select jsonb_to_tsvector('[]'::jsonb, '"all"');
  6042. </sql-statement>
  6043. -stdin-:<main>: Fatal: Execution
  6044. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6045. select jsonb_to_tsvector('[]'::jsonb, '"all"');
  6046. ^
  6047. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  6048. select jsonb_to_tsvector('[]'::jsonb, '"all"');
  6049. ^
  6050. <sql-statement>
  6051. select jsonb_to_tsvector('null'::jsonb, '"all"');
  6052. </sql-statement>
  6053. -stdin-:<main>: Fatal: Execution
  6054. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6055. select jsonb_to_tsvector('null'::jsonb, '"all"');
  6056. ^
  6057. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration isn't set
  6058. select jsonb_to_tsvector('null'::jsonb, '"all"');
  6059. ^
  6060. <sql-statement>
  6061. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '""');
  6062. </sql-statement>
  6063. -stdin-:<main>: Fatal: Execution
  6064. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6065. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '""');
  6066. ^
  6067. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  6068. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '""');
  6069. ^
  6070. <sql-statement>
  6071. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '{}');
  6072. </sql-statement>
  6073. -stdin-:<main>: Fatal: Execution
  6074. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6075. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '{}');
  6076. ^
  6077. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  6078. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '{}');
  6079. ^
  6080. <sql-statement>
  6081. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '[]');
  6082. </sql-statement>
  6083. -stdin-:<main>: Fatal: Execution
  6084. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6085. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '[]');
  6086. ^
  6087. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  6088. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '[]');
  6089. ^
  6090. <sql-statement>
  6091. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, 'null');
  6092. </sql-statement>
  6093. -stdin-:<main>: Fatal: Execution
  6094. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6095. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, 'null');
  6096. ^
  6097. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  6098. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, 'null');
  6099. ^
  6100. <sql-statement>
  6101. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["all", null]');
  6102. </sql-statement>
  6103. -stdin-:<main>: Fatal: Execution
  6104. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6105. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["all", null]');
  6106. ^
  6107. -stdin-:<main>:1:1: Fatal: ERROR: text search configuration "english" does not exist
  6108. select jsonb_to_tsvector('english', '{"a": "aaa in bbb", "b": 123, "c": 456, "d": true, "f": false, "g": null}'::jsonb, '["all", null]');
  6109. ^
  6110. <sql-statement>
  6111. -- ts_headline for jsonb
  6112. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6113. </sql-statement>
  6114. -stdin-:<main>: Error: Type annotation
  6115. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6116. -- ts_headline for jsonb
  6117. ^
  6118. -stdin-:<main>:2:8: Error: At function: PgCall
  6119. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6120. ^
  6121. -stdin-:<main>:2:122: Error: At function: PgCall
  6122. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6123. ^
  6124. -stdin-:<main>:2:122: Error: No such proc: tsquery
  6125. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6126. ^
  6127. <sql-statement>
  6128. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6129. </sql-statement>
  6130. -stdin-:<main>: Error: Type annotation
  6131. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6132. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6133. ^
  6134. -stdin-:<main>:1:8: Error: At function: PgCall
  6135. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6136. ^
  6137. -stdin-:<main>:1:114: Error: At function: PgCall
  6138. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6139. ^
  6140. -stdin-:<main>:1:114: Error: No such proc: tsquery
  6141. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'));
  6142. ^
  6143. <sql-statement>
  6144. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6145. </sql-statement>
  6146. -stdin-:<main>: Error: Type annotation
  6147. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6148. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6149. ^
  6150. -stdin-:<main>:1:8: Error: At function: PgCall
  6151. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6152. ^
  6153. -stdin-:<main>:1:122: Error: At function: PgCall
  6154. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6155. ^
  6156. -stdin-:<main>:1:122: Error: No such proc: tsquery
  6157. select ts_headline('{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6158. ^
  6159. <sql-statement>
  6160. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6161. </sql-statement>
  6162. -stdin-:<main>: Error: Type annotation
  6163. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6164. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6165. ^
  6166. -stdin-:<main>:1:8: Error: At function: PgCall
  6167. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6168. ^
  6169. -stdin-:<main>:1:133: Error: At function: PgCall
  6170. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6171. ^
  6172. -stdin-:<main>:1:133: Error: No such proc: tsquery
  6173. select ts_headline('english', '{"a": "aaa bbb", "b": {"c": "ccc ddd fff", "c1": "ccc1 ddd1"}, "d": ["ggg hhh", "iii jjj"]}'::jsonb, tsquery('bbb & ddd & hhh'), 'StartSel = <, StopSel = >');
  6174. ^
  6175. <sql-statement>
  6176. -- corner cases for ts_headline with jsonb
  6177. select ts_headline('null'::jsonb, tsquery('aaa & bbb'));
  6178. </sql-statement>
  6179. -stdin-:<main>: Error: Type annotation
  6180. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6181. -- corner cases for ts_headline with jsonb
  6182. ^
  6183. -stdin-:<main>:2:8: Error: At function: PgCall
  6184. select ts_headline('null'::jsonb, tsquery('aaa & bbb'));
  6185. ^
  6186. -stdin-:<main>:2:35: Error: At function: PgCall
  6187. select ts_headline('null'::jsonb, tsquery('aaa & bbb'));
  6188. ^
  6189. -stdin-:<main>:2:35: Error: No such proc: tsquery
  6190. select ts_headline('null'::jsonb, tsquery('aaa & bbb'));
  6191. ^
  6192. <sql-statement>
  6193. select ts_headline('{}'::jsonb, tsquery('aaa & bbb'));
  6194. </sql-statement>
  6195. -stdin-:<main>: Error: Type annotation
  6196. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6197. select ts_headline('{}'::jsonb, tsquery('aaa & bbb'));
  6198. ^
  6199. -stdin-:<main>:1:8: Error: At function: PgCall
  6200. select ts_headline('{}'::jsonb, tsquery('aaa & bbb'));
  6201. ^
  6202. -stdin-:<main>:1:33: Error: At function: PgCall
  6203. select ts_headline('{}'::jsonb, tsquery('aaa & bbb'));
  6204. ^
  6205. -stdin-:<main>:1:33: Error: No such proc: tsquery
  6206. select ts_headline('{}'::jsonb, tsquery('aaa & bbb'));
  6207. ^
  6208. <sql-statement>
  6209. select ts_headline('[]'::jsonb, tsquery('aaa & bbb'));
  6210. </sql-statement>
  6211. -stdin-:<main>: Error: Type annotation
  6212. -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem, At function: PgResultItem
  6213. select ts_headline('[]'::jsonb, tsquery('aaa & bbb'));
  6214. ^
  6215. -stdin-:<main>:1:8: Error: At function: PgCall
  6216. select ts_headline('[]'::jsonb, tsquery('aaa & bbb'));
  6217. ^
  6218. -stdin-:<main>:1:33: Error: At function: PgCall
  6219. select ts_headline('[]'::jsonb, tsquery('aaa & bbb'));
  6220. ^
  6221. -stdin-:<main>:1:33: Error: No such proc: tsquery
  6222. select ts_headline('[]'::jsonb, tsquery('aaa & bbb'));
  6223. ^
  6224. <sql-statement>
  6225. -- casts
  6226. select 'true'::jsonb::bool;
  6227. </sql-statement>
  6228. <sql-statement>
  6229. select '[]'::jsonb::bool;
  6230. </sql-statement>
  6231. -stdin-:<main>: Fatal: Execution
  6232. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6233. select '[]'::jsonb::bool;
  6234. ^
  6235. -stdin-:<main>:1:1: Fatal: ERROR: cannot cast jsonb array to type boolean
  6236. select '[]'::jsonb::bool;
  6237. ^
  6238. <sql-statement>
  6239. select '1.0'::jsonb::float;
  6240. </sql-statement>
  6241. <sql-statement>
  6242. select '[1.0]'::jsonb::float;
  6243. </sql-statement>
  6244. -stdin-:<main>: Fatal: Execution
  6245. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6246. select '[1.0]'::jsonb::float;
  6247. ^
  6248. -stdin-:<main>:1:1: Fatal: ERROR: cannot cast jsonb array to type double precision
  6249. select '[1.0]'::jsonb::float;
  6250. ^
  6251. <sql-statement>
  6252. select '12345'::jsonb::int4;
  6253. </sql-statement>
  6254. <sql-statement>
  6255. select '"hello"'::jsonb::int4;
  6256. </sql-statement>
  6257. -stdin-:<main>: Fatal: Execution
  6258. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6259. select '"hello"'::jsonb::int4;
  6260. ^
  6261. -stdin-:<main>:1:1: Fatal: ERROR: cannot cast jsonb string to type integer
  6262. select '"hello"'::jsonb::int4;
  6263. ^
  6264. <sql-statement>
  6265. select '12345'::jsonb::numeric;
  6266. </sql-statement>
  6267. <sql-statement>
  6268. select '{}'::jsonb::numeric;
  6269. </sql-statement>
  6270. -stdin-:<main>: Fatal: Execution
  6271. -stdin-:<main>:1:1: Fatal: Execution of node: Result
  6272. select '{}'::jsonb::numeric;
  6273. ^
  6274. -stdin-:<main>:1:1: Fatal: ERROR: cannot cast jsonb object to type numeric
  6275. select '{}'::jsonb::numeric;
  6276. ^
  6277. <sql-statement>
  6278. select '12345.05'::jsonb::numeric;
  6279. </sql-statement>
  6280. <sql-statement>
  6281. select '12345.05'::jsonb::float4;
  6282. </sql-statement>
  6283. <sql-statement>
  6284. select '12345.05'::jsonb::float8;
  6285. </sql-statement>
  6286. <sql-statement>
  6287. select '12345.05'::jsonb::int2;
  6288. </sql-statement>
  6289. <sql-statement>
  6290. select '12345.05'::jsonb::int4;
  6291. </sql-statement>
  6292. <sql-statement>
  6293. select '12345.05'::jsonb::int8;
  6294. </sql-statement>
  6295. <sql-statement>
  6296. select '12345.0000000000000000000000000000000000000000000005'::jsonb::numeric;
  6297. </sql-statement>
  6298. <sql-statement>
  6299. select '12345.0000000000000000000000000000000000000000000005'::jsonb::float4;
  6300. </sql-statement>
  6301. <sql-statement>
  6302. select '12345.0000000000000000000000000000000000000000000005'::jsonb::float8;
  6303. </sql-statement>
  6304. <sql-statement>
  6305. select '12345.0000000000000000000000000000000000000000000005'::jsonb::int2;
  6306. </sql-statement>
  6307. <sql-statement>
  6308. select '12345.0000000000000000000000000000000000000000000005'::jsonb::int4;
  6309. </sql-statement>
  6310. <sql-statement>
  6311. select '12345.0000000000000000000000000000000000000000000005'::jsonb::int8;
  6312. </sql-statement>