Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Questdb
提交
7057eb41
Q
Questdb
项目概览
jobily
/
Questdb
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
Questdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7057eb41
编写于
10月 30, 2019
作者:
V
Vlad Ilyushchenko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
GRIFFIN: = (CHAR,CHAR) implementation
上级
5c739ab0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
103 addition
and
0 deletion
+103
-0
core/src/main/java/io/questdb/griffin/engine/functions/eq/EqCharCharFunctionFactory.java
...riffin/engine/functions/eq/EqCharCharFunctionFactory.java
+79
-0
core/src/main/resources/META-INF/services/io.questdb.griffin.FunctionFactory
...rces/META-INF/services/io.questdb.griffin.FunctionFactory
+24
-0
未找到文件。
core/src/main/java/io/questdb/griffin/engine/functions/eq/EqCharCharFunctionFactory.java
0 → 100644
浏览文件 @
7057eb41
/*******************************************************************************
* ___ _ ____ ____
* / _ \ _ _ ___ ___| |_| _ \| __ )
* | | | | | | |/ _ \/ __| __| | | | _ \
* | |_| | |_| | __/\__ \ |_| |_| | |_) |
* \__\_\\__,_|\___||___/\__|____/|____/
*
* Copyright (C) 2014-2019 Appsicle
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
******************************************************************************/
package
io.questdb.griffin.engine.functions.eq
;
import
io.questdb.cairo.CairoConfiguration
;
import
io.questdb.cairo.sql.Function
;
import
io.questdb.cairo.sql.Record
;
import
io.questdb.griffin.FunctionFactory
;
import
io.questdb.griffin.engine.functions.BinaryFunction
;
import
io.questdb.griffin.engine.functions.BooleanFunction
;
import
io.questdb.std.ObjList
;
public
class
EqCharCharFunctionFactory
implements
FunctionFactory
{
@Override
public
String
getSignature
()
{
return
"=(AA)"
;
}
@Override
public
Function
newInstance
(
ObjList
<
Function
>
args
,
int
position
,
CairoConfiguration
configuration
)
{
// there are optimisation opportunities
// 1. when one of args is constant null comparison can boil down to checking
// length of non-constant (must be -1)
// 2. when one of arguments is constant, save method call and use a field
Function
chrFunc1
=
args
.
getQuick
(
0
);
Function
chrFunc2
=
args
.
getQuick
(
1
);
return
new
Func
(
position
,
chrFunc1
,
chrFunc2
);
}
private
static
class
Func
extends
BooleanFunction
implements
BinaryFunction
{
private
final
Function
chrFunc1
;
private
final
Function
chrFunc2
;
public
Func
(
int
position
,
Function
chrFunc1
,
Function
chrFunc2
)
{
super
(
position
);
this
.
chrFunc1
=
chrFunc1
;
this
.
chrFunc2
=
chrFunc2
;
}
@Override
public
Function
getLeft
()
{
return
chrFunc1
;
}
@Override
public
Function
getRight
()
{
return
chrFunc2
;
}
@Override
public
boolean
getBool
(
Record
rec
)
{
return
chrFunc1
.
getChar
(
rec
)
==
chrFunc2
.
getChar
(
rec
);
}
}
}
core/src/main/resources/META-INF/services/io.questdb.griffin.FunctionFactory
浏览文件 @
7057eb41
...
...
@@ -21,6 +21,29 @@
#
################################################################################
################################################################################
# ___ _ ____ ____
# / _ \ _ _ ___ ___| |_| _ \| __ )
# | | | | | | |/ _ \/ __| __| | | | _ \
# | |_| | |_| | __/\__ \ |_| |_| | |_) |
# \__\_\\__,_|\___||___/\__|____/|____/
#
# Copyright (C) 2014-2019 Appsicle
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
# logical operations
io.questdb.griffin.engine.functions.bool.OrFunctionFactory
io.questdb.griffin.engine.functions.bool.AndFunctionFactory
...
...
@@ -35,6 +58,7 @@ io.questdb.griffin.engine.functions.eq.EqLong256FunctionFactory
io.questdb.griffin.engine.functions.eq.EqStrCharFunctionFactory
io.questdb.griffin.engine.functions.eq.EqSymStrFunctionFactory
io.questdb.griffin.engine.functions.eq.EqSymCharFunctionFactory
io.questdb.griffin.engine.functions.eq.EqCharCharFunctionFactory
# '<>'
io.questdb.griffin.engine.functions.eq.NotEqStrFunctionFactory
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录