[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"project-32798821":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":28,"sentiment":29,"stance_mix":30,"scored_comments":32,"aspects":33,"strip":36,"post_text":29,"what":37,"said":64,"maker_in_thread":99,"shape":108,"grid":112,"attempts":127,"same_week":128,"maker_shows":15,"maker_hidden":158,"reader_version":159,"card":160},"32798821","pg_idkit","A Postgres extension for generating exotic UUIDs","title","Show HN: pg_idkit, a Postgres extension for generating exotic UUIDs","https:\u002F\u002Fgithub.com\u002Ft3hmrman\u002Fpg_idkit","github.com","hardwaresofton",1662896763,2022,12,7,1904,2570,75,"shown","infrastructure","postgres extension","library",[21,24,25,26,27],"uuid generation","ulid","sortable ids","rust pgx","quiet",null,{"positive":31,"neutral":32,"mixed":31,"critical":31},0,3,{"performance":34,"design":35},{"positive":31,"critical":31},{"positive":31,"critical":31},[31,32,32,31,31,32,31],{"problem":38,"audience":29,"pricing":29,"motivation":45,"time_to_build":29,"stack":49,"openness":62,"stage":63,"team_size":63},{"value":39,"source":40,"evidence":41},"Generating database-optimized, lexicographically sortable UUID-like primary keys in Postgres.","maker",[42],{"id":43,"by":11,"text":44},"32798847","Hey HN, It turns out choosing a good database-optimized UUID (and deciding whether to use serial, etc) isn't quite so simple, and I finally got a chance to do some exploration,…",{"value":46,"source":40,"evidence":47},"Explore database-optimized UUID choices while working on a Supabase post about IDs.",[48],{"id":43,"by":11,"text":44},[50,54,58],{"value":51,"source":40,"evidence":52},"Rust",[53],{"id":43,"by":11,"text":44},{"value":55,"source":40,"evidence":56},"pgx framework",[57],{"id":43,"by":11,"text":44},{"value":59,"source":40,"evidence":60},"PostgreSQL",[61],{"id":43,"by":11,"text":44},"open_source","unknown",{"praise":65,"objections":70,"requests":77,"questions":86,"alternatives":98},[66],{"value":67,"source":40,"evidence":68},"Rust-built Postgres extensions are an exciting trend",[69],{"id":43,"by":11,"text":44},[71],{"value":72,"source":40,"evidence":73},"Generates text, not native uuid type, limiting some schemes",[74],{"id":75,"by":11,"text":76},"32806148","This lib actually generates text right now, not uuid. I plan on adding UUID generation (under a different function name) for schemes that support it, but the problem is that not…",[78],{"value":79,"source":80,"evidence":81},"Index performance comparable to native uuid","commenter",[82],{"id":83,"by":84,"text":85},"32805325","Existenceblinks","Are they index-able? I mean the same perf as pg uuid.",[87,94],{"value":88,"source":80,"evidence":89},"Does ULID take 26 bytes as text rather than 16?",[90],{"id":91,"by":92,"text":93},"32806350","nextaccountic","Does this mean that (for example) an ULID won't take 16 bytes, but instead 26?",{"value":95,"source":80,"evidence":96},"Are generated values indexable with same performance as uuid?",[97],{"id":83,"by":84,"text":85},[],{"comments":100,"answered":101,"key":102},4,2,[103,104,105],{"id":43,"text":44},{"id":75,"text":76},{"id":106,"text":107},"32806224","The types are text -- if you use a generation mechanism that is convertable to uuid then you can coerce the values to the uuid type. I think it's rare to have the kind of case…",{"commenters":100,"max_depth":109,"maker_replies":100,"first_comment_mins":110,"lifespan_hours":111},5,6,18,[113,116,118,121,123,124,125],[43,31,31,114,11,115],"project\u002Fpositive\u002Fidea",1,[83,31,32,117,84,31],"project\u002Fneutral\u002Fperformance",[119,31,32,117,120,31],"32805957","Tostino",[75,31,31,122,11,115],"project\u002Fneutral\u002Fdesign",[106,31,31,117,11,115],[91,31,32,122,92,31],[126,31,31,122,11,115],"32806444",[],[129,134,139,144,148,153],{"id":130,"name":131,"points":132,"category":133},"32768590","Modern for HN",308,"productivity",{"id":135,"name":136,"points":137,"category":138},"32798891","HiFiScan",260,"creative",{"id":140,"name":141,"points":142,"category":143},"32828309","Infernal Sigil",238,"games",{"id":145,"name":146,"points":147,"category":20},"32837829","StackAid",226,{"id":149,"name":150,"points":151,"category":152},"32828799","s3sqlite",160,"dev_tools",{"id":154,"name":155,"points":156,"category":157},"32823589","pg_netstat",158,"data",false,"v2",{"id":161,"name":5,"line":6,"ai":158,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":162,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":163,"url":9,"mix":164,"praise":67,"objection":72,"sub":21},32798821,[21,24,25,26,27],"0330030",[31,32,31,31],1794036624785]