mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
Add tests && docs
This commit is contained in:
parent
64b1b6d764
commit
c56e9967f2
@ -2,11 +2,11 @@
|
||||
|
||||
#include <IO/WriteHelpers.h>
|
||||
#include <IO/ReadHelpers.h>
|
||||
#include <common/logger_useful.h>
|
||||
#include <unordered_set>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <DataTypes/DataTypesNumber.h>
|
||||
#include <DataTypes/DataTypeDateTime.h>
|
||||
#include <Columns/ColumnsNumber.h>
|
||||
#include <Common/ArenaAllocator.h>
|
||||
#include <ext/range.h>
|
||||
@ -36,7 +36,7 @@ struct ComparePairFirst final
|
||||
struct AggregateFunctionWindowFunnelData
|
||||
{
|
||||
static constexpr auto max_events = 32;
|
||||
using TimestampEvent = std::pair<UInt64, UInt8>;
|
||||
using TimestampEvent = std::pair<UInt32, UInt8>;
|
||||
|
||||
static constexpr size_t bytes_on_stack = 64;
|
||||
using TimestampEvents = PODArray<TimestampEvent, bytes_on_stack, AllocatorWithStackMemory<Allocator<false>, bytes_on_stack>>;
|
||||
@ -51,7 +51,7 @@ struct AggregateFunctionWindowFunnelData
|
||||
return events_list.size();
|
||||
}
|
||||
|
||||
void add(UInt64 timestamp, UInt8 event)
|
||||
void add(UInt32 timestamp, UInt8 event)
|
||||
{
|
||||
// Since most events should have already been sorted by timestamp.
|
||||
if (sorted && events_list.size() > 0 && events_list.back().first > timestamp)
|
||||
@ -117,7 +117,7 @@ struct AggregateFunctionWindowFunnelData
|
||||
events_list.clear();
|
||||
events_list.resize(size);
|
||||
|
||||
UInt64 timestamp;
|
||||
UInt32 timestamp;
|
||||
UInt8 event;
|
||||
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
@ -134,47 +134,45 @@ struct AggregateFunctionWindowFunnelData
|
||||
* The max size of events is 32, that's enough for funnel analytics
|
||||
*
|
||||
* Usage:
|
||||
* - windowFunnel(window_size)(window_column, event_condition1, event_condition2, event_condition3, ....)
|
||||
* - windowFunnel(window)(timestamp, cond1, cond2, cond3, ....)
|
||||
*/
|
||||
|
||||
class AggregateFunctionWindowFunnel final : public IAggregateFunctionDataHelper<AggregateFunctionWindowFunnelData, AggregateFunctionWindowFunnel>
|
||||
{
|
||||
private:
|
||||
UInt64 window;
|
||||
Logger * log = &Logger::get("AggregateFunctionWindowFunnel");
|
||||
UInt8 check_events_size;
|
||||
UInt32 window;
|
||||
UInt8 events_size;
|
||||
|
||||
|
||||
// Loop through the entire events_list
|
||||
// If the timestamp window size between current event and pre event( that's event-1) is less than the window value, then update current event's timestamp.
|
||||
// Returns the max event level.
|
||||
// Loop through the entire events_list, update the event timestamp value
|
||||
// The level path must be 1---2---3---...---check_events_size, find the max event level that statisfied the path in the sliding window.
|
||||
// If found, returns the max event level, else return 0.
|
||||
// The Algorithm complexity is O(n).
|
||||
|
||||
UInt8 match(const AggregateFunctionWindowFunnelData & data) const
|
||||
UInt8 getEventLevel(const AggregateFunctionWindowFunnelData & data) const
|
||||
{
|
||||
if(data.events_list.empty()) return 0;
|
||||
if (check_events_size == 1)
|
||||
if(data.size() == 0) return 0;
|
||||
if (events_size == 1)
|
||||
return 1;
|
||||
|
||||
const_cast<AggregateFunctionWindowFunnelData &>(data).sort();
|
||||
|
||||
std::vector<UInt64> events_timestamp(check_events_size,0);
|
||||
// events_timestamp stores the timestamp that lastest level 1 happen.
|
||||
// timestamp defaults to -1, which unsigned timestamp value never meet
|
||||
std::vector<Int32> events_timestamp(events_size, -1);
|
||||
for(const auto i : ext::range(0, data.size()))
|
||||
{
|
||||
const auto & event = (data.events_list)[i - 1].second - 1;
|
||||
const auto & timestamp = (data.events_list)[i - 1].first;
|
||||
if(event == 0)
|
||||
const auto & timestamp = (data.events_list)[i].first;
|
||||
const auto & event_idx = (data.events_list)[i].second - 1;
|
||||
if(event_idx == 0)
|
||||
events_timestamp[0] = timestamp;
|
||||
else if(timestamp <= events_timestamp[event - 1] + window)
|
||||
else if(events_timestamp[event_idx - 1] >= 0 && timestamp <= events_timestamp[event_idx - 1] + window)
|
||||
{
|
||||
events_timestamp[event] = timestamp;
|
||||
if(event == check_events_size) return check_events_size;
|
||||
events_timestamp[event_idx] = events_timestamp[event_idx - 1];
|
||||
if(event_idx + 1 == events_size) return events_size;
|
||||
}
|
||||
}
|
||||
|
||||
for(const auto i : ext::range(data.size() - 1, 0))
|
||||
for(size_t event = events_timestamp.size(); event > 0; --event)
|
||||
{
|
||||
if(events_timestamp[i]) return i + 1;
|
||||
if(events_timestamp[event - 1] >= 0) return event;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -185,14 +183,14 @@ public:
|
||||
|
||||
AggregateFunctionWindowFunnel(const DataTypes & arguments, const Array & params)
|
||||
{
|
||||
DataTypePtr timestampType = arguments[0];
|
||||
DataTypePtr windowType = arguments[0];
|
||||
|
||||
if (!(timestampType->isUnsignedInteger()))
|
||||
throw Exception("Illegal type " + timestampType->getName() + " of argument for aggregate function " + getName() + " (1 arg, timestamp: UIntXX)",
|
||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
|
||||
const auto time_arg = arguments.front().get();
|
||||
if (!typeid_cast<const DataTypeDateTime *>(time_arg) && !typeid_cast<const DataTypeUInt32 *>(time_arg) )
|
||||
throw Exception{"Illegal type " + time_arg->getName() + " of first argument of aggregate function "
|
||||
+ getName() + ", must be DateTime or UInt32"};
|
||||
|
||||
check_events_size = arguments.size() - 1;
|
||||
if(check_events_size > AggregateFunctionWindowFunnelData::max_events)
|
||||
if(arguments.size() - 1 > AggregateFunctionWindowFunnelData::max_events)
|
||||
throw Exception{"Aggregate function " + getName() + " supports up to " +
|
||||
toString(AggregateFunctionWindowFunnelData::max_events) + " event arguments.",
|
||||
ErrorCodes::TOO_MANY_ARGUMENTS_FOR_FUNCTION};
|
||||
@ -206,11 +204,11 @@ public:
|
||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT};
|
||||
}
|
||||
|
||||
if (params.size() != 1)
|
||||
throw Exception("Aggregate function " + getName() + " requires exactly 1 args(window_num).", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH);
|
||||
if (params.size() != 1)
|
||||
throw Exception("Aggregate function " + getName() + " requires exactly 1 args(timestamp_window).", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH);
|
||||
|
||||
events_size = arguments.size() - 1;
|
||||
window = params[0].safeGet<UInt64>();
|
||||
LOG_TRACE(log, std::fixed << std::setprecision(3) << "setParameters, window: " << window << " check events:" << check_events_size);
|
||||
}
|
||||
|
||||
|
||||
@ -222,7 +220,7 @@ public:
|
||||
void add(AggregateDataPtr place, const IColumn ** columns, const size_t row_num, Arena *) const override
|
||||
{
|
||||
UInt8 event_level = 0;
|
||||
for(const auto i : ext::range(1,check_events_size))
|
||||
for(const auto i : ext::range(1, events_size + 1))
|
||||
{
|
||||
auto event = static_cast<const ColumnVector<UInt8> *>(columns[i])->getData()[row_num];
|
||||
if(event){
|
||||
@ -230,10 +228,13 @@ public:
|
||||
break;
|
||||
}
|
||||
}
|
||||
this->data(place).add( //
|
||||
static_cast<const ColumnVector<UInt64> *>(columns[0])->getData()[row_num],
|
||||
event_level
|
||||
);
|
||||
if(event_level)
|
||||
{
|
||||
this->data(place).add(
|
||||
static_cast<const ColumnVector<UInt32> *>(columns[0])->getData()[row_num],
|
||||
event_level
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena *) const override
|
||||
@ -253,7 +254,7 @@ public:
|
||||
|
||||
void insertResultInto(ConstAggregateDataPtr place, IColumn & to) const override
|
||||
{
|
||||
static_cast<ColumnUInt8 &>(to).getData().push_back(match(this->data(place)));
|
||||
static_cast<ColumnUInt8 &>(to).getData().push_back(getEventLevel(this->data(place)));
|
||||
}
|
||||
|
||||
const char * getHeaderFilePath() const override { return __FILE__; }
|
||||
|
@ -0,0 +1,12 @@
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
@ -0,0 +1,30 @@
|
||||
drop table if exists funnel_test;
|
||||
|
||||
create table funnel_test (timestamp UInt32, event UInt32) engine=Memory;
|
||||
insert into funnel_test values (0,1000),(1,1001),(2,1002),(3,1003),(4,1004),(5,1005),(6,1006),(7,1007),(8,1008);
|
||||
|
||||
select 1 = windowFunnel(10000)(timestamp, event = 1000) from funnel_test;
|
||||
select 2 = windowFunnel(10000)(timestamp, event = 1000, event = 1001) from funnel_test;
|
||||
select 3 = windowFunnel(10000)(timestamp, event = 1000, event = 1001, event = 1002) from funnel_test;
|
||||
select 4 = windowFunnel(10000)(timestamp, event = 1000, event = 1001, event = 1002, event = 1008) from funnel_test;
|
||||
|
||||
|
||||
|
||||
select 1 = windowFunnel(1)(timestamp, event = 1000) from funnel_test;
|
||||
select 3 = windowFunnel(2)(timestamp, event = 1003, event = 1004, event = 1005, event = 1006, event = 1007) from funnel_test;
|
||||
select 4 = windowFunnel(3)(timestamp, event = 1003, event = 1004, event = 1005, event = 1006, event = 1007) from funnel_test;
|
||||
select 5 = windowFunnel(4)(timestamp, event = 1003, event = 1004, event = 1005, event = 1006, event = 1007) from funnel_test;
|
||||
|
||||
|
||||
drop table if exists funnel_test2;
|
||||
create table funnel_test2 (uid UInt32 default 1,timestamp DateTime, event UInt32) engine=Memory;
|
||||
insert into funnel_test2(timestamp, event) values (now() + 1,1001),(now() + 2,1002),(now() + 3,1003),(now() + 4,1004),(now() + 5,1005),(now() + 6,1006),(now() + 7,1007),(now() + 8,1008);
|
||||
|
||||
|
||||
select 5 = windowFunnel(4)(timestamp, event = 1003, event = 1004, event = 1005, event = 1006, event = 1007) from funnel_test2;
|
||||
select 2 = windowFunnel(10000)(timestamp, event = 1001, event = 1008) from funnel_test2;
|
||||
select 1 = windowFunnel(10000)(timestamp, event = 1008, event = 1001) from funnel_test2;
|
||||
select 5 = windowFunnel(4)(timestamp, event = 1003, event = 1004, event = 1005, event = 1006, event = 1007) from funnel_test2;
|
||||
|
||||
drop table funnel_test;
|
||||
drop table funnel_test2;
|
2817
docs/build/docs/en/404.html
vendored
Normal file
2817
docs/build/docs/en/404.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3017
docs/build/docs/en/agg_functions/combinators/index.html
vendored
Normal file
3017
docs/build/docs/en/agg_functions/combinators/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2894
docs/build/docs/en/agg_functions/index.html
vendored
Normal file
2894
docs/build/docs/en/agg_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3037
docs/build/docs/en/agg_functions/parametric_functions/index.html
vendored
Normal file
3037
docs/build/docs/en/agg_functions/parametric_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3631
docs/build/docs/en/agg_functions/reference/index.html
vendored
Normal file
3631
docs/build/docs/en/agg_functions/reference/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/build/docs/en/assets/images/favicon.ico
vendored
Normal file
BIN
docs/build/docs/en/assets/images/favicon.ico
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 171 B |
1
docs/build/docs/en/assets/images/icons/bitbucket.4ebea66e.svg
vendored
Normal file
1
docs/build/docs/en/assets/images/icons/bitbucket.4ebea66e.svg
vendored
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="352" height="448" viewBox="0 0 352 448" id="bitbucket"><path fill="currentColor" d="M203.75 214.75q2 15.75-12.625 25.25t-27.875 1.5q-9.75-4.25-13.375-14.5t-.125-20.5 13-14.5q9-4.5 18.125-3t16 8.875 6.875 16.875zm27.75-5.25q-3.5-26.75-28.25-41T154 165.25q-15.75 7-25.125 22.125t-8.625 32.375q1 22.75 19.375 38.75t41.375 14q22.75-2 38-21t12.5-42zM291.25 74q-5-6.75-14-11.125t-14.5-5.5T245 54.25q-72.75-11.75-141.5.5-10.75 1.75-16.5 3t-13.75 5.5T60.75 74q7.5 7 19 11.375t18.375 5.5T120 93.75Q177 101 232 94q15.75-2 22.375-3t18.125-5.375T291.25 74zm14.25 258.75q-2 6.5-3.875 19.125t-3.5 21-7.125 17.5-14.5 14.125q-21.5 12-47.375 17.875t-50.5 5.5-50.375-4.625q-11.5-2-20.375-4.5T88.75 412 70.5 401.125t-13-15.375q-6.25-24-14.25-73l1.5-4 4.5-2.25q55.75 37 126.625 37t126.875-37q5.25 1.5 6 5.75t-1.25 11.25-2 9.25zM350.75 92.5q-6.5 41.75-27.75 163.75-1.25 7.5-6.75 14t-10.875 10T291.75 288q-63 31.5-152.5 22-62-6.75-98.5-34.75-3.75-3-6.375-6.625t-4.25-8.75-2.25-8.5-1.5-9.875T25 232.75q-2.25-12.5-6.625-37.5t-7-40.375T5.5 118 0 78.5Q.75 72 4.375 66.375T12.25 57t11.25-7.5T35 43.875t12-4.625q31.25-11.5 78.25-16 94.75-9.25 169 12.5Q333 47.25 348 66.25q4 5 4.125 12.75t-1.375 13.5z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
docs/build/docs/en/assets/images/icons/github.a4034fb1.svg
vendored
Normal file
1
docs/build/docs/en/assets/images/icons/github.a4034fb1.svg
vendored
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448" viewBox="0 0 416 448" id="github"><path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z"/></svg>
|
After Width: | Height: | Size: 991 B |
1
docs/build/docs/en/assets/images/icons/gitlab.d80e5efc.svg
vendored
Normal file
1
docs/build/docs/en/assets/images/icons/gitlab.d80e5efc.svg
vendored
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500" id="gitlab"><path fill="currentColor" d="M93.667 473.347l90.684-279.097H2.983l90.684 279.097z" transform="translate(156.198 1.16)"/><path fill="currentColor" d="M221.333 473.345L130.649 194.25H3.557l217.776 279.095z" transform="translate(28.531 1.16)" opacity=".7"/><path fill="currentColor" d="M32 195.155L4.441 279.97a18.773 18.773 0 0 0 6.821 20.99l238.514 173.29L32 195.155z" transform="translate(.089 .256)" opacity=".5"/><path fill="currentColor" d="M2.667-84.844h127.092L75.14-252.942c-2.811-8.649-15.047-8.649-17.856 0L2.667-84.844z" transform="translate(29.422 280.256)"/><path fill="currentColor" d="M2.667 473.345L93.351 194.25h127.092L2.667 473.345z" transform="translate(247.198 1.16)" opacity=".7"/><path fill="currentColor" d="M221.334 195.155l27.559 84.815a18.772 18.772 0 0 1-6.821 20.99L3.557 474.25l217.777-279.095z" transform="translate(246.307 .256)" opacity=".5"/><path fill="currentColor" d="M130.667-84.844H3.575l54.618-168.098c2.811-8.649 15.047-8.649 17.856 0l54.618 168.098z" transform="translate(336.974 280.256)"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
docs/build/docs/en/assets/javascripts/application.5165553b.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/application.5165553b.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.da.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.da.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=l.limit-l.cursor;l.cursor>=t&&(e=l.limit_backward,l.limit_backward=t,l.ket=l.cursor,l.find_among_b(a,4)?(l.bra=l.cursor,l.limit_backward=e,l.cursor=l.limit-r,l.cursor>l.limit_backward&&(l.cursor--,l.bra=l.cursor,l.slice_del())):l.limit_backward=e)}var n,t,s,o=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],a=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],d=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],l=new i;this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var r=l.cursor;return function(){var e,r=l.cursor+3;if(t=l.limit,0<=r&&r<=l.limit){for(n=r;;){if(e=l.cursor,l.in_grouping(u,97,248)){l.cursor=e;break}if(l.cursor=e,e>=l.limit)return;l.cursor++}for(;!l.out_grouping(u,97,248);){if(l.cursor>=l.limit)return;l.cursor++}(t=l.cursor)<n&&(t=n)}}(),l.limit_backward=r,l.cursor=l.limit,function(){var e,r;if(l.cursor>=t&&(r=l.limit_backward,l.limit_backward=t,l.ket=l.cursor,e=l.find_among_b(o,32),l.limit_backward=r,e))switch(l.bra=l.cursor,e){case 1:l.slice_del();break;case 2:l.in_grouping_b(c,97,229)&&l.slice_del()}}(),l.cursor=l.limit,e(),l.cursor=l.limit,function(){var r,i,n,s=l.limit-l.cursor;if(l.ket=l.cursor,l.eq_s_b(2,"st")&&(l.bra=l.cursor,l.eq_s_b(2,"ig")&&l.slice_del()),l.cursor=l.limit-s,l.cursor>=t&&(i=l.limit_backward,l.limit_backward=t,l.ket=l.cursor,r=l.find_among_b(d,5),l.limit_backward=i,r))switch(l.bra=l.cursor,r){case 1:l.slice_del(),n=l.limit-l.cursor,e(),l.cursor=l.limit-n;break;case 2:l.slice_from("løs")}}(),l.cursor=l.limit,function(){var e;l.cursor>=t&&(e=l.limit_backward,l.limit_backward=t,l.ket=l.cursor,l.out_grouping_b(u,97,248)?(l.bra=l.cursor,s=l.slice_to(s),l.limit_backward=e,l.eq_v_b(s)&&l.slice_del()):l.limit_backward=e)}(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
|
1
docs/build/docs/en/assets/javascripts/lunr/lunr.de.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.de.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.du.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.du.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.es.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.es.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.fi.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.fi.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.fr.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.fr.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.hu.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.hu.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.it.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.it.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.jp.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.jp.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.jp=function(){this.pipeline.reset(),this.pipeline.add(e.jp.stopWordFilter,e.jp.stemmer),r?this.tokenizer=e.jp.tokenizer:(e.tokenizer&&(e.tokenizer=e.jp.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.jp.tokenizer))};var t=new e.TinySegmenter;e.jp.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(var i=n.toString().toLowerCase().replace(/^\s+/,""),o=i.length-1;o>=0;o--)if(/\S/.test(i.charAt(o))){i=i.substring(0,o+1);break}return t.segment(i).filter(function(e){return!!e}).map(function(t){return r?new e.Token(t):t})},e.jp.stemmer=function(e){return e},e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.jp.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9",e.jp.stopWordFilter=function(t){if(-1===e.jp.stopWordFilter.stopWords.indexOf(r?t.toString():t))return t},e.jp.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
|
1
docs/build/docs/en/assets/javascripts/lunr/lunr.multi.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.multi.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var i=Array.prototype.slice.call(arguments),t=i.join("-"),r="",n=[],s=[],p=0;p<i.length;++p)"en"==i[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[i[p]].wordCharacters,n.unshift(e[i[p]].stopWordFilter),n.push(e[i[p]].stemmer),s.push(e[i[p]].stemmer));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+t),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
|
1
docs/build/docs/en/assets/javascripts/lunr/lunr.no.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.no.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){var e,i,t=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],o=[new r("dt",-1,-1),new r("vt",-1,-1)],s=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],a=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],m=[119,125,149,1],u=new n;this.setCurrent=function(e){u.setCurrent(e)},this.getCurrent=function(){return u.getCurrent()},this.stem=function(){var r=u.cursor;return function(){var r,n=u.cursor+3;if(i=u.limit,0<=n||n<=u.limit){for(e=n;;){if(r=u.cursor,u.in_grouping(a,97,248)){u.cursor=r;break}if(r>=u.limit)return;u.cursor=r+1}for(;!u.out_grouping(a,97,248);){if(u.cursor>=u.limit)return;u.cursor++}(i=u.cursor)<e&&(i=e)}}(),u.limit_backward=r,u.cursor=u.limit,function(){var e,r,n;if(u.cursor>=i&&(r=u.limit_backward,u.limit_backward=i,u.ket=u.cursor,e=u.find_among_b(t,29),u.limit_backward=r,e))switch(u.bra=u.cursor,e){case 1:u.slice_del();break;case 2:n=u.limit-u.cursor,u.in_grouping_b(m,98,122)?u.slice_del():(u.cursor=u.limit-n,u.eq_s_b(1,"k")&&u.out_grouping_b(a,97,248)&&u.slice_del());break;case 3:u.slice_from("er")}}(),u.cursor=u.limit,function(){var e,r=u.limit-u.cursor;u.cursor>=i&&(e=u.limit_backward,u.limit_backward=i,u.ket=u.cursor,u.find_among_b(o,2)?(u.bra=u.cursor,u.limit_backward=e,u.cursor=u.limit-r,u.cursor>u.limit_backward&&(u.cursor--,u.bra=u.cursor,u.slice_del())):u.limit_backward=e)}(),u.cursor=u.limit,function(){var e,r;u.cursor>=i&&(r=u.limit_backward,u.limit_backward=i,u.ket=u.cursor,(e=u.find_among_b(s,11))?(u.bra=u.cursor,u.limit_backward=r,1==e&&u.slice_del()):u.limit_backward=r)}(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
|
1
docs/build/docs/en/assets/javascripts/lunr/lunr.pt.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.pt.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.ro.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.ro.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.ru.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.ru.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/lunr.stemmer.support.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.stemmer.support.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){if(o>=(_=t[s]).s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=(m=t[a]).s_size-1-l;_>=0;_--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-m.s[_])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var m=t[s];if(o>=m.s_size){if(this.cursor=n-m.s_size,!m.method)return m.result;var b=m.method();if(this.cursor=n-m.s_size,b)return m.result}if((s=m.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
|
1
docs/build/docs/en/assets/javascripts/lunr/lunr.sv.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.sv.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){var e,t,i=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],s=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],c=new n;this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var r=c.cursor;return function(){var r,n=c.cursor+3;if(t=c.limit,0<=n||n<=c.limit){for(e=n;;){if(r=c.cursor,c.in_grouping(o,97,246)){c.cursor=r;break}if(c.cursor=r,c.cursor>=c.limit)return;c.cursor++}for(;!c.out_grouping(o,97,246);){if(c.cursor>=c.limit)return;c.cursor++}(t=c.cursor)<e&&(t=e)}}(),c.limit_backward=r,c.cursor=c.limit,function(){var e,r=c.limit_backward;if(c.cursor>=t&&(c.limit_backward=t,c.cursor=c.limit,c.ket=c.cursor,e=c.find_among_b(i,37),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(u,98,121)&&c.slice_del()}}(),c.cursor=c.limit,function(){var e=c.limit_backward;c.cursor>=t&&(c.limit_backward=t,c.cursor=c.limit,c.find_among_b(s,7)&&(c.cursor=c.limit,c.ket=c.cursor,c.cursor>c.limit_backward&&(c.bra=--c.cursor,c.slice_del())),c.limit_backward=e)}(),c.cursor=c.limit,function(){var e,r;if(c.cursor>=t){if(r=c.limit_backward,c.limit_backward=t,c.cursor=c.limit,c.ket=c.cursor,e=c.find_among_b(a,5))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.slice_from("lös");break;case 3:c.slice_from("full")}c.limit_backward=r}}(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
|
1
docs/build/docs/en/assets/javascripts/lunr/lunr.tr.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/lunr.tr.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/lunr/tinyseg.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/lunr/tinyseg.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/build/docs/en/assets/javascripts/modernizr.1aa3b519.js
vendored
Normal file
1
docs/build/docs/en/assets/javascripts/modernizr.1aa3b519.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/build/docs/en/assets/stylesheets/application-palette.792431c1.css
vendored
Normal file
2
docs/build/docs/en/assets/stylesheets/application-palette.792431c1.css
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/build/docs/en/assets/stylesheets/application.ac64251e.css
vendored
Normal file
2
docs/build/docs/en/assets/stylesheets/application.ac64251e.css
vendored
Normal file
File diff suppressed because one or more lines are too long
121
docs/build/docs/en/assets/stylesheets/custom.css
vendored
Normal file
121
docs/build/docs/en/assets/stylesheets/custom.css
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
@font-face {
|
||||
font-family: 'Yandex Sans Text Web';
|
||||
src: url(https://yastatic.net/adv-www/_/yy5JveR58JFkc97waf-xp0i6_jM.eot);
|
||||
src: url(https://yastatic.net/adv-www/_/yy5JveR58JFkc97waf-xp0i6_jM.eot?#iefix) format('embedded-opentype'),
|
||||
url(https://yastatic.net/adv-www/_/CYblzLEXzCqQIvrYs7QKQe2omRk.woff2) format('woff2'),
|
||||
url(https://yastatic.net/adv-www/_/pUcnOdRwl83MvPPzrNomhyletnA.woff) format('woff'),
|
||||
url(https://yastatic.net/adv-www/_/vNFEmXOcGYKJ4AAidUprHWoXrLU.ttf) format('truetype'),
|
||||
url(https://yastatic.net/adv-www/_/0w7OcWZM_QLP8x-LQUXFOgXO6dE.svg#YandexSansTextWeb-Bold) format('svg');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-stretch: normal
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Yandex Sans Text Web';
|
||||
src: url(https://yastatic.net/adv-www/_/LI6l3L2RqcgxBe2pXmuUha37czQ.eot);
|
||||
src: url(https://yastatic.net/adv-www/_/LI6l3L2RqcgxBe2pXmuUha37czQ.eot?#iefix) format('embedded-opentype'),
|
||||
url(https://yastatic.net/adv-www/_/z3MYElcut0R2MF_Iw1RDNrstgYs.woff2) format('woff2'),
|
||||
url(https://yastatic.net/adv-www/_/1jvKJ_-hCXl3s7gmFl-y_-UHTaI.woff) format('woff'),
|
||||
url(https://yastatic.net/adv-www/_/9nzjfpCR2QHvK1EzHpDEIoVFGuY.ttf) format('truetype'),
|
||||
url(https://yastatic.net/adv-www/_/gwyBTpxSwkFCF1looxqs6JokKls.svg#YandexSansTextWeb-Regular) format('svg');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-stretch: normal
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Yandex Sans Text Web';
|
||||
src: url(https://yastatic.net/adv-www/_/ayAFYoY8swgBLhq_I56tKj2JftU.eot);
|
||||
src: url(https://yastatic.net/adv-www/_/ayAFYoY8swgBLhq_I56tKj2JftU.eot?#iefix) format('embedded-opentype'),
|
||||
url(https://yastatic.net/adv-www/_/lGQcYklLVV0hyvz1HFmFsUTj8_0.woff2) format('woff2'),
|
||||
url(https://yastatic.net/adv-www/_/f0AAJ9GJ4iiwEmhG-7PWMHk6vUY.woff) format('woff'),
|
||||
url(https://yastatic.net/adv-www/_/4UDe4nlVvgEJ-VmLWNVq3SxCsA.ttf) format('truetype'),
|
||||
url(https://yastatic.net/adv-www/_/EKLr1STNokPqxLAQa_RyN82pL98.svg#YandexSansTextWeb-Light) format('svg');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-stretch: normal
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Yandex Sans Display Web';
|
||||
src: url(https://yastatic.net/adv-www/_/H63jN0veW07XQUIA2317lr9UIm8.eot);
|
||||
src: url(https://yastatic.net/adv-www/_/H63jN0veW07XQUIA2317lr9UIm8.eot?#iefix) format('embedded-opentype'),
|
||||
url(https://yastatic.net/adv-www/_/sUYVCPUAQE7ExrvMS7FoISoO83s.woff2) format('woff2'),
|
||||
url(https://yastatic.net/adv-www/_/v2Sve_obH3rKm6rKrtSQpf-eB7U.woff) format('woff'),
|
||||
url(https://yastatic.net/adv-www/_/PzD8hWLMunow5i3RfJ6WQJAL7aI.ttf) format('truetype'),
|
||||
url(https://yastatic.net/adv-www/_/lF_KG5g4tpQNlYIgA0e77fBSZ5s.svg#YandexSansDisplayWeb-Regular) format('svg');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-stretch: normal
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Yandex Sans Display Web';
|
||||
src: url(https://yastatic.net/adv-www/_/g8_MyyKVquSZ3xEL6tarK__V9Vw.eot);
|
||||
src: url(https://yastatic.net/adv-www/_/g8_MyyKVquSZ3xEL6tarK__V9Vw.eot?#iefix) format('embedded-opentype'),
|
||||
url(https://yastatic.net/adv-www/_/LGiRvlfqQHlWR9YKLhsw5e7KGNA.woff2) format('woff2'),
|
||||
url(https://yastatic.net/adv-www/_/40vXwNl4eYYMgteIVgLP49dwmfc.woff) format('woff'),
|
||||
url(https://yastatic.net/adv-www/_/X6zG5x_wO8-AtwJ-vDLJcKC5228.ttf) format('truetype'),
|
||||
url(https://yastatic.net/adv-www/_/ZKhaR0m08c8CRRL77GtFKoHcLYA.svg#YandexSansDisplayWeb-Light) format('svg');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-stretch: normal
|
||||
}
|
||||
|
||||
body {
|
||||
font: 300 14pt/200% 'Yandex Sans Text Web', Arial, sans-serif;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
color: #08f;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.md-nav__link {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.md-nav__link:hover, .md-nav__link:active {
|
||||
color: #08f !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover, a:active {
|
||||
color: #f00;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.md-typeset pre {
|
||||
font: 13px/18px monospace, "Courier New";
|
||||
display: block;
|
||||
padding: 1rem 3rem 1rem 1rem;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
h1, h2, h3, .md-logo {
|
||||
font-family: 'Yandex Sans Display Web', Arial, sans-serif;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.md-logo {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.md-header {
|
||||
border-bottom: 1px solid #efefef;
|
||||
}
|
||||
|
||||
.md-header-nav__title {
|
||||
font-size: 3rem;
|
||||
font-family: 'Yandex Sans Display Web', Arial, sans-serif;
|
||||
}
|
||||
|
||||
.md-content__icon:hover {
|
||||
text-decoration: none !important;
|
||||
color: #08f !important;
|
||||
}
|
||||
|
||||
.md-search-result__link {
|
||||
text-decoration: none !important;
|
||||
}
|
2889
docs/build/docs/en/data_types/array/index.html
vendored
Normal file
2889
docs/build/docs/en/data_types/array/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2888
docs/build/docs/en/data_types/boolean/index.html
vendored
Normal file
2888
docs/build/docs/en/data_types/boolean/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/data_types/date/index.html
vendored
Normal file
2890
docs/build/docs/en/data_types/date/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2935
docs/build/docs/en/data_types/datetime/index.html
vendored
Normal file
2935
docs/build/docs/en/data_types/datetime/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2908
docs/build/docs/en/data_types/enum/index.html
vendored
Normal file
2908
docs/build/docs/en/data_types/enum/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2893
docs/build/docs/en/data_types/fixedstring/index.html
vendored
Normal file
2893
docs/build/docs/en/data_types/fixedstring/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3010
docs/build/docs/en/data_types/float/index.html
vendored
Normal file
3010
docs/build/docs/en/data_types/float/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/data_types/index.html
vendored
Normal file
2890
docs/build/docs/en/data_types/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2957
docs/build/docs/en/data_types/int_uint/index.html
vendored
Normal file
2957
docs/build/docs/en/data_types/int_uint/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2888
docs/build/docs/en/data_types/nested_data_structures/aggregatefunction/index.html
vendored
Normal file
2888
docs/build/docs/en/data_types/nested_data_structures/aggregatefunction/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2973
docs/build/docs/en/data_types/nested_data_structures/nested/index.html
vendored
Normal file
2973
docs/build/docs/en/data_types/nested_data_structures/nested/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/data_types/special_data_types/expression/index.html
vendored
Normal file
2890
docs/build/docs/en/data_types/special_data_types/expression/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/data_types/special_data_types/set/index.html
vendored
Normal file
2890
docs/build/docs/en/data_types/special_data_types/set/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2935
docs/build/docs/en/data_types/string/index.html
vendored
Normal file
2935
docs/build/docs/en/data_types/string/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2889
docs/build/docs/en/data_types/tuple/index.html
vendored
Normal file
2889
docs/build/docs/en/data_types/tuple/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3278
docs/build/docs/en/development/architecture/index.html
vendored
Normal file
3278
docs/build/docs/en/development/architecture/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3189
docs/build/docs/en/development/build/index.html
vendored
Normal file
3189
docs/build/docs/en/development/build/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3018
docs/build/docs/en/development/build_osx/index.html
vendored
Normal file
3018
docs/build/docs/en/development/build_osx/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3664
docs/build/docs/en/development/style/index.html
vendored
Normal file
3664
docs/build/docs/en/development/style/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2951
docs/build/docs/en/development/tests/index.html
vendored
Normal file
2951
docs/build/docs/en/development/tests/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2928
docs/build/docs/en/dicts/external_dicts/index.html
vendored
Normal file
2928
docs/build/docs/en/dicts/external_dicts/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2920
docs/build/docs/en/dicts/external_dicts_dict/index.html
vendored
Normal file
2920
docs/build/docs/en/dicts/external_dicts_dict/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3280
docs/build/docs/en/dicts/external_dicts_dict_layout/index.html
vendored
Normal file
3280
docs/build/docs/en/dicts/external_dicts_dict_layout/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2940
docs/build/docs/en/dicts/external_dicts_dict_lifetime/index.html
vendored
Normal file
2940
docs/build/docs/en/dicts/external_dicts_dict_lifetime/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3446
docs/build/docs/en/dicts/external_dicts_dict_sources/index.html
vendored
Normal file
3446
docs/build/docs/en/dicts/external_dicts_dict_sources/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3088
docs/build/docs/en/dicts/external_dicts_dict_structure/index.html
vendored
Normal file
3088
docs/build/docs/en/dicts/external_dicts_dict_structure/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/dicts/index.html
vendored
Normal file
2890
docs/build/docs/en/dicts/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2923
docs/build/docs/en/dicts/internal_dicts/index.html
vendored
Normal file
2923
docs/build/docs/en/dicts/internal_dicts/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2905
docs/build/docs/en/formats/capnproto/index.html
vendored
Normal file
2905
docs/build/docs/en/formats/capnproto/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2892
docs/build/docs/en/formats/csv/index.html
vendored
Normal file
2892
docs/build/docs/en/formats/csv/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2888
docs/build/docs/en/formats/csvwithnames/index.html
vendored
Normal file
2888
docs/build/docs/en/formats/csvwithnames/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2889
docs/build/docs/en/formats/index.html
vendored
Normal file
2889
docs/build/docs/en/formats/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2964
docs/build/docs/en/formats/json/index.html
vendored
Normal file
2964
docs/build/docs/en/formats/json/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2928
docs/build/docs/en/formats/jsoncompact/index.html
vendored
Normal file
2928
docs/build/docs/en/formats/jsoncompact/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2903
docs/build/docs/en/formats/jsoneachrow/index.html
vendored
Normal file
2903
docs/build/docs/en/formats/jsoneachrow/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2889
docs/build/docs/en/formats/native/index.html
vendored
Normal file
2889
docs/build/docs/en/formats/native/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2889
docs/build/docs/en/formats/null/index.html
vendored
Normal file
2889
docs/build/docs/en/formats/null/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2918
docs/build/docs/en/formats/pretty/index.html
vendored
Normal file
2918
docs/build/docs/en/formats/pretty/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2889
docs/build/docs/en/formats/prettycompact/index.html
vendored
Normal file
2889
docs/build/docs/en/formats/prettycompact/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2888
docs/build/docs/en/formats/prettycompactmonoblock/index.html
vendored
Normal file
2888
docs/build/docs/en/formats/prettycompactmonoblock/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2953
docs/build/docs/en/formats/prettynoescapes/index.html
vendored
Normal file
2953
docs/build/docs/en/formats/prettynoescapes/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2888
docs/build/docs/en/formats/prettyspace/index.html
vendored
Normal file
2888
docs/build/docs/en/formats/prettyspace/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2895
docs/build/docs/en/formats/rowbinary/index.html
vendored
Normal file
2895
docs/build/docs/en/formats/rowbinary/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2931
docs/build/docs/en/formats/tabseparated/index.html
vendored
Normal file
2931
docs/build/docs/en/formats/tabseparated/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/formats/tabseparatedraw/index.html
vendored
Normal file
2890
docs/build/docs/en/formats/tabseparatedraw/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2891
docs/build/docs/en/formats/tabseparatedwithnames/index.html
vendored
Normal file
2891
docs/build/docs/en/formats/tabseparatedwithnames/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/formats/tabseparatedwithnamesandtypes/index.html
vendored
Normal file
2890
docs/build/docs/en/formats/tabseparatedwithnamesandtypes/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2904
docs/build/docs/en/formats/tskv/index.html
vendored
Normal file
2904
docs/build/docs/en/formats/tskv/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2890
docs/build/docs/en/formats/values/index.html
vendored
Normal file
2890
docs/build/docs/en/formats/values/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2889
docs/build/docs/en/formats/vertical/index.html
vendored
Normal file
2889
docs/build/docs/en/formats/vertical/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2909
docs/build/docs/en/formats/verticalraw/index.html
vendored
Normal file
2909
docs/build/docs/en/formats/verticalraw/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2955
docs/build/docs/en/formats/xml/index.html
vendored
Normal file
2955
docs/build/docs/en/formats/xml/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3114
docs/build/docs/en/functions/arithmetic_functions/index.html
vendored
Normal file
3114
docs/build/docs/en/functions/arithmetic_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3524
docs/build/docs/en/functions/array_functions/index.html
vendored
Normal file
3524
docs/build/docs/en/functions/array_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2907
docs/build/docs/en/functions/array_join/index.html
vendored
Normal file
2907
docs/build/docs/en/functions/array_join/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3006
docs/build/docs/en/functions/bit_functions/index.html
vendored
Normal file
3006
docs/build/docs/en/functions/bit_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3016
docs/build/docs/en/functions/comparison_functions/index.html
vendored
Normal file
3016
docs/build/docs/en/functions/comparison_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2930
docs/build/docs/en/functions/conditional_functions/index.html
vendored
Normal file
2930
docs/build/docs/en/functions/conditional_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3409
docs/build/docs/en/functions/date_time_functions/index.html
vendored
Normal file
3409
docs/build/docs/en/functions/date_time_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3011
docs/build/docs/en/functions/encoding_functions/index.html
vendored
Normal file
3011
docs/build/docs/en/functions/encoding_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3085
docs/build/docs/en/functions/ext_dict_functions/index.html
vendored
Normal file
3085
docs/build/docs/en/functions/ext_dict_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3111
docs/build/docs/en/functions/hash_functions/index.html
vendored
Normal file
3111
docs/build/docs/en/functions/hash_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3171
docs/build/docs/en/functions/higher_order_functions/index.html
vendored
Normal file
3171
docs/build/docs/en/functions/higher_order_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2966
docs/build/docs/en/functions/in_functions/index.html
vendored
Normal file
2966
docs/build/docs/en/functions/in_functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3060
docs/build/docs/en/functions/index.html
vendored
Normal file
3060
docs/build/docs/en/functions/index.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user