Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
7085b546
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
7085b546
编写于
1月 07, 2020
作者:
R
Rafael França
提交者:
GitHub
1月 07, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #38131 from kddeisz/nulls
Allow #nulls_first and #nulls_last in PostgreSQL
上级
114b261f
66b19b5d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
45 addition
and
1 deletion
+45
-1
activerecord/lib/arel/nodes.rb
activerecord/lib/arel/nodes.rb
+1
-0
activerecord/lib/arel/nodes/ordering.rb
activerecord/lib/arel/nodes/ordering.rb
+18
-0
activerecord/lib/arel/nodes/unary.rb
activerecord/lib/arel/nodes/unary.rb
+0
-1
activerecord/lib/arel/visitors/postgresql.rb
activerecord/lib/arel/visitors/postgresql.rb
+10
-0
activerecord/test/cases/arel/visitors/postgres_test.rb
activerecord/test/cases/arel/visitors/postgres_test.rb
+16
-0
未找到文件。
activerecord/lib/arel/nodes.rb
浏览文件 @
7085b546
...
...
@@ -18,6 +18,7 @@
# unary
require
"arel/nodes/unary"
require
"arel/nodes/grouping"
require
"arel/nodes/ordering"
require
"arel/nodes/ascending"
require
"arel/nodes/descending"
require
"arel/nodes/unqualified_column"
...
...
activerecord/lib/arel/nodes/ordering.rb
0 → 100644
浏览文件 @
7085b546
# frozen_string_literal: true
module
Arel
# :nodoc: all
module
Nodes
class
Ordering
<
Unary
def
nulls_first
NullsFirst
.
new
(
self
)
end
def
nulls_last
NullsLast
.
new
(
self
)
end
end
class
NullsFirst
<
Ordering
;
end
class
NullsLast
<
Ordering
;
end
end
end
activerecord/lib/arel/nodes/unary.rb
浏览文件 @
7085b546
...
...
@@ -36,7 +36,6 @@ def eql?(other)
Offset
On
OptimizerHints
Ordering
RollUp
}
.
each
do
|
name
|
const_set
(
name
,
Class
.
new
(
Unary
))
...
...
activerecord/lib/arel/visitors/postgresql.rb
浏览文件 @
7085b546
...
...
@@ -82,6 +82,16 @@ def visit_Arel_Nodes_IsDistinctFrom(o, collector)
visit
o
.
right
,
collector
end
def
visit_Arel_Nodes_NullsFirst
(
o
,
collector
)
visit
o
.
expr
,
collector
collector
<<
" NULLS FIRST"
end
def
visit_Arel_Nodes_NullsLast
(
o
,
collector
)
visit
o
.
expr
,
collector
collector
<<
" NULLS LAST"
end
# Used by Lateral visitor to enclose select queries in parentheses
def
grouping_parentheses
(
o
,
collector
)
if
o
.
expr
.
is_a?
Nodes
::
SelectStatement
...
...
activerecord/test/cases/arel/visitors/postgres_test.rb
浏览文件 @
7085b546
...
...
@@ -315,6 +315,22 @@ def compile(node)
_
(
sql
).
must_be_like
%{ "users"."name" IS DISTINCT FROM NULL }
end
end
describe
"Nodes::Ordering"
do
it
"should handle nulls first"
do
test
=
Table
.
new
(
:users
)[
:first_name
].
desc
.
nulls_first
_
(
compile
(
test
)).
must_be_like
%{
"users"."first_name" DESC NULLS FIRST
}
end
it
"should handle nulls last"
do
test
=
Table
.
new
(
:users
)[
:first_name
].
desc
.
nulls_last
_
(
compile
(
test
)).
must_be_like
%{
"users"."first_name" DESC NULLS LAST
}
end
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录