Closed
Description
Query
cat constants.ql
/**
* @name Constant Recommendation
* @kind problem
* @problem.severity recommendation
* @id java/example/constants/evaluation
*/
import java
from Field f, StringLiteral stringLiteral, string s
where
f.getAnAssignedValue() = stringLiteral
and s = stringLiteral.getRepresentedString()
and s.length() > 2
and not exists(s.indexOf("\""))
select s, "" + stringLiteral.getLocation()
Query execution in 2 steps:
Run and Decode
❯ codeql query run --database java-database constants.ql --output=constants.bqrs
Compiling query plan for /Users/sergiobilello/Documents/repositories/asset-service/constants.ql.
[1/1] Found in cache: /Users/sergiobilello/Documents/repositories/asset-service/constants.ql.
Starting evaluation of asset-service/constants.ql.
[1/1 eval 237ms] Evaluation done; writing results to /Users/sergiobilello/Documents/repositories/asset-service/constants.bqrs.
Shutting down query evaluator.
❯ codeql bqrs decode --output=decoded.csv --format=csv constants.bqrs
❯ cat decoded.csv
"s","col1"
"/api/v1/s3/url","S3ControllerTest:32[42-57]"
"CISIAMO","S3ControllerTest:34[41-49]"
While analyze
codeql database analyze \
--rerun \
--format=csv \
--output=output.csv \
java-database \
./constants.ql
Running queries.
Compiling query plan for /Users/sergiobilello/Documents/repositories/asset-service/constants.ql.
[1/1] Found in cache: /Users/sergiobilello/Documents/repositories/asset-service/constants.ql.
Starting evaluation of asset-service/constants.ql.
[1/1 eval 275ms] Evaluation done; writing results to asset-service/constants.bqrs.
Shutting down query evaluator.
Interpreting results.
This is producing an empty CSV file