@@ -11,77 +11,6 @@ struct NorthwindApp: App {
1111 copying: Northwind . module. connectionHandler. url
1212 ) ) ?? . module!
1313
14- init ( ) {
15- lowlevelTests ( )
16- if #available( iOS 16 , * ) {
17- try ! regexTests ( )
18- }
19- }
20-
21- @available ( iOS 16 , * )
22- private func regexTests( ) throws {
23- // https://unicode-org.github.io/icu/userguide/strings/regexp.html
24- let products = try database. products. filter {
25- $0. productName. wholeMatch ( of: /^ \w + \s + \w + $/ ) != nil
26- }
27- print ( " Products: " , products. map ( \. productName) )
28- }
29-
30- private func lowlevelTests( ) {
31- let url = database. connectionHandler. url
32- var db : OpaquePointer ?
33- let rc = sqlite3_open_v2 (
34- url. absoluteString, & db,
35- SQLITE_OPEN_READONLY | SQLITE_OPEN_URI, nil
36- )
37- assert ( rc == SQLITE_OK)
38- defer {
39- sqlite3_close ( db)
40- }
41-
42- let _/* allProducts*/ = sqlite3_products_fetch ( db)
43-
44- guard let products = sqlite3_products_fetch (
45- db, sql:
46- """
47- SELECT ProductId, ProductName, QuantityPerUnit FROM Products
48- WHERE QuantityPerUnit LIKE '%boxes%'
49- """ ,
50- filter: { _ in true }
51- ) else {
52- let error = SQLError ( db)
53- fatalError ( " FETCH FAILED: \( error) " )
54- }
55- print ( " Products: # \( products. count) " )
56- // products.first?.discontinued
57-
58- var statement : OpaquePointer ?
59- let rc2 = sqlite3_prepare_v2 (
60- db,
61- """
62- SELECT ProductId, ProductName, QuantityPerUnit FROM Products
63- WHERE QuantityPerUnit LIKE ?
64- """ ,
65- - 1 , & statement, nil
66- )
67- assert ( rc2 == SQLITE_OK)
68- defer { sqlite3_finalize ( statement) }
69-
70- let SQLITE_TRANSIENT = unsafeBitCast ( - 1 , to: sqlite3_destructor_type? . self)
71-
72- sqlite3_bind_text ( statement, 1 , " %boxes% " , - 1 , SQLITE_TRANSIENT)
73-
74- //let indices = Product.Schema.lookupColumnIndices(in: statement)
75- var records = [ ( id: Int, name: String ) ] ( )
76- while sqlite3_step ( statement) == SQLITE_ROW {
77- let product = Product ( statement)
78- //let product = Product(statement, indices: indices)
79- records. append ( ( id: product. id, name: product. productName ) )
80- }
81- print ( " RECORDS: # \( records. count) " )
82-
83- // Abuse it by renaming :-)
84- }
8514
8615 var body : some Scene {
8716 WindowGroup {
0 commit comments