In the end, it wasn't close.
Letitia James last night easily dispatched Daniel Squadron in their Democratic primary runoff, winning close to 60 percent of the vote in a race that NY1 was able to declare over just an hour after the polls closed.
Here are a few observations about the outcome:
• Racial politics were declared dead and buried after Bill de Blasio won a plurality of the African-American vote in last month's mayoral primary. (And Bill Thompson performed quite well in some conservative white districts.) Last night's voting patterns were much more historically familiar, with Squadron winning with whites while James dominated with African-Americans and Latinos. James did win with some liberal whites and in districts that had no racial majority – giving her the strong margin of victory over Squadron.
• It appears that fewer than 200,000 people voted. This was the lowest turnout in any of the six election cycles in which runoffs were held. It does amaze me, though, that at least 188,000 New Yorkers were motivated enough to vote in this race that got very little attention.
• Do we really need to have primary runoffs? There have now been nine runoffs and in seven of them, the candidate who initially finished first ended up winning the runoff. (Only Carol Bellamy in 1977 and Mark Green in 2001 were able to emerge from a second-place finish to win the runoff.) Maybe a law that was a reaction to the 1969 mayoral primary should be repealed.
• After a bitter campaign, James is still plenty angry at Squadron. In her 10-minute victory speech, James didn't have one nice thing to say about her opponent, noting that he had the support of the "rich and the one percenters." As she was flanked by City Comptroller John Liu and City Councilwoman Melissa Mark-Viverito, James said her opponent had the backing of those "connected to government" and -- alluding to Sen. Charles Schumer -- "the powerful senators in Washington."
• Exiting the stage to the Beastie Boys' "Sure Shot", Squadron was gracious in defeat, congratulating James and saying she will be "a great advocate." A young and ambitious politician, it's unclear what's next for Squadron beyond the State Senate.
• When there are no polls in a race, look to see who's going negative and that's a dead giveaway who's losing. Squadron's anonymous robocalls against James were a sign that he was in deep trouble.
• Should Bill de Blasio become the next mayor, it will be fascinating to watch his relationship with James. Following the mayoral primary, James spoke out strongly for de Blasio. We've never had a Public Advocate and a mayor from the same political party. If that happens, when will James break with her new political pal? (And will she keep her pledge not to run for mayor?)
For a downballot race, the fight for Public Advocate turned into stirring political theater. Let's hope the race for mayor can harness some of that energy over the next five weeks.