* add username to extra cache keys when impersonation is enabled.
* don't put effective_user in extra_cache_key
* get_impersonation_key method in engine_spec class to construct an impersonation key
* pass datasource when creating query objects
* adding an impersonation key when construction cache key
* add feature flag to control caching per user
* revert changes
* make precommit and pylint happy
* pass a User instance
* remove unnecessary import
* fix(20428)-Address-Presto/Trino-Poll-Issue-Refacto
r
Update linter
* Update to only use BaseEngineSpec handle_cursor
* Fix CI
Co-authored-by: John Bodley <4567245+john-bodley@users.noreply.github.com>
* fix: always create parameter json field
* ensure validation for empty catalog
* check engine instead of name
* put validation in be
* fix test
* fix test
* remove test
* feat: deprecate /superset/extra_table_metadata migrate to api v1
* use can_read to table_extra_metadata
* troubleshoot sqlite
* fix test
* fix test
* fix test
* fix frontend test on sqllab
* Add custom timestamp type for literal casting for presto timestamps
* Remove typo in comment
* Use process_bind_params as in sqla docs
* Uncommit local superset config
* Add DATE literal casting
* Fix lint errors and change var name
* Get rid of col_type and whitespace
* Fix linting
* Fix arg type
* Fix isort lint error
* ran black and isort locally..
* accidentally removed EOF
* Dont need eof
* Use newer string formatting style from comments
Co-authored-by: John Bodley <4567245+john-bodley@users.noreply.github.com>
* Trigger notification
* Trigger notification
Co-authored-by: Kenny Kwan <kennykwan@salesforce.com>
Co-authored-by: John Bodley <4567245+john-bodley@users.noreply.github.com>
* Update drill+sadrill to specify an SA URL parm of "impersonation_target".
Sqlalchemy-drill is being updated to support impersonation with the
drill+sadrill driver, where previously it did not. The way that callers
should specify impersonation matches that for the drill+jdbc driver in that
a SA URL parameter of impersonation_target should be set to the username
of the user to be impersonated, while the stadard SA username and password
should be those of the proxy user.
* Remove lint.
* Address review comments.
* Use idiomatic pytest to test for a raised exception.
* Fix import statement order in drill.py.
* + duckdb support
needs the forked version of [duckdb-engine](https://github.com/alitrack/duckdb_engine)
* Update duckdb.py
update _time_grain_expressions
* removed superfluous get_all_datasource_names def in duckdb engine spec
* added exception handling for duckdb single-threaded RuntimeError
* fixed linter blips and other stylistic cleanup in duckdb.py
* one last round of linter tweaks in test_connection.py for duckdb support
Co-authored-by: Steven Lee <admin@alitrack.com>
Co-authored-by: Richard Whaling <richardwhaling@Richards-MacBook-Pro.local>
* Fix the time grain expressions for Spark >= 2.3.0
Spark removed date format string 'u' in Spark 3.0. Switch to using date_trunc which has been around since 2.3
* Review: Pull out time_grain_expressoins into its own thing
* 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>
* Fix for handling regular CTE queries with MSSQL,#8074
* Moved the get_cte_query function from mssql.py to base.py for using irrespetcive of dbengine
* Fix for handling regular CTE queries with MSSQL,#8074
* Moved the get_cte_query function from mssql.py to base.py for using irrespetcive of dbengine
* Unit test added for the db engine CTE SQL parsing.
Unit test added for the db engine CTE SQL parsing. Removed additional spaces from the CTE parsing SQL generation.
* implement in sqla model
* lint + cleanup
Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
* Add two Kusto engine specs: KQL and SQL. Some minor changes in core code to support Kusto engine specs.
* Remove redundant imports and logging.
* docs: Kusto sqlalchemy docs
* fix: Fix mypy and linting errors
* fix: Handle Black vs Pylint checks
* fix: isort problem
* refactor: Merge kustosql and kustokql in the single kusto module
* test: Add tests for Kusto db spec
* feat: Schema override does not require in KQL anymore
* Removed redundant imports.
* Added ".show" queries to readonly query determination.
* Fixed some bugs.
Added tests for convert_dttm.
* Fixed major sqlalchemy-kusto version.
* Fixed by isort.
Co-authored-by: Eugene Bikkinin <xnegxneg@gmail.com>
Co-authored-by: k.tomak <k.tomak@dodopizza.com>
Co-authored-by: Eugene Bikkinin <e.bikkinin@dodopizza.com>
* Fix _latest_partition_from_df in HiveEngineSpec
* Add test HiveEngineSpec._latest_partition_from_df
* Fix formatting to pass black
Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
* "P1W" grain should respect DATEFIRST setting in MS SQL Server
* Added "week_start_sunday" and "week_start_monday" grains support. Adjusted the "week" grain for better backward compatibility with MS SQL 2005/2008.
* Stylistic and linter-requested changes
* fix test
Co-authored-by: Valeriy Aleksashkin <v.aleksashkin@gmail.com>
Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>