diff --git a/modules/carto/src/api/fetch-map.ts b/modules/carto/src/api/fetch-map.ts index c6a408108bb..29be34a0964 100644 --- a/modules/carto/src/api/fetch-map.ts +++ b/modules/carto/src/api/fetch-map.ts @@ -80,19 +80,24 @@ async function _fetchMapDataset( if (type === 'table') { dataset.data = await vectorTableSource({...options, columns, tableName: source}); } else if (type === 'query') { - dataset.data = await vectorQuerySource({...options, sqlQuery: source, queryParameters}); + dataset.data = await vectorQuerySource({ + ...options, + columns, + sqlQuery: source, + queryParameters + }); } } else if (spatialDataType === 'h3') { const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn}; if (type === 'table') { - dataset.data = await h3TableSource({...options, columns, tableName: source}); + dataset.data = await h3TableSource({...options, tableName: source}); } else if (type === 'query') { dataset.data = await h3QuerySource({...options, sqlQuery: source, queryParameters}); } } else if (spatialDataType === 'quadbin') { const options = {...globalOptions, aggregationExp, aggregationResLevel, spatialDataColumn}; if (type === 'table') { - dataset.data = await quadbinTableSource({...options, columns, tableName: source}); + dataset.data = await quadbinTableSource({...options, tableName: source}); } else if (type === 'query') { dataset.data = await quadbinQuerySource({...options, sqlQuery: source, queryParameters}); } diff --git a/modules/carto/src/sources/h3-table-source.ts b/modules/carto/src/sources/h3-table-source.ts index ee3a9c738c8..5f2da3f1c3b 100644 --- a/modules/carto/src/sources/h3-table-source.ts +++ b/modules/carto/src/sources/h3-table-source.ts @@ -13,7 +13,6 @@ export type H3TableSourceOptions = SourceOptions & TableSourceOptions & Aggregat type UrlParameters = { aggregationExp: string; aggregationResLevel?: string; - columns?: string; spatialDataType: SpatialDataType; spatialDataColumn?: string; name: string; @@ -22,13 +21,7 @@ type UrlParameters = { export const h3TableSource = async function ( options: H3TableSourceOptions ): Promise { - const { - aggregationExp, - aggregationResLevel = 4, - columns, - spatialDataColumn = 'h3', - tableName - } = options; + const {aggregationExp, aggregationResLevel = 4, spatialDataColumn = 'h3', tableName} = options; const urlParameters: UrlParameters = { aggregationExp, name: tableName, @@ -39,8 +32,5 @@ export const h3TableSource = async function ( if (aggregationResLevel) { urlParameters.aggregationResLevel = String(aggregationResLevel); } - if (columns) { - urlParameters.columns = columns.join(','); - } return baseSource('table', options, urlParameters) as Promise; }; diff --git a/modules/carto/src/sources/quadbin-table-source.ts b/modules/carto/src/sources/quadbin-table-source.ts index 45b54abcc41..c1b5b18c421 100644 --- a/modules/carto/src/sources/quadbin-table-source.ts +++ b/modules/carto/src/sources/quadbin-table-source.ts @@ -13,7 +13,6 @@ export type QuadbinTableSourceOptions = SourceOptions & TableSourceOptions & Agg type UrlParameters = { aggregationExp: string; aggregationResLevel?: string; - columns?: string; spatialDataType: SpatialDataType; spatialDataColumn?: string; name: string; @@ -25,7 +24,6 @@ export const quadbinTableSource = async function ( const { aggregationExp, aggregationResLevel = 6, - columns, spatialDataColumn = 'quadbin', tableName } = options; @@ -40,8 +38,5 @@ export const quadbinTableSource = async function ( if (aggregationResLevel) { urlParameters.aggregationResLevel = String(aggregationResLevel); } - if (columns) { - urlParameters.columns = columns.join(','); - } return baseSource('table', options, urlParameters) as Promise; }; diff --git a/modules/carto/src/sources/types.ts b/modules/carto/src/sources/types.ts index 0ad1cf7a15a..c66b5a9223d 100644 --- a/modules/carto/src/sources/types.ts +++ b/modules/carto/src/sources/types.ts @@ -108,13 +108,6 @@ export type TableSourceOptions = { */ tableName: string; - /** - * Columns to retrieve from the table. - * - * If not present, all columns are returned. - */ - columns?: string[]; - /** * The column name and the type of geospatial support. * @@ -130,6 +123,15 @@ export type TilesetSourceOptions = { tableName: string; }; +export type ColumnsOption = { + /** + * Columns to retrieve from the table. + * + * If not present, all columns are returned. + */ + columns?: string[]; +}; + export type SpatialDataType = 'geo' | 'h3' | 'quadbin'; export type TilejsonMapInstantiation = MapInstantiation & { diff --git a/modules/carto/src/sources/vector-query-source.ts b/modules/carto/src/sources/vector-query-source.ts index 39850e97c69..86bfe169d61 100644 --- a/modules/carto/src/sources/vector-query-source.ts +++ b/modules/carto/src/sources/vector-query-source.ts @@ -5,14 +5,15 @@ import type { SourceOptions, QuerySourceOptions, SpatialDataType, - TilejsonResult + TilejsonResult, + ColumnsOption } from './types'; export type VectorQuerySourceOptions = SourceOptions & QuerySourceOptions & - FilterOptions & { - columns?: string[]; - }; + FilterOptions & + ColumnsOption; + type UrlParameters = { columns?: string; filters?: string; diff --git a/modules/carto/src/sources/vector-table-source.ts b/modules/carto/src/sources/vector-table-source.ts index 2cc7f7271e8..7b28da184a2 100644 --- a/modules/carto/src/sources/vector-table-source.ts +++ b/modules/carto/src/sources/vector-table-source.ts @@ -2,13 +2,17 @@ import {baseSource} from './base-source'; import type { FilterOptions, + ColumnsOption, SourceOptions, SpatialDataType, TableSourceOptions, TilejsonResult } from './types'; -export type VectorTableSourceOptions = SourceOptions & TableSourceOptions & FilterOptions; +export type VectorTableSourceOptions = SourceOptions & + TableSourceOptions & + FilterOptions & + ColumnsOption; type UrlParameters = { columns?: string; filters?: string;