WITH RECURSIVE我是PostgreSQL 的新手。我有一个相当标准的递归查询,它遵循邻接列表。如果我有,例如:
1 -> 2
2 -> 3
3 -> 4
3 -> 5
5 -> 6
Run Code Online (Sandbox Code Playgroud)
它产生:
1
1,2
1,2,3
1,2,3,4
1,2,3,5
1,2,3,5,6
Run Code Online (Sandbox Code Playgroud)
我想要的是:
1,2,3,4
1,2,3,5,6
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在 Postgres 中做到这一点。这似乎是“选择最长的路径”或“选择不包含在另一条路径中的路径”。我也许可以看到如何通过连接本身来做到这一点,但这似乎效率很低。
一个示例查询是:
WITH RECURSIVE search_graph(id, link, data, depth, path, cycle) AS (
SELECT g.id, g.link, g.data, 1, ARRAY[g.id], false
FROM graph g
UNION ALL
SELECT g.id, g.link, g.data, sg.depth + 1, path || g.id, g.id = ANY(path)
FROM graph g, search_graph sg
WHERE g.id = sg.link AND NOT cycle …Run Code Online (Sandbox Code Playgroud) sql postgresql directed-graph recursive-query common-table-expression
我正在尝试创建IAM权限,因此jgit可以访问我的一个存储桶中的目录.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::<mybucket>/<mydir>/*"]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::<mybucket>/<mydir>"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
不幸的是它会抛出一个错误.我不确定还有什么其他允许行动才能实现.(在IAM有点新).
Caused by: java.io.IOException: Reading of '<mydir>/packed-refs' failed: 403 Forbidden
at org.eclipse.jgit.transport.AmazonS3.error(AmazonS3.java:519)
at org.eclipse.jgit.transport.AmazonS3.get(AmazonS3.java:289)
at org.eclipse.jgit.transport.TransportAmazonS3$DatabaseS3.open(TransportAmazonS3.java:284)
at org.eclipse.jgit.transport.WalkRemoteObjectDatabase.openReader(WalkRemoteObjectDatabase.java:365)
at org.eclipse.jgit.transport.WalkRemoteObjectDatabase.readPackedRefs(WalkRemoteObjectDatabase.java:423)
... 13 more
Caused by: java.io.IOException:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>...</RequestId><HostId>...</HostId></Error>
at org.eclipse.jgit.transport.AmazonS3.error(AmazonS3.java:538)
... 17 more
Run Code Online (Sandbox Code Playgroud)
403 Forbidden显然是错误但不确定需要添加到IAM中的内容.有任何想法吗?
[本来应该补充说,我在政策模拟器中尝试了这个,它似乎在那里工作.]
我一定想念一些愚蠢的东西。我的模板中有一个{%url%},该操作来自另一个应用程序。它不起作用,但是我不知道其他应用程序使用视图功能是否有所不同,或者我只是在做傻事。
呼叫/模板/呼叫/file.html
<form action="{% url 'upload_image' %}"></form>
Run Code Online (Sandbox Code Playgroud)
图片/ urls.py
from .views import PictureList, PictureCreate, PictureDetail, PictureUpdate, PictureDelete, upload_image
...
url(r'^upload_image/$', upload_image, name='upload_image'),
...
Run Code Online (Sandbox Code Playgroud)
图片/ view.py
def upload_image( request ):
print 'IN IMAGE UPLOAD'
print request
Run Code Online (Sandbox Code Playgroud)
我得到的只是:
NoReverseMatch at /call/4/
Reverse for 'upload_image' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Run Code Online (Sandbox Code Playgroud)