@superset-ui/query
Advanced tools
Comparing version 0.14.9 to 0.14.12
@@ -7,4 +7,2 @@ "use strict"; | ||
var _QueryFormData = require("./types/QueryFormData"); | ||
var _processGroupby = _interopRequireDefault(require("./processGroupby")); | ||
@@ -16,3 +14,3 @@ | ||
var _processExtras = _interopRequireDefault(require("./processExtras")); | ||
var _extractExtras = _interopRequireDefault(require("./extractExtras")); | ||
@@ -28,7 +26,2 @@ var _extractQueryFields = _interopRequireDefault(require("./extractQueryFields")); | ||
const DTTM_ALIAS = '__timestamp'; | ||
exports.DTTM_ALIAS = DTTM_ALIAS; | ||
function processGranularity(formData) { | ||
return (0, _QueryFormData.isSqlaFormData)(formData) ? formData.granularity_sqla : formData.granularity; | ||
} | ||
/** | ||
@@ -42,2 +35,3 @@ * Build the common segments of all query objects (e.g. the granularity field derived from | ||
exports.DTTM_ALIAS = DTTM_ALIAS; | ||
@@ -54,5 +48,6 @@ function buildQueryObject(formData) { | ||
timeseries_limit_metric, | ||
queryFields | ||
queryFields, | ||
granularity | ||
} = formData, | ||
residualFormData = _objectWithoutPropertiesLoose(formData, ["time_range", "since", "until", "order_desc", "row_limit", "row_offset", "limit", "timeseries_limit_metric", "queryFields"]); | ||
residualFormData = _objectWithoutPropertiesLoose(formData, ["time_range", "since", "until", "order_desc", "row_limit", "row_offset", "limit", "timeseries_limit_metric", "queryFields", "granularity"]); | ||
@@ -67,5 +62,10 @@ const numericRowLimit = Number(row_limit); | ||
const groupbySet = new Set([...columns, ...groupby]); | ||
const extraFilters = (0, _extractExtras.default)(formData); | ||
const extrasAndfilters = (0, _processFilters.default)(_extends({}, formData, {}, extraFilters)); | ||
return _extends({ | ||
extras: (0, _processExtras.default)(formData), | ||
granularity: processGranularity(formData), | ||
time_range, | ||
since, | ||
until, | ||
granularity | ||
}, extraFilters, {}, extrasAndfilters, { | ||
groupby: (0, _processGroupby.default)(Array.from(groupbySet)), | ||
@@ -78,8 +78,5 @@ is_timeseries: groupbySet.has(DTTM_ALIAS), | ||
row_offset: row_offset == null || Number.isNaN(numericRowOffset) ? undefined : numericRowOffset, | ||
since, | ||
time_range, | ||
timeseries_limit: limit ? Number(limit) : 0, | ||
timeseries_limit_metric: timeseries_limit_metric ? (0, _convertMetric.default)(timeseries_limit_metric) : null, | ||
until | ||
}, (0, _processFilters.default)(formData)); | ||
timeseries_limit_metric: timeseries_limit_metric ? (0, _convertMetric.default)(timeseries_limit_metric) : null | ||
}); | ||
} |
@@ -12,8 +12,6 @@ "use strict"; | ||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
/** Logic formerly in viz.py's process_query_filters */ | ||
function processFilters(formData) { | ||
// TODO: Implement | ||
// utils.convert_legacy_filters_into_adhoc(self.form_data) | ||
// TODO: Implement | ||
// merge_extra_filters(self.form_data) | ||
// Split adhoc_filters into four fields according to | ||
@@ -24,3 +22,2 @@ // (1) clause (WHERE or HAVING) | ||
// 2.2 SQL (freeform SQL expression)) | ||
// eslint-disable-next-line camelcase | ||
const { | ||
@@ -31,5 +28,6 @@ adhoc_filters | ||
if (Array.isArray(adhoc_filters)) { | ||
const simpleWhere = []; | ||
const simpleWhere = formData.filters || []; | ||
const simpleHaving = []; | ||
const freeformWhere = []; | ||
if (formData.where) freeformWhere.push(formData.where); | ||
const freeformHaving = []; | ||
@@ -60,8 +58,14 @@ adhoc_filters.forEach(filter => { | ||
} | ||
}); | ||
return { | ||
filters: simpleWhere, | ||
}); // some filter-related fields need to go in `extras` | ||
const extras = _extends({ | ||
having: freeformHaving.map(exp => "(" + exp + ")").join(' AND '), | ||
having_filters: simpleHaving, | ||
having_druid: simpleHaving, | ||
where: freeformWhere.map(exp => "(" + exp + ")").join(' AND ') | ||
}, formData.extras); | ||
return { | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call | ||
filters: (formData.filters || []).concat(simpleWhere), | ||
extras | ||
}; | ||
@@ -68,0 +72,0 @@ } |
@@ -5,6 +5,6 @@ "use strict"; | ||
exports.isDruidFormData = isDruidFormData; | ||
exports.isSqlaFormData = isSqlaFormData; | ||
/* eslint camelcase: 0 */ | ||
// FormData uses snake_cased keys. | ||
// Currently only Binary and Set filters are supported | ||
// Type signature for formData shared by all viz types | ||
@@ -18,6 +18,2 @@ // It will be gradually filled out as we build out the query object | ||
return 'granularity' in formData; | ||
} | ||
function isSqlaFormData(formData) { | ||
return 'granularity_sqla' in formData; | ||
} |
@@ -7,4 +7,2 @@ "use strict"; | ||
var _QueryFormData = require("./types/QueryFormData"); | ||
var _processGroupby = _interopRequireDefault(require("./processGroupby")); | ||
@@ -16,3 +14,3 @@ | ||
var _processExtras = _interopRequireDefault(require("./processExtras")); | ||
var _extractExtras = _interopRequireDefault(require("./extractExtras")); | ||
@@ -28,7 +26,2 @@ var _extractQueryFields = _interopRequireDefault(require("./extractQueryFields")); | ||
const DTTM_ALIAS = '__timestamp'; | ||
exports.DTTM_ALIAS = DTTM_ALIAS; | ||
function processGranularity(formData) { | ||
return (0, _QueryFormData.isSqlaFormData)(formData) ? formData.granularity_sqla : formData.granularity; | ||
} | ||
/** | ||
@@ -42,2 +35,3 @@ * Build the common segments of all query objects (e.g. the granularity field derived from | ||
exports.DTTM_ALIAS = DTTM_ALIAS; | ||
@@ -54,5 +48,6 @@ function buildQueryObject(formData) { | ||
timeseries_limit_metric, | ||
queryFields | ||
queryFields, | ||
granularity | ||
} = formData, | ||
residualFormData = _objectWithoutPropertiesLoose(formData, ["time_range", "since", "until", "order_desc", "row_limit", "row_offset", "limit", "timeseries_limit_metric", "queryFields"]); | ||
residualFormData = _objectWithoutPropertiesLoose(formData, ["time_range", "since", "until", "order_desc", "row_limit", "row_offset", "limit", "timeseries_limit_metric", "queryFields", "granularity"]); | ||
@@ -67,5 +62,10 @@ const numericRowLimit = Number(row_limit); | ||
const groupbySet = new Set([...columns, ...groupby]); | ||
const extraFilters = (0, _extractExtras.default)(formData); | ||
const extrasAndfilters = (0, _processFilters.default)(_extends({}, formData, {}, extraFilters)); | ||
return _extends({ | ||
extras: (0, _processExtras.default)(formData), | ||
granularity: processGranularity(formData), | ||
time_range, | ||
since, | ||
until, | ||
granularity | ||
}, extraFilters, {}, extrasAndfilters, { | ||
groupby: (0, _processGroupby.default)(Array.from(groupbySet)), | ||
@@ -78,8 +78,5 @@ is_timeseries: groupbySet.has(DTTM_ALIAS), | ||
row_offset: row_offset == null || Number.isNaN(numericRowOffset) ? undefined : numericRowOffset, | ||
since, | ||
time_range, | ||
timeseries_limit: limit ? Number(limit) : 0, | ||
timeseries_limit_metric: timeseries_limit_metric ? (0, _convertMetric.default)(timeseries_limit_metric) : null, | ||
until | ||
}, (0, _processFilters.default)(formData)); | ||
timeseries_limit_metric: timeseries_limit_metric ? (0, _convertMetric.default)(timeseries_limit_metric) : null | ||
}); | ||
} |
import { QueryFormData } from './types/QueryFormData'; | ||
import { QueryObjectFilterClause } from './types/Query'; | ||
/** Logic formerly in viz.py's process_query_filters */ | ||
export default function processFilters(formData: QueryFormData): { | ||
filters: QueryObjectFilterClause[]; | ||
having: string; | ||
having_filters: QueryObjectFilterClause[]; | ||
where: string; | ||
filters: any; | ||
extras: any; | ||
} | { | ||
filters?: undefined; | ||
having?: undefined; | ||
having_filters?: undefined; | ||
where?: undefined; | ||
extras?: undefined; | ||
}; | ||
//# sourceMappingURL=processFilters.d.ts.map |
@@ -12,8 +12,6 @@ "use strict"; | ||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
/** Logic formerly in viz.py's process_query_filters */ | ||
function processFilters(formData) { | ||
// TODO: Implement | ||
// utils.convert_legacy_filters_into_adhoc(self.form_data) | ||
// TODO: Implement | ||
// merge_extra_filters(self.form_data) | ||
// Split adhoc_filters into four fields according to | ||
@@ -24,3 +22,2 @@ // (1) clause (WHERE or HAVING) | ||
// 2.2 SQL (freeform SQL expression)) | ||
// eslint-disable-next-line camelcase | ||
const { | ||
@@ -31,5 +28,6 @@ adhoc_filters | ||
if (Array.isArray(adhoc_filters)) { | ||
const simpleWhere = []; | ||
const simpleWhere = formData.filters || []; | ||
const simpleHaving = []; | ||
const freeformWhere = []; | ||
if (formData.where) freeformWhere.push(formData.where); | ||
const freeformHaving = []; | ||
@@ -60,8 +58,14 @@ adhoc_filters.forEach(filter => { | ||
} | ||
}); | ||
return { | ||
filters: simpleWhere, | ||
}); // some filter-related fields need to go in `extras` | ||
const extras = _extends({ | ||
having: freeformHaving.map(exp => "(" + exp + ")").join(' AND '), | ||
having_filters: simpleHaving, | ||
having_druid: simpleHaving, | ||
where: freeformWhere.map(exp => "(" + exp + ")").join(' AND ') | ||
}, formData.extras); | ||
return { | ||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call | ||
filters: (formData.filters || []).concat(simpleWhere), | ||
extras | ||
}; | ||
@@ -68,0 +72,0 @@ } |
@@ -45,3 +45,3 @@ import { DatasourceType } from './Datasource'; | ||
/** Granularity (for steps in time series) */ | ||
granularity: string; | ||
granularity?: string; | ||
/** Free-form WHERE SQL: multiple clauses are concatenated by AND */ | ||
@@ -48,0 +48,0 @@ where?: string; |
import { AdhocMetric } from './Metric'; | ||
import { TimeRange } from './Time'; | ||
import { AdhocFilter } from './Filter'; | ||
import { BinaryOperator, SetOperator } from './Operator'; | ||
export declare type QueryFormDataMetric = string | AdhocMetric; | ||
@@ -12,2 +13,11 @@ export declare type QueryFormResidualDataValue = string | AdhocMetric; | ||
}; | ||
export declare type QueryFormExtraFilter = { | ||
col: string; | ||
} & ({ | ||
op: BinaryOperator; | ||
val: string; | ||
} | { | ||
op: SetOperator; | ||
val: string[]; | ||
}); | ||
export declare type BaseFormData = { | ||
@@ -33,2 +43,3 @@ /** datasource identifier ${id}_${type} */ | ||
adhoc_filters?: AdhocFilter[]; | ||
extra_filters?: QueryFormExtraFilter[]; | ||
/** order descending */ | ||
@@ -62,3 +73,2 @@ order_desc?: boolean; | ||
export declare function isDruidFormData(formData: QueryFormData): formData is DruidFormData; | ||
export declare function isSqlaFormData(formData: QueryFormData): formData is SqlaFormData; | ||
//# sourceMappingURL=QueryFormData.d.ts.map |
@@ -5,6 +5,6 @@ "use strict"; | ||
exports.isDruidFormData = isDruidFormData; | ||
exports.isSqlaFormData = isSqlaFormData; | ||
/* eslint camelcase: 0 */ | ||
// FormData uses snake_cased keys. | ||
// Currently only Binary and Set filters are supported | ||
// Type signature for formData shared by all viz types | ||
@@ -18,6 +18,2 @@ // It will be gradually filled out as we build out the query object | ||
return 'granularity' in formData; | ||
} | ||
function isSqlaFormData(formData) { | ||
return 'granularity_sqla' in formData; | ||
} |
{ | ||
"name": "@superset-ui/query", | ||
"version": "0.14.9", | ||
"version": "0.14.12", | ||
"description": "Superset UI query", | ||
@@ -36,3 +36,3 @@ "sideEffects": false, | ||
}, | ||
"gitHead": "92e0ccbec0e753335a03fb411b59242f4b624391" | ||
"gitHead": "97e7ba99d0efc363805a415f5f1a646f781ba1fb" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
122541
2197