15 ms·
A word used only by Postgres developers
I came across a word in the Postgres source code that I'd never seen before: "frammish".
https://github.com/postgres/postgres/blob/master/src/backend/storage/lmgr/lwlock.c https://github.com/postgres/postgres/blob/master/src/backend... :
> Therefore, they offer both exclusive and shared lock modes (to support read/write and read-only access to a shared object). There are few other frammishes. User-level locking should be done with the full lock manager --- which depends on LWLocks to protect its shared state.
It sort of makes sense in context, as a "feature" or a "flourish". It also appears on the pg_hackers mailing list:
> There has been some talk of separating the power to create new users from the power of being superuser (although presumably only a superuser should be allowed to create new superusers). If the planned pg_role rewrite gets submitted before the 8.1 feature freeze, I might look at adding that frammish into it.
and here, from 19 years ago:
> And we get ragged on regularly for the non-SQL-standard features we've inherited from Berkeley Postgres (eg, the implicit-FROM frammish that was under discussion yesterday).
No amount of googling turns up a formal definition or usage outside of the Postgres community. "frammish.org" doesn't seem to be related.
Are Postgres developers starting to evolve their own dialect? Should we call an anthropologist?
- throwaway894345 5y agoWait until you hear what "cluster" means in Postgres-speak.
- jelder 5y agoPlease go on.
- throwaway894345 5y ago> PostgreSQL uses the term cluster to refer to a “cluster” of databases, as opposed to the usual notion of a group of servers or VMs working in a co-ordinated fashion. https://www.opsdash.com/blog/postgresql-cluster.html https://www.opsdash.com/blog/postgresql-cluster.html Note that the "databases" above are logical databases, not database hosts.
- pcthrowaway 5y agoSo according to this usage, one database instance with a few databases would be a cluster?
- throwaway894345 5y agoI'm not an expert, but as far as I can tell, even a single database instance with a single database (or maybe no databases at all?) could constitute a "cluster".
- snthpy 5y agoThank you for this. I didn't realise this and for the past few years have been thinking that I seem to be the only one that runs only a single database host as everyone else seems to have "clusters". I never realised this just means multiple databases.
- pdpi 5y agoA Postgres cluster is, roughly speaking, a server instance. That is, if you run two copies of postgres on the same box (One on the default 5432 port, another on, say, 6543) and have each of those copies manage its own independent config, data, etc, then those instances are what Postgres calls a cluster.
- munk-a 5y agoClustering is, besides all the other definitions you're seeing here, a table property. A clustered table is a table that has, on disk, been aligned with a certain index[1] - each table can only be clustered to a single index and it essentially means that row retrieval for that specific index is much more efficient, it basically gets you one covering index for free. 1. https://www.postgresql.org/docs/current/sql-cluster.html https://www.postgresql.org/docs/current/sql-cluster.html
- munk-a 5y agoOr schema!
- pdpi 5y agoHmm, care to expand? The word schema, in Postgres terms, seems to mean exactly what I expect it to.
- jrockway 5y agoI think people think schema means "a list of tables and indexes" but it's an actual object in postgres ("DROP SCHEMA public"). These do not diverge too far; that's what the object represents of course.
- throwaway894345 5y agoMost people think schema means "shape/structure of data", not "list of tables and indexes". In Postgres (or maybe SQL more broadly) it roughly means "a container for tables".
- chousuke 5y agoNot just tables, but everything else as well. The shape and structure of your data is always defined within a schema, and a single database may have more than one. A PostgreSQL server can contain multiple databases; they are independent and you can't access data in one database while connected to another (without dblink or something similar) As far as I know pretty much every database (and the SQL standard) except MySQL has schemas as an explicit database object and calls them that. What MySQL calls "databases" are actually schemas; they're just containers for database objects and you can query across them (and CREATE SCHEMA is an alias for CREATE DATABASE) EDIT: There's a fun trick you can do with multiple schemas that illustrate why they are schemas and not just "containers of things" You have a "data" schema that contains your table definitions; your actual, real data and indices etc. go here. Only privileged users can access this schema directly. Then you have an "interface" schema, that contains views and functions used by people; they can refer to the data schema, and with some clever view definitions, you can do it such that they can only access the data using the views and functions in your interface schema. At some point, you could create an "interface_v2" schema that provides better (or more) methods for accessing your data that's backwards incompatible. Old applications can continue using the "interface" schema by setting their schema search path to "interface" (which would be the default), but new applications can "overlay" the schemas by setting their search path to "interface_v2,interface" and opt-in to new functionality. The "structure" of your data is changed simply by opting in to the new schema. It's pretty rare for people to do this (they understand versioned web APIs better than versioned database APIs), but it's a thing you can do.
- legulere 5y agoThe same as in Microsoft SQL Server? https://docs.microsoft.com/en-us/sql/relational-databases/indexes/clustered-and-nonclustered-indexes-described?view=sql-server-ver15 https://docs.microsoft.com/en-us/sql/relational-databases/in...
- throwaway894345 5y agoNo doubt lots of relational database software share this quirk.
- SigmundA 5y agoNo unfortunately PG does not have clustered indexes much to my dismay.
- SahAssar 5y agoIt's also used in libjpeg: https://github.com/kornelski/libjpeg/blob/master/libjpeg.doc#L1446 https://github.com/kornelski/libjpeg/blob/master/libjpeg.doc... Maybe it's used as a sort of shibboleth and accidentally escaped internal communication into source code? It does not seem to be spreading very much, though.
- saurik 5y agoThe original developer of libjpeg is Tom Lane, who is the same lead developer who uses this term at PostgreSQL. https://handwiki.org/wiki/Biography:Tom_Lane_(computer_scientist) https://handwiki.org/wiki/Biography:Tom_Lane_(computer_scien...
- deleted 5y ago[deleted]
- wyldfire 5y agoShowing up on HN is a bit of a superspreader event.
- markstos 5y agoUsername checks out.
- selimthegrim 5y agoClearly there are no Andromeda Strain fans here.
- wyldfire 5y agoGood call -- that's exactly where I got the name!
- trurl42 5y agoLikely a variant spelling of frammis; https://en.wiktionary.org/wiki/frammis https://en.wiktionary.org/wiki/frammis
- dorianmariefr 5y agoSomething, generally a device, for which one does not know the proper term
- munk-a 5y agoCould frammish be a portmanteau then? Condensing "frammis-ish" to frammish - as in gizmo-like, maybe the thing you need to build which may or may not be a distinct component?
- JKCalhoun 5y agoThought it was a Carrollian invention: sort of like beamish, uffish, frumious...
- layer8 5y agoMaybe I’ll use that when I finally get around to writing a UI framework. ButtonFrammis, CheckboxFrammis, LabelFrammis, TextInputFrammis, …
- ZeroGravitas 5y agoIterestingly, several of the Google Books results for Frammis are Joe Celko's SQL books, wonder if there's a connection.
- spacemanmatt 5y agoframmis, frammistat, frob, frobnicate, and a few others are "hacker" words that I learned from downloading text files on bulletin boards in the 80s. i only ever heard them from that source, until i had a manager from that era except he was all military software background. (yeesh, he was awful)
- striking 5y agoI recently caught out someone trying to hide their deep knowledge of Postgres when, in a moment of weakness as I mentioned one of the benefits of TOAST, he replied "I guess that's why they call it 'the best thing since sliced bread'". And that's when I knew. Because that's an exact quote from the docs. > This section provides an overview of TOAST (The Oversized-Attribute Storage Technique). > PostgreSQL uses a fixed page size (commonly 8 kB), and does not allow tuples to span multiple pages. Therefore, it is not possible to store very large field values directly. To overcome this limitation, large field values are compressed and/or broken up into multiple physical rows. This happens transparently to the user, with only small impact on most of the backend code. The technique is affectionately known as TOAST (or “the best thing since sliced bread”). The TOAST infrastructure is also used to improve handling of large data values in-memory. https://www.postgresql.org/docs/current/storage-toast.html https://www.postgresql.org/docs/current/storage-toast.html
- saurik 5y agoWhy would anyone try to "hide their deep knowledge of Postgres"? Like, I could easily see someone having to hide their deep knowledge of MongoDB--lest they be branded forever as "damaged"--but I've been under the impression that PostgreSQL skills are considered a really good thing this past decade or so... were they just really hoping to avoid becoming a database engineer, or were they maybe under threat of becoming an "on call" asset?
- kamilm 5y ago> Why would anyone try to "hide their deep knowledge of Postgres"? > or were they maybe under threat of becoming an "on call" asset? This is likely, especially if the person they're talking to tends to leech on other people's skills & time.
- deleted 5y ago[deleted]
- mmcgaha 5y agoSometimes it is better to be the student than the teacher.
- jerf 5y ago"Are Postgres developers starting to evolve their own dialect? Should we call an anthropologist?" This is a "jargon" term: https://linguistics.stackexchange.com/questions/2812/argot-vs-jargon https://linguistics.stackexchange.com/questions/2812/argot-v...
- khy 5y agoI've noticed that the docs sometimes use the verb "spell" in an interesting way, e.g. "IN GROUP is an obsolete spelling of IN ROLE."
- sundarurfriend 5y agoI think that usage is a little bit more common eg., I believe I've seen it in Perl docs, and in rare StackOverflow answers.
- deleted 5y ago[deleted]
- darrenf 5y agoThat’s “spelling” the noun, not a verb.
- warrenm 5y agoAnd here I thought `"spelling" the noun` was a reference to either Tori or Aaron
- warrenm 5y agoapparently no one here watches TV
- hunter2_ 5y agoThe verb form is where the atypical usage originates, so I think it's fair to focus on the verb as the point of interest despite including an example that happens to be a gerund. Anyway, I think there's an even larger set that "spell" is a member of: metaphorical usage to highlight anything unwanted or erroneous; "code smell" is another. It's wrong, therefore it smells. It's wrong, therefore it's misspelled. It's wrong, therefore it wants to be different (personification metaphor).
- _moof 5y agoTrue, but to be fair it's the gerund formed from the verb.
- notacoward 5y agoMy favorite like this is "impunge" from Gluster. It's used during repairs after a node has gone down and come back up. Files that are present but should have been deleted are expunged. Files that are absent but should be present are impunged from surviving replicas.
- perlgeek 5y agoThe Raku language (formerly Perl 6) community also has its share of idioms, abbreviations (not just technical) and phrases. I'm not sure if they are exclusive to this community, or also used elsewhere. Examples: In the early days, many features were specified by Not Yet Implemented, so NYI became its own term. Error messages are meant to be awesome, so anything "Less Than Awesome" (LTA) was considered a bug. Larry Wall didn't like the term "void context", so he invented "sink context" instead (with all the puns related to it, of course). There were many more, though I have a hard time coming up with a longer list...
- warrenm 5y agoI thought the etymology of "NYI" was more-or-less the same as "NIH" (not invented here) - namely, that it came out of Bell Labs somewhere along the line ...or, at least, that's what my CS prof claimed in the late 90s :)
- deckard1 5y agoPerl has a history of this due to Larry Wall's background in linguistics. His Christian faith is also an influence. In Perl you can "bless" a reference to reify it into a class. The name Perl also comes from the bible apparently. Though you probably know this based on your username... Fortunately Perl was reasonable. On the other side of the spectrum you have the impenetrable and pretentiously obnoxious Urbit[1] [1] https://urbit.org/docs/glossary/moon https://urbit.org/docs/glossary/moon
- thrtythreeforty 5y agoOh, hey, they have a glossary now. That's at least a nice affordance. Back when I last looked at Urbit you were expected to figure everything out like you were reading a cyberpunk novel. ...actually, now that I say it, "cyberpunk enthusiast" kinda resonates with the whole design of Urbit.
- LambdaComplex 5y agoUrbit's documentation is like the Codex Seraphinianus but less understandable.
- markstos 5y agoI'm working on seeding `backcompat` as a portmanteau of "backwards compatibility". Help me out, HN.
- layer8 5y agoI‘d go for backpat. ;)
- kimixa 5y agoI'm not sure how much seeding is needed - I've heard it used for years, and seems to have become a bit of a term for the Xbox previous generation game compatibility stuff.
- hluska 5y agoI have a meeting with a couple of junior devs in about an hour. I'll use it in conversation and we'll see what happens. :)
- kelnos 5y agoI've seen and used that term for at least a decade. I don't think it needs seeding.
- robocat 5y agoFor example quirks mode in Internet Explorer: https://developer.mozilla.org/en-US/docs/Web/API/Document/compatMode https://developer.mozilla.org/en-US/docs/Web/API/Document/co... if (document.compatMode == "BackCompat") { // in Quirks mode }
- jyounker 5y agoWhat group doesn't develop their own words over twenty years?
- mindcrime 5y agoHuh, curious. It clearly didn't originate with Postgresql developers, as one can find uses of the word sprinkled around here and there in old literature. One neat way to see uses of it is to search on Google Books: https://www.google.com/search?tbm=bks&hl=en&q=%22frammish%22 https://www.google.com/search?tbm=bks&hl=en&q=%22frammish%22 That said, I don't see anything that purports to give a definitive definition of the word - everybody who uses it seems to assume that everyone else knows it. And at least at first blush, I don't see anything that attempts to explain the origin / etymology of the word either. It's the kind of thing you'd almost expect to see in the "Jargon File" but it doesn't appear to be there either. http://catb.org/jargon/html/go01.html http://catb.org/jargon/html/go01.html
- ComputerGuru 5y agoBarely worth mentioning but from your Google Books link, the Chaucer and the City result is an OCR error; clicking the preview shows that it is 'rammish and somehow that was interpreted as frammish. EDIT: Same with the result from The Royal Dictionary Abridged EDIT: All the results I can find pictures for are actually `rammish or |rammish or similar. I would assume any results w/out scans available are similarly suspect.
- mindcrime 5y agoYeah, I noticed that about the Chaucer book, but I didn't bother checking most of the others. Interesting. So maybe Postgres did invent the word!
- petercooper 5y ago"allballs" is another potential candidate: https://www.postgresql.org/message-id/20050124200645.GA6126%40winnie.fuhr.org https://www.postgresql.org/message-id/20050124200645.GA6126%...
- ncmncm 5y agoBetting it comes from the incantation "Frammin at the jim-jam, frippin in the krotz", repeated frequently in the US comic strip "Wizard of Id" by Brant Parker and Johnny Hart.
- troymc 5y ago"It's not a bug, it's a frammish."
- OliverJones 5y agoBah! The Postgres gang didn't invent this word. I know a bunch of devs, at Apollo Computer Inc., who used the word "framis" for a similar purpuse back in 1989.
- ondrek 5y agoDomain frammish.com is free. Let's see for how long after posting this comment.