Petr Jelinek wrote: > Bruce Momjian wrote: > > >I removed your use of the pg_auth flat file. By the time you have the > >PROC entry to do your lookups, you might as well just use the system > >cache. > > > >There is a race condition in the code because we set our PROC entry > >before we check for other entries. If there is one connection left and > >two backends do this at the same time, they would both fail, while one > >should fail and the other succeed. Without a lock, I see no way to avoid > >it so I just commented it in the code. > > > > > Yeah my working version was doing this too but I wanted to avoid lock on > PROC array and that race condition and because pg_auth is loaded anyway > I used it.
Well, we are locking the PROC array for the db scan as well, so I don't see a difference for user. Also, I don't see how it would avoid the race condition. We could scan PROC and then set our user value, but that would allow possibly too many connections rather than too few. > >Also, I felt that zero should mean allow no/zero connections, rather > >than representing unlimited connections. I used -1 for unlimited. We > >can either document the use of -1, or add syntax to allow NO CONNECTION > >LIMIT, or something like that. > > > > > Right, maybe we could remove datallowconn from pg_database (in future) > if we can achieve same thing using datconnlimit = 0 ? Yes, we certainly could, but I am betting we would need both because if someone wanted to close down a database, _but_ keep the existing limit so it could be resetored later, they would still use datallowconn. > >The patch requires a catalog version update when applied. > > > > > Yes, thanks for your work on this patch, I will write documentation for > it in next few days. Thanks. -- Bruce Momjian | http://candle.pha.pa.us email@example.com | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend