You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SELECT uast_extract(
uast(blob_content, 'csharp', "(//csharp:BinaryExpression_AddExpression/Left/uast:String | //csharp:InterpolatedStringExpression//csharp:InterpolatedStringTextToken[1])[starts-with(normalize-space(@Value), 'SELECT') or starts-with(normalize-space(@Value), 'select') or starts-with(normalize-space(@Value), 'UPDATE') or starts-with(normalize-space(@Value), 'update') or starts-with(normalize-space(@Value), 'DELETE') or starts-with(normalize-space(@Value), 'delete') or starts-with(normalize-space(@Value), 'INSERT') or starts-with(normalize-space(@Value), 'insert') or starts-with(normalize-space(@Value), 'CREATE') or starts-with(normalize-space(@Value), 'create') or starts-with(normalize-space(@Value), 'ALTER') or starts-with(normalize-space(@Value), 'alter') or starts-with(normalize-space(@Value), 'DROP') or starts-with(normalize-space(@Value), 'drop')]"),
'@pos') AS positions,
repository_id,
file_path
FROM (
SELECTf.repository_id,
f.file_path,
b.blob_contentFROM (
SELECT*FROM refs r
NATURAL JOIN commit_blobs cb
NATURAL JOIN blobs
WHEREr.ref_name='HEAD'AND NOT IS_BINARY(blob_content)
) b
INNER JOIN (
SELECT repository_id, file_path, blob_hash
FROM refs r
NATURAL JOIN commit_files cf
WHEREr.ref_name='HEAD'
) f
ONb.blob_hash=f.blob_hashANDb.repository_id=f.repository_idWHERE language(f.file_path, b.blob_content) ='C#'
) t
WHERE positions IS NOT NULL
This could be parallelized adding an exchange over the topmost projection. Instead, we do this serially, causing extremely low performance on queries using uast functions on the topmost projects under certain conditions.
The text was updated successfully, but these errors were encountered:
What we can do (and would solve the problem for this query) is execute Projections in parallel when they contain UDFs if there is not an exchange higher up the tree.
I think the only case that might benefit from this is actually bblfsh parsing. So if we enable this, it would need to be a gitbase rule, not a go-mysql-server one, because for builtin UDFs it's twice as slow.
This could be parallelized adding an exchange over the topmost projection. Instead, we do this serially, causing extremely low performance on queries using uast functions on the topmost projects under certain conditions.
The text was updated successfully, but these errors were encountered: