]
Ramesh Reddy commented on TEIID-5658:
-------------------------------------
So "command complete" should wait for ack, which is "sync" before
"ready" is sent. For some reason, I remember reading the ready as no-op
operation by the client. Is behavior same odbc client?
PG transport can send multiple read messages
--------------------------------------------
Key: TEIID-5658
URL:
https://issues.jboss.org/browse/TEIID-5658
Project: Teiid
Issue Type: Bug
Components: ODBC
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Priority: Major
Fix For: 12.1, 12.0.1, 11.2.3
The code is allowing for a sequence of events such as:
2019-02-13 12:26:55.159 org.teiid.ODBC TRACE NIO1 invoking server method: execute [, 0]
2019-02-13 12:26:55.163 org.teiid.ODBC TRACE NIO1 invoking client method: sendResults
[null, org.teiid.jdbc.ResultSetImpl@1a79693d, [org.teiid.odbc.PGUtil$PgColInfo@79f0f194],
org.teiid.client.util.ResultsFuture@64fb47b7, FORWARD, -1, false, null]
2019-02-13 12:26:55.163 org.teiid.ODBC TRACE Worker5_QueryProcessorQueue533 invoking
client method: sendCommandComplete [select oid from pg_class where
relname='pg_class', [1]]
2019-02-13 12:26:55.163 org.teiid.ODBC TRACE Worker5_QueryProcessorQueue533 invoking
client method: ready [false, false]
2019-02-13 12:26:55.163 org.teiid.ODBC TRACE NIO1 invoking server method: sync null
2019-02-13 12:26:55.163 org.teiid.ODBC TRACE NIO1 invoking client method: ready [false,
false]
That is after execute we are immediately responding with results, command complete, and
ready. Then we see a sync and respond with ready again.
The first ready is not expected - it should not be issued until after the sync.
The causes issues in the pg jdbc driver such as reporting that there is no result set.
See TEIID-5425