chore(sqllab): Cleanup /tables/... endpoint#21284
Conversation
880dcb9 to
0baba51
Compare
b7be637 to
88367ff
Compare
ktmud
left a comment
There was a problem hiding this comment.
LGTM with a couple of questions
There was a problem hiding this comment.
Should the default be false? I think enabling multi schema fetch for all data sources is a bigger risk than disabling it for all.
There was a problem hiding this comment.
Since we are here, can we change force_refresh to a search params, too?
f13fd45 to
15f0179
Compare
Codecov Report
@@ Coverage Diff @@
## master #21284 +/- ##
=======================================
Coverage 66.55% 66.56%
=======================================
Files 1791 1791
Lines 68591 68497 -94
Branches 7319 7319
=======================================
- Hits 45651 45595 -56
+ Misses 21049 21011 -38
Partials 1891 1891
Flags with carried forward coverage won't be shown. Click here to find out more.
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
15f0179 to
3dd8fc8
Compare
|
@john-bodley please mark |
|
Hi @john-bodley, the PR reproduces this |
This reverts commit eac6fdc.
|
Just saw your fix. |
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com> (cherry picked from commit 8c16806)
)" This reverts commit 8c16806.
|
Apologies this PR did not adhere to SIP-15, i.e., the database migration should have been added in a future PR and included in the subsequent major release. |
|
@john-bodley someone was just pointing out that this PR broke a sync job. I think technically since this changes the endpoints/URIs of the API, this would be considered a breaking change, namely as things move from to I'm not sure if there's a way to patch this to be non-breaking at this point, but maybe adding a breaking change notice to |
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>

SUMMARY
The
/tables/...endpoint was augmented (#1466) when SQL Lab supported:SEE TABLE SCHEMAfunctioned (if configured) without having a schema specified.however the endpoint is now always called with a specified schema and filtering (substring table name matching) is never invoked.
Given these observations this PR refactors the endpoint—by removing unnecessary logic and providing a more performant ORM query given that all table/views are from a specific schema—and reduces the size of the response payload to improve performance (especially for schemas with a large number of tables/views).
Additionally as a byproduct of the refactor this PR removes:
get_all_table_names_in_databaseandget_all_view_names_in_databaseutility methods as well as theget_all_datasource_namesDB engine spec method.dbs.allow_multi_schema_metadata_fetchcolumnMAX_TABLE_NAMESconfig key, i.e., the logic (which potentially was wrong) only capped the number of tables/views if and only if a filter was defined, however this was never invoked.superset update-datasources-cacheCLI command.BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
TESTING INSTRUCTIONS
Updated unit tests and manually tested.
ADDITIONAL INFORMATION
cc: @justinpark