Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_22812535
incubator-superset
提交
9d70c348
I
incubator-superset
项目概览
qq_22812535
/
incubator-superset
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-superset
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
9d70c348
编写于
1月 10, 2019
作者:
T
timifasubaa
提交者:
GitHub
1月 10, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pass source to db api mutator (#6497)
上级
a2ce9974
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
20 addition
and
4 deletion
+20
-4
superset/models/core.py
superset/models/core.py
+12
-4
superset/sql_lab.py
superset/sql_lab.py
+2
-0
superset/utils/core.py
superset/utils/core.py
+6
-0
未找到文件。
superset/models/core.py
浏览文件 @
9d70c348
...
...
@@ -757,7 +757,7 @@ class Database(Model, AuditMixinNullable, ImportMixin):
@
utils
.
memoized
(
watch
=
(
'impersonate_user'
,
'sqlalchemy_uri_decrypted'
,
'extra'
))
def
get_sqla_engine
(
self
,
schema
=
None
,
nullpool
=
True
,
user_name
=
None
):
def
get_sqla_engine
(
self
,
schema
=
None
,
nullpool
=
True
,
user_name
=
None
,
source
=
None
):
extra
=
self
.
get_extra
()
url
=
make_url
(
self
.
sqlalchemy_uri_decrypted
)
url
=
self
.
db_engine_spec
.
adjust_database_uri
(
url
,
schema
)
...
...
@@ -790,7 +790,7 @@ class Database(Model, AuditMixinNullable, ImportMixin):
DB_CONNECTION_MUTATOR
=
config
.
get
(
'DB_CONNECTION_MUTATOR'
)
if
DB_CONNECTION_MUTATOR
:
url
,
params
=
DB_CONNECTION_MUTATOR
(
url
,
params
,
effective_username
,
security_manager
)
url
,
params
,
effective_username
,
security_manager
,
source
)
return
create_engine
(
url
,
**
params
)
def
get_reserved_words
(
self
):
...
...
@@ -801,7 +801,14 @@ class Database(Model, AuditMixinNullable, ImportMixin):
def
get_df
(
self
,
sql
,
schema
):
sqls
=
[
str
(
s
).
strip
().
strip
(
';'
)
for
s
in
sqlparse
.
parse
(
sql
)]
engine
=
self
.
get_sqla_engine
(
schema
=
schema
)
source_key
=
None
if
request
and
request
.
referrer
:
if
'/superset/dashboard/'
in
request
.
referrer
:
source_key
=
'dashboard'
elif
'/superset/explore/'
in
request
.
referrer
:
source_key
=
'chart'
engine
=
self
.
get_sqla_engine
(
schema
=
schema
,
source
=
utils
.
sources
.
get
(
source_key
,
None
))
username
=
utils
.
get_username
()
def
needs_conversion
(
df_series
):
...
...
@@ -860,7 +867,8 @@ class Database(Model, AuditMixinNullable, ImportMixin):
self
,
table_name
,
schema
=
None
,
limit
=
100
,
show_cols
=
False
,
indent
=
True
,
latest_partition
=
False
,
cols
=
None
):
"""Generates a ``select *`` statement in the proper dialect"""
eng
=
self
.
get_sqla_engine
(
schema
=
schema
)
eng
=
self
.
get_sqla_engine
(
schema
=
schema
,
source
=
utils
.
sources
.
get
(
'sql_lab'
,
None
))
return
self
.
db_engine_spec
.
select_star
(
self
,
table_name
,
schema
=
schema
,
engine
=
eng
,
limit
=
limit
,
show_cols
=
show_cols
,
...
...
superset/sql_lab.py
浏览文件 @
9d70c348
...
...
@@ -20,6 +20,7 @@ from superset.tasks.celery_app import app as celery_app
from
superset.utils.core
import
(
json_iso_dttm_ser
,
QueryStatus
,
sources
,
zlib_compress
,
)
from
superset.utils.dates
import
now_as_float
...
...
@@ -226,6 +227,7 @@ def execute_sql_statements(
schema
=
query
.
schema
,
nullpool
=
True
,
user_name
=
user_name
,
source
=
sources
.
get
(
'sql_lab'
,
None
),
)
# Sharing a single connection and cursor across the
# execution of all statements (if many)
...
...
superset/utils/core.py
浏览文件 @
9d70c348
...
...
@@ -54,6 +54,12 @@ ADHOC_METRIC_EXPRESSION_TYPES = {
JS_MAX_INTEGER
=
9007199254740991
# Largest int Java Script can handle 2^53-1
sources
=
{
'chart'
:
0
,
'dashboard'
:
1
,
'sql_lab'
:
2
,
}
def
flasher
(
msg
,
severity
=
None
):
"""Flask's flash if available, logging call if not"""
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录