Remove creating subpath for file database

This commit is contained in:
2025-10-25 18:13:05 +03:00
parent 2b3ba846b0
commit 954062f6c6
2 changed files with 4 additions and 16 deletions

View File

@@ -48,8 +48,6 @@ public final class Connection {
/// Initializes a new connection to an SQLite database. /// Initializes a new connection to an SQLite database.
/// ///
/// Opens a connection to the database at the specified `location` using the given `options`. /// Opens a connection to the database at the specified `location` using the given `options`.
/// If the location represents a file path, this method ensures that the parent directory
/// exists, creating intermediate directories if needed.
/// ///
/// ### Example /// ### Example
/// ///
@@ -73,15 +71,7 @@ public final class Connection {
/// ///
/// - Throws: ``SQLiteError`` if the connection cannot be opened or initialized due to /// - Throws: ``SQLiteError`` if the connection cannot be opened or initialized due to
/// SQLite-related issues such as invalid path, missing permissions, or corruption. /// SQLite-related issues such as invalid path, missing permissions, or corruption.
/// - Throws: An error if directory creation fails for file-based database locations. public init(location: Location, options: Options) throws(SQLiteError) {
public init(location: Location, options: Options) throws {
if case let Location.file(path) = location, !path.isEmpty {
try FileManager.default.createDirectory(
at: URL(fileURLWithPath: path).deletingLastPathComponent(),
withIntermediateDirectories: true
)
}
var connection: OpaquePointer! = nil var connection: OpaquePointer! = nil
let status = sqlite3_open_v2(location.path, &connection, options.rawValue, nil) let status = sqlite3_open_v2(location.path, &connection, options.rawValue, nil)
@@ -121,8 +111,7 @@ public final class Connection {
/// ///
/// - Throws: ``SQLiteError`` if the connection cannot be opened due to SQLite-level errors, /// - Throws: ``SQLiteError`` if the connection cannot be opened due to SQLite-level errors,
/// invalid path, missing permissions, or corruption. /// invalid path, missing permissions, or corruption.
/// - Throws: An error if the required directory structure cannot be created. public convenience init(path: String, options: Options) throws(SQLiteError) {
public convenience init(path: String, options: Options) throws {
try self.init(location: .file(path: path), options: options) try self.init(location: .file(path: path), options: options)
} }

View File

@@ -25,9 +25,8 @@ SQLite messages verbatim.
Most DataLiteCore APIs are annotated as `throws(SQLiteError)`, meaning they only throw SQLiteError Most DataLiteCore APIs are annotated as `throws(SQLiteError)`, meaning they only throw SQLiteError
instances. instances.
Only APIs that touch the file system or execute arbitrary user code may throw other error Only APIs that execute arbitrary user code or integrate with external systems may surface other
types — for example, ``Connection/init(location:options:)`` when creating directories for on-disk error types. Consult the documentation on each API for specific details.
databases.
```swift ```swift
do { do {