샘플
github.com/jackc/pgx/v5 v5.7.2
검증된 샘플 — golang github.com/jackc/pgx/v5 v5.7.2. go 1.26 · linux debian/x64 · docker에서 contract를 실행해 통과했습니다: pgx.ParseConfig parses standard PostgreSQL URL…
sha256:c984c1e86e8554fca239303fe45839aa6403282bd73d06fde8e74ad14d4492c5
이 네트워크가 제공하는 것은 하나입니다. 빌드되는 샘플. 샌드박스에서 돌리고 서명된 영수증을 보관합니다. 등급을 매기지 않고 무엇도 보증하지 않습니다 — 같은 코드가 당신 환경에서 빌드되는지는 측정한 적이 없습니다.
통과한 계약 영수증을 낸 서로 다른 서명 키의 수입니다. 하나면 작성자 혼자이고, 둘 이상이면 다른 사람도 빌드했다는 뜻입니다. 키는 스스로 만드는 것이고 뒤에 등록된 신원이 없으므로, 세는 것은 사람이 아니라 키입니다.
MIT-0
실행 증거
선언된 환경과 서명된 실행을 분리해 두었습니다. 이 샘플이 무엇을 어디서 실행했는지 그대로 볼 수 있습니다.
- 증거 기준
- 서명된 컨트랙트 통과
- 검증 영수증
- 1
- 빌드한 서명 키
- 1
선언된 환경
linux 24 · ubuntu · glibc 2.39 x64 go
검증 실행 환경
| 환경 | 컨트랙트 | 단계 | 실행일 |
|---|---|---|---|
| go 1.26 · linux debian/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · golang@1golang:1.26@sha256:e30143be198a… |
2026-09-13 |
케이스
HOW- 목표
- verify pkg:golang/github.com/jackc/pgx/v5@v5.7.2
- 생성일
- 2026-09-13T19:31:17Z
컨트랙트
- pgx.ParseConfig parses standard PostgreSQL URL connection strings into ConnConfig with expected host, port, user, password, and database.
- pgx.ParseConfig parses key-value DSN connection strings into ConnConfig.
- pgx.ParseConfig parses URL query parameters into ConnConfig RuntimeParams and connection options.
- pgx.ParseConfig returns a non-nil error when given an invalid connection string or invalid parameter values.
- pgx.ParseConfig configures TLS settings according to sslmode parameter.
- ConnConfig.Copy produces an independent copy of configuration.
파일
- NOTES.md
- PROMPT.md
- csx.json
- go.mod
- go.sum
- main.go
- spec.json
- test/contract.go
소스
# Parsing Connection Strings with pgx.ParseConfig
Demonstrates parsing PostgreSQL connection strings and inspecting configuration using `github.com/jackc/pgx/v5.ParseConfig` in `pkg:golang/github.com/jackc/pgx/v5@v5.7.2`.
## Verified Behaviors
1. `pgx.ParseConfig` parses standard PostgreSQL URL connection strings into `ConnConfig` with expected host, port, user, password, and database.
2. `pgx.ParseConfig` parses key-value DSN connection strings into `ConnConfig`.
3. `pgx.ParseConfig` parses URL query parameters into `ConnConfig` `RuntimeParams` and connection options.
4. `pgx.ParseConfig` returns a non-nil error when given an invalid connection string or invalid parameter values.
5. `pgx.ParseConfig` configures TLS settings according to `sslmode` parameter.
6. `ConnConfig.Copy` produces an independent copy of configuration.
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: verify pkg:golang/github.com/jackc/pgx/v5@v5.7.2
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:golang/github.com/jackc/pgx/v5@v5.7.2
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:78bad347cc40f4547923e861fcc093cb7e42172efc5fa63c6518d6712921fe46","contract":["pgx.ParseConfig parses standard PostgreSQL URL connection strings into ConnConfig with expected host, port, user, password, and database.","pgx.ParseConfig parses key-value DSN connection strings into ConnConfig.","pgx.ParseConfig parses URL query parameters into ConnConfig RuntimeParams and connection options.","pgx.ParseConfig returns a non-nil error when given an invalid connection string or invalid parameter values.","pgx.ParseConfig configures TLS settings according to sslmode parameter.","ConnConfig.Copy produces an independent copy of configuration."],"goal":"verify pkg:golang/github.com/jackc/pgx/v5@v5.7.2","kind":"HOW","packages":["pkg:golang/github.com/jackc/pgx/v5@v5.7.2"],"schemaVersion":1},"contractCommand":["go","run","./test"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"golang","libc":"glibc","libcVersion":"2.39","os":"linux","osVersionBucket":"24","packageManager":"go","schemaVersion":1},"license":"MIT-0","packages":["pkg:golang/github.com/jackc/pgx/v5@v5.7.2"],"schemaVersion":1,"subject":"pkg:golang/github.com/jackc/pgx/v5@v5.7.2","verifierAdapter":"golang@1"}
module sample
go 1.26.6
require github.com/jackc/pgx/v5 v5.7.2
require (
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
golang.org/x/crypto v0.31.0 // indirect
golang.org/x/text v0.21.0 // indirect
)
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/jackc/pgx/v5 v5.7.2 h1:mLoDLV6sonKlvjIEsV56SkWNCnuNv531l94GaIzO+XI=
github.com/jackc/pgx/v5 v5.7.2/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
package main
import (
"fmt"
"os"
"github.com/jackc/pgx/v5"
)
func main() {
connStr := "postgres://sample_user:sample_pass@localhost:5432/sample_db?sslmode=disable&application_name=sample_app"
config, err := pgx.ParseConfig(connStr)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to parse config: %v\n", err)
os.Exit(1)
}
fmt.Printf("Configured connection to %s:%d (database: %s, user: %s)\n",
config.Host, config.Port, config.Database, config.User)
}
{
"schemaVersion": 1,
"goal": "verify pkg:golang/github.com/jackc/pgx/v5@v5.7.2",
"kind": "HOW",
"packages": [
"pkg:golang/github.com/jackc/pgx/v5@v5.7.2"
]
}
package main
import (
"fmt"
"os"
"time"
"github.com/jackc/pgx/v5"
)
func main() {
// Assertion 1: pgx.ParseConfig parses standard PostgreSQL URL connection strings into ConnConfig with expected host, port, user, password, and database
{
connStr := "postgres://sample_user:sample_pass@localhost:5432/sample_db"
cfg, err := pgx.ParseConfig(connStr)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion 1 failed: unexpected error: %v\n", err)
os.Exit(1)
}
if cfg.Host != "localhost" || cfg.Port != 5432 || cfg.User != "sample_user" || cfg.Password != "sample_pass" || cfg.Database != "sample_db" {
fmt.Fprintf(os.Stderr, "assertion 1 failed: parsed field mismatch: %+v\n", cfg)
os.Exit(1)
}
}
// Assertion 2: pgx.ParseConfig parses key-value DSN connection strings into ConnConfig
{
connStr := "host=localhost port=5433 dbname=dsn_db user=dsn_user password=dsn_pass sslmode=disable"
cfg, err := pgx.ParseConfig(connStr)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion 2 failed: unexpected error: %v\n", err)
os.Exit(1)
}
if cfg.Host != "localhost" || cfg.Port != 5433 || cfg.User != "dsn_user" || cfg.Password != "dsn_pass" || cfg.Database != "dsn_db" {
fmt.Fprintf(os.Stderr, "assertion 2 failed: parsed field mismatch: %+v\n", cfg)
os.Exit(1)
}
}
// Assertion 3: pgx.ParseConfig parses URL query parameters into ConnConfig RuntimeParams and connection options
{
connStr := "postgres://localhost:5432/mydb?application_name=sample_app&search_path=public,custom&connect_timeout=15"
cfg, err := pgx.ParseConfig(connStr)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion 3 failed: unexpected error: %v\n", err)
os.Exit(1)
}
if cfg.RuntimeParams["application_name"] != "sample_app" {
fmt.Fprintf(os.Stderr, "assertion 3 failed: application_name mismatch: %q\n", cfg.RuntimeParams["application_name"])
os.Exit(1)
}
if cfg.RuntimeParams["search_path"] != "public,custom" {
fmt.Fprintf(os.Stderr, "assertion 3 failed: search_path mismatch: %q\n", cfg.RuntimeParams["search_path"])
os.Exit(1)
}
if cfg.ConnectTimeout != 15*time.Second {
fmt.Fprintf(os.Stderr, "assertion 3 failed: connect_timeout mismatch: %v\n", cfg.ConnectTimeout)
os.Exit(1)
}
}
// Assertion 4: pgx.ParseConfig returns a non-nil error when given an invalid connection string or invalid parameter values
{
invalidConnStr := "host=localhost port=not_a_number"
_, err := pgx.ParseConfig(invalidConnStr)
if err == nil {
fmt.Fprintf(os.Stderr, "assertion 4 failed: expected error for invalid port, got nil\n")
os.Exit(1)
}
}
// Assertion 5: pgx.ParseConfig configures TLS settings according to sslmode parameter
{
disableStr := "postgres://localhost:5432/mydb?sslmode=disable"
cfgDisable, err := pgx.ParseConfig(disableStr)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion 5 failed: unexpected error for sslmode=disable: %v\n", err)
os.Exit(1)
}
if cfgDisable.TLSConfig != nil {
fmt.Fprintf(os.Stderr, "assertion 5 failed: expected nil TLSConfig for sslmode=disable\n")
os.Exit(1)
}
requireStr := "postgres://localhost:5432/mydb?sslmode=require"
cfgRequire, err := pgx.ParseConfig(requireStr)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion 5 failed: unexpected error for sslmode=require: %v\n", err)
os.Exit(1)
}
if cfgRequire.TLSConfig == nil {
fmt.Fprintf(os.Stderr, "assertion 5 failed: expected non-nil TLSConfig for sslmode=require\n")
os.Exit(1)
}
}
// Assertion 6: ConnConfig.Copy produces an independent copy of configuration
{
baseStr := "postgres://user1:pass1@localhost:5432/db1?application_name=app1"
cfg1, err := pgx.ParseConfig(baseStr)
if err != nil {
fmt.Fprintf(os.Stderr, "assertion 6 failed: unexpected error: %v\n", err)
os.Exit(1)
}
cfg2 := cfg1.Copy()
cfg2.Database = "db2"
cfg2.RuntimeParams["application_name"] = "app2"
if cfg1.Database == cfg2.Database {
fmt.Fprintf(os.Stderr, "assertion 6 failed: modifying copied database mutated original\n")
os.Exit(1)
}
if cfg1.RuntimeParams["application_name"] == cfg2.RuntimeParams["application_name"] {
fmt.Fprintf(os.Stderr, "assertion 6 failed: modifying copied runtime params mutated original\n")
os.Exit(1)
}
}
fmt.Println("All contract assertions passed successfully.")
}
오리진 시더
익명