Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Parallelize expensive projects that are not under an exchange #766

Open
Assignees
@erizocosmico

Description

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 (
 SELECT f.repository_id,
 f.file_path,
 b.blob_content
 FROM (
 SELECT *
 FROM refs r
 NATURAL JOIN commit_blobs cb
 NATURAL JOIN blobs
 WHERE r.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
 WHERE r.ref_name = 'HEAD'
 ) f
 ON b.blob_hash = f.blob_hash
 AND b.repository_id = f.repository_id
 WHERE 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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      AltStyle によって変換されたページ (->オリジナル) /