that the lag() functions are seeing some rows that don't show up in the final output.
</snip>
I'm under the impression that the predicate filter is applied before the analytic is evaluated. Are you suggesting that I have this wrong -- the analytic is evaluated and then the filter is applied?
Rumpi Gravenstein <rgravens@gmail.com> writes: > Is this a PostgreSQL bug?
Maybe, but you haven't provided enough information to let anyone else reproduce the behavior.
Personally I'm suspicious that because your lag() calls are over
partition by p.logical_partition_key, p.txt order by indx
but then you filter by
where logical_partition_key='TEST_DATA' and usage_text='F(T61)(EXPORT)';
that the lag() functions are seeing some rows that don't show up in the final output. (This'd require that some output rows from "parse" share txt values but not usage_text values, but that certainly looks like it's possible.) So IMO you have not actually demonstrated that there is any bug.