(t *testing.T, ctx *EvalContext, s *evalCtxOptionsTestState)
| 127 | } |
| 128 | |
| 129 | func checkOptionsStaticEvalCtx(t *testing.T, ctx *EvalContext, s *evalCtxOptionsTestState) { |
| 130 | require.Same(t, ctx.warnHandler, s.warnHandler) |
| 131 | require.Equal(t, mysql.ModeNoZeroDate|mysql.ModeStrictTransTables, ctx.SQLMode()) |
| 132 | require.Equal(t, |
| 133 | types.NewContext(types.FlagAllowNegativeToUnsigned|types.FlagSkipASCIICheck, s.loc, ctx), |
| 134 | ctx.TypeCtx(), |
| 135 | ) |
| 136 | require.Equal(t, errctx.NewContextWithLevels(errctx.LevelMap{ |
| 137 | errctx.ErrGroupBadNull: errctx.LevelError, |
| 138 | errctx.ErrGroupNoDefault: errctx.LevelError, |
| 139 | errctx.ErrGroupDividedByZero: errctx.LevelWarn, |
| 140 | }, ctx), ctx.ErrCtx()) |
| 141 | require.Same(t, s.loc, ctx.Location()) |
| 142 | require.Equal(t, "db1", ctx.CurrentDB()) |
| 143 | current, err := ctx.CurrentTime() |
| 144 | require.NoError(t, err) |
| 145 | require.Equal(t, current.UnixNano(), s.now.UnixNano()) |
| 146 | require.Same(t, s.loc, current.Location()) |
| 147 | require.Equal(t, uint64(12345), ctx.GetMaxAllowedPacket()) |
| 148 | require.Equal(t, "3", ctx.GetDefaultWeekFormatMode()) |
| 149 | require.Equal(t, 5, ctx.GetDivPrecisionIncrement()) |
| 150 | require.Same(t, s.userVars, ctx.GetUserVarsReader()) |
| 151 | |
| 152 | var optSet exprctx.OptionalEvalPropKeySet |
| 153 | optSet = optSet.Add(exprctx.OptPropCurrentUser).Add(exprctx.OptPropDDLOwnerInfo) |
| 154 | require.Equal(t, optSet, ctx.GetOptionalPropSet()) |
| 155 | p, ok := ctx.GetOptionalPropProvider(exprctx.OptPropCurrentUser) |
| 156 | require.True(t, ok) |
| 157 | user, roles := p.(expropt.CurrentUserPropProvider)() |
| 158 | require.Equal(t, &auth.UserIdentity{Username: "user1", Hostname: "host1"}, user) |
| 159 | require.Equal(t, []*auth.RoleIdentity{{Username: "role1", Hostname: "host2"}}, roles) |
| 160 | p, ok = ctx.GetOptionalPropProvider(exprctx.OptPropDDLOwnerInfo) |
| 161 | s.ddlOwner = true |
| 162 | require.True(t, ok) |
| 163 | require.True(t, p.(expropt.DDLOwnerInfoProvider)()) |
| 164 | s.ddlOwner = false |
| 165 | require.False(t, p.(expropt.DDLOwnerInfoProvider)()) |
| 166 | p, ok = ctx.GetOptionalPropProvider(exprctx.OptPropInfoSchema) |
| 167 | require.False(t, ok) |
| 168 | require.Nil(t, p) |
| 169 | } |
| 170 | |
| 171 | func TestStaticEvalCtxCurrentTime(t *testing.T) { |
| 172 | loc1, err := time.LoadLocation("US/Eastern") |
no test coverage detected