Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一剑流云
dbeaver
提交
0402c616
D
dbeaver
项目概览
一剑流云
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
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,发现更多精彩内容 >>
提交
0402c616
编写于
4月 02, 2016
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#324 PG 8.x - index keys read fix
上级
ccc508e1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
12 deletion
+19
-12
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/PostgreUtils.java
...ql/src/org/jkiss/dbeaver/ext/postgresql/PostgreUtils.java
+12
-4
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreProcedure.java
.../jkiss/dbeaver/ext/postgresql/model/PostgreProcedure.java
+1
-1
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreSchema.java
...org/jkiss/dbeaver/ext/postgresql/model/PostgreSchema.java
+6
-7
未找到文件。
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/PostgreUtils.java
浏览文件 @
0402c616
...
...
@@ -132,7 +132,7 @@ public class PostgreUtils {
return
null
;
}
public
static
L
ong
[]
getIdVector
(
Object
pgObject
)
{
public
static
l
ong
[]
getIdVector
(
Object
pgObject
)
{
Object
pgVector
=
extractValue
(
pgObject
);
if
(
pgVector
==
null
)
{
return
null
;
...
...
@@ -143,13 +143,20 @@ public class PostgreUtils {
return
null
;
}
final
String
[]
strings
=
vector
.
split
(
" "
);
final
Long
[]
ids
=
new
L
ong
[
strings
.
length
];
final
long
[]
ids
=
new
l
ong
[
strings
.
length
];
for
(
int
i
=
0
;
i
<
strings
.
length
;
i
++)
{
ids
[
i
]
=
new
Long
(
strings
[
i
]);
ids
[
i
]
=
Long
.
parse
Long
(
strings
[
i
]);
}
return
ids
;
}
else
if
(
pgVector
instanceof
long
[])
{
return
(
long
[])
pgVector
;
}
else
if
(
pgVector
instanceof
Long
[])
{
return
(
Long
[])
pgVector
;
Long
[]
objVector
=
(
Long
[])
pgVector
;
long
[]
result
=
new
long
[
objVector
.
length
];
for
(
int
i
=
0
;
i
<
objVector
.
length
;
i
++)
{
result
[
i
]
=
objVector
[
i
];
}
return
result
;
}
else
{
throw
new
IllegalArgumentException
(
"Unsupported vector type: "
+
pgVector
.
getClass
().
getName
());
}
...
...
@@ -394,4 +401,5 @@ public class PostgreUtils {
}
dbStat
.
setObject
(
index
,
arrayString
.
toString
(),
Types
.
OTHER
);
}
}
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreProcedure.java
浏览文件 @
0402c616
...
...
@@ -150,7 +150,7 @@ public class PostgreProcedure extends AbstractProcedure<PostgreDataSource, Postg
}
}
else
{
L
ong
[]
inArgTypes
=
PostgreUtils
.
getIdVector
(
JDBCUtils
.
safeGetObject
(
dbResult
,
"proargtypes"
));
l
ong
[]
inArgTypes
=
PostgreUtils
.
getIdVector
(
JDBCUtils
.
safeGetObject
(
dbResult
,
"proargtypes"
));
if
(!
ArrayUtils
.
isEmpty
(
inArgTypes
))
{
for
(
int
i
=
0
;
i
<
inArgTypes
.
length
;
i
++)
{
Long
paramType
=
inArgTypes
[
i
];
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreSchema.java
浏览文件 @
0402c616
...
...
@@ -586,7 +586,7 @@ public class PostgreSchema implements DBSSchema, DBPSaveableObject, DBPRefreshab
{
StringBuilder
sql
=
new
StringBuilder
();
sql
.
append
(
"SELECT i.*,i.indkey
::int[]
as keys,c.relname,c.relnamespace,c.relam,tc.relname as tabrelname,dsc.description"
+
"SELECT i.*,i.indkey as keys,c.relname,c.relnamespace,c.relam,tc.relname as tabrelname,dsc.description"
+
"\nFROM pg_catalog.pg_index i"
+
"\nINNER JOIN pg_catalog.pg_class c ON c.oid=i.indexrelid"
+
"\nINNER JOIN pg_catalog.pg_class tc ON tc.oid=i.indrelid"
+
...
...
@@ -627,17 +627,16 @@ public class PostgreSchema implements DBSSchema, DBPSaveableObject, DBPRefreshab
PostgreTableBase
parent
,
PostgreIndex
object
,
JDBCResultSet
dbResult
)
throws
SQLException
,
DBException
{
Object
keyNumbers
=
JDBCUtils
.
safeGetArray
(
dbResult
,
"keys"
);
long
[]
keyNumbers
=
PostgreUtils
.
getIdVector
(
JDBCUtils
.
safeGetObject
(
dbResult
,
"keys"
)
);
if
(
keyNumbers
==
null
)
{
return
null
;
}
List
<
PostgreTableColumn
>
attributes
=
parent
.
getAttributes
(
dbResult
.
getSession
().
getProgressMonitor
());
assert
attributes
!=
null
;
int
colCount
=
Array
.
getLength
(
keyNumbers
);
PostgreIndexColumn
[]
result
=
new
PostgreIndexColumn
[
colCount
];
for
(
int
i
=
0
;
i
<
colCount
;
i
++)
{
Number
colNumber
=
(
Number
)
Array
.
get
(
keyNumbers
,
i
);
final
PostgreAttribute
attr
=
PostgreUtils
.
getAttributeByNum
(
attributes
,
colNumber
.
intValue
());
PostgreIndexColumn
[]
result
=
new
PostgreIndexColumn
[
keyNumbers
.
length
];
for
(
int
i
=
0
;
i
<
keyNumbers
.
length
;
i
++)
{
long
colNumber
=
keyNumbers
[
i
];
final
PostgreAttribute
attr
=
PostgreUtils
.
getAttributeByNum
(
attributes
,
(
int
)
colNumber
);
if
(
attr
==
null
)
{
log
.
warn
(
"Bad index attribute index: "
+
colNumber
);
continue
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录