@@ -17,7 +17,7 @@ class PostgresV3PDO extends PDOInterface {
1717 int port = 5432 ;
1818 String driver = 'pgsql' ;
1919 String host = 'localhost' ;
20- dynamic attributes;
20+ Map < dynamic , dynamic > ? attributes;
2121
2222 /// Creates a PDO instance representing a connection to a database
2323 /// Example
@@ -56,6 +56,8 @@ class PostgresV3PDO extends PDOInterface {
5656 Future <PostgresV3PDO > connect () async {
5757 final dsnParser = DSNParser (dsn, DsnType .pdoPostgreSql);
5858
59+ // dsnParser.sslmode?.toString() == 'require'
60+
5961 connection = await Connection .open (
6062 Endpoint (
6163 host: dsnParser.host,
@@ -66,15 +68,18 @@ class PostgresV3PDO extends PDOInterface {
6668 ),
6769 settings: ConnectionSettings (
6870 encoding: _getEncoding (dsnParser.charset ?? 'utf8' ),
69- sslMode: SslMode .disable,
71+ sslMode: dsnParser.sslmode? .toString () == 'require'
72+ ? SslMode .require
73+ : SslMode .disable,
7074 ));
7175
7276 await connection
7377 .execute ('''SET client_encoding = '${dsnParser .charset }';''' );
7478 return this ;
7579 }
7680
77- Future <T > runInTransaction <T >(Future <T > operation (PostgresV3PDOTransaction ctx),
81+ Future <T > runInTransaction <T >(
82+ Future <T > operation (PostgresV3PDOTransaction ctx),
7883 [int ? timeoutInSeconds]) async {
7984 if (timeoutInSeconds == null ) {
8085 timeoutInSeconds = defaultTimeoutInSeconds;
@@ -85,7 +90,7 @@ class PostgresV3PDO extends PDOInterface {
8590 return operation (pdoCtx);
8691 });
8792
88- return res ;
93+ return res;
8994 }
9095
9196 /// Executa uma instrução SQL e retornar o número de linhas afetadas
@@ -116,16 +121,17 @@ class PostgresV3PDO extends PDOInterface {
116121 final rows = rs.map ((row) => row.toColumnMap ()).toList ();
117122 final maps = < Map <String , dynamic >> [];
118123 if (rows.isNotEmpty) {
119- for (final row in rows) {
124+ for (final row in rows) {
120125 final map = < String , dynamic > {};
121126 for (final col in row.entries) {
122127 final key = col.key;
123- final value = col.value is UndecodedBytes ? col.value.asString : col.value;
128+ final value =
129+ col.value is UndecodedBytes ? col.value.asString : col.value;
124130 map.addAll ({key: value});
125131 }
126- maps.add (map);
132+ maps.add (map);
127133 }
128- }
134+ }
129135
130136 final pdoResult = PDOResults (maps, rs.affectedRows);
131137 return pdoResult;
0 commit comments