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.