mirror of
https://github.com/graphql-hive/console
synced 2026-05-24 01:28:32 +00:00
fix: correctly select materialized view and resolution (#4294)
This commit is contained in:
parent
fcf4fe03de
commit
c6cfc50dcf
2 changed files with 27 additions and 29 deletions
|
|
@ -133,13 +133,22 @@ export class OperationsReader {
|
|||
minutely: subMinutes(startOfMinute(subHours(now, tableTTLInHours.minutely)), 2),
|
||||
};
|
||||
|
||||
const daysDifference = (period.to.getTime() - period.from.getTime()) / msDay;
|
||||
|
||||
if (
|
||||
daysDifference > thresholdDataPointPerDay ||
|
||||
/** if we are outside this range, we always need to get daily data */
|
||||
period.to.getTime() <= tableOldestDateTimePoint.daily.getTime() ||
|
||||
period.from.getTime() <= tableOldestDateTimePoint.daily.getTime()
|
||||
) {
|
||||
this.logger.error(
|
||||
`Requested date range ${formatDate(period.from)} - ${formatDate(period.to)} is too old.`,
|
||||
);
|
||||
throw new Error(`The requested date range is too old for the selected query type.`);
|
||||
}
|
||||
|
||||
const daysDifference = Math.floor((period.to.getTime() - period.from.getTime()) / msDay);
|
||||
|
||||
if (
|
||||
daysDifference >= thresholdDataPointPerDay ||
|
||||
period.to.getTime() <= tableOldestDateTimePoint.hourly.getTime() ||
|
||||
period.from.getTime() <= tableOldestDateTimePoint.hourly.getTime()
|
||||
) {
|
||||
return {
|
||||
...queryMap['daily'],
|
||||
|
|
@ -150,10 +159,9 @@ export class OperationsReader {
|
|||
const hoursDifference = (period.to.getTime() - period.from.getTime()) / msHour;
|
||||
|
||||
if (
|
||||
hoursDifference > thresholdDataPointPerHour ||
|
||||
/** if we are outside this range, we always need to get hourly data */
|
||||
period.to.getTime() <= tableOldestDateTimePoint.hourly.getTime() ||
|
||||
period.from.getTime() <= tableOldestDateTimePoint.hourly.getTime()
|
||||
hoursDifference >= thresholdDataPointPerHour &&
|
||||
period.to.getTime() <= tableOldestDateTimePoint.minutely.getTime() &&
|
||||
period.from.getTime() <= tableOldestDateTimePoint.minutely.getTime()
|
||||
) {
|
||||
return {
|
||||
...queryMap['hourly'],
|
||||
|
|
@ -161,16 +169,6 @@ export class OperationsReader {
|
|||
};
|
||||
}
|
||||
|
||||
if (
|
||||
period.to.getTime() <= tableOldestDateTimePoint.minutely.getTime() ||
|
||||
period.from.getTime() <= tableOldestDateTimePoint.minutely.getTime()
|
||||
) {
|
||||
this.logger.error(
|
||||
`Requested date range ${formatDate(period.from)} - ${formatDate(period.to)} is too old.`,
|
||||
);
|
||||
throw new Error(`The requested date range is too old for the selected query type.`);
|
||||
}
|
||||
|
||||
return {
|
||||
...queryMap['minutely'],
|
||||
queryType: 'minutely',
|
||||
|
|
|
|||
|
|
@ -123,13 +123,20 @@ function resolveRangeAndResolution(range: { from: Date; to: Date }) {
|
|||
minutely: startOfMinute(subHours(now, tableTTLInHours.minutely)),
|
||||
};
|
||||
|
||||
if (
|
||||
range.to.getTime() <= tableOldestDateTimePoint.daily.getTime() ||
|
||||
range.from.getTime() <= tableOldestDateTimePoint.daily.getTime()
|
||||
) {
|
||||
throw new Error('This range can never be resolved.');
|
||||
}
|
||||
|
||||
const daysDifference = (range.to.getTime() - range.from.getTime()) / msDay;
|
||||
|
||||
if (
|
||||
daysDifference > thresholdDataPointPerDay ||
|
||||
/** if we are outside this range, we always need to get daily data */
|
||||
range.to.getTime() <= tableOldestDateTimePoint.daily.getTime() ||
|
||||
range.from.getTime() <= tableOldestDateTimePoint.daily.getTime()
|
||||
range.to.getTime() <= tableOldestDateTimePoint.hourly.getTime() ||
|
||||
range.from.getTime() <= tableOldestDateTimePoint.hourly.getTime()
|
||||
) {
|
||||
const resolvedRange = {
|
||||
from: getUTCStartOfDay(range.from),
|
||||
|
|
@ -151,8 +158,8 @@ function resolveRangeAndResolution(range: { from: Date; to: Date }) {
|
|||
if (
|
||||
hoursDifference > thresholdDataPointPerHour ||
|
||||
/** if we are outside this range, we always need to get hourly data */
|
||||
range.to.getTime() <= tableOldestDateTimePoint.hourly.getTime() ||
|
||||
range.from.getTime() <= tableOldestDateTimePoint.hourly.getTime()
|
||||
range.to.getTime() <= tableOldestDateTimePoint.minutely.getTime() ||
|
||||
range.from.getTime() <= tableOldestDateTimePoint.minutely.getTime()
|
||||
) {
|
||||
const resolvedRange = {
|
||||
from: startOfHour(range.from),
|
||||
|
|
@ -169,13 +176,6 @@ function resolveRangeAndResolution(range: { from: Date; to: Date }) {
|
|||
};
|
||||
}
|
||||
|
||||
if (
|
||||
range.to.getTime() <= tableOldestDateTimePoint.minutely.getTime() ||
|
||||
range.from.getTime() <= tableOldestDateTimePoint.minutely.getTime()
|
||||
) {
|
||||
throw new Error('This range can never be resolved.');
|
||||
}
|
||||
|
||||
const resolvedRange = {
|
||||
from: startOfMinute(range.from),
|
||||
to: subSeconds(startOfMinute(range.to), 1),
|
||||
|
|
|
|||
Loading…
Reference in a new issue