Skip to content

Исключение Pattern application proves too difficult в функциях sequenceCount, sequenceMatch #2399

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
hashbash opened this issue May 22, 2018 · 1 comment

Comments

@hashbash
Copy link

Коллеги, подскажите, пожалуйста, что нужно сделать чтобы избежать такой ошибки:

[160] ClickHouse exception, code: 160, host: groot-clickhouse.vcp.digitalaccess.ru, port: 80; Code: 160, e.displayText() = DB::Exception: Pattern application proves too difficult, exceeding max iterations (1000000), e.what() = DB::Exception

при использовании функций sequenceCount и sequenceMatch.

Примерный запрос выглядит так:

select rocket_date
	, ivi_id
	, session_id
	, sequenceCount('(?1).*(?2)(?t>=300).*(?3)')(datetime_server
	                  , ui_type='description'
	                  , ui_type='payment_form'
	                  , name = 'purchase' and object_id = 6
	                  )
from groot3.events
where  1=2 
	or ui_type in ('description', 'payment_form') 
	or name = 'purchase'
group by rocket_date
	, ivi_id
	, session_id    

При этом не существует строк для которых достигается указанный лимит в 1.000.000 итераций (кол-во итераций, в данном контексте, может быть больше кол-ва строк перед группировкой?):

select rocket_date
		, ivi_id
		, session_id
		, count() cnt
from groot3.events
where  1=2 
	or ui_type in ('description', 'payment_form') 
	or name = 'purchase'
group by rocket_date
		, ivi_id
		, session_id  
having cnt >= 1000000
  1. Можно где-то увеличить лимит на кол-во итераций?
  2. Существуют какие-либо лайвхаки при использовании sequenceCount, sequenceMatch, которые могут помочь?
@alexey-milovidov
Copy link
Member

Для шаблонов без (?t) исправлено давно, а в общем случае, исправить пока не получится.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants