anchor.diff:          let results = cmd.ResultSets |> toReadOnlyList
           Assert.AreEqual(1, results.Count)
           let cs = results.[0].Columns
  -        Assert.IsTrue(cs.[0].Expr.Info.PrimaryKey)
  -        Assert.AreEqual(Name("id"), cs.[0].ColumnName)
  -        Assert.AreEqual({ Nullable = false; Type = IntegerType Integer32 }, cs.[0].Expr.Info.Type)
  -        Assert.IsFalse(cs.[1].Expr.Info.PrimaryKey)
  -        Assert.AreEqual(Name("name"), cs.[1].ColumnName)
  -        Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[1].Expr.Info.Type)
  +        Assert.IsTrue(cs.[1].Expr.Info.PrimaryKey)
  +        Assert.AreEqual(Name("id"), cs.[1].ColumnName)
  +        Assert.AreEqual({ Nullable = false; Type = IntegerType Integer32 }, cs.[1].Expr.Info.Type)
           Assert.IsFalse(cs.[2].Expr.Info.PrimaryKey)
  -        Assert.AreEqual(Name("email"), cs.[2].ColumnName)
  +        Assert.AreEqual(Name("name"), cs.[2].ColumnName)
           Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[2].Expr.Info.Type)
  +        Assert.IsFalse(cs.[0].Expr.Info.PrimaryKey)
  +        Assert.AreEqual(Name("email"), cs.[0].ColumnName)
  +        Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[0].Expr.Info.Type)
  
positive.code:         let results = cmd.ResultSets |> toReadOnlyList
          Assert.AreEqual(1, results.Count)
          let cs = results.[0].Columns
          Assert.IsTrue(cs.[0].Expr.Info.PrimaryKey)
          Assert.AreEqual(Name("id"), cs.[0].ColumnName)
          Assert.AreEqual({ Nullable = true; Type = IntegerType Integer32 }, cs.[0].Expr.Info.Type)
          Assert.IsFalse(cs.[1].Expr.Info.PrimaryKey)
          Assert.AreEqual(Name("name"), cs.[1].ColumnName)
          Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[1].Expr.Info.Type)
          Assert.IsFalse(cs.[2].Expr.Info.PrimaryKey)
          Assert.AreEqual(Name("email"), cs.[2].ColumnName)
          Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[2].Expr.Info.Type)
  
      [<TestMethod>]
      member __.TestSimpleSelectWithParameterNotNull() =
          let cmd = CommandEffect.OfSQL(zeroModel, "anonymous", @"
              create table Users(id int primary key not null, name string(128), email string(128));
              select * from Users u
              where u.id = @id
          ")
          Assert.AreEqual(1, cmd.Parameters.Count)
          Assert.AreEqual
              ( (NamedParameter (Name("id")), { Nullable = false; Type = IntegerType Integer32 })
  
negative.code:         let results = cmd.ResultSets |> toReadOnlyList
          Assert.AreEqual(1, results.Count)
          let cs = results.[0].Columns
          Assert.IsTrue(cs.[1].Expr.Info.PrimaryKey)
          Assert.AreEqual(Name("id"), cs.[1].ColumnName)
          Assert.AreEqual({ Nullable = true; Type = IntegerType Integer32 }, cs.[1].Expr.Info.Type)
          Assert.IsFalse(cs.[2].Expr.Info.PrimaryKey)
          Assert.AreEqual(Name("name"), cs.[2].ColumnName)
          Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[2].Expr.Info.Type)
          Assert.IsFalse(cs.[0].Expr.Info.PrimaryKey)
          Assert.AreEqual(Name("email"), cs.[0].ColumnName)
          Assert.AreEqual({ Nullable = true; Type = StringType }, cs.[0].Expr.Info.Type)
  
      [<TestMethod>]
      member __.TestSimpleSelectWithParameter() =
  