Comments (4)
If I understand the issue correctly, PostgresNIO
would also requires some changes, right now the only public connect
function takes a PostgresConnection.Configuration
where the Connection
struct only accept host and port.
Those warnings come from the condition where you don't have a hostname, just a Unix domain socket. Will need PostgresNIO
support before address them.
from postgres-kit.
Depends on Adding uds connection support #302
from postgres-kit.
After studying this issue I have come to a conclusion that additional changes will need to be made to the PostgresNIO package to fix this issue.
Currently, there are four ways to initialize a PostgresConfiguration
in the PostgresKit:
- URL(String)
- URL(URL)
- Host:Port
- UnixDomianSocketPath.
The URL initializers parse the URL into the PostgresKit/PostgresConfiguration
properties including the internal host and port fields.
The Host:Port initializer will also populate the internal host and port properties.
The UnixDomainSocketpath initializer does not populate the internal host and port properties. It sets them to 'nil'.
The PostgresNIO/PostgresConfiguration.Connection
structure requires a hostname and port. They cannot be nil. Because the 'UnixDomainSocketPath" initializer does not provide host and port properties the current implementation of the PostgresKit/PostgresConnectionSource uses the deprecated connect method that includes a socket address instead of hostname and port. This in essence is the issue.
The address
property in the PostgresKit/PostgresConfiguration
structure is a 'public' property. I am not sure why it is public since it is defaulted to a closure during 'UnixSomainSockerPath' initialization. I guess it could be set after the fact but it doesn't make much sense. Note that it is also set during URL and Host:Port initialization but is never used for connection purposes.
As mentioned, PostgresNIO
will have to changed so that the host property on the PostgresConnection.Configuration
structure will accept a UnixdomainSocketPath. This is what is done on the libpq
-C library. The host property can then be used to accept both a UnixDomainSockerpath or a host name.
from postgres-kit.
Completed in #241
from postgres-kit.
Related Issues (20)
- Are transactions supported? HOT 4
- Improve pool use documentation? HOT 2
- Dependency to PostgresNIO is incorrect
- transaction HOT 2
- Using enums as dictionary keys
- Crash in `_KeyedEncoder` when encoding a "SE-0295" `Codable` HOT 9
- swift 5.5 async await HOT 6
- PostGIS "geometry" type HOT 2
- URL is unable to be decoded HOT 3
- Usage of `try!` in repository README HOT 1
- Failing to decode enum throws incorrect error
- Add optional Application Name to Postgres Connection Info HOT 3
- Connection issue while URL contains "%" HOT 1
- Update to new PostgresNIO API HOT 1
- Standard sslmode URL params HOT 2
- SQLPostgresConfiguration does not allow the postgresql:// URL scheme
- `PostgresDataConvertible` should not be hard-deprecated till PostgresKit adopts newer APIs HOT 4
- URL is not supported as a postgres codable type
- Occasional Encoding Error HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from postgres-kit.