CodeSampleX

サンプル

github.com/jackc/pgx/v5 v5.7.2: ParseConfig

検証済みサンプル — golang github.com/jackc/pgx/v5 v5.7.2: ParseConfig. go 1.26 · linux debian/x64 · docker で contract を実行し、成功しました: pgx.ParseConfig parses standard…

sha256:8afb16222d0c5d0b3f564cac527cf1bcee6e3e1f98f0575955eaa48622819015

このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。 合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。 MIT-0

実行証拠

宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。

証拠の基準
署名済みコントラクト合格
検証レシート
1
ビルドした署名鍵
1
宣言された環境 linux 24 · ubuntu · glibc 2.39 amd64 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 github.com/jackc/pgx/v5.ParseConfig in pkg:golang/github.com/jackc/pgx/v5@v5.7.2
パッケージ
シンボル
  • github.com/jackc/pgx/v5.ParseConfig
作成日
2026-09-13T20:22:35Z

コントラクト

  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.

ファイル

  • NOTES.md
  • PROMPT.md
  • csx.json
  • go.mod
  • go.sum
  • main.go
  • spec.json
  • test/contract.go

ソースアーティファクトをダウンロード (tar.gz)

ソース

NOTES.md
# Parsing Connection Strings with pgx.ParseConfig

Demonstrates parsing PostgreSQL connection strings using `github.com/jackc/pgx/v5.ParseConfig` in `pkg:golang/github.com/jackc/pgx/v5@v5.7.2`.

## Verified Behaviors

1. Standard PostgreSQL URL parsing (`postgres://user:password@host:port/dbname`).
2. DSN key-value connection string parsing (`host=localhost port=5433 dbname=...`).
3. Parsing URL query parameters into `RuntimeParams` and connection options like `connect_timeout`.
4. Returning non-nil error when parsing invalid connection strings or invalid port values.
5. Handling `sslmode` parameter (disabling or requiring TLS configuration).
PROMPT.md
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 github.com/jackc/pgx/v5.ParseConfig in 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
Demonstrate these symbols/APIs:
  - github.com/jackc/pgx/v5.ParseConfig

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.
csx.json
{"case":{"caseId":"case:sha256:0bb47efb055b94fd5224d57e5d892af5c4281c31781432fa6ef2f694d4dd01b5","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."],"goal":"verify github.com/jackc/pgx/v5.ParseConfig in 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,"symbols":["github.com/jackc/pgx/v5.ParseConfig"]},"contractCommand":["go","run","./test"],"environment":{"arch":"amd64","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","symbols":["github.com/jackc/pgx/v5.ParseConfig"],"verifierAdapter":"golang@1"}
go.mod
module sample

go 1.25.0

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
)
go.sum
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=
main.go
package main

import (
	"fmt"

	"github.com/jackc/pgx/v5"
)

func main() {
	connStr := "postgres://demo_user:demo_pass@localhost:5432/demo_db?sslmode=disable&application_name=demo_app"
	config, err := pgx.ParseConfig(connStr)
	if err != nil {
		fmt.Printf("failed to parse connection string: %v\n", err)
		return
	}

	fmt.Printf("Host: %s, Port: %d, Database: %s, User: %s, App: %s\n",
		config.Host, config.Port, config.Database, config.User, config.RuntimeParams["application_name"])
}
spec.json
{
  "schemaVersion": 1,
  "goal": "verify github.com/jackc/pgx/v5.ParseConfig in pkg:golang/github.com/jackc/pgx/v5@v5.7.2",
  "kind": "HOW",
  "packages": [
    "pkg:golang/github.com/jackc/pgx/v5@v5.7.2"
  ],
  "symbols": [
    "github.com/jackc/pgx/v5.ParseConfig"
  ]
}
test/contract.go
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
	{
		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)
		}
	}

	fmt.Println("All contract assertions passed successfully.")
}

オリジンシーダー

匿名