memory usage duration expression (filter, dimension, measure) evaluation
(inputSize int)
| 1164 | |
| 1165 | // memory usage duration expression (filter, dimension, measure) evaluation |
| 1166 | func (qc *AQLQueryContext) estimateExpressionEvaluationMemUsage(inputSize int) (memUsage int) { |
| 1167 | // filter expression evaluation |
| 1168 | for _, filter := range qc.OOPK.MainTableCommonFilters { |
| 1169 | _, maxExpMemUsage := estimateScratchSpaceMemUsage(filter, inputSize, true) |
| 1170 | utils.GetQueryLogger().Debugf("Filter %+v: maxExpMemUsage=%d", filter, maxExpMemUsage) |
| 1171 | memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage))) |
| 1172 | } |
| 1173 | |
| 1174 | for _, filter := range qc.OOPK.ForeignTableCommonFilters { |
| 1175 | _, maxExpMemUsage := estimateScratchSpaceMemUsage(filter, inputSize, true) |
| 1176 | utils.GetQueryLogger().Debugf("Filter %+v: maxExpMemUsage=%d", filter, maxExpMemUsage) |
| 1177 | memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage))) |
| 1178 | } |
| 1179 | |
| 1180 | // dimension expression evaluation |
| 1181 | for _, dimension := range qc.OOPK.Dimensions { |
| 1182 | _, maxExpMemUsage := estimateScratchSpaceMemUsage(dimension, inputSize, true) |
| 1183 | utils.GetQueryLogger().Debugf("Dimension %+v: maxExpMemUsage=%d", dimension, maxExpMemUsage) |
| 1184 | memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage))) |
| 1185 | } |
| 1186 | |
| 1187 | // measure expression evaluation |
| 1188 | _, maxExpMemUsage := estimateScratchSpaceMemUsage(qc.OOPK.Measure, inputSize, true) |
| 1189 | utils.GetQueryLogger().Debugf("Measure %+v: maxExpMemUsage=%d", qc.OOPK.Measure, maxExpMemUsage) |
| 1190 | memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage))) |
| 1191 | |
| 1192 | return memUsage |
| 1193 | } |
| 1194 | |
| 1195 | // Note: we only calculate Sort memory usage |
| 1196 | // since sort memory usage is larger than reduce |
no test coverage detected