generate_subscripts is a set-returns function that returns multiple rows when called. This is why it most often fits in a FROM clause.
By default, the generate_subscripts results that are built into Postgres are anonymous and automatically have any name to use as a descriptor to refer to in the rest of the request. This is what g (i); this is an alias for table (g) and column (i) returned by generate_subscripts. So this expression:
FROM generate_subscripts($1, 1) g(i)
means:
generate_subscripts "g" "i"
SQL:
CREATE TABLE g ( i integer );
INSERT INTO g SELECT * FROM generate_subscripts(some_array, 1);
SELECT i FROM g ORDER BY i;
SELECT , , generate_subscripts.
g (i) gs (i) Postgres. "g" "gs" "generate_series" "generate_subscripts". "i" - "". , , , , , . :
FROM generate_subscripts( $1, 1 ) as features(feature_no)
PostgreSQL, docs , Set Returning Functions ( 35.4.8. SQL-). , , , , .