[{"data":1,"prerenderedAt":672},["ShallowReactive",2],{"project-31897430":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":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":47,"post_text":48,"what":49,"said":55,"maker_in_thread":180,"shape":192,"grid":196,"attempts":633,"same_week":634,"maker_shows":38,"maker_hidden":664,"reader_version":665,"card":666},"31897430","PRQL 0.2","a better SQL","title","Show HN: PRQL 0.2 – a better SQL","https:\u002F\u002Fgithub.com\u002Fprql\u002Fprql","github.com","maximilianroos",1656349413,2022,378,159,94,2570,4,"legend","languages","query language","library",[21,24,25,26],"sql alternative","prql","data pipeline","curious",0.128,{"positive":30,"neutral":31,"mixed":32,"critical":33},21,52,2,11,86,{"docs":36,"idea":39,"design":42,"execution":45,"performance":46},{"positive":37,"critical":38},0,1,{"positive":40,"critical":41},9,5,{"positive":43,"critical":44},6,3,{"positive":37,"critical":32},{"positive":37,"critical":37},[44,44,18,44,37,44,37,37,41,37,44,18,44,37,44,44,44,32,38,41,41,41,18,44,38,44,44,41,18,32,41,38,37,44,44,41,44,44,32,18],"Hi everyone — thanks for your interest in PRQL — let us know any questions or feedback!\n\nWe're excited to be releasing 0.2[1], the first version of PRQL you can use in your own projects. It wouldn't exist without the feedback we got from HackerNews when we originally posted the proposal.\n\n[1]: https:\u002F\u002Fgithub.com\u002Fprql\u002Fprql\u002Freleases\u002Ftag\u002F0.2.0",{"problem":50,"audience":50,"pricing":50,"motivation":50,"time_to_build":50,"stack":51,"openness":52,"stage":53,"team_size":54},null,[],"open_source","beta","unknown",{"praise":56,"objections":83,"requests":113,"questions":139,"alternatives":154},[57,69,76],{"value":58,"source":59,"evidence":60},"Readable pipeline syntax that is more intuitive than SQL","commenter",[61,65],{"id":62,"by":63,"text":64},"31899736","vander_elst","Congrats for the milestone!! The syntax looks more intuitive than SQL. Great to see viable alternatives to SQL!",{"id":66,"by":67,"text":68},"31904595","__mharrison__","This reads a lot like the style of Pandas I teach.[0] This seems to have resolved a problem with SQL, you can't read it in a linear fashion. When we start getting query…",{"value":70,"source":59,"evidence":71},"Well thought-out syntax",[72],{"id":73,"by":74,"text":75},"31898330","MasterIdiot","I've seen similar solutions being built internally in multiple companies, none with a syntax as well thought out as this. Amazing work!",{"value":77,"source":59,"evidence":78},"Welcoming contributor community",[79],{"id":80,"by":81,"text":82},"31898084","roG0d","I've been contributing to this project on a few little things due to my little knowledge level. But I felt like home with such a good company of people!. I not mature enough to…",[84,95,106],{"value":85,"source":59,"evidence":86},"SQL is already well supported and does not need replacing",[87,91],{"id":88,"by":89,"text":90},"31899220","jeroen79","SQL doesn't need fixing or improving if you ask me, its well supported and just works.",{"id":92,"by":93,"text":94},"31898463","slotrans","Hot takes: SQL is great, actually. This thing isn't better.",{"value":96,"source":59,"evidence":97},"Not clear what it offers beyond SQL",[98,102],{"id":99,"by":100,"text":101},"31898553","qolop","Why should I use this instead of SQL?",{"id":103,"by":104,"text":105},"31898073","ComputerGuru","From a mathematical point-of-view are there any transforms\u002Foperations (note: not end results, but actual operations) that this can do that SQL can't or vice-versa?",{"value":107,"source":59,"evidence":108},"Not ready for production use",[109],{"id":110,"by":111,"text":112},"31899076","rackjack","Obligatory dismissive comment: > 0.2 No it ain't (in production). Anyway, this looks great. I LOVE the fact that you've provided a book too. Consider me a fan!",[114,125,132],{"value":115,"source":59,"evidence":116},"Join examples and foreign key based joins",[117,121],{"id":118,"by":119,"text":120},"31899124","jitl","I'm surprised that none of the examples on Github or the website deals with join. I eventually found some in the \"book\" here: https:\u002F\u002Fprql-lang.org\u002Fbook\u002Ftransforms\u002Fjoin.html ```…",{"id":122,"by":123,"text":124},"31898312","paol","Here's one suggestion: SQL tediously requires specifying the equality condition on joins, when 90% of the time you just want to join on the fk defined between the tables. ```…",{"value":126,"source":59,"evidence":127},"Pivot and dynamic column naming support",[128],{"id":129,"by":130,"text":131},"31908989","creamyhorror","Wow! This is cool stuff. I was looking through the documentation for conditional logic, control flow, IF(), and the CASE...WHEN...THEN operator. It seems like the ternary…",{"value":133,"source":59,"evidence":134},"Better JavaScript API without manual memory freeing",[135],{"id":136,"by":137,"text":138},"31900876","skybrian","I see that the JavaScript package is at [1] and it's implemented by compiling the Rust code to WASM. That should eventually make it pretty easy to run it. It has a typescript…",[140,147],{"value":141,"source":59,"evidence":142},"How does it prevent SQL injection in bindings",[143],{"id":144,"by":145,"text":146},"31899101","Flimm","Looks fantastic. There are a lot of rough edges when building a string representing an SQL query in the programming language that you're using. You have to be careful to avoid…",{"value":148,"source":59,"evidence":149},"Can it be used as a stored procedure language in Postgres",[150],{"id":151,"by":152,"text":153},"31901080","michelpp","It seems like an obvious next step for Postgres support would be to make PRQL a stored Procedure Language. create function foo() returns bar as language prql $$\u003Cprql code here>$$;",[155,162,173],{"value":156,"source":59,"evidence":157},"EdgeQL",[158],{"id":159,"by":160,"text":161},"31901690","1st1","I also recommend looking at EdgeQL -- https:\u002F\u002Fwww.edgedb.com\u002Fshowcase\u002Fedgeql -- a new query language aimed to eliminate some of the SQL quirks. (I'm a co-founder)",{"value":163,"source":59,"evidence":164},"LINQ",[165,169],{"id":166,"by":167,"text":168},"31899611","airtnp","This sounds like LINQ, or SparkSQL. Instead of a full new language, it makes feel better to create libraries in languages that supports embedded DSL easily.",{"id":170,"by":171,"text":172},"31902156","metaltyphoon","Looks a lot like LINQ",{"value":174,"source":59,"evidence":175},"Datalog",[176],{"id":177,"by":178,"text":179},"31899588","pgt","For those interested in database query languages, it is worth knowing about Datalog, the query language behind Datomic, XTDB and Datahike: http:\u002F\u002Fwww.learndatalogtoday.org\u002F E.g.…",{"comments":181,"answered":18,"key":182},10,[183,186,189],{"id":184,"text":185},"31899246","Great point, we'll add that. I don't think we do joins that much better than SQL does. We're thinking whether there's potential there, maybe through understanding foreign keys —…",{"id":187,"text":188},"31899348","Added: https:\u002F\u002Fgithub.com\u002Fprql\u002Fprql\u002Fpull\u002F697",{"id":190,"text":191},"31901618","That looks really exciting! Please keep us in touch with your efforts and let us know if there's any way we can be helpful.",{"commenters":193,"max_depth":43,"maker_replies":181,"first_comment_mins":194,"lifespan_hours":195},106,31,67,[197,201,203,205,207,211,215,218,221,225,229,232,234,236,239,242,246,247,249,252,255,258,261,264,267,270,272,275,277,280,282,284,286,289,293,296,298,301,304,306,309,312,315,318,321,324,327,329,332,334,337,339,341,343,346,348,351,352,354,357,360,364,367,370,373,376,379,382,385,387,391,394,397,399,403,406,409,411,413,415,419,422,424,427,428,430,432,433,438,441,445,447,451,453,455,457,462,466,469,472,474,476,478,482,484,486,489,492,494,496,499,501,504,507,510,514,516,519,522,525,527,529,532,534,536,538,540,543,545,548,550,553,556,558,560,562,566,569,571,575,579,581,584,586,589,591,595,597,601,605,609,613,616,618,620,622,625,627,630],[198,37,37,199,200,37],"31898119","other\u002Fneutral\u002Fnone","ewuhic",[118,38,44,202,119,37],"project\u002Fneutral\u002Fdocs",[184,38,37,204,11,38],"maker\u002Fneutral\u002Fidea",[187,38,37,206,11,38],"maker\u002Fneutral\u002Fexecution",[208,38,44,209,210,37],"31899808","project\u002Fneutral\u002Fidea","igorkraw",[212,38,37,213,214,37],"31904572","commenter\u002Fneutral\u002Fnone","switchbak",[216,38,44,209,217,37],"31904964","Sankozi",[219,38,37,213,220,37],"31905155","neamar",[222,38,41,223,224,37],"31905357","project\u002Fpositive\u002Fidea","riezebos",[226,38,44,227,228,37],"31900956","project\u002Fneutral\u002Fdesign","psychoslave",[230,38,44,227,231,37],"31901156","aerzen",[233,38,37,213,228,37],"31905474",[235,38,44,209,228,37],"31905796",[237,38,44,227,238,37],"31905542","throwaway236324",[240,38,37,213,241,37],"31911172","snthpy",[243,38,37,244,245,37],"31931210","other\u002Fneutral\u002Fidea","asavinov",[177,32,37,199,178,37],[248,32,37,199,119,37],"31902723",[250,32,37,199,251,37],"31915534","techplex",[253,44,44,209,254,37],"31899391","hardwaregeek",[256,44,37,213,257,37],"31899434","jhgb",[259,44,37,213,260,37],"31899444","BeefWellington",[262,44,37,199,263,37],"31900274","vore",[265,44,37,199,266,37],"31900384","rq1",[268,44,37,199,269,37],"31901064","roller",[271,44,37,213,263,37],"31901804",[273,44,37,213,274,37],"31901861","go_prodev",[276,44,37,213,263,37],"31903653",[278,44,37,199,279,37],"31902576","slaymaker1907",[281,44,37,213,260,37],"31902638",[283,44,37,213,263,37],"31904202",[285,44,37,213,260,37],"31906577",[287,44,37,199,288,37],"31903356","layer8",[290,44,41,291,292,37],"31900699","project\u002Fpositive\u002Fdesign","AtlasBarfed",[294,44,37,213,295,37],"31901091","andydd",[297,44,37,213,288,37],"31903372",[299,44,37,199,300,37],"31899877","srcreigh",[302,44,37,199,303,37],"31900537","ivank",[305,44,37,199,279,37],"31902540",[307,44,44,209,308,37],"31902026","andyferris",[310,44,37,199,311,37],"31903895","AlphaSite",[313,44,37,213,314,37],"31904354","nickreese",[316,44,37,199,317,37],"31905306","ImprobableTruth",[319,44,37,244,320,37],"31905295","js8",[322,18,41,291,323,37],"31899856","digisign",[325,18,44,326,231,37],"31900394","maker\u002Fneutral\u002Fdesign",[328,18,44,227,228,37],"31901031",[330,18,37,199,331,37],"31901050","Kinrany",[333,18,44,227,323,37],"31901858",[335,18,44,209,336,37],"31900724","oarabbus_",[338,18,44,209,323,37],"31901899",[340,18,37,213,336,37],"31902488",[342,18,37,213,323,37],"31912360",[344,18,37,213,345,37],"31902660","Izkata",[347,18,37,213,323,37],"31912320",[349,18,37,199,350,37],"31903116","yellowapple",[122,41,44,209,123,37],[353,41,44,204,231,37],"31898517",[355,41,44,209,356,37],"31899257","JohnDeHope",[358,41,44,209,359,37],"31899454","kbenson",[361,41,37,362,363,37],"31902264","commenter\u002Fneutral\u002Fidea","strbean",[365,41,44,209,366,37],"31904013","asqueella",[368,41,44,227,369,37],"31900827","ximeng",[371,41,44,227,372,37],"31903854","blep_",[374,41,44,227,375,37],"31904156","Aeolun",[377,41,37,362,378,37],"31905328","setr",[380,41,37,199,381,37],"31898759","smallnamespace",[383,41,37,199,384,37],"31900520","hyperman1",[386,41,44,227,241,37],"31901106",[388,41,38,389,390,37],"31899342","project\u002Fcritical\u002Fidea","aidos",[392,41,44,209,393,37],"31900408","paulhodge",[395,41,37,199,396,37],"31900249","CuriousSkeptic",[398,41,37,199,274,37],"31901934",[400,41,38,401,402,37],"31903202","project\u002Fcritical\u002Fdesign","sgk284",[404,41,44,227,405,37],"31903338","dragonwriter",[407,43,41,223,408,37],"31901266","dmeijboom",[190,43,37,410,11,38],"maker\u002Fpositive\u002Fnone",[129,412,44,227,130,37],7,[80,414,41,410,81,37],8,[416,414,44,417,418,37],"31898192","project\u002Fneutral\u002Fexecution","cogman10",[420,414,37,421,11,38],"31898328","maker\u002Fneutral\u002Fnone",[423,414,37,421,11,38],"31898799",[425,40,41,223,426,37],"31898105","p33p",[159,181,37,199,160,37],[429,181,37,421,11,38],"31901920",[431,181,37,199,160,37],"31902323",[73,33,41,410,74,37],[434,435,41,436,437,37],"31898776",12,"project\u002Fpositive\u002Fnone","OJFord",[439,435,37,199,440,37],"31905179","foreigner",[442,443,44,417,444,37],"31898299",13,"davidw",[446,443,44,202,231,37],"31898582",[448,443,38,449,450,37],"31899135","project\u002Fcritical\u002Fexecution","beaugunderson",[452,443,37,421,11,38],"31899597",[454,443,41,410,450,37],"31899734",[151,456,44,209,152,37],14,[458,459,44,460,461,37],"31899719",15,"project\u002Fmixed\u002Fidea","bornfreddy",[463,464,37,199,465,37],"31902271",16,"joelthelion",[467,464,37,199,468,37],"31902343","kiwicopple",[136,470,38,471,137,37],17,"project\u002Fcritical\u002Fdocs",[473,470,37,421,11,38],"31901223",[475,470,44,421,231,37],"31901278",[477,470,44,417,137,37],"31901619",[479,480,44,209,481,37],"31897868",18,"nawgz",[483,480,37,421,11,38],"31898000",[99,485,44,209,100,37],19,[487,485,44,209,488,37],"31898679","ithrow",[490,485,44,209,491,37],"31899564","hui-zheng",[493,485,41,223,241,37],"31899865",[495,485,41,223,241,37],"31899404",[497,485,44,498,491,37],"31899543","project\u002Fneutral\u002Fperformance",[500,485,44,498,241,37],"31900039",[502,485,37,199,503,37],"31900059","Cilvic",[505,485,41,223,506,37],"31901108","tstack",[508,485,44,209,509,37],"31902345","int_19h",[511,512,44,202,513,37],"31899949",20,"notimportant0",[515,30,41,436,418,37],"31898015",[517,518,38,401,257,37],"31899626",22,[520,521,38,401,336,37],"31900328",23,[144,523,44,524,145,37],24,"project\u002Fneutral\u002Fnone",[526,523,37,199,378,37],"31905460",[103,528,44,209,104,37],25,[530,528,41,291,531,37],"31898212","scottlamb",[533,528,37,213,104,37],"31898425",[535,528,38,449,260,37],"31899504",[537,528,37,213,531,37],"31900562",[539,528,44,209,231,37],"31898306",[541,528,37,213,542,37],"31898975","coremoff",[544,528,37,199,257,37],"31899779",[546,528,37,213,547,37],"31900963","ttfkam",[549,528,37,213,257,37],"31909009",[551,528,37,213,552,37],"31903434","SnowHill9902",[554,528,44,209,555,37],"31898335","Beltiras",[557,528,37,213,104,37],"31898398",[559,528,37,213,555,37],"31898431",[561,528,37,213,104,37],"31900561",[563,564,44,209,565,37],"31904850",26,"alphanumeric0",[567,564,44,209,568,37],"31904866","mandaputtra",[570,564,37,213,565,37],"31910254",[572,573,44,209,574,37],"31904855",27,"eterevsky",[576,577,41,223,578,37],"31897933",28,"dvirsky",[66,580,41,291,67,37],29,[582,580,44,209,583,37],"31904617","aljazmerzen",[62,585,41,291,63,37],30,[587,194,41,223,588,37],"31901003","gigatexal",[88,590,38,389,89,37],32,[592,593,41,436,594,37],"31899995",33,"ssalka",[166,596,38,389,167,37],34,[598,599,44,227,600,37],"31899036",35,"ranjanprj",[602,603,37,199,604,37],"31901240",36,"exabrial",[606,607,44,209,608,37],"31900299",37,"emmelaich",[610,611,37,199,612,37],"31898848",38,"elforce002",[110,614,44,615,111,37],39,"project\u002Fmixed\u002Fdocs",[617,614,37,421,11,38],"31899767",[170,619,44,209,171,37],40,[92,621,38,389,93,37],41,[623,621,41,223,624,37],"31898528","breakfastduck",[626,621,44,209,513,37],"31900687",[628,621,41,291,629,37],"31898573","mellosouls",[631,621,38,389,632,37],"31905858","catchclose8919",[],[635,640,645,650,655,659],{"id":636,"name":637,"points":638,"category":639},"31903076","min-dalle",663,"ai",{"id":641,"name":642,"points":643,"category":644},"31925871","TAXSIM.app",497,"finance_crypto",{"id":646,"name":647,"points":648,"category":649},"31910622","Legible News",320,"productivity",{"id":651,"name":652,"points":653,"category":654},"31921830","Brevity 500",193,"learning_science",{"id":656,"name":657,"points":658,"category":649},"31891608","Yboard",165,{"id":660,"name":661,"points":662,"category":663},"31905554","Teapodo",154,"creative",false,"v2",{"id":667,"name":5,"line":6,"ai":664,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":668,"top":18,"kw":669,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":670,"url":9,"mix":671,"praise":58,"objection":85,"sub":21},31897430,0.13,[21,24,25,26],"3343030050343033321555431335425103353324",[30,31,32,33],1794036621872]