Skip to content

Add ConfigureNpgsqlDataSourceBuilder for Npgsql plugin registration#4228

Merged
jeremydmiller merged 1 commit intomasterfrom
feature/configure-npgsql-datasource-builder
Apr 6, 2026
Merged

Add ConfigureNpgsqlDataSourceBuilder for Npgsql plugin registration#4228
jeremydmiller merged 1 commit intomasterfrom
feature/configure-npgsql-datasource-builder

Conversation

@jeremydmiller
Copy link
Copy Markdown
Member

Summary

  • New public API: StoreOptions.ConfigureNpgsqlDataSourceBuilder(Action<NpgsqlDataSourceBuilder>)
  • Wraps the builder factory so Npgsql plugins (UseVector(), UseNodaTime(), UseNetTopologySuite(), etc.) are applied to every NpgsqlDataSource Marten creates, including tenant databases
  • Foundation for the external Marten.PgVector extension
  • Resolves the Npgsql type mapping aspect of Installing an extension that defines extra types results in types not being found #2515

Usage

opts.ConfigureNpgsqlDataSourceBuilder(b => b.UseVector());
opts.Storage.ExtendedSchemaObjects.Add(new Extension("vector"));

Test plan

  • Marten core compiles
  • Verified end-to-end with 14 pgvector integration tests across single tenancy, conjoined tenancy, and database-per-tenant (in CritterWatch tools/Marten.PgVector)

🤖 Generated with Claude Code

New public API on StoreOptions that wraps the NpgsqlDataSourceBuilder
factory so Npgsql plugins (UseVector, UseNodaTime, UseNetTopologySuite,
etc.) are applied to EVERY NpgsqlDataSource Marten creates, including
those for tenant databases in multi-tenancy scenarios.

Usage:
  opts.ConfigureNpgsqlDataSourceBuilder(b => b.UseVector());

This is the foundation for the Marten.PgVector extension and resolves
the core issue behind #2515 — ensuring Npgsql type mappings are
registered on all data sources, not just the default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jeremydmiller jeremydmiller merged commit 8f11664 into master Apr 6, 2026
5 of 6 checks passed
@jeremydmiller jeremydmiller deleted the feature/configure-npgsql-datasource-builder branch April 6, 2026 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant