Use scalar predicate on higher level as filter at lower levels

Thank you for the answer! Currently I have another issue which is more important. If I have simple query:

{
  me(func: eq(address, "0x13b0e7e1d01b2678659a83a3d83fb60e1e594892")) {
    from {
      timestamp
      to {
        address
      }
    }
  }
}

It completes fairly fast:

“parsing_ns”:24304,“processing_ns”:4658520,“encoding_ns”:2217665

But when I add filter by timestamp scalar predicate, it slows down dramatically:

{
  me(func: eq(address, "0x13b0e7e1d01b2678659a83a3d83fb60e1e594892")) {
    from @filter(gt(timestamp, 1512534503)) {
      timestamp
      to {
        address
      }
    }
  }
}

“parsing_ns”:22584,“processing_ns”:1596928218,“encoding_ns”:2194180

See that execution time has bumped from 4ms to 1.6s. Am I doing anything wrong with the filter?