このプロジェクトは、GoのsqlxライブラリにおけるSelectContextとGetContextメソッドが、SQLの返却値が空の時に何を返すかを検証します。
- SelectContext - 空の結果セットの場合
- GetContext - 空の結果セットの場合
- SelectContext - データが存在する場合
- GetContext - データが存在する場合
- GetContext - 複数行が返される場合のエラー
ワンライナー
docker-compose up -d && sleep 5 && go run main.go; docker-compose downdocker-compose up -dgo mod downloadgo run main.godocker-compose downプログラムを実行すると、以下の情報が表示されます:
- エラーの有無
- エラーの型(特に
sql.ErrNoRowsとの一致) - 返却される値の内容
- スライスの場合は長さとnilかどうか
- SelectContext(空結果): エラーなし、空のスライス(長さ0)を返す
- GetContext(空結果):
sql.ErrNoRowsエラーを返す - GetContext(複数行): エラーを返す(複数行を単一の構造体にマッピングできないため)