diff --git a/src/lib/PostgresMetaMaterializedViews.ts b/src/lib/PostgresMetaMaterializedViews.ts index 0a32793a..3c480623 100644 --- a/src/lib/PostgresMetaMaterializedViews.ts +++ b/src/lib/PostgresMetaMaterializedViews.ts @@ -98,7 +98,7 @@ const generateEnrichedMaterializedViewsSql = ({ offset?: number }) => ` with materialized_views as (${MATERIALIZED_VIEWS_SQL({ schemaFilter, limit, offset, materializedViewIdentifierFilter, idsFilter })}) - ${includeColumns ? `, columns as (${COLUMNS_SQL({ schemaFilter, limit, offset, tableIdentifierFilter: materializedViewIdentifierFilter, tableIdFilter: idsFilter })})` : ''} + ${includeColumns ? `, columns as (${COLUMNS_SQL({ schemaFilter, tableIdentifierFilter: materializedViewIdentifierFilter, tableIdFilter: idsFilter })})` : ''} select * ${ diff --git a/test/server/materialized-views.ts b/test/server/materialized-views.ts index 8799a6a9..4a1dc7e6 100644 --- a/test/server/materialized-views.ts +++ b/test/server/materialized-views.ts @@ -100,3 +100,19 @@ test('materialized views with columns', async () => { ] `) }) + +test('materialized views with columns keep every column when listing with limit', async () => { + const { body } = await app.inject({ + method: 'GET', + path: '/materialized-views', + query: { include_columns: 'true', limit: '1' }, + }) + const data = JSON.parse(body) + expect(data).toHaveLength(1) + expect(data[0].name).toBe('todos_matview') + expect(data[0].columns.map((column: { name: string }) => column.name)).toEqual([ + 'id', + 'details', + 'user-id', + ]) +})