Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
58f8e244
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
58f8e244
编写于
4月 14, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#3206 PostgreSQL function DDL: include permissions. Nested SQL editors init fix (do not reinit)
上级
8a93c207
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
55 addition
and
34 deletion
+55
-34
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java
...src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java
+7
-25
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/PostgreUtils.java
...ql/src/org/jkiss/dbeaver/ext/postgresql/PostgreUtils.java
+6
-1
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/edit/PostgreCommandGrantPrivilege.java
...ver/ext/postgresql/edit/PostgreCommandGrantPrivilege.java
+1
-1
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreProcedure.java
.../jkiss/dbeaver/ext/postgresql/model/PostgreProcedure.java
+26
-3
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/editors/PostgreSourceViewEditor.java
...er/ext/postgresql/ui/editors/PostgreSourceViewEditor.java
+15
-4
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java
浏览文件 @
58f8e244
...
...
@@ -39,7 +39,6 @@ import org.eclipse.swt.events.FocusListener;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.IEditorSite
;
import
org.eclipse.ui.PartInitException
;
import
org.eclipse.ui.part.MultiPageEditorSite
;
import
org.eclipse.ui.texteditor.IDocumentProvider
;
import
org.jkiss.dbeaver.DBException
;
...
...
@@ -157,12 +156,7 @@ public abstract class SQLEditorNested<T extends DBSObject>
@Override
public
void
doSave
(
final
IProgressMonitor
progressMonitor
)
{
DBeaverUI
.
syncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
SQLEditorNested
.
super
.
doSave
(
progressMonitor
);
}
});
DBeaverUI
.
syncExec
(()
->
SQLEditorNested
.
super
.
doSave
(
progressMonitor
));
}
@Override
...
...
@@ -194,12 +188,7 @@ public abstract class SQLEditorNested<T extends DBSObject>
((
SQLEditorNested
.
ObjectDocumentProvider
)
documentProvider
).
sourceText
=
null
;
}
if
(
force
)
{
try
{
super
.
init
(
editorSite
,
getEditorInput
());
//setFocus();
}
catch
(
PartInitException
e
)
{
log
.
error
(
e
);
}
super
.
setInput
(
getEditorInput
());
}
reloadSyntaxRules
();
}
...
...
@@ -261,16 +250,9 @@ public abstract class SQLEditorNested<T extends DBSObject>
job
.
addJobChangeListener
(
new
JobChangeAdapter
()
{
@Override
public
void
done
(
IJobChangeEvent
event
)
{
DBeaverUI
.
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
SQLEditorNested
.
this
.
init
(
getEditorSite
(),
getEditorInput
());
SQLEditorNested
.
this
.
reloadSyntaxRules
();
}
catch
(
PartInitException
e
)
{
log
.
error
(
e
);
}
}
DBeaverUI
.
asyncExec
(()
->
{
SQLEditorNested
.
this
.
setInput
(
getEditorInput
());
SQLEditorNested
.
this
.
reloadSyntaxRules
();
});
super
.
done
(
event
);
}
...
...
@@ -359,7 +341,7 @@ public abstract class SQLEditorNested<T extends DBSObject>
private
class
EditorPageControl
extends
ProgressPageControl
{
public
EditorPageControl
(
Composite
parent
,
int
style
)
EditorPageControl
(
Composite
parent
,
int
style
)
{
super
(
parent
,
style
);
}
...
...
@@ -372,7 +354,7 @@ public abstract class SQLEditorNested<T extends DBSObject>
public
class
ViewLogAction
extends
Action
{
public
ViewLogAction
()
ViewLogAction
()
{
super
(
"View compile log"
,
DBeaverIcons
.
getImageDescriptor
(
UIIcon
.
COMPILE_LOG
));
//$NON-NLS-2$
}
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/PostgreUtils.java
浏览文件 @
58f8e244
...
...
@@ -460,7 +460,12 @@ public class PostgreUtils {
// Pack to permission list
List
<
PostgrePermission
>
result
=
new
ArrayList
<>(
privs
.
size
());
for
(
List
<
PostgrePrivilege
>
priv
:
privs
.
values
())
{
result
.
add
(
new
PostgreObjectPermission
(
owner
,
priv
.
get
(
0
).
getGrantee
(),
priv
));
String
grantee
=
priv
.
get
(
0
).
getGrantee
();
// Bug in PG? Always return proc owner as separate grant but owner is in upper case (e.g. PUBLIC). Weird.
if
(
owner
instanceof
PostgreProcedure
&&
"PUBLIC"
.
equals
(
grantee
))
{
grantee
=
"public"
;
}
result
.
add
(
new
PostgreObjectPermission
(
owner
,
grantee
,
priv
));
}
Collections
.
sort
(
result
);
return
result
;
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/edit/PostgreCommandGrantPrivilege.java
浏览文件 @
58f8e244
...
...
@@ -71,7 +71,7 @@ public class PostgreCommandGrantPrivilege extends DBECommandAbstract<PostgrePerm
}
else
{
roleName
=
DBUtils
.
getQuotedIdentifier
(
object
.
getDataSource
(),
((
PostgreObjectPermission
)
permission
).
getGrantee
());
if
(
object
instanceof
PostgreProcedure
)
{
objectName
=
((
PostgreProcedure
)
object
).
get
UniqueNam
e
();
objectName
=
((
PostgreProcedure
)
object
).
get
FullQualifiedSignatur
e
();
}
else
{
objectName
=
DBUtils
.
getObjectFullName
(
object
,
DBPEvaluationContext
.
DDL
);
}
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreProcedure.java
浏览文件 @
58f8e244
...
...
@@ -20,14 +20,17 @@ import org.jkiss.code.NotNull;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.ext.postgresql.PostgreConstants
;
import
org.jkiss.dbeaver.ext.postgresql.PostgreUtils
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.model.edit.DBEPersistAction
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement
;
import
org.jkiss.dbeaver.model.exec.jdbc.JDBCSession
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils
;
import
org.jkiss.dbeaver.model.impl.struct.AbstractProcedure
;
import
org.jkiss.dbeaver.model.meta.Property
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.SQLUtils
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedureParameterKind
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType
;
...
...
@@ -260,6 +263,7 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
@Property
(
hidden
=
true
,
editable
=
true
,
updatable
=
true
,
order
=
-
1
)
public
String
getObjectDefinitionText
(
DBRProgressMonitor
monitor
,
Map
<
String
,
Object
>
options
)
throws
DBException
{
String
procDDL
;
if
(
getDataSource
().
isGreenplum
()
||
CommonUtils
.
getOption
(
options
,
OPTION_DEBUGGER_SOURCE
))
{
if
(
procSrc
==
null
)
{
try
(
JDBCSession
session
=
DBUtils
.
openMetaSession
(
monitor
,
getDataSource
(),
"Read procedure body"
))
{
...
...
@@ -268,7 +272,7 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
throw
new
DBException
(
"Error reading procedure body"
,
e
);
}
}
return
procSrc
;
procDDL
=
procSrc
;
}
else
{
if
(
body
==
null
)
{
if
(!
isPersisted
())
{
...
...
@@ -293,8 +297,23 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
}
}
}
procDDL
=
body
;
}
return
body
;
if
(
CommonUtils
.
getOption
(
options
,
PostgreConstants
.
OPTION_DDL_SHOW_PERMISSIONS
))
{
//
// ALTER FUNCTION public.__st_countagg_transfn(agg_count, raster, integer, boolean, double precision) OWNER TO postgres;
PostgreRole
owner
=
getOwner
(
monitor
);
if
(
owner
!=
null
)
{
procDDL
+=
"\n"
+
"ALTER FUNCTION "
+
getFullQualifiedSignature
()
+
" OWNER TO "
+
DBUtils
.
getQuotedIdentifier
(
owner
)
+
"\n"
;
}
List
<
DBEPersistAction
>
actions
=
new
ArrayList
<>();
PostgreUtils
.
getObjectGrantPermissionActions
(
monitor
,
this
,
actions
,
options
);
procDDL
+=
"\n"
+
SQLUtils
.
generateScript
(
getDataSource
(),
actions
.
toArray
(
new
DBEPersistAction
[
actions
.
size
()]),
false
);
}
return
procDDL
;
}
@Override
...
...
@@ -303,6 +322,10 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
body
=
sourceText
;
}
public
long
getOwnerId
()
{
return
ownerId
;
}
@Property
(
category
=
CAT_PROPS
,
order
=
10
)
public
PostgreRole
getOwner
(
DBRProgressMonitor
monitor
)
throws
DBException
{
return
PostgreUtils
.
getObjectById
(
monitor
,
container
.
getDatabase
().
roleCache
,
container
.
getDatabase
(),
ownerId
);
...
...
@@ -374,7 +397,7 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
}
private
String
makeOverloadedName
(
boolean
quote
)
{
String
selfName
=
quote
?
DBUtils
.
getQuotedIdentifier
(
this
)
:
name
;
String
selfName
=
(
quote
?
DBUtils
.
getQuotedIdentifier
(
this
)
:
name
)
;
if
(!
CommonUtils
.
isEmpty
(
params
))
{
StringBuilder
paramsSignature
=
new
StringBuilder
(
64
);
paramsSignature
.
append
(
"("
);
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/editors/PostgreSourceViewEditor.java
浏览文件 @
58f8e244
...
...
@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.postgresql.ui.editors;
import
java.util.Map
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.e4.core.services.events.IEventBroker
;
import
org.eclipse.jface.action.ControlContribution
;
import
org.eclipse.jface.action.IContributionManager
;
...
...
@@ -29,8 +30,10 @@ import org.eclipse.swt.widgets.Button;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Display
;
import
org.eclipse.ui.IEditorInput
;
import
org.jkiss.dbeaver.ext.postgresql.PostgreActivator
;
import
org.jkiss.dbeaver.ext.postgresql.PostgreConstants
;
import
org.jkiss.dbeaver.ext.postgresql.model.PostgrePermissionsOwner
;
import
org.jkiss.dbeaver.ext.postgresql.model.PostgreProcedure
;
import
org.jkiss.dbeaver.ext.postgresql.model.PostgreScriptObject
;
import
org.jkiss.dbeaver.ext.postgresql.model.PostgreTableBase
;
...
...
@@ -50,7 +53,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
private
static
final
String
TOPIC_DEBUGGER_SOURCE
=
GeneralUtils
.
encodeTopic
(
DBPScriptObject
.
OPTION_DEBUGGER_SOURCE
);
private
Button
omitHeaderCheck
;
private
boolean
showPermissions
=
true
;
private
Boolean
showPermissions
;
private
boolean
showColumnComments
=
true
;
private
IEventBroker
eventBroker
;
...
...
@@ -98,6 +101,11 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
return
false
;
}
public
boolean
getShowPermissions
()
{
// By default permissions enabled only for tables
return
showPermissions
!=
null
?
showPermissions
:
getSourceObject
()
instanceof
PostgreTableBase
;
}
@Override
protected
void
setSourceText
(
DBRProgressMonitor
monitor
,
String
sourceText
)
{
...
...
@@ -133,12 +141,13 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
return
omitHeaderCheck
;
}
});
}
else
if
(
sourceObject
instanceof
PostgreTableBase
)
{
}
if
(
sourceObject
instanceof
PostgrePermissionsOwner
)
{
contributionManager
.
add
(
new
Separator
());
contributionManager
.
add
(
new
ControlContribution
(
"PGDDLShowPermissions"
)
{
@Override
protected
Control
createControl
(
Composite
parent
)
{
Button
showPermissionsCheck
=
UIUtils
.
createCheckbox
(
parent
,
"Show permissions"
,
"Show permission grants"
,
true
,
0
);
Button
showPermissionsCheck
=
UIUtils
.
createCheckbox
(
parent
,
"Show permissions"
,
"Show permission grants"
,
getShowPermissions
()
,
0
);
showPermissionsCheck
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
...
...
@@ -149,6 +158,8 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
return
showPermissionsCheck
;
}
});
}
if
(
sourceObject
instanceof
PostgreTableBase
)
{
contributionManager
.
add
(
new
ControlContribution
(
"PGDDLShowColumnComments"
)
{
@Override
protected
Control
createControl
(
Composite
parent
)
{
...
...
@@ -184,7 +195,7 @@ public class PostgreSourceViewEditor extends SQLSourceViewer<PostgreScriptObject
Object
omitValue
=
getEditorInput
().
getAttribute
(
DBPScriptObject
.
OPTION_DEBUGGER_SOURCE
);
boolean
omitHeader
=
Boolean
.
parseBoolean
(
String
.
valueOf
(
omitValue
));
options
.
put
(
DBPScriptObject
.
OPTION_DEBUGGER_SOURCE
,
omitHeader
);
options
.
put
(
PostgreConstants
.
OPTION_DDL_SHOW_PERMISSIONS
,
showPermissions
);
options
.
put
(
PostgreConstants
.
OPTION_DDL_SHOW_PERMISSIONS
,
getShowPermissions
()
);
options
.
put
(
PostgreConstants
.
OPTION_DDL_SHOW_COLUMN_COMMENTS
,
showColumnComments
);
return
options
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录