* feat: helper functions for RLS
* Add function to inject RLS
* Add UNION tests
* Add tests for schema
* Add more tests; cleanup
* has_table_query via tree traversal
* Wrap existing predicate in parenthesis
* Clean up logic
* Improve table matching
* SQL-TOP Fix For Database Engines
MSSQL is not supporting LIMIT syntax in SQLs. For limiting the rows, MSSQL having a different keyword TOP. Added fixes for handling the TOP and LIMIT clauses based on the database engines.
* Teradata code for top clause handling removed from teradata.py
Teradata code for top clause handling removed from teradata.py file, since we added generic section in base engine for the same.
* Changes to handle CTE along with TOP in complex SQLs
Added changes to handle TOP command in CTEs, for DB Engines which are not supporting inline CTEs.
* Test cases for TOP unit testing in MSSQL
Added multiple unit test cases for MSSQL top command handling and also along with CTEs
* Corrected the select_keywords name key in basengine
Corrected the select_keywords name key in basengine
* Changes based on as per review.
made the required corrections based on code review to keep good code readability and code cleanliness.
* Review changes to correct lint and typo issues
Made the changes according to the review comments.
* fix linting errors
* fix teradata tests
* add coverage
* lint
* Code cleanliness
Moved the top/limit flag check from sql_lab to core.
* Changed for code cleanliness
Changes for keeping code cleanliness
* Corrected lint issue
Corrected lint issue.
* Code cleanliness
Code cleanliness
Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
* first attempts at dynamic plugin loading
* dynamic import working for explore
* memoize appropriately
* add a backend for dynamic plugins
* hack at getting dynamic plugins working with dashboards
* more work on making it work, + feature flag
* lint
* actions to fix explore state when plugins load
* handle dynamic control panel, functionify ExploreViewContainer
* fix: rearrange migrations branch
* fix: name and key as strings with length 50
* bundle url length 2000
* bundle url to text
for some reason not supported on my sql
* fix: too long varchart
* fix: pre-commit typing
* fix: licenses
* fix: add slice container was not initing feature flags
* fix: undo linting issue
* fix: adjust down revision again
* fix: adjust down revision again
* isort
* pylint
* god damn linters
* remove unnecessary(?) loading message
* only log non-standard errors
* testing
* python is terrible
* see above commit message
* fix imports in DynamicPluginProvider
* fix
* shift migration forward
* lint
* fix form data calculations to handle missing control config
* temp commit - waiting for superset-ui changes and crud fixes
* remove unnecessary todo
* use new superset-ui shared module function
* fetch the plugins instead of hardcoding the test one
* migration sort
* remove duplicated import statement
* format
* try moving the import 🙄
* copy
* fix frontend tests
* safe access
* comment out dead code
* isort
* disable pylint on necessary lines
* use @superset-ui/logging instead of console
* remove temp code
* rearrange some code
* try triggering mouseover in cypress before click
* use loading spinner instead of text
* trying to fix cypress
* attempt cypress fix
* customize permissions
* update package lock
* only admins can write to plugins by default
* better copy
* disable flaky tests
* use makeApi
* flaky tests
* cleanup code
* flaaaakkkyyyyyy
* dry
Co-authored-by: amitNielsen <amit.miran@nielsen.com>
* Support SET & SHOW commands as read only SQL commands
* Move is_readonly definition into the engine spec
* Rename & use super()
Co-authored-by: bogdan kyryliuk <bogdankyryliuk@dropbox.com>
* feat: add support for alerts
* Add ModelViews
* First pass at adding scheduled Alert support
* Fix syntax errors
* Add log_retention and database to model
* Improving screenshots
* Still refactoring screenshots
* Pass down thumb_size properly
* Progress on screenshot endpoint
* Add alerts.last_eval_dttm and alert query logic
* Getting ready to split compute_screenshot and screenshot/{SHA}
* split the endpoints
* Improving alerting loop
* empty methods
* Add CLI command 'superset alert' that runs a sched loop
* Getting things to work
* email delivery
* A working email\!
* Add feature flag
* Add some description_columns to AlertModelView
* Little tweaks
* Use database.get_df, eval cells for truthiness
* Migrate thumbnail/screenshot functions to use new arg pattern
* Addressing PR feedback
* Update alerts DB migration down_revision
* Resolve _deliver_email arg conflict
* Make mypy happy
* Make isort happy
* Make pylint happy
Co-authored-by: Rob DiCiuccio <rob.diciuccio@gmail.com>