Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
e43e1a9
(feat): Add Compiler interface and Query::compile() visitor method
abnegate Mar 4, 2026
57bb071
(feat): Add SQL Builder with fluent API and parameterized queries
abnegate Mar 4, 2026
2a388f9
(docs): Update README with Compiler and Builder examples
abnegate Mar 4, 2026
d8c3af9
(feat): Add aggregation, join, distinct, union, and raw query types w…
abnegate Mar 4, 2026
d0094ba
(feat): Add Builder support for aggregations, joins, distinct, union,…
abnegate Mar 4, 2026
8ecb2b8
(test): Add tests for aggregations, joins, distinct, union, raw, and …
abnegate Mar 4, 2026
8febdbe
(docs): Add documentation for aggregations, joins, distinct, union, r…
abnegate Mar 4, 2026
14c655c
fix: address code review findings
abnegate Mar 4, 2026
96ae766
fix: address code review findings
abnegate Mar 4, 2026
fb06eb3
fix: address cycle 2 code review findings
abnegate Mar 4, 2026
4330afd
(feat): Add hook interface system with FilterHook, AttributeHook, and…
abnegate Mar 4, 2026
57b17ca
(refactor): Replace closure-based extension API with hook system in B…
abnegate Mar 4, 2026
5a5294b
(docs): Update README with hook system documentation
abnegate Mar 4, 2026
b47d9d3
(refactor): Extract Method, OrderDirection, CursorDirection enums and…
abnegate Mar 5, 2026
1c5afd6
(refactor): Move BuildResult, UnionClause, Condition, GroupedQueries …
abnegate Mar 5, 2026
4b4d14f
(chore): Add .idea to gitignore
abnegate Mar 10, 2026
882c067
(refactor): Add QuotesIdentifiers trait, exceptions, and enum updates
abnegate Mar 10, 2026
8911cb7
(refactor): Reorganize hook system into Attribute, Filter, and Join n…
abnegate Mar 10, 2026
b18b9f5
(feat): Add abstract Builder with feature interfaces, Case builder, a…
abnegate Mar 10, 2026
5880814
(feat): Add MySQL, PostgreSQL, and ClickHouse dialect builders
abnegate Mar 10, 2026
741593a
(feat): Add Schema builder layer with MySQL, PostgreSQL, and ClickHou…
abnegate Mar 10, 2026
1699453
(test): Add comprehensive tests for builders, schema, hooks, and exce…
abnegate Mar 10, 2026
51f467e
(docs): Update README with builder, schema, and hook documentation
abnegate Mar 10, 2026
aced40d
(refactor): Refine builder APIs with enums, value objects, and strict…
abnegate Mar 10, 2026
6d39bd0
(refactor): Refine schema APIs with enums and strict types
abnegate Mar 10, 2026
afa47a7
(test): Add binding count assertions, exact query tests, and fix type…
abnegate Mar 10, 2026
54cc13f
(test): Add Docker integration tests for MySQL, PostgreSQL, and Click…
abnegate Mar 10, 2026
1c74748
(chore): Add CLAUDE.md project coding rules
abnegate Mar 10, 2026
b563fb8
(test): Add advanced exact query assertions for all dialects
abnegate Mar 10, 2026
4535886
(feat): Add schema support for strict enums, partitions, comments, se…
abnegate Mar 12, 2026
37a2a77
(refactor): Remove Permission hook from library and add Write hook in…
abnegate Mar 12, 2026
692477c
(feat): Add builder features for joins, windows, merge, aggregates, a…
abnegate Mar 12, 2026
08d5692
Ignore
abnegate Mar 12, 2026
d65c06e
(feat): Add MongoDB builder and schema dialect
abnegate Mar 12, 2026
89da709
(feat): Add query parser for SQL and MongoDB dialects
abnegate Mar 12, 2026
53e35dc
(test): Add tests for MongoDB, MariaDB, SQLite, and query parser
abnegate Mar 12, 2026
9882ff2
(test): Expand unit tests for MySQL, PostgreSQL, and ClickHouse
abnegate Mar 12, 2026
6f4ccfd
(fix): Update integration tests for ClickHouse and PostgreSQL
abnegate Mar 12, 2026
f1c3d52
(chore): Add MongoDB CI service and update dependencies
abnegate Mar 12, 2026
fe50ab2
(docs): Update README with new dialects, parser, and feature docs
abnegate Mar 12, 2026
cb4910c
(style): Rename parser test methods to camelCase
abnegate Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Integration Tests

on:
push:
branches: [main]
pull_request:

jobs:
integration:
runs-on: ubuntu-latest

services:
mysql:
image: mysql:8.4
ports:
- 13306:3306
env:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: query_test
options: >-
--health-cmd="mysqladmin ping -h localhost"
--health-interval=10s
--health-timeout=5s
--health-retries=5

postgres:
image: postgres:16
ports:
- 15432:5432
env:
POSTGRES_PASSWORD: test
POSTGRES_DB: query_test
options: >-
--health-cmd="pg_isready"
--health-interval=10s
--health-timeout=5s
--health-retries=5

clickhouse:
image: clickhouse/clickhouse-server:24
ports:
- 18123:8123
- 19000:9000
env:
CLICKHOUSE_DB: query_test
options: >-
--health-cmd="wget --spider -q http://localhost:8123/ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5

mongodb:
image: mongo:7
ports:
- 27017:27017
options: >-
--health-cmd="mongosh --eval 'db.runCommand({ping:1})'"
--health-interval=10s
--health-timeout=5s
--health-retries=5

steps:
- uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: pdo, pdo_mysql, pdo_pgsql, mongodb

- name: Install dependencies
run: composer install --no-interaction --prefer-dist

- name: Run integration tests
run: composer test:integration
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
.phpunit.result.cache
composer.phar
/vendor/
.idea
coverage
coverage.xml
.DS_Store
4 changes: 4 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Project Rules

- Never add decorative section-style comment headers (e.g. `// ==================`, `// ----------`, `// ~~~~` or similar). Use plain single-line comments only when necessary.
- Always use imports (`use` statements) instead of fully qualified class names in test files and source code.
Loading
Loading