SQL parser ubnormal behaviour

From: "Zakharov, Andrey" <AZakharov(at)luxoft(dot)com>
To: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: SQL parser ubnormal behaviour
Date: 2016-02-11 08:23:09
Message-ID: 3F693CCDF87C9742826D43FFF9F366BE7D72D456@oro-mbox-01.luxoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Dear colleagues -

There are the serious problems found in SQL parser for versions 9.3.1 thru newest 9.5. Perhaps they all depends on data distribution but I cannot be sure. Such behavior constantly presents and reproducible. FAQs and Tips have been looked thru carefully but such stuff is not there.

The problem is: the following types of SQL statements are OK for the SQL parser and DB engine returns the resultset.

1)

SELECT COUNT(app.paapl_application_id) OVER() AS totalCount,
app.edcit_citizenship_id, app.paapl_application_id, app.paapl_blocker_resolution_check,
app.paapl_dob, app.paapl_gender, app.paapl_inn, app.paapl_is_fprint_pkg_completed,
app.paapl_is_migreg_pkg_completed, app.paapl_last_name, app.paapl_last_name_latin,
app.paapl_name, app.paapl_name_latin, app.paapl_note, app.paapl_patent_decision_comment,
app.paapl_phase_start_ts, app.paapl_processing_start, app.paapl_second_name, app.paapl_second_name_latin,
app.paapl_sf_is_ext_wait_complete, app.paapl_status_ts, app.paapl_type, app.pablk_application_blocker_id,
doc.padoc_number, doc.padoc_series, app.paopr_last_name_locked, app.paopr_login_locked, app.paopr_name_locked,
app.paopr_second_name_locked, passport.pascn_document_scan_id_trans, app.pasts_status_id
FROM pa_application AS app
LEFT JOIN pa_document AS doc
ON app.paapl_application_id = doc.paapl_application_id
AND (doc.padtp_document_type_id = 5)
LEFT JOIN pa_passport AS passport
ON doc.padoc_document_id = passport.padoc_document_id
Inner join pa_application_indicator as ind
on ind.paapl_application_id=app.paapl_application_id
WHERE (app.pasts_status_id = 3) and ind.paidc_ppot_sent='Y' and ind.paidc_ppot_decision_made='N'
GROUP BY app.paapl_application_id, doc.padoc_number, doc.padoc_series, passport.pascn_document_scan_id_trans
ORDER BY paapl_application_id LIMIT 10
;

totalcount

edcit_citizenship_id

paapl_application_id

paapl_blocker_resolution_check

paapl_dob

paapl_gender

paapl_inn

paapl_is_fprint_pkg_completed

paapl_is_migreg_pkg_completed

paapl_last_name

paapl_last_name_latin

paapl_name

paapl_name_latin

paapl_note

paapl_patent_decision_comment

paapl_phase_start_ts

paapl_processing_start

paapl_second_name

paapl_second_name_latin

paapl_sf_is_ext_wait_complete

paapl_status_ts

paapl_type

pablk_application_blocker_id

padoc_number

padoc_series

paopr_last_name_locked

paopr_login_locked

paopr_name_locked

paopr_second_name_locked

pascn_document_scan_id_trans

pasts_status_id

26644

102195

270

[NULL]

22.09.1971

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

21.01.2015 13:01

21.01.2015 0:00

[NULL]

[NULL]

Y

21.01.2015 13:01

R

[NULL]

386690

B

[NULL]

2632

3

26644

102316

286

[NULL]

21.10.1971

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

21.01.2015 14:55

21.01.2015 0:00

[NULL]

[NULL]

Y

21.01.2015 14:55

R

[NULL]

7796893

AA

[NULL]

3755

3

26644

102223

290

[NULL]

05.03.1982

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

21.01.2015 15:34

21.01.2015 0:00

[NULL]

[NULL]

Y

21.01.2015 15:34

R

[NULL]

208668

CB

[NULL]

2827

3

26644

102239

328

[NULL]

18.04.1957

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

21.01.2015 17:37

21.01.2015 0:00

[NULL]

[NULL]

Y

21.01.2015 17:37

R

[NULL]

400404577

[NULL]

[NULL]

3654

3

26644

102239

394

[NULL]

10.07.1976

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

22.01.2015 13:48

22.01.2015 0:00

[NULL]

[NULL]

Y

18.03.2015 13:05

R

[NULL]

400427855

[NULL]

[NULL]

4868

3

26644

102239

469

[NULL]

15.05.1970

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

22.01.2015 19:27

22.01.2015 0:00

[NULL]

[NULL]

Y

22.01.2015 19:27

R

[NULL]

573595

M

[NULL]

4887

3

26644

102195

651

[NULL]

01.08.1965

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

23.01.2015 15:25

23.01.2015 0:00

[NULL]

[NULL]

Y

23.01.2015 15:51

R

[NULL]

3137163

A

[NULL]

6212

3

26644

102316

736

[NULL]

02.06.1991

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

23.01.2015 18:18

23.01.2015 0:00

[NULL]

[NULL]

Y

23.01.2015 21:58

R

[NULL]

1848209

CT

[NULL]

7452

3

26644

102223

790

[NULL]

09.09.1988

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

23.01.2015 20:09

23.01.2015 0:00

[NULL]

[NULL]

Y

18.03.2015 13:05

R

[NULL]

325117

СЮ

[NULL]

7480

3

26644

102195

1473

[NULL]

09.08.1980

m

[NULL]

Y

Y

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

[NULL]

26.01.2015 10:24

26.01.2015 0:00

[NULL]

[NULL]

Y

26.01.2015 10:24

R

[NULL]

503537

BO

[NULL]

18261

3

Expected result: an SQL parser error because at least the set columns in the resultset must be the same as in the "group by" section.

Physical model:

[cid:image015(dot)png(at)01D164BE(dot)92B319F0]

[cid:image016(dot)png(at)01D164BE(dot)92B319F0]

[cid:image017(dot)png(at)01D164BE(dot)92B319F0]
2)

select *--count(*)
from pa_application_event ae
where ae.paeve_event_id = 23
and ae.paevt_event_time between '2016-02-10 08:00:00' and '2016-02-10 19:59:59'
and ae.paapl_application_id =
(
select paapl_application_id
where paevt_parameters like '%murzinaaa%'
)

paevt_application_event_id

paeve_event_id

paapl_application_id

paevt_event_time

paevt_parameters

ntcam_campaign_id

52493836

23

1003554

10.02.2016 8:23

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52496578

23

1004773

10.02.2016 9:32

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52497272

23

1000756

10.02.2016 9:43

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52540993

23

478371

10.02.2016 15:17

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52544267

23

1003786

10.02.2016 15:36

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52544408

23

1006694

10.02.2016 15:37

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52544563

23

1000325

10.02.2016 15:38

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

52544731

23

478358

10.02.2016 15:38

operatorLogin=murzinaaa;operatorFIO=Murzina

[NULL]

Expected result: an SQL parser error because FROM keyword is missing in the subquery and run-time error because there is equal sign after "paapl_application_id" for the subquery that returns many rows.

Physical model:

[cid:image019(dot)png(at)01D164BE(dot)92B319F0]

Some observations though. I caught the syntax error during uploading the export file into schema and executing the SQL in the same time. The syntax error has disappeared after the export finished.

[Description: cid:image001(dot)png(at)01D1644F(dot)B3CC26F0]

Technical summary:

1. Found in 9.3.1 and latest 9.5. Other versions are not tested
2. All tested DB versions are installed on Windows 7 or CentOS release 6.7 (Final)
3. dBeaver is used for examples preparation.
4. Application developed using Java 1.8 + jetty-9.2.4.v20141103

The obfuscated data can be provided.

Thanks in advance for any ideas.
Andrew Zakharov
Leading Database Architect
Luxoft

Tel: +7 495 967 8030

[cid:image001(dot)gif(at)01D164B7(dot)F156DED0]
Luxoft Holding (NYSE:LXFT) is a leading provider of software development services and innovative IT solutions to a global client base consisting primarily of large multinational corporations. Headquartered in Zug, Switzerland Luxoft is listed on the New York Stock Exchange. For more information, please visit www.luxoft.com<http://www.luxoft.com>

LinkedIn: AZakharov<http://ru.linkedin.com/in/andrewzakharov/>

Follow us on: [cid:image002(dot)gif(at)01D164B7(dot)F156DED0] <http://www.linkedin.com/company/luxoft> [cid:image003(dot)gif(at)01D164B7(dot)F156DED0] <http://twitter.com/Luxoft> [cid:image004(dot)gif(at)01D164B7(dot)F156DED0] <http://www.youtube.com/channel/UCDtOIqWxKHTdtmVi8yr_D7Q> [cid:image005(dot)gif(at)01D164B7(dot)F156DED0] <https://www.facebook.com/Luxoft> [cid:image006(dot)gif(at)01D164B7(dot)F156DED0] <https://plus.google.com/109881160058685562700>

This e-mail and any attachment(s) are intended only for the recipient(s) named above and others who have been specifically authorized to receive them. They may contain confidential information. If you are not the intended recipient, please do not read this email or its attachment(s). Furthermore, you are hereby notified that any dissemination, distribution or copying of this e-mail and any attachment(s) is strictly prohibited. If you have received this e-mail in error, please immediately notify the sender by replying to this e-mail and then delete this e-mail and any attachment(s) or copies thereof from your system. Thank you.

________________________________

This e-mail and any attachment(s) are intended only for the recipient(s) named above and others who have been specifically authorized to receive them. They may contain confidential information. If you are not the intended recipient, please do not read this email or its attachment(s). Furthermore, you are hereby notified that any dissemination, distribution or copying of this e-mail and any attachment(s) is strictly prohibited. If you have received this e-mail in error, please immediately notify the sender by replying to this e-mail and then delete this e-mail and any attachment(s) or copies thereof from your system. Thank you.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2016-02-11 08:46:23 Re: Re: BUG #13685: Archiving while idle every archive_timeout with wal_level hot_standby
Previous Message Andres Freund 2016-02-11 08:20:17 Re: Re: BUG #13685: Archiving while idle every archive_timeout with wal_level hot_standby