[{"data":1,"prerenderedAt":231},["ShallowReactive",2],{"project-37892061":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":40,"post_text":41,"what":42,"said":67,"maker_in_thread":143,"shape":150,"grid":155,"attempts":193,"same_week":194,"maker_shows":32,"maker_hidden":223,"reader_version":224,"card":225},"37892061","pg_yregress","Pg_yregress, Structured Testing for Postgres","title","Show HN: Pg_yregress, Structured Testing for Postgres","https:\u002F\u002Fgithub.com\u002Fomnigres\u002Fomnigres\u002Ftree\u002Fmaster\u002Fpg_yregress","github.com","yrashk",1697394132,2023,56,17,1004,3109,33,"notable","dev_tools","testing framework","cli",[24,25,26,27,28],"postgres testing","pg_regress","tap output","yaml tests","pgtap","loved",0.455,{"positive":32,"neutral":33,"mixed":34,"critical":34},5,3,0,8,{"design":37,"idea":38},{"positive":33,"critical":34},{"positive":39,"critical":34},1,[32,34,32,33,34,32,34,34,34,34,34,34,33,33,34,32,32],"Originally inspired by pg_regress, pg_yregress provides a TAP-compatible test executor that allows for better test organization, easier instance management, native JSON handling and so on.",{"problem":43,"audience":50,"pricing":59,"motivation":59,"time_to_build":59,"stack":60,"openness":66,"stage":66,"team_size":66},{"value":44,"source":45,"evidence":46},"Testing Postgres via psql output captures is hard to organize and cannot easily test features like binary encodings","maker",[47],{"id":48,"by":11,"text":49},"37892930","This is not \"better than TAP\" but rather better than implementing tests as captures of psql outputs as done in pg_regress. Besides that, there are other features that are harder…",{"value":51,"source":52,"evidence":53},"Postgres developers writing tests","inferred",[54,55],{"id":48,"by":11,"text":49},{"id":56,"by":57,"text":58},"37892991","rxrog","This is such an interesting project. Having written SQL based tests with MTR, I really love the reusable queries and not having to dump the full SQL output into test results.",null,[61],{"value":62,"source":45,"evidence":63},"Postgres",[64],{"id":65},"post","unknown",{"praise":68,"objections":92,"requests":115,"questions":122,"alternatives":131},[69,74,85],{"value":70,"source":71,"evidence":72},"Reusable queries and no need to dump full SQL output into results","commenter",[73],{"id":56,"by":57,"text":58},{"value":75,"source":71,"evidence":76},"YAML is a good fit for this test format",[77,81],{"id":78,"by":79,"text":80},"37892521","vira28","As much as I don’t prefer YAML, this is a very good use case for it.",{"id":82,"by":83,"text":84},"37892626","vkaku","This is great. Good to see standardized testing improvements to the pg_regress add-on. YAML does better than JSON when it comes to readability. To an extent, TOML as well.",{"value":86,"source":71,"evidence":87},"IntelliJ embedded SQL support could help test authoring",[88],{"id":89,"by":90,"text":91},"37893421","mdaniel","Fun fact: IJ has \"embedded language\" support, meaning it understands that some parts of yaml (and any other source code) are another source code and thus offers both syntax…",[93,104],{"value":94,"source":71,"evidence":95},"YAML readability and type ambiguity concerns",[96,100],{"id":97,"by":98,"text":99},"37892697","smt88","I couldn't disagree more about YAML. Semantic whitespace is unreadable, as are all the optional language elements. I've been using YAML for years and still can't read it quickly.…",{"id":101,"by":102,"text":103},"37892977","hitchstory","It's readable, it just desperately needs type safety: https:\u002F\u002Fgithub.com\u002Fcrdoconnor\u002Fstrictyaml When I read \"gbq enabled: yes\" I don't worry about whether it's a string or a…",{"value":105,"source":71,"evidence":106},"Unclear how it differs from TAP and pgTAP",[107,111],{"id":108,"by":109,"text":110},"37892807","Deipayan","I am fairly newbie to the Postgres ecosystem. Explain me like I am 5 how this is better than TAP - what pains precisely this addresses",{"id":112,"by":113,"text":114},"37893466","pilotdeveloper","How does this compares to pgTAP? I've been using pgTAP for a long time, how is this better?",[116],{"value":117,"source":45,"evidence":118},"Add IntelliJ YAML language injection helper",[119],{"id":120,"by":11,"text":121},"37893434","This is incredibly useful and it'd be great to add this helper to pg_yregress to improve the experience for IntelliJ users!",[123,127],{"value":124,"source":71,"evidence":125},"How does it compare to pgTAP",[126],{"id":112,"by":113,"text":114},{"value":128,"source":71,"evidence":129},"What pains does it address compared to TAP",[130],{"id":108,"by":109,"text":110},[132,136,139],{"value":133,"source":71,"evidence":134},"pgTAP",[135],{"id":112,"by":113,"text":114},{"value":25,"source":45,"evidence":137},[138],{"id":48,"by":11,"text":49},{"value":140,"source":71,"evidence":141},"MTR",[142],{"id":56,"by":57,"text":58},{"comments":33,"answered":39,"key":144},[145,146,147],{"id":120,"text":121},{"id":48,"text":49},{"id":148,"text":149},"37893572","1. pgTAP is an extension, pg_yregress is not (although there are plans to make it available as such as well) 2. Allows for organizing and structuring nested tests (providing…",{"commenters":151,"max_depth":152,"maker_replies":33,"first_comment_mins":153,"lifespan_hours":154},12,4,54,7,[156,158,160,162,165,167,168,170,172,174,178,180,181,185,186,187,189],[89,34,32,157,90,34],"project\u002Fpositive\u002Fdesign",[120,34,34,159,11,39],"maker\u002Fpositive\u002Fidea",[56,39,32,161,57,34],"project\u002Fpositive\u002Fidea",[108,163,33,164,109,34],2,"project\u002Fneutral\u002Fidea",[48,163,34,166,11,39],"maker\u002Fneutral\u002Fidea",[82,33,32,157,83,34],[97,33,34,169,98,34],"commenter\u002Fneutral\u002Fnone",[171,33,34,169,83,34],"37892778",[173,33,34,169,98,34],"37894815",[175,33,34,176,177,34],"37892824","other\u002Fneutral\u002Fnone","lamontcg",[179,33,34,176,98,34],"37894807",[101,33,34,176,102,34],[182,152,33,183,184,34],"37892781","project\u002Fneutral\u002Fdesign","weijun95",[112,32,33,164,113,34],[148,32,34,166,11,39],[78,188,32,157,79,34],6,[190,154,32,191,192,34],"37892610","maker\u002Fpositive\u002Fnone","rohan_puri",[],[195,200,205,209,214,219],{"id":196,"name":197,"points":198,"category":199},"37857765","Diceright",395,"games",{"id":201,"name":202,"points":203,"category":204},"37881771","yt-siphon",333,"productivity",{"id":206,"name":207,"points":208,"category":204},"37914672","Floutwork",206,{"id":210,"name":211,"points":212,"category":213},"37888606","Italian Poetry",187,"languages",{"id":215,"name":216,"points":217,"category":218},"37914425","Riffusion",186,"ai",{"id":220,"name":221,"points":222,"category":20},"37854844","Nostalgist.js",124,false,"v2",{"id":226,"name":5,"line":6,"ai":223,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":227,"top":18,"kw":228,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":229,"url":9,"mix":230,"praise":70,"objection":94,"sub":21},37892061,0.46,[24,25,26,27,28],"50530500000033055",[32,33,34,34],1794036643293]