Taras Bobrovytsky has submitted this change and it was merged. Change subject: IMPALA-4343,IMPALA-4354: qgen: model INSERTs; write INSERTs from query model ......................................................................
IMPALA-4343,IMPALA-4354: qgen: model INSERTs; write INSERTs from query model This patch adds support to the random query generator infrastructure to model and write SQL INSERTs. It does not actually randomly generate INSERTs at this time (tracked in IMPALA-4353 and umbrella task IMPALA-3740) but does provide necessary building blocks to do so. First, it's necessary to model the INSERTs as part of our data model. This was done by taking the current notion of a Query and making it a SelectQuery. We also then create an abstract Query containing some of the more common methods and attributes. We then model an INSERT query, INSERT clause, and VALUES clause (IMPALA-4343). Second, it's necessary to test the basics of this data model. It made sense to go ahead and implement the necessary SqlWriter methods to write the SQL for these clauses (IMPALA-4354). I could then use this writer with some existing and new tests that take a query written into our data model and write the SQL, verifying they're correct. For INSERT into Kudu tables, the equivalent PostgreSQL queries need to use "ON CONFLICT DO NOTHING", so all existing and new query tests verify they can be written as PostgreSQL as well. Testing: - all the query generator tests pass - I can run Leopard front_end.py and load older query generator reports, browse them, and re-run failed queries - I can run Leopard controller.py to actually do a query generator run - discrepancy_searcher.py --explain-only ran for hundreds of queries. There were no problems writing the SELECT queries Change-Id: I38e24da78c49e908449b35f0a6276ebe4236ddba Reviewed-on: http://gerrit.cloudera.org:8080/5162 Reviewed-by: Michael Brown <mi...@cloudera.com> Reviewed-by: Taras Bobrovytsky <tbobrovyt...@cloudera.com> Tested-by: Taras Bobrovytsky <tbobrovyt...@cloudera.com> --- M tests/comparison/model_translator.py M tests/comparison/query.py M tests/comparison/tests/query_object_testdata.py M tests/comparison/tests/test_query_objects.py 4 files changed, 642 insertions(+), 68 deletions(-) Approvals: Michael Brown: Looks good to me, but someone else must approve Taras Bobrovytsky: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/5162 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I38e24da78c49e908449b35f0a6276ebe4236ddba Gerrit-PatchSet: 10 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Michael Brown <mi...@cloudera.com> Gerrit-Reviewer: Matthew Jacobs <m...@cloudera.com> Gerrit-Reviewer: Michael Brown <mi...@cloudera.com> Gerrit-Reviewer: Taras Bobrovytsky <tbobrovyt...@cloudera.com>