MCPcopy
hub / github.com/pingcap/tidb / checkOptionsStaticEvalCtx

Function checkOptionsStaticEvalCtx

pkg/expression/exprstatic/evalctx_test.go:129–169  ·  view source on GitHub ↗
(t *testing.T, ctx *EvalContext, s *evalCtxOptionsTestState)

Source from the content-addressed store, hash-verified

127}
128
129func 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
171func TestStaticEvalCtxCurrentTime(t *testing.T) {
172 loc1, err := time.LoadLocation("US/Eastern")

Callers 2

TestNewStaticEvalCtxFunction · 0.85

Calls 15

AddMethod · 0.95
NewContextFunction · 0.92
NewContextWithLevelsFunction · 0.92
EqualMethod · 0.65
SQLModeMethod · 0.65
TypeCtxMethod · 0.65
ErrCtxMethod · 0.65
LocationMethod · 0.65
CurrentDBMethod · 0.65
CurrentTimeMethod · 0.65
GetMaxAllowedPacketMethod · 0.65

Tested by

no test coverage detected