Skip to content

Performance improvement using OGR_L_SetIgnoredFields #55

@pramsey

Description

@pramsey

By applying OGR_L_SetIgnoredFields to the OGR Layer before reading, we can dramatically reduce the amount of data pulled over the wire in response to a particular query target list.

If the query is just:

SELECT name FROM thetable;

Then the backend should not be pulling all the fields over the wire, but that's the default OGR behaviour and our default too.

There is a knock-on efficiency to this work for update support, in that every update starts with a query. That is,

UPDATE thetable SET name = 'bar' WHERE age = 20;

will first run

SELECT name FROM thetable WHERE age = 20;

to get a list of candidate records. Those records are then iterated on to apply the update back to the foreign source. Without using ignored fields, we have to pull all the data in those records back, even though we're only updating the name column.

This will require careful updates to all functionality to use only the requested fields in slot handling for both read and write.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions