I was examining the properties in GetSqlInfo and have a few questions as
far as the proper way to approach some issues.

Some bitmask properties have options that are intended to be mutually
exclusive.
For example the SQL_GROUP_BY property is a bitmask where possible values
are:
- SQL_GROUP_BY_UNRELATED and SQL_GROUP_BY_BEYOND_SELECT.
It seems like  SQL_GROUP_BY_UNRELATED implies SQL_GROUP_BY_BEYOND_SELECT.
In another case SQL_DEFAULT_TRANSACTION_ISOLATION_LEVEL has NONE at bit
zero, but can also set other bits that imply transactions are supported.

These seem like issues, but I'm not really sure how to address this in
terms of versioning. It seems like we should alter enum values. Would this
be a minor update? Backwards compatibility concerns? Seems early for this.

Adding missing syntax properties:
Similar to above, should adding new properties be a minor version
increment? There are properties missing such as reporting if catalogs and
schemas are supported in DML (used in both ODBC and JDBC).

There are some properties in bridge-specific metadata that can't be
represented currently. An example is that ODBC reports metadata for if
ALTER is supported in SQLGetInfo. Another example is reporting aggregate
functions, which is used in ODBC but not JDBC. Would the right thing to do
be to add this to the general syntax section, or treat this as a "custom"
property? There are JDBC-specific properties already such as savepoint
support. To get more servers to support these properties, it'd probably be
best to treat these as non-custom, but at the expense of making
bridge-specific concepts "standard".

I've also observed that there are missing enums and enum values in the C++
definitions of the properties in arrow/flight/sql/types.h

-- 

*James Duong*
Lead Software Developer
Bit Quill Technologies Inc.
Direct: +1.604.562.6082 | jam...@bitquilltech.com
https://www.bitquilltech.com

This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information.  Any unauthorized review,
use, disclosure, or distribution is prohibited.  If you are not the
intended recipient, please contact the sender by reply email and destroy
all copies of the original message.  Thank you.

Reply via email to