-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explain on pull query returns details of KS topology impl #3495
Comments
This should be fixed when we complete #3541 |
big-andy-coates
added a commit
to big-andy-coates/ksql
that referenced
this issue
Nov 12, 2019
fixes: confluentinc#3672 by providing alternative way of issuing pull queries that does NOT log Makes pull queries available on the `/query` RESTful and Websocket endpoints, in the same way that push queries are. Note: this change does not _remove_ pull query support from the `/ksql` endpoint, nor does it switch the CLI over to use the `/query` endpoint. The CLI continues to use the `/ksql` endpoint for pull queries. Push and pull queries to the `/query` rest endpoint now return the schema of the rows in the first message. This is required as the 'DESCRIBE' that CLI was previously running to get column headers doesn't work for pull queries yet. (Known issue: confluentinc#3495). This is similar to the pattern used by the websocket endpoint, which also sends the schema in the first message. In addition, I've hidden null fields and added a 'header' row to return the schema of the data. The output now looks like: ```json [{"header":{"queryId":"someId","schema":"`USERID` STRING, `PAGEID` STRING, `VIEWTIME` BIGINT, `ROWKEY` STRING"}}, {"row":{"columns":["USER_1","PAGE_1",1,"1"]}}, {"row":{"columns":["USER_2","PAGE_2",2,"2"]}}, {"finalMessage":"Limit Reached"}]" ``` BREAKING CHANGE: the response from the RESTful API for push queries has changed: it now returns a line with the schema and query id in a `header` field and null fields are not included in the payload. The CLI is backwards compatible with older versions of the server, though it won't output column headings from older versions.
6 tasks
vpapavas
pushed a commit
to vpapavas/ksql
that referenced
this issue
Nov 14, 2019
fixes: confluentinc#3672 by providing alternative way of issuing pull queries that does NOT log Makes pull queries available on the `/query` RESTful and Websocket endpoints, in the same way that push queries are. Note: this change does not _remove_ pull query support from the `/ksql` endpoint, nor does it switch the CLI over to use the `/query` endpoint. The CLI continues to use the `/ksql` endpoint for pull queries. Push and pull queries to the `/query` rest endpoint now return the schema of the rows in the first message. This is required as the 'DESCRIBE' that CLI was previously running to get column headers doesn't work for pull queries yet. (Known issue: confluentinc#3495). This is similar to the pattern used by the websocket endpoint, which also sends the schema in the first message. In addition, I've hidden null fields and added a 'header' row to return the schema of the data. The output now looks like: ```json [{"header":{"queryId":"someId","schema":"`USERID` STRING, `PAGEID` STRING, `VIEWTIME` BIGINT, `ROWKEY` STRING"}}, {"row":{"columns":["USER_1","PAGE_1",1,"1"]}}, {"row":{"columns":["USER_2","PAGE_2",2,"2"]}}, {"finalMessage":"Limit Reached"}]" ``` BREAKING CHANGE: the response from the RESTful API for push queries has changed: it now returns a line with the schema and query id in a `header` field and null fields are not included in the payload. The CLI is backwards compatible with older versions of the server, though it won't output column headings from older versions.
big-andy-coates
added a commit
that referenced
this issue
Nov 14, 2019
* fix: pull queries available on `/query` rest & ws endpoint fixes: #3672 by providing alternative way of issuing pull queries that does NOT log Makes pull queries available on the `/query` RESTful and Websocket endpoints, in the same way that push queries are. Note: this change does not _remove_ pull query support from the `/ksql` endpoint, nor does it switch the CLI over to use the `/query` endpoint. The CLI continues to use the `/ksql` endpoint for pull queries. Push and pull queries to the `/query` rest endpoint now return the schema of the rows in the first message. This is required as the 'DESCRIBE' that CLI was previously running to get column headers doesn't work for pull queries yet. (Known issue: #3495). This is similar to the pattern used by the websocket endpoint, which also sends the schema in the first message. In addition, I've hidden null fields and added a 'header' row to return the schema of the data. The output now looks like: ```json [{"header":{"queryId":"someId","schema":"`USERID` STRING, `PAGEID` STRING, `VIEWTIME` BIGINT, `ROWKEY` STRING"}}, {"row":{"columns":["USER_1","PAGE_1",1,"1"]}}, {"row":{"columns":["USER_2","PAGE_2",2,"2"]}}, {"finalMessage":"Limit Reached"}]" ``` BREAKING CHANGE: the response from the RESTful API for push queries has changed: it now returns a line with the schema and query id in a `header` field and null fields are not included in the payload. The CLI is backwards compatible with older versions of the server, though it won't output column headings from older versions.
big-andy-coates
added a commit
that referenced
this issue
Nov 14, 2019
* fix: pull queries available on `/query` rest & ws endpoint fixes: #3672 by providing alternative way of issuing pull queries that does NOT log Makes pull queries available on the `/query` RESTful and Websocket endpoints, in the same way that push queries are. Note: this change does not _remove_ pull query support from the `/ksql` endpoint, nor does it switch the CLI over to use the `/query` endpoint. The CLI continues to use the `/ksql` endpoint for pull queries. Push and pull queries to the `/query` rest endpoint now return the schema of the rows in the first message. This is required as the 'DESCRIBE' that CLI was previously running to get column headers doesn't work for pull queries yet. (Known issue: #3495). This is similar to the pattern used by the websocket endpoint, which also sends the schema in the first message. In addition, I've hidden null fields and added a 'header' row to return the schema of the data. The output now looks like: ```json [{"header":{"queryId":"someId","schema":"`USERID` STRING, `PAGEID` STRING, `VIEWTIME` BIGINT, `ROWKEY` STRING"}}, {"row":{"columns":["USER_1","PAGE_1",1,"1"]}}, {"row":{"columns":["USER_2","PAGE_2",2,"2"]}}, {"finalMessage":"Limit Reached"}]" ``` BREAKING CHANGE: the response from the RESTful API for push queries has changed: it now returns a line with the schema and query id in a `header` field and null fields are not included in the payload. The CLI is backwards compatible with older versions of the server, though it won't output column headings from older versions. (cherry picked from commit e2321f5)
Requires #3541 |
Closing this as a bug as its known |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
SELECT * FROM FOO
is now a pull query as it has noEMIT CHANGES
. Therefore, runningEXPLAIN SELECT * FROM FOO
should return details of how the pull query is being executed. Currently it returns the plan that would be used to implement the push query equivalent.The text was updated successfully, but these errors were encountered: