
On 13 Nov 2024, at 14:30, Richard Hodges via Boost
wrote: The Boost formal review of the Boost SQLITE library starts *TODAY*, taking place from November 13th, 2024 to November 22nd, 2024 (inclusive).
This is not a review, just documentation errata. Overall, pretty good. 1) This library provides a simple C++ sqlite library. sqlite -> SQLite, https://www.sqlite.org https://www.sqlite.org/ 2) "link against boost_sqlite for embedding it" Not clear what embedding means here, "dynamically linking to it" or maybe you mean statically? 3) conn.prepare("insert into author (first_name, last_name) values (?1, ?2), (?3, ?4), (?5, ?6), (?7, ?8)") .execute({"vinnie", "falco", "richard", "hodges", "ruben", "perez", "peter", "dimov"}); Bad style for SQL? I would simplify: auto st = conn.prepare("insert into author ... st.execute( ... st.execute( ... st.execute( ... Incidentally, what is the difference, if any, between placeholders beginning with ? and $ Also, why the quotes in insert into library (\"name\", author Is name a reserved keyword in sqlite? 4) in the tuple example: std::cout << std::get<0>(q) << " authored " << std::get<0>(q) << std::endl; The second one should be std::get<1> ? 5) "a custom aggregate function" This is fantastic functionality, is it a wrapper for sqlite-native sqlite3_create_window_function? Perhaps an example creating a scalar sql function should go before it? 6) Someone already pointed this out, it is confusing that sqlite recognizes just five types but this API has eight very different-looking ones. Some explanation is due, presumably about how boost_sqlite decides to map types? 7) In the vtables section "module" is mentioned but does it refer to something entrirely different from the next section, also called modules? This one is presumably a DLL of some sort, is it persistent between program invokations? Also a "prototype" is mentioned but unclear what that refers to? 8) Is it true that create_scalar_function can be used with or without creating a module? 7) Library Comparisons Here the author deserves a commendation, as this provides a short overview of the state-of-the-art in this field and raison d'etre. Should be a required topic for every candidate library! Looking forward to actually doing something useful with this! Cheeers, Kostas