-
Notifications
You must be signed in to change notification settings - Fork 4
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
Chore/update deps #309
base: master
Are you sure you want to change the base?
Chore/update deps #309
Conversation
Ususally will only commit code that compiles, but this is a big refactor. So far: - updated deps (use anyhow/thiserror over failure, update jsonwebtoken, actix-web) - udpated handler sigs (first wave of errors from actix-web) - updated the config of the tesseract-server app Now going back through handlers and fixing errors.
- update Backend trait in core to use async-trait crate - update Backend trait in core to remove exec_sql_stream for now - update clickhouse to 1.0.0-alpha.1 - udpate tesseract-clickhouse deps, remove failure for anyhow - udpate tesseract-clickhouse tests to use tokio::test - update tesseract-clickhouse to async/await syntax After this, -core and -clickhouse should be working. Everything should be broken, neither server nor other backends are updated yet.
@@ -49,29 +32,18 @@ fn test_query() { | |||
// to ensure the SQL ingestion worked | |||
let pool = Pool::new(database_url()); | |||
let sql = "SELECT month_name FROM tesseract_webshop_time;"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@frabarz wanted to ask about this table in the test. It seems to be hardcoded, without any initialization. I'm not quite sure why the test needed here, seems like it's testing something very specific in a workflow.
@frabarz @alexandersimoes I came to a good stopping point to show some of the work. I had started from the outside in for a bit (working on tesseract-server), but came to the point where I needed to go inside-out. After the last two commits,
|
btw, if you want to check out the changes to just |
- use async-trait - use anyhow instead failure - use std::future - update to async/await syntax update to lastes async_mysql: - update rows_to_df - update query_result.reduce - use query_iter instead of prep_exec (I think this should be fine?)
- failure -> anyhow - use async-trait - update tokio (and some notes to remove it in future, or at least runtime initialization) e update bb8 - remove futures-state-stream Updated syntax to async/await Untested, but there's minimal changes it all compiles.
Ok, postgres and mysql backends updated. I think that tomorrow I'll try to update everything in the server except for logic layer. |
Thanks for all the updates @hwchen! I tried running the tests like you recommended and running Here's a stacktrace: |
Reading a bit closer is this because I'm missing some tables in my local clickhouse installation? Specifically Does running the tests also require a test db to be initd? |
That test is something I asked @frabarz about in another comment on the PR. I’d like to figure out if it’s specific to some deployment |
Sorry, didn't see the past comment. AFAIK, Jonathan wrote these tests. These are configured to run against a clickhouse database, stored in a docker container with a copy of the https://github.com/tesseract-olap/tesseract-example-app repository. It's just for CI. The travis config has the detail of the process in the |
Ah ok, I didn't see that other comment. |
Chipping away. Was wondering, does any instance of tesseract use the streaming option? (which allows streaming of http responses). If not, I'm going to comment it out for a bit and deal with it later. |
For now we are not using this release candidate anywhere anyway, so there is no problem with commenting out the streaming option for now. |
@alexandersimoes deps update is complete. I'd like to do some integration testing, please see the note I left you by email. After this PR is in, I'll probably start with updating the test suite. One test doesn't pass locally, I want to make sure it's integrated correctly. |
Updating dependencies.
Major changes include: