[bug] auto-where by RefreshRecord (v8.0.0)
auto-where by refreshrecord works incorrectly with:
- cross join
- SELECT
- bdea.dbrid
- ba_op
- FROM
- bdea
- CROSS JOIN ab2
- WHERE
- ba_ix = :ab_ix
- :ab_ix(WideString[3])='100'
- WHERE
- (
- ba_ix = :ab_ix) AND
- cross.dbrid = :ba_op
- :ab_ix(WideString[3])='100'
- :ba_op(WideString[3])='136'
- --------------------------------------------------
- [PgSQLMonitor.OnSQL]: tfError
- Error: syntax error at or near "."
- window-function
- SELECT
- bdea.dbrid,
- ba_op
- FROM
- bdea
- LEFT JOIN ab2 ON a2_ab_ix = ba_ix AND a2_n = ba_op
- WHERE
- ba_ix = :ab_ix
- WINDOW rech AS (PARTITION BY a2_n, ba_ix)
- :ab_ix(WideString[3])='100'
- WHERE
- (
- ba_ix = :ab_ix
- WINDOW rech AS (PARTITION BY a2_n, ba_ix)) AND
- bdea.dbrid = :dbrid AND bdea.ba_op = :ba_op
- :ab_ix(WideString[3])='100'
- :dbrid(WideString[3])='136'
- :ba_op(Integer)=10
- --------------------------------------------------
- [PgSQLMonitor.OnSQL]: tfError
- Error: syntax error at or near "WINDOW"
- and function calls are incorrectly recognized as columns
- SELECT
- bdea.dbrid,
- get_name(ba_op)
- FROM
- bdea
- LEFT JOIN ab2 ON a2_ab_ix = ba_ix AND a2_n = ba_op
- WHERE
- ba_ix = :ab_ix
- :ab_ix(WideString[3])='100'
- WHERE
- (
- ba_ix = :ab_ix) AND
- bdea.dbrid = :dbrid AND get_name = :get_name
- :ab_ix(WideString[3])='100'
- :dbrid(WideString[3])='136'
- :get_name(WideString[7])='name_10'
- --------------------------------------------------
- [PgSQLMonitor.OnSQL]: tfError
- Error: column "get_name" does not exist
in the attach you will find a small demo application with creation script