Consider the following 2-D ARRAY data type and table.
CREATE TYPE shot_ary AS INTEGER ARRAY[1:50][1:50]; CREATE TABLE seismic_data ( id INTEGER, shot1 shot_ary, shot2 shot_ary);
The following query returns an updated copy of the shot1 array, with every other element updated to the new value.
SELECT ARRAY_UPDATE_STRIDE(shot1, 0, 1) FROM seismic_data;
The following query returns an updated copy of the shot1 array, with a subset of the elements updated to the new value, as specified by the scope reference and stride value. The result is that every 5th element beginning with the first element in the scope reference range [1:50][1:50] is updated to the new value. The rest of the elements in the array retain their original values.
SELECT ARRAY_UPDATE_STRIDE(shot1, 0, 5, NEW arrayVec(1,1), NEW arrayVec(50,50)) FROM seismic_data;
The following is the same query using method-style syntax.
SELECT shot1.ARRAY_UPDATE_STRIDE (0, 5, NEW arrayVec(1,1), NEW arrayVec(50,50)) FROM seismic_data;