Skip to content
Snippets Groups Projects
user avatar
samuelvasecka authored
7cd67368

Project set up

  1. Clone this repo

  2. Follow these steps from this page   Set up Application Default Credentials (ADC) in your local environment:

    • Install the Google Cloud CLI, then initialize it by running the following command: gcloud init

    • Create local authentication credentials for your Google Account: gcloud auth application-default login

    • A login screen is displayed. After you log in, your credentials are stored in the local credential file used by ADC.

    For more information about working with ADC in a local environment, see Local development environment.  

  3. In the GithubFinder.java on the line 75 remove "ADD_HERE_YOUR_GITHUB_TOKEN" and add your own token (go to your GitHub profile -> Settings -> Developer Settings -> Personal access tokens -> tokens -> Generate new token)

  4. Run ./gradlew build You should see: BUILD SUCCESSFUL

  5. Project should be ready

Usage

Project can be run by command: ./gradlew run This will be run in default configuration

To change configuration, you should use command parameters:

  1. files - number of files to fetch from Github (Max limit 5000/hour)
  2. batch - number of files in one batch (please set to the number of files)
  3. mode mode=1 - it will use example files (for testing purposes) mode=2 - it will fetch files from github mode=3 - it will delete local DB with queries (for testing purposes)
  4. offset - number of already processed files (files from github are ordered by repozitory name) so processed files won't be fetched again
  5. sample sample=1 - it will use sample github collections (for testing purposes) sample=2 - it will use original github collection

Parameters can be used like this:

  • ./gradlew run -Dfiles=100 -Dbatch=50 -Dmode=2 -Doffset=200 -Dsample=2
  • This command will fetch 100 files in two 50 files batches from github (mode=2) from offset 200 (so there will be products from 200 to 300) from original github collection (sample=2)

Here is the test run:

Number of files: 5000 Total time: 29,4 min SQL queries found: 78

Github requests time in ms: 1727552 (98,01%)
ANTLR parsing time in ms: 17692 (1,00%)
Parsing tree string finding in ms: 8517 (0,48%)
Whole time: 1762689
Number of valid files: 339
Number of all found queries: 78 (from 5000 files)
Number of TSql queries: 0
Number of Postgre SQL queries: 32
Number of PlSql queries: 1
Number of MySql queries: 45
New offset to use for query: 5000

Database after the test run:

Id Repozitory File DB dialect SQL query
1 0--key/lib portfolio/2008_eda/snapshots/edacomua/login.php POSTGRE SQL SELECT PASS FROM CLIENTS WHERE NICK = :P0;
2 0--key/lib portfolio/2008_eda/snapshots/edacomua/login.php POSTGRE SQL SELECT NAME FROM CLIENTS WHERE NICK = :P0;
3 0--key/lib portfolio/2008_eda/snapshots/edacomua/RegValid.php POSTGRE SQL SELECT * FROM CLIENTS WHERE NICK = :P0;
4 0--key/lib portfolio/2008_eda/snapshots/edacomua/phptest1.php MYSQL SELECT * FROM PET;
5 0--key/lib portfolio/2008_eda/snapshots/edacomua/RegRunnerSuccess.php POSTGRE SQL SELECT * FROM RUNNERS WHERE NICK = :P0;
6 0--key/lib portfolio/2008_eda/files/wap/a/wap_index_new.php MYSQL SELECT * FROM RUNNERS;
7 0--key/lib portfolio/2008_eda/snapshots/edacomua/Runner_Valid.php POSTGRE SQL SELECT * FROM RUNNERS WHERE NICK = :P0;
8 0--key/lib portfolio/2008_eda/files/wap/a/login.php POSTGRE SQL SELECT * FROM RUNNERS WHERE NICK = :P0 AND PASSWORD = :P1;
9 0--key/lib portfolio/2008_eda/files/wap/a/login.php POSTGRE SQL SELECT OR_NO , STATUS , CR_TIME2 , CU_NICK FROM ORDERS WHERE RU_NICK = :P0 AND QUALITY = 'WELL'
10 0--key/lib portfolio/2008_eda/files/wap/a/login.php POSTGRE SQL SELECT ID , PCS FROM BASKETS WHERE ORDER_NO = :P0;
11 0--key/lib portfolio/2008_eda/files/wap/a/login.php POSTGRE SQL SELECT MEAL_NAME , MANUFACTURER , CAPACITY FROM MEAL_GLOBAL WHERE ID = :P0;
12 0--key/lib portfolio/2008_eda/files/wap/a/login.php POSTGRE SQL SELECT PRICE_UH , ALLOCATION FROM MEAL_LOCAL WHERE ID = :P0;
13 0--key/lib portfolio/2008_eda/files/wap/a/login.php POSTGRE SQL SELECT * FROM CUSTOMERS WHERE NICK = :P0;
14 0--key/lib portfolio/2008_eda/snapshots/20042008/Input_id.php POSTGRE SQL SELECT * FROM MEAL_GLOBAL WHERE ID = :P0;
15 0--key/lib portfolio/2008_eda/snapshots/20042008/Input_id.php POSTGRE SQL SELECT * FROM MEAL_LOCAL WHERE ID = :P0 AND STORE_NAME = :P1;
16 0--key/lib portfolio/2008_eda/snapshots/edacomua/RegSuccess.php POSTGRE SQL SELECT * FROM CLIENTS WHERE NICK = :P0;
17 0--key/lib portfolio/2008_eda/files/wap/a/wap_index_new3.php MYSQL SELECT COUNT ( * ) FROM RUNNERS;
18 0--key/lib portfolio/2008_eda/snapshots/edacomua/EncodingProbe.php MYSQL SELECT NICK FROM CLIENTS WHERE PASS = 'SOFT';
19 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT CU_NICK FROM ORDERS WHERE OR_NO = :P0;
20 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT PASSWORD , STATUS , TYPE FROM RUNNERS WHERE NICK = :P0;
21 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT STATUS , TYPE , TOWN , IV FROM RUNNERS WHERE NICK = :P0;
22 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT OR_NO , STATUS , CR_TIME2 FROM ORDERS WHERE RU_NICK = :P0 AND QUALITY = 'WELL' ORDER BY CR_TIME2 DESC;
23 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT ID , PCS FROM BASKETS WHERE ORDER_NO = :P0;
24 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT MEAL_NAME , MANUFACTURER , CAPACITY FROM MEAL_GLOBAL WHERE ID = :P0;
25 0--key/lib portfolio/2008_eda/files/wap/wap_login.php POSTGRE SQL SELECT PRICE_UH , ALLOCATION FROM MEAL_LOCAL WHERE ID = :P0;
26 0--key/lib portfolio/2008_eda/snapshots/20042008/index.php MYSQL SELECT * FROM RUNNERS;
27 0--key/lib portfolio/2008_eda/snapshots/20042008/index.php PLSQL SELECT * FROM STORE;
28 0--key/lib portfolio/2008_eda/snapshots/20042008/index.php MYSQL SELECT * FROM CUSTOMERS;
29 0--key/lib portfolio/2008_eda/snapshots/20042008/index.php MYSQL SELECT * FROM MEAL_GLOBAL;
30 0--key/lib portfolio/2008_eda/snapshots/20042008/index.php MYSQL SELECT * FROM MEAL_LOCAL;
31 0--key/lib portfolio/2008_eda/snapshots/edacomua/TypicalOrder.php MYSQL SELECT * FROM PET;
32 0--key/lib portfolio/2008_eda/snapshots/20042008/Manage_section.php POSTGRE SQL SELECT ID , MEAL_NAME FROM MEAL_GLOBAL WHERE MEAL_TYPE = :P0;
33 0--key/lib portfolio/2008_eda/snapshots/20042008/login.php POSTGRE SQL SELECT PASS FROM CUSTOMERS WHERE NICK = :P0;
34 0--key/lib portfolio/2008_eda/snapshots/20042008/login.php POSTGRE SQL SELECT PASSWORD FROM RUNNERS WHERE NICK = :P0;
35 0--key/lib portfolio/2008_eda/snapshots/20042008/login.php POSTGRE SQL SELECT * FROM RUNNERS WHERE NICK = :P0;
36 0--key/lib portfolio/2008_eda/snapshots/20042008/login.php POSTGRE SQL SELECT * FROM CUSTOMERS WHERE NICK = :P0;
37 0--key/lib portfolio/2008_eda/snapshots/20042008/Arrive_in_store.php POSTGRE SQL SELECT * FROM RUNNERS WHERE NICK = :P0;
38 0--key/lib portfolio/2008_eda/snapshots/20042008/Arrive_in_store.php POSTGRE SQL SELECT * FROM STORES WHERE TOWN = :P0 AND STORE_NAME = :P1;
39 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT 1 FROM MYSQL .USER LIMIT 1;
40 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT 1 FROM INFORMATION_SCHEMA . USER_PRIVILEGES WHERE PRIVILEGE_TYPE = 'CREATE USER' AND '''PMA_TEST''@''LOCALHOST''' LIKE GRANTEE LIMIT 1;
41 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT 1 FROM ( SELECT GRANTEE , IS_GRANTABLE FROM INFORMATION_SCHEMA . COLUMN_PRIVILEGES UNION SELECT GRANTEE , IS_GRANTABLE FROM INFORMATION_SCHEMA . TABLE_PRIVILEGES UNION SELECT GRANTEE , IS_GRANTABLE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES UNION SELECT GRANTEE , IS_GRANTABLE FROM INFORMATION_SCHEMA . USER_PRIVILEGES ) T WHERE IS_GRANTABLE = 'YES' AND '''PMA_TEST''@''LOCALHOST''' LIKE GRANTEE LIMIT 1;
42 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * FROM INFORMATION_SCHEMA .CHARACTER_SETS;
43 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * FROM INFORMATION_SCHEMA .COLLATIONS;
44 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT TABLE_NAME FROM INFORMATION_SCHEMA . TABLES WHERE TABLE_SCHEMA = 'PMA_TEST' AND TABLE_TYPE = 'BASE TABLE';
45 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT COLUMN_NAME , MIMETYPE , TRANSFORMATION , TRANSFORMATION_OPTIONS , INPUT_TRANSFORMATION , INPUT_TRANSFORMATION_OPTIONS FROM PMADB . COLUMN_INFO WHERE DB_NAME = 'PMA_TEST' AND TABLE_NAME = 'TABLE1' AND ( MIMETYPE ! = '' OR TRANSFORMATION ! = '' OR TRANSFORMATION_OPTIONS ! = '' OR INPUT_TRANSFORMATION ! = '' OR INPUT_TRANSFORMATION_OPTIONS ! = '' );
46 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT TABLE_NAME FROM INFORMATION_SCHEMA .VIEWS WHERE TABLE_SCHEMA = 'PMA_TEST' AND TABLE_NAME = 'TABLE1';
47 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * , TABLE_SCHEMA AS DB , TABLE_NAME AS NAME , TABLE_TYPE AS TABLE_TYPE , ENGINE AS ENGINE , ENGINE AS TYPE , VERSION AS VERSION , ROW_FORMAT AS ROW_FORMAT , TABLE_ROWS AS ROWS , AVG_ROW_LENGTH AS AVG_ROW_LENGTH , DATA_LENGTH AS DATA_LENGTH , MAX_DATA_LENGTH AS MAX_DATA_LENGTH , INDEX_LENGTH AS INDEX_LENGTH , DATA_FREE AS DATA_FREE , AUTO_INCREMENT AS AUTO_INCREMENT , CREATE_TIME AS CREATE_TIME , UPDATE_TIME AS UPDATE_TIME , CHECK_TIME AS CHECK_TIME , TABLE_COLLATION AS COLLATION , CHECKSUM AS CHECKSUM , CREATE_OPTIONS AS CREATE_OPTIONS , TABLE_COMMENT AS COMMENT FROM INFORMATION_SCHEMA . TABLES T WHERE TABLE_SCHEMA IN ( 'PMA_TEST' ) AND T . TABLE_NAME = 'TABLE1' ORDER BY NAME ASC;
48 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT COUNT ( * ) FROM PMA_TEST . TABLE1;
49 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . USER_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'TRIGGER';
50 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'TRIGGER' AND 'PMA_TEST' LIKE TABLE_SCHEMA;
51 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . TABLE_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'TRIGGER' AND 'PMA_TEST' LIKE TABLE_SCHEMA AND TABLE_NAME = 'TABLE1';
52 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . USER_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'EVENT';
53 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'EVENT' AND 'PMA_TEST' LIKE TABLE_SCHEMA;
54 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . TABLE_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'EVENT' AND TABLE_SCHEMA = 'PMA_TEST' AND TABLE_NAME = 'TABLE1';
55 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT TRIGGER_SCHEMA , TRIGGER_NAME , EVENT_MANIPULATION , EVENT_OBJECT_TABLE , ACTION_TIMING , ACTION_STATEMENT , EVENT_OBJECT_SCHEMA , EVENT_OBJECT_TABLE , DEFINER FROM INFORMATION_SCHEMA .TRIGGERS WHERE EVENT_OBJECT_SCHEMA = 'PMA_TEST' AND EVENT_OBJECT_TABLE = 'TABLE1' ;;
56 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'EVENT' AND TABLE_SCHEMA = 'PMA';
57 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'TRIGGER' AND TABLE_SCHEMA = 'PMA';
58 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA .SCHEMATA WHERE SCHEMA_NAME = 'PMA_TEST' LIMIT 1;
59 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT TRACKING_ACTIVE FROM PMADB . TRACKING WHERE DB_NAME = 'PMA_TEST_DB' AND TABLE_NAME = 'PMA_TEST_TABLE' ORDER BY VERSION DESC LIMIT 1;
60 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT TRACKING_ACTIVE FROM PMADB . TRACKING WHERE DB_NAME = 'PMA_TEST_DB' AND TABLE_NAME = 'PMA_TEST_TABLE2' ORDER BY VERSION DESC LIMIT 1;
61 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA . SCHEMATA , ( SELECT DB_FIRST_LEVEL FROM ( SELECT DISTINCT SUBSTRING_INDEX ( SCHEMA_NAME , '' , 1 ) DB_FIRST_LEVEL FROM INFORMATION_SCHEMA .SCHEMATA WHERE TRUE ) T ORDER BY DB_FIRST_LEVEL ASC LIMIT 0 , 100 ) T2 WHERE TRUE AND 1 = LOCATE ( CONCAT ( DB_FIRST_LEVEL , '' ) , CONCAT ( SCHEMA_NAME , '_' ) ) ORDER BY SCHEMA_NAME ASC;
62 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT COUNT ( * ) FROM ( SELECT DISTINCT SUBSTRING_INDEX ( SCHEMA_NAME , '_' , 1 ) DB_FIRST_LEVEL FROM INFORMATION_SCHEMA .SCHEMATA WHERE TRUE ) T;
63 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PARTITION_METHOD FROM INFORMATION_SCHEMA . PARTITIONS WHERE TABLE_SCHEMA = 'DB' AND TABLE_NAME = 'TABLE';
64 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * FROM MYSQL . DB LIMIT 1;
65 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * FROM MYSQL . COLUMNS_PRIV LIMIT 1;
66 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * FROM MYSQL . TABLES_PRIV LIMIT 1;
67 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * FROM MYSQL . PROCS_PRIV LIMIT 1;
68 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PLUGIN FROM MYSQL . USER WHERE USER = "PMA_USERNAME" AND HOST = "PMA_HOSTNAME" LIMIT 1;
69 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT TABLE_NAME FROM INFORMATION_SCHEMA .VIEWS WHERE TABLE_SCHEMA = 'DB' AND TABLE_NAME = 'TABLE';
70 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT * , TABLE_SCHEMA AS DB , TABLE_NAME AS NAME , TABLE_TYPE AS TABLE_TYPE , ENGINE AS ENGINE , ENGINE AS TYPE , VERSION AS VERSION , ROW_FORMAT AS ROW_FORMAT , TABLE_ROWS AS ROWS , AVG_ROW_LENGTH AS AVG_ROW_LENGTH , DATA_LENGTH AS DATA_LENGTH , MAX_DATA_LENGTH AS MAX_DATA_LENGTH , INDEX_LENGTH AS INDEX_LENGTH , DATA_FREE AS DATA_FREE , AUTO_INCREMENT AS AUTO_INCREMENT , CREATE_TIME AS CREATE_TIME , UPDATE_TIME AS UPDATE_TIME , CHECK_TIME AS CHECK_TIME , TABLE_COLLATION AS COLLATION , CHECKSUM AS CHECKSUM , CREATE_OPTIONS AS CREATE_OPTIONS , TABLE_COMMENT AS COMMENT FROM INFORMATION_SCHEMA . TABLES T WHERE TABLE_SCHEMA IN ( 'DB' ) AND T . TABLE_NAME = 'TABLE' ORDER BY NAME ASC;
71 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PLUGIN_NAME , PLUGIN_DESCRIPTION FROM INFORMATION_SCHEMA . PLUGINS WHERE PLUGIN_TYPE = 'AUTHENTICATION' ;;
72 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'EVENT' AND 'DB' LIKE TABLE_SCHEMA;
73 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT PRIVILEGE_TYPE FROM INFORMATION_SCHEMA . SCHEMA_PRIVILEGES WHERE GRANTEE = '''PMA_TEST''@''LOCALHOST''' AND PRIVILEGE_TYPE = 'TRIGGER' AND 'DB' LIKE TABLE_SCHEMA;
74 007durgesh219/phpmyadmin libraries/dbi/DBIDummy.php MYSQL SELECT ( COUNT ( DB_FIRST_LEVEL ) DIV 100 ) * 100 FROM ( SELECT DISTINCT SUBSTRING_INDEX ( SCHEMA_NAME , '_' , 1 ) DB_FIRST_LEVEL FROM INFORMATION_SCHEMA .SCHEMATA WHERE SCHEMA_NAME < 'DB' ) T;
75 00foobar/openDGS classes/Pagination.php POSTGRE SQL SELECT COUNT ( * ) FROM :P0 WHERE CATEGORY = :CATEGORY;
76 00foobar/openDGS classes/Pagination.php POSTGRE SQL SELECT * FROM :P0 ORDER BY ID DESC LIMIT :LIMITVAR OFFSET :OFFSETVAR;
77 00foobar/openDGS classes/Pagination.php POSTGRE SQL SELECT * FROM :P0 WHERE CATEGORY = :CATEGORY ORDER BY ID DESC LIMIT :LIMITVAR OFFSET :OFFSETVAR;
78 0100Dev/WHMCS-Acumulus src/includes/inject.php POSTGRE SQL SELECT GATEWAY FROM TBLPAYMENTGATEWAYS WHERE GATEWAY = :P0 AND SETTING = "ACUMULUSACCOUNT" LIMIT 1;