[01:00]  * StevenK stabs sampledata
[01:00] <StevenK> I guess my testfix is to run the garbo job against sampledata
[01:03] <wgrant> Indeed
[01:03] <wgrant> Also, i'm not sure we can actually optimise the SET NOT NULLs
[01:04] <wgrant> postgres is a bit stupid
[01:04] <StevenK> :-(
[01:04] <wgrant> It doesn't actually use indices at all
[01:04] <StevenK> Wow
[01:05] <wgrant> When you add a new NOT NULL constraint to a table, it goes through every tuple and verifies that every NOT NULL constraint is satisfied
[01:05] <StevenK> We can probably do it in two patches
[01:05] <StevenK> But it will still make those two FDTs 5 seconds long
[01:07] <wgrant> Nah, best to do it in one patch
[01:07] <wgrant> One statement can alter two columns.
[01:08] <wgrant> So we can do both in two seconds
[01:08] <wgrant> (on DF)
[01:08] <StevenK> Oh
[01:08] <StevenK> It's just a comma?
[01:08] <wgrant> Right
[01:08] <wgrant> launchpad_dogfood=# ALTER TABLE packageupload ALTER COLUMN searchable_names SET NOT NULL, ALTER COLUMN searchable_versions SET NOT NULL;
[01:08] <wgrant> ALTER TABLE
[01:08] <wgrant> Time: 2210.737 ms
[01:12] <wgrant> (or we could just manually set attnotnull, I guess :))
[01:12] <wgrant> That's probably not too evil
[01:12] <StevenK> Hahaha
[01:12] <wgrant> I'm serious
[01:12] <wgrant> It's a reasonable thing to do
[01:12] <StevenK> That won't check each tuple?
[01:13] <wgrant> No
[01:13] <wgrant> Huh, in fact, manually setting attnotnull was the only way back in 7.0
[01:13] <StevenK> Heh
[01:15] <wgrant> Yeah, that would work fine, looking at the code and some tests. But that would want to wait until stub is back :)
[01:15] <StevenK> Does attnotnull take a full table lock?
[01:18] <StevenK> Right, so my sampledata changes do fix that test
[01:18] <wgrant> That was the only failure?
[01:18] <StevenK> And one whole container failed to come up, it seems
[01:18] <StevenK> Maybe not, given the count
[01:19] <StevenK> One 'Launchpad failed to start in 60 attempts' old chestnut
[01:19] <wgrant> One could set attnotnull without taking a full table lock, given that we know the data is good, but that seems a bit evil. ALTER TABLE ... ALTER COLUMN ... SET NOT NULL takes a full access exclusive lock to avoid any null tuples being inserted under its nose, and also to avoid any potential plan changes on other mid-flight queries, but neither is relevant here.
[01:20] <StevenK> Indeed
[01:20] <StevenK> The columns won't be created NULL, and nothing else is reading it
[01:20] <wgrant> But we could probably just pay the 2s
[01:20] <StevenK> Well, Storm will be, but it won't be paying attention
[01:21] <StevenK> wgrant: And yes, only one failure
[01:22] <StevenK> wgrant: Self-review? It runs the garbo job against dev,test-playground
[01:22] <StevenK>  2 files changed, 30 insertions(+), 30 deletions(-)
[01:23] <wgrant> Fine
[01:26] <StevenK> Right, testfix landed
[02:47]  * StevenK stabs buildbot
[03:21] <StevenK> wgrant: I wonder if postgres isn't using indicies because they can be out of date. Is that completly wrong, and it should use indicies if they exist?
[03:23] <wgrant> Given an access exclusive lock as it takes now, an index should be usable.
[03:23] <StevenK> So it's arguably a bug that it won't check an index?
[03:24] <wgrant> Not a bug.
[03:24] <wgrant> A potential future optimisation.
[03:24] <StevenK> Which may get filed as a bug ... :-)
[03:26] <StevenK> Buildbot is finally done
[03:27] <StevenK> Now to wait for qas to update
[15:02] <sinzui> jcsackett, rick_h_, do either you you have time to look at my WCAG fix for  the structural subscription widget: https://code.launchpad.net/~sinzui/launchpad/bugs-subscriptons-wcag-love/+merge/139812
[15:02] <jcsackett> sinzui: i can look.
[15:14] <jcsackett> sinzui: r=me. and bonus points for using OMG in the cover letter. :-)
[15:15] <sinzui> thank you
[15:54] <timrc> sinzui, if I change the bug sharing policy, it only applies to new bugs... it won't retroactively apply to existing bugs?
[15:55] <sinzui> correct
[15:56] <sinzui> timrc, I have a script that walks over all bugs and branches and tries to change the into type. Would you like a copy in cases where you do want to change them all?
[15:56] <timrc> sinzui, sure, I'd be interested in that script
[15:57] <timrc> I think we have people going rogue and screwing around with their sharing policies... do you have a script that slaps people too? :)
[16:14] <timrc> sinzui, OK, I think I see the error of my ways.  So when I create a bug in a project with a proprietary bug sharing policy, the new bug defaults to proprietary.  To make it sharable between projects it has to be changed to private...
[16:16] <sinzui> yes. Someone needs to vet the information to be certain the bug can be shared with another project how can also choose to make it public
[16:19] <sinzui> timrc, as for slapping user who screw up the policies, I am open to suggestion for punishment so long as it is equal to the burden they inflict upon others...
[16:20] <sinzui> I still see people not sharing with ~canonical, so we are locked out and we need to stop work and fix the project.