@@ -68,11 +68,12 @@ impl PgConnectOptions {
68
68
69
69
let database = var ( "PGDATABASE" ) . ok ( ) ;
70
70
71
+ let ssl_mode = var ( "PGSSLMODE" )
72
+ . ok ( )
73
+ . and_then ( |v| v. parse ( ) . ok ( ) )
74
+ . unwrap_or_default ( ) ;
75
+
71
76
PgConnectOptions {
72
- port,
73
- host,
74
- socket : None ,
75
- username,
76
77
password : var ( "PGPASSWORD" ) . ok ( ) ,
77
78
database,
78
79
ssl_root_cert : var ( "PGSSLROOTCERT" ) . ok ( ) . map ( CertificateInput :: from) ,
@@ -81,15 +82,40 @@ impl PgConnectOptions {
81
82
// `-----BEGIN CERTIFICATE-----` and so will not attempt to parse
82
83
// a PEM-encoded private key.
83
84
ssl_client_key : var ( "PGSSLKEY" ) . ok ( ) . map ( CertificateInput :: from) ,
84
- ssl_mode : var ( "PGSSLMODE" )
85
- . ok ( )
86
- . and_then ( |v| v. parse ( ) . ok ( ) )
87
- . unwrap_or_default ( ) ,
88
- statement_cache_capacity : 100 ,
89
85
application_name : var ( "PGAPPNAME" ) . ok ( ) ,
86
+ options : var ( "PGOPTIONS" ) . ok ( ) ,
87
+ ..Self :: new_without_environment ( host, port, username, ssl_mode)
88
+ }
89
+ }
90
+
91
+ /// Create a minimal set of connection options _without_ applying any environment.
92
+ ///
93
+ /// To be used in situations the environment is not controlled enough to be relied upon.
94
+ /// Does not respect any `PG*` environment variables.
95
+ ///
96
+ /// See the type level-documentation for details.
97
+ pub fn new_without_environment (
98
+ host : String ,
99
+ port : u16 ,
100
+ username : String ,
101
+ ssl_mode : PgSslMode ,
102
+ ) -> Self {
103
+ PgConnectOptions {
104
+ host,
105
+ port,
106
+ socket : None ,
107
+ username,
108
+ password : None ,
109
+ database : None ,
110
+ ssl_mode,
111
+ ssl_root_cert : None ,
112
+ ssl_client_cert : None ,
113
+ ssl_client_key : None ,
114
+ statement_cache_capacity : 100 ,
115
+ application_name : None ,
90
116
extra_float_digits : Some ( "2" . into ( ) ) ,
91
117
log_settings : Default :: default ( ) ,
92
- options : var ( "PGOPTIONS" ) . ok ( ) ,
118
+ options : None ,
93
119
}
94
120
}
95
121
0 commit comments