Skip to content

Commit 0a96202

Browse files
committed
half the readmes
1 parent 0aab4c3 commit 0a96202

File tree

4 files changed

+58
-6
lines changed

4 files changed

+58
-6
lines changed

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
# Extension Analyzer
22

3-
This repository contains the code used to analyze the extension ecosystems of PostgreSQL, MySQL/MariaDB, SQLite, Redis, and DuckDB. The code for each of these systems can be found in their respective directories.
3+
This repository contains the code used to analyze the extension ecosystems of PostgreSQL, MySQL/MariaDB, SQLite, Redis, and DuckDB. The code for each of these systems and the instructions on how to run the analysis scripts can be found in their respective directories. Additionally, we have included our the CSVs
4+
used to run our plot scripts and our matplotlib scripts in these directories as well.
5+
6+
Feel free to submit PRs and offer feedback, we would love to hear it!
7+
8+
# Specifications
9+
- This code runs on a machine with Ubuntu 22.04. Compatibility with other OSes is not supported.
10+
- All Python scripts should work with Python version 3.12.

postgresql/README.md

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
# pgext-analyzer
2-
Python scripts for generating compatibility tables and source code analysis. This is a work in progress, and for now is badly documented :,) Feel free to submit PRs and offer feedback, we would love to hear it.
2+
Python scripts for generating compatibility tables and source code analysis.
33

44
# Specifications
5-
- Runs on machine with Ubuntu 22.04. Compatibility with other OSes is not supported.
65
- The tools use PostgreSQL 15.3. Compatibility with other versions of PostgreSQL is not supported.
6+
- You will also need to run this on a machine where you have root access.
77

88
# Dependencies
9-
## Compatibility Analysis Dependencies
9+
Here are the Ubuntu packages you need to install to run the PostgreSQL analysis scripts:
1010
- readline
1111
- flex (for pg_tle)
12-
- mysql (for mysql_fdw), mysql runs with root
12+
- mysql (for mysql_fdw) (also make MySQL run with root)
1313
- libmysqlclient-dev (for mysql_fdw)
14-
- create ~/.my.cnf file with root user and password
1514
- libossp-uuid-dev (uuid-ossp)
1615
- libipc-run-perl
1716
- libperl-dev
1817
- libtinfo5
1918
- ninja-build
2019
- libsybdb5 freetds-dev freetds-common (tds_fdw)
2120

21+
Lastly, for the `mysql_fdw` extension, you will need to create a `~/.my.cnf` file with root user and password.
22+
2223
## Source Code Analysis Dependencies
2324
- PMD CPD (https://github.com/pmd/pmd/releases/tag/pmd_releases/7.0.0-rc4)
2425
- sctokenizer (https://pypi.org/project/sctokenizer/)
2526

27+
After installing PMD CPD you will need to put it in this directory (`PATH_TO_PROJECT/ext-analyzer/postgresql`).
28+
2629
## Static Analysis Dependencies
2730
- semgrep (pip install semgrep)
2831

redis/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# redisext-analyzer
2+
Python scripts for extension testing analysis for Redis.
3+
4+
# Dependencies
5+
The Python packages used in our implementation are:
6+
- csv
7+
- datetime
8+
- json
9+
- os
10+
- re
11+
- subprocess
12+
- urllib
13+
14+
All of these should be automatically included with a Python installation, but if they are not, then they can be installed with `pip`.
15+
16+
# Scripts
17+
There is one script that can be run: `source_code_analysis.py`. This script takes no arguments and outputs a CSV file containing source code statistics on Redis extensions. It can be run with default Python (`python3 source_code_analysis.py`).

sqlite/README.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# sqliteext-analyzer
2+
Python scripts for extension testing analysis for SQLite.
3+
4+
# Dependencies
5+
The Python packages used in our implementation are:
6+
- csv
7+
- datetime
8+
- json
9+
- os
10+
- queue
11+
- random
12+
- re
13+
- sqlite3
14+
- subprocess
15+
- threading
16+
- urllib
17+
18+
All of these should be automatically included with a Python installation, but if they are not, then they can be installed with `pip`.
19+
20+
# Scripts
21+
There are two scripts that can be run. First, `source_code_analysis.py` takes no arguments and outputs a CSV file containing source code statistics on SQLite extensions. This script can be run with default Python
22+
(`python3 source_code_analysis.py`).
23+
24+
The `compatibility.py` has one global variable (SINGLE, on line 11 of `compatibility.py`) that sets up the different modes of analysis. The single testing mode (`SINGLE = True`) allows each individual extension to be tested for functionality, while the compatibility testing mode (`SINGLE = False`) runs compatibility testing on all pairs of extensions. The output of this script is a CSV file with the compatibility results.
25+
This script can be run with default Python (`python3 compatibility.py`).

0 commit comments

Comments
 (0)