Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
f373b500
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f373b500
编写于
10月 20, 2016
作者:
A
Alexey Milovidov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed error in 'firstSignificantSubdomain' function [#METR-20000].
上级
955783e4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
16 deletion
+50
-16
dbms/include/DB/Functions/FunctionsURL.h
dbms/include/DB/Functions/FunctionsURL.h
+16
-16
dbms/tests/queries/0_stateless/00381_first_significant_subdomain.reference
...s/0_stateless/00381_first_significant_subdomain.reference
+3
-0
dbms/tests/queries/0_stateless/00381_first_significant_subdomain.sql
...queries/0_stateless/00381_first_significant_subdomain.sql
+31
-0
未找到文件。
dbms/include/DB/Functions/FunctionsURL.h
浏览文件 @
f373b500
...
...
@@ -11,11 +11,11 @@
namespace
DB
{
/**
Функции работы с URL
.
*
Все функции работают не по RFC - то есть, максимально упрощены ради производительности
.
/**
URL processing functions
.
*
All functions are not strictly follow RFC, instead they are maximally simplified for performance reasons
.
*
*
Функции, извлекающие часть URL-а
.
*
Если в URL-е нет ничего похожего, то возвращается пустая строка
.
*
Functions for extraction parts of URL
.
*
If URL has nothing like, then empty string is returned
.
*
* domain
* domainWithoutWWW
...
...
@@ -26,29 +26,29 @@ namespace DB
* fragment
* queryStringAndFragment
*
*
Функции, удаляющие часть из URL-а
.
*
Если в URL-е нет ничего похожего, то URL остаётся без изменений
.
*
Functions, removing parts from URL
.
*
If URL has nothing like, then it is retured unchanged
.
*
* cutWWW
* cutFragment
* cutQueryString
* cutQueryStringAndFragment
*
*
Извлечь значение параметра в URL, если он есть. Вернуть пустую строку, если его нет
.
*
Если таких параметров много - вернуть значение первого. Значение не разэскейпливается
.
*
Extract value of parameter in query string or in fragment identifier. Return empty string, if URL has no such parameter
.
*
If there are many parameters with same name - return value of first one. Value is not %-decoded
.
*
* extractURLParameter(URL, name)
*
*
Извлечь все параметры из URL в виде массива строк вида
name=value.
*
Extract all parameters from URL in form of array of strings
name=value.
* extractURLParameters(URL)
*
*
Извлечь все имена параметров из URL в виде массива строк
*
Extract names of all parameters from URL in form of array of strings.
* extractURLParameterNames(URL)
*
*
Убрать указанный параметр из
URL.
*
Remove specified parameter from
URL.
* cutURLParameter(URL, name)
*
*
Получить массив иерархии URL. См. функцию nextURLInHierarchy в URLParser
.
*
Get array of URL 'hierarchy' as in Yandex.Metrica tree-like reports. See docs
.
* URLHierarchy(URL)
*/
...
...
@@ -164,10 +164,10 @@ struct ExtractFirstSignificantSubdomain
if
(
!
last_3_periods
[
2
])
last_3_periods
[
2
]
=
begin
-
1
;
if
(
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"com
"
,
3
)
||
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"net"
,
3
)
||
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"org"
,
3
)
||
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"co"
,
2
))
if
(
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"com
."
,
4
)
/// Note that in ColumnString every value has zero byte after it.
||
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"net."
,
4
)
||
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"org."
,
4
)
||
!
strncmp
(
last_3_periods
[
1
]
+
1
,
"co."
,
3
))
{
res_data
+=
last_3_periods
[
2
]
+
1
-
begin
;
res_size
=
last_3_periods
[
1
]
-
last_3_periods
[
2
]
-
1
;
...
...
dbms/tests/queries/0_stateless/00381_first_significant_subdomain.reference
0 → 100644
浏览文件 @
f373b500
canada congo net-domena
yandex yandex yandex yandex яндекс яндекс
canada hello hello hello hello hello canada canada
dbms/tests/queries/0_stateless/00381_first_significant_subdomain.sql
0 → 100644
浏览文件 @
f373b500
SELECT
firstSignificantSubdomain
(
'http://hello.canada.ca'
)
AS
canada
,
firstSignificantSubdomain
(
'http://hello.congo.com'
)
AS
congo
,
firstSignificantSubdomain
(
'http://pochemu.net-domena.ru'
)
AS
why
;
SELECT
firstSignificantSubdomain
(
'ftp://www.yandex.com.tr/news.html'
),
firstSignificantSubdomain
(
'https://www.yandex.ua/news.html'
),
firstSignificantSubdomain
(
'magnet:yandex.abc'
),
firstSignificantSubdomain
(
'ftp://www.yandex.co.uk/news.html'
),
firstSignificantSubdomain
(
'ftp://yandex.co.yandex'
),
firstSignificantSubdomain
(
'http://ввв.яндекс.org.рф'
),
firstSignificantSubdomain
(
'https://api.www3.static.dev.ввв.яндекс.рф'
);
SELECT
firstSignificantSubdomain
(
'http://hello.canada.c'
),
firstSignificantSubdomain
(
'http://hello.canada.'
),
firstSignificantSubdomain
(
'http://hello.canada'
),
firstSignificantSubdomain
(
'http://hello.c'
),
firstSignificantSubdomain
(
'http://hello.'
),
firstSignificantSubdomain
(
'http://hello'
),
firstSignificantSubdomain
(
'http://'
),
firstSignificantSubdomain
(
'http:/'
),
firstSignificantSubdomain
(
'http:'
),
firstSignificantSubdomain
(
'http'
),
firstSignificantSubdomain
(
'h'
),
firstSignificantSubdomain
(
'.'
),
firstSignificantSubdomain
(
''
),
firstSignificantSubdomain
(
'http://hello.canada..com'
),
firstSignificantSubdomain
(
'http://hello..canada.com'
),
firstSignificantSubdomain
(
'http://hello.canada.com.'
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录