Skip to content

Conversation

dependabot[bot]
Copy link

@dependabot dependabot bot commented on behalf of github Mar 16, 2024

⚠️ Dependabot is rebasing this PR ⚠️

Rebasing might not happen immediately, so don't worry if this takes some time.

Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


Bumps actions/checkout from 3 to 4.

Release notes

Sourced from actions/checkout's releases.

v4.0.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v3...v4.0.0

v3.6.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v3.5.3...v3.6.0

v3.5.3

What's Changed

New Contributors

Full Changelog: actions/checkout@v3...v3.5.3

v3.5.2

What's Changed

Full Changelog: actions/checkout@v3.5.1...v3.5.2

v3.5.1

What's Changed

New Contributors

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

v4.1.2

v4.1.1

v4.1.0

v4.0.0

v3.6.0

v3.5.3

v3.5.2

v3.5.1

v3.5.0

v3.4.0

v3.3.0

v3.2.0

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Mar 16, 2024
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/checkout-4 branch from 4306e7c to 2aad4da Compare March 16, 2024 19:31
@cofin cofin merged commit 5661c0f into hatched Mar 16, 2024
@cofin cofin deleted the dependabot/github_actions/actions/checkout-4 branch March 16, 2024 19:34
cofin added a commit that referenced this pull request Oct 4, 2025
Phase 5 of performance implementation plan - adapter type conversion caching.

Changes across 5 adapters (psqlpy, duckdb, oracledb, bigquery, adbc):
- Add per-instance LRU cache (5000 entries) for string conversion
- Add character pre-check before regex execution
- Override convert_if_detected() to use cached conversion
- Define adapter-specific SPECIAL_CHARS sets for pre-checking
- ADBC: Preserve dialect parameter, add cache_size parameter

Impact: 40-60% improvement on string-heavy workloads
Cache scope: Per-instance (no config bleed between adapters)
Tests: 39 psqlpy+duckdb + 70 adbc tests passing

Related: perf.md Phase 5 (#4 Adapter Caching)
cofin added a commit that referenced this pull request Oct 5, 2025
BREAKING CHANGE: DatabaseConfig wrapper classes removed

## Summary

Eliminates DatabaseConfig wrapper pattern and separates async/sync handler
code paths for direct async operations. This combined PR merges the planned
PRs #2, #3, and #4 from the litestar-pr83-analysis into a single change.

## Architecture Changes

**Deleted**:
- `sqlspec/extensions/litestar/config.py` (292 lines) - DatabaseConfig wrapper
- `tests/unit/test_extensions/test_litestar/test_config.py` (482 lines)

**Created**:
- `sqlspec/extensions/litestar/handlers_async.py` (289 lines) - Pure async handlers
- `tests/unit/test_extensions/test_litestar/test_handlers_async.py` (290 lines)

**Modified**:
- `sqlspec/extensions/litestar/handlers.py` → `handlers_sync.py` (renamed)
- `sqlspec/extensions/litestar/plugin.py` (completely rewritten, 491 lines)
- `sqlspec/extensions/litestar/__init__.py` (updated exports)

## Plugin Now Accepts Core Configs Directly

**Before**:
```python
from sqlspec.extensions.litestar import SQLSpec, DatabaseConfig
asyncpg_config = AsyncpgConfig(pool_config={"dsn": "..."})
db_config = DatabaseConfig(config=asyncpg_config)  # Heavy wrapper!
plugin = SQLSpec(config=db_config)
```

**After**:
```python
from sqlspec import SQLSpec
from sqlspec.extensions.litestar import SQLSpec as SQLSpecPlugin
asyncpg_config = AsyncpgConfig(
    pool_config={"dsn": "..."},
    extension_config={"litestar": {"commit_mode": "autocommit"}}
)
sql = SQLSpec()
sql.add_config(asyncpg_config)
plugin = SQLSpecPlugin(config=asyncpg_config)  # No wrapper!
```

## Handler Routing

Plugin uses `config.is_async` ClassVar to route to appropriate handlers:
- **Async configs** → `handlers_async.py` (direct await, zero overhead)
- **Sync configs** → `handlers_sync.py` (minimal ensure_async_() wrapping)

## Test Results

- mypy: 0 errors across 7 source files
- ruff: All checks passed
- pytest: 14/14 unit tests passing
- Net change: -66 lines (901 additions, 967 deletions)

## Migration

Users should update to use extension_config pattern. The old DatabaseConfig
wrapper has been removed without deprecation as this PR combines multiple
planned changes into one.

Fixes performance issues identified in PR #83 analysis.
cofin added a commit that referenced this pull request Oct 5, 2025
* feat!: refactor Litestar extension.

BREAKING CHANGE: DatabaseConfig wrapper classes removed

## Summary

Eliminates DatabaseConfig wrapper pattern and separates async/sync handler
code paths for direct async operations. This combined PR merges the planned
PRs #2, #3, and #4 from the litestar-pr83-analysis into a single change.

## Architecture Changes

**Deleted**:
- `sqlspec/extensions/litestar/config.py` (292 lines) - DatabaseConfig wrapper
- `tests/unit/test_extensions/test_litestar/test_config.py` (482 lines)

**Created**:
- `sqlspec/extensions/litestar/handlers_async.py` (289 lines) - Pure async handlers
- `tests/unit/test_extensions/test_litestar/test_handlers_async.py` (290 lines)

**Modified**:
- `sqlspec/extensions/litestar/handlers.py` → `handlers_sync.py` (renamed)
- `sqlspec/extensions/litestar/plugin.py` (completely rewritten, 491 lines)
- `sqlspec/extensions/litestar/__init__.py` (updated exports)

## Plugin Now Accepts Core Configs Directly

**Before**:
```python
from sqlspec.extensions.litestar import SQLSpec, DatabaseConfig
asyncpg_config = AsyncpgConfig(pool_config={"dsn": "..."})
db_config = DatabaseConfig(config=asyncpg_config)  # Heavy wrapper!
plugin = SQLSpec(config=db_config)
```

**After**:
```python
from sqlspec import SQLSpec
from sqlspec.extensions.litestar import SQLSpec as SQLSpecPlugin
asyncpg_config = AsyncpgConfig(
    pool_config={"dsn": "..."},
    extension_config={"litestar": {"commit_mode": "autocommit"}}
)
sql = SQLSpec()
sql.add_config(asyncpg_config)
plugin = SQLSpecPlugin(config=asyncpg_config)  # No wrapper!
```

## Handler Routing

Plugin uses `config.is_async` ClassVar to route to appropriate handlers:
- **Async configs** → `handlers_async.py` (direct await, zero overhead)
- **Sync configs** → `handlers_sync.py` (minimal ensure_async_() wrapping)

## Test Results

- mypy: 0 errors across 7 source files
- ruff: All checks passed
- pytest: 14/14 unit tests passing
- Net change: -66 lines (901 additions, 967 deletions)

## Migration

Users should update to use extension_config pattern. The old DatabaseConfig
wrapper has been removed without deprecation as this PR combines multiple
planned changes into one.

Fixes performance issues identified in PR #83 analysis.

* fix: updated config

* fix: ensure tests use local handlers

* fix: cleanup

* fix: code quality updates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant