This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new e88cb46  docs(format): remove doxygen content (#140)
e88cb46 is described below

commit e88cb46419220786d54887f1b7a2fa086d6a0c30
Author: David Li <[email protected]>
AuthorDate: Fri Sep 23 10:48:34 2022 -0400

    docs(format): remove doxygen content (#140)
    
    The content will be added to the docs instead.
---
 adbc.h | 198 +++--------------------------------------------------------------
 1 file changed, 7 insertions(+), 191 deletions(-)

diff --git a/adbc.h b/adbc.h
index cda53a6..31331ae 100644
--- a/adbc.h
+++ b/adbc.h
@@ -28,6 +28,13 @@
 /// provided, which implements this same API, but dynamically loads
 /// drivers internally and forwards calls appropriately.
 ///
+/// ADBC uses structs with free functions that operate on those
+/// structs to model objects.
+///
+/// In general, objects allow serialized access from multiple threads,
+/// but not concurrent access.  Specific implementations may permit
+/// multiple threads.
+///
 /// \version 1.0.0
 
 #pragma once
@@ -156,15 +163,6 @@ struct ArrowArrayStream {
 #endif  // defined(_WIN32)
 #endif  // !defined(ADBC_EXPORT)
 
-/// \page object-model Object Model
-///
-/// ADBC uses structs with free functions that operate on those
-/// structs to model objects.
-///
-/// In general, objects allow serialized access from multiple threads,
-/// but not concurrent access.  Specific implementations may permit
-/// multiple threads.
-
 // Forward declarations
 struct AdbcDriver;
 struct AdbcStatement;
@@ -1129,185 +1127,3 @@ typedef AdbcStatusCode (*AdbcDriverInitFunc)(int 
version, void* driver,
 #ifdef __cplusplus
 }
 #endif
-
-/// \page decoder-ring Comparison with Other APIs
-///
-/// <table>
-///   <caption>Equivalent concepts between ADBC and other APIs</caption>
-///   <tr>
-///     <th>Concept/API              </th>
-///     <th>ADBC                     </th>
-///     <th>database/sql (Golang)    </th>
-///     <th>DBAPI 2.0 (PEP 249)      </th>
-///     <th>Flight SQL               </th>
-///     <th>JDBC                     </th>
-///     <th>ODBC                     </th>
-///   </tr>
-///   <tr>
-///     <td>Shared connection state  </td>
-///     <td>AdbcDatabase             </td>
-///     <td>DB                       </td>
-///     <td>-                        </td>
-///     <td>-                        </td>
-///     <td>-                        </td>
-///     <td>-                        </td>
-///   </tr>
-///   <tr>
-///     <td>Database connection      </td>
-///     <td>AdbcConnection           </td>
-///     <td>Conn                     </td>
-///     <td>Connection               </td>
-///     <td>FlightSqlClient          </td>
-///     <td>Connection               </td>
-///     <td>SQLHANDLE (connection)   </td>
-///   </tr>
-///   <tr>
-///     <td>Query state              </td>
-///     <td>AdbcStatement            </td>
-///     <td>-                        </td>
-///     <td>Cursor                   </td>
-///     <td>-                        </td>
-///     <td>Statement                </td>
-///     <td>SQLHANDLE (statement)    </td>
-///   </tr>
-///   <tr>
-///     <td>Prepared statement handle</td>
-///     <td>AdbcStatement            </td>
-///     <td>Stmt                     </td>
-///     <td>Cursor                   </td>
-///     <td>PreparedStatement        </td>
-///     <td>PreparedStatement        </td>
-///     <td>SQLHANDLE (statement)    </td>
-///   </tr>
-///   <tr>
-///     <td>Result set               </td>
-///     <td>ArrowArrayStream         </td>
-///     <td>*Rows                    </td>
-///     <td>Cursor                   </td>
-///     <td>FlightInfo               </td>
-///     <td>ResultSet                </td>
-///     <td>SQLHANDLE (statement)    </td>
-///   </tr>
-/// </table>
-
-/// \page compatibility Backwards and Forwards Compatibility
-///
-/// ## Compatibility
-///
-/// The goal is to be **ABI-compatible** across releases.  Hence, a
-/// few choices were made:
-///
-/// - Most structures do not contain embedded fields or functions, but
-///   instead use free functions, making it easy to add new functions.
-/// - Enumerations are defined via `typedef`/`#define`.
-///
-/// Of course, we can never add/remove/change struct members, and we
-/// can never change the signatures of existing functions.
-///
-/// The main point of concern is compatibility of AdbcDriver.
-///
-/// The driver entrypoint, AdbcDriverInitFunc(), is given a version
-/// and a pointer to a table of function pointers to initialize.  The
-/// type of the table will depend on the version; when a new version
-/// of ADBC is accepted, then a new table of function pointers will be
-/// added.  That way, the driver knows the type of the table.  If/when
-/// we add a new ADBC version, the following scenarios are possible:
-///
-/// - An updated client application uses an old driver library.  The
-///   client will pass a `version` field greater than what the driver
-///   recognizes, so the driver will return ADBC_STATUS_NOT_IMPLEMENTED
-///   and the client can decide whether to abort or retry with an older
-///   version.
-/// - An old client application uses an updated driver library.  The
-///   client will pass a `version` lower than what the driver
-///   recognizes, so the driver can either error, or if it can still
-///   implement the old API contract, initialize the older table.
-///
-/// This approach does not let us change the signatures of existing
-/// functions, but we can add new functions and remove existing ones.
-///
-/// ## Versioning
-///
-/// ADBC is versioned separately from the core Arrow project.  The API
-/// standard and components (driver manager, drivers) are also
-/// versioned separately, but both follow semantic versioning.
-///
-/// For example: components may make backwards-compatible releases as
-/// 1.0.0, 1.0.1, 1.1.0, 1.2.0, etc.  They may release
-/// backwards-incompatible versions such as 2.0.0, but which still
-/// implement the API standard version 1.0.0.
-///
-/// Similarly, this documentation describes the ADBC API standard
-/// version 1.0.0.  If/when a compatible revision is made (e.g. new
-/// standard options are defined), the next version would be 1.1.0.
-/// If incompatible changes are made (e.g. new API functions), the
-/// next version would be 2.0.0.
-
-/// \page concurrency Concurrency and Thread Safety
-///
-/// In general, objects allow serialized access from multiple threads:
-/// one thread may make a call, and once finished, another thread may
-/// make a call.  They do not allow concurrent access from multiple
-/// threads.
-///
-/// Somewhat related is the question of overlapping/concurrent
-/// execution of multi-step operations, from a single thread or
-/// multiple threads.  For example, two AdbcStatement objects can be
-/// created from the same AdbcConnection:
-///
-/// ```c
-/// struct AdbcStatement stmt1;
-/// struct AdbcStatement stmt2;
-///
-/// // Ignoring error handling for brevity
-/// AdbcStatementNew(&conn, &stmt1, NULL);
-/// AdbcStatementNew(&conn, &stmt2, NULL);
-/// AdbcStatementSetSqlQuery(&stmt1, "SELECT * FROM a", NULL);
-/// AdbcStatementSetSqlQuery(&stmt2, "SELECT * FROM b", NULL);
-///
-/// AdbcStatementExecute(&stmt1, NULL);
-/// AdbcStatementExecute(&stmt2, NULL);
-/// // What happens to the result set of stmt1?
-/// ```
-///
-/// What happens if the client application calls
-/// `AdbcStatementExecute` on `stmt1`, then on `stmt2`, without
-/// reading the result set of `stmt1`?  Some existing client
-/// libraries/protocols, like libpq, don't support concurrent
-/// execution of queries from a single connection.  So the driver
-/// would have to either 1) buffer all results into memory during the
-/// first `Execute` 2) issue an error on the second `Execute`, or 3)
-/// invalidate the first statement's result set on the second
-/// `Execute`.
-///
-/// In this case, ADBC allows drivers to choose 1) or 2).  If possible
-/// and reasonable, the driver should allow concurrent execution,
-/// whether because the underlying protocol is designed for it or by
-/// buffering result sets.  But the driver is allowed to error if it
-/// is not possible to support it.
-///
-/// Another use case is having a single statement, but executing it
-/// multiple times and reading the result sets concurrently.  A client
-/// might desire to do this with a prepared statement, for instance:
-///
-/// ```c
-/// // Ignoring error handling for brevity
-/// struct AdbcStatement stmt;
-/// AdbcStatementNew(&conn, &stmt, NULL);
-/// AdbcStatementSetSqlQuery(&stmt, "SELECT * FROM a WHERE foo > ?", NULL);
-/// AdbcStatementPrepare(&stmt, NULL);
-///
-/// AdbcStatementBind(&stmt, &array1, &schema, NULL);
-/// AdbcStatementExecute(&stmt, NULL);
-/// AdbcStatementGetStream(&stmt, &stream, NULL);
-/// // Spawn a thread to process `stream`
-///
-/// AdbcStatementBind(&stmt, &array2, &schema, NULL);
-/// AdbcStatementExecute(&stmt, NULL);
-/// // What happens to `stream` here?
-/// ```
-///
-/// ADBC chooses to disallow this (specifically: the second call to
-/// `Execute` must invalidate the result set of the first call),
-/// because generally, existing APIs do not support 'overlapping'
-/// usage of a single prepared statement in this way.

Reply via email to