src-d / gitbase

SQL interface to git repositories, written in Go. https://docs.sourced.tech/gitbase
Apache License 2.0
2.06k stars 124 forks source link

Empty result of query #974

Closed EgorBu closed 4 years ago

EgorBu commented 4 years ago

Hello,

I'm getting empty results for UAST unexpectedly.

How gitbase was launched:

>>> BBLFSH_ENDPOINT=0.0.0.0:9432 GITBASE_INDEX_DIR=~/workspace/egorbu/tensorflow_analysis_source_ce/dump/tensorflow_analysis/gitbase_index ./gitbase server -v -d tensorflow_repos

Version:

>>> gitbase version
gitbase (v0.23.1) - build 07-05-2019_14_11_18

Query:

SELECT
    files.repository_id,
    files.file_path,
    UAST(files.blob_content, LANGUAGE(files.file_path, files.blob_content), '//FunctionGroup') as functions
FROM files
NATURAL JOIN commit_files
NATURAL JOIN commits
NATURAL JOIN refs
WHERE
    refs.ref_name= 'HEAD' and functions IS NOT NULL
    AND LANGUAGE(files.file_path,files.blob_content) = 'Java'
LIMIT 10;

But it returns empty results. Logs from gitbase:

INFO[1820] audit trail                                   action=query address="127.0.0.1:39288" connection_id=7 duration=32.011312302s pid=7 query="SELECT\n    files.repository_id,\n    files.file_path,\n    UAST(files.blob_content, LANGUAGE(files.file_path, files.blob_content), '//FunctionGroup') as functions\nFROM files\nNATURAL JOIN commit_files\nNATURAL JOIN commits\nNATURAL JOIN refs\nWHERE\n    refs.ref_name= 'HEAD' and functions IS NOT NULL\n    AND LANGUAGE(files.file_path,files.blob_content) = 'Java'\nLIMIT 10;" success=true system=audit user=root
INFO[1820] ConnectionClosed: client 7  
erizocosmico commented 4 years ago

Before diving deeper into this, can you try with the latest rc of 0.24.0 and see if this solves your issue?

EgorBu commented 4 years ago

I will be able to check probably in couple of hours

m09 commented 4 years ago

It works for me if I prefix FunctionGroup by uast: like so:

SELECT
    files.repository_id,
    files.file_path,
    UAST(files.blob_content, LANGUAGE(files.file_path, files.blob_content), '//uast:FunctionGroup') as functions
FROM files
NATURAL JOIN commit_files
NATURAL JOIN commits
NATURAL JOIN refs
WHERE
    refs.ref_name= 'HEAD'
    AND functions IS NOT NULL
    AND LANGUAGE(files.file_path,files.blob_content) = 'Java'
LIMIT 10;
EgorBu commented 4 years ago

Thanks @erizocosmico @m09 @ajnavarro ! Solution is /FunctionGroup -> //uast:FunctionGroup