@@ -211,6 +211,9 @@ public class ArrowDatabaseMetadataTest {
211211 private static final String EXPECTED_PROCEDURE_TERM = "procedure" ;
212212 private static final String EXPECTED_CATALOG_TERM = "catalog" ;
213213 private static final boolean EXPECTED_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY = true ;
214+ private static final boolean EXPECTED_SUPPORTS_OUTER_JOINS = true ;
215+ private static final boolean EXPECTED_SUPPORTS_FULL_OUTER_JOINS = true ;
216+ private static final boolean EXPECTED_SUPPORTS_LIMITED_JOINS = false ;
214217 private static final boolean EXPECTED_CATALOG_AT_START = true ;
215218 private static final boolean EXPECTED_SCHEMAS_IN_PROCEDURE_CALLS = true ;
216219 private static final boolean EXPECTED_SCHEMAS_IN_INDEX_DEFINITIONS = true ;
@@ -622,6 +625,11 @@ public static void setUpBeforeClass() throws SQLException {
622625 FLIGHT_SQL_PRODUCER .addSqlInfo (SqlInfo .SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY ,
623626 flightSqlSupportsIntegrityEnhancementFacilityProvider );
624627
628+ final ObjIntConsumer <VectorSchemaRoot > flightSqlSupportsOuterJoins =
629+ (root , index ) -> setDataForIntField (root , index , SqlInfo .SQL_OUTER_JOINS_SUPPORT_LEVEL ,
630+ (int ) (createBitmaskFromEnums (FlightSql .SqlOuterJoinsSupportLevel .SQL_FULL_OUTER_JOINS )));
631+ FLIGHT_SQL_PRODUCER .addSqlInfo (SqlInfo .SQL_OUTER_JOINS_SUPPORT_LEVEL , flightSqlSupportsOuterJoins );
632+
625633 final ObjIntConsumer <VectorSchemaRoot > flightSqlSchemaTermProvider =
626634 (root , index ) -> setDataForUtf8Field (root , index , SqlInfo .SQL_SCHEMA_TERM , EXPECTED_SCHEMA_TERM );
627635 FLIGHT_SQL_PRODUCER .addSqlInfo (SqlInfo .SQL_SCHEMA_TERM , flightSqlSchemaTermProvider );
@@ -859,9 +867,9 @@ public static void setUpBeforeClass() throws SQLException {
859867 SqlInfo .SQL_SUPPORTS_EXPRESSIONS_IN_ORDER_BY , SqlInfo .SQL_SUPPORTS_ORDER_BY_UNRELATED ,
860868 SqlInfo .SQL_SUPPORTED_GROUP_BY ,
861869 SqlInfo .SQL_SUPPORTS_LIKE_ESCAPE_CLAUSE , SqlInfo .SQL_SUPPORTS_NON_NULLABLE_COLUMNS ,
862- SqlInfo .SQL_SUPPORTED_GRAMMAR ,
863- SqlInfo .SQL_ANSI92_SUPPORTED_LEVEL ,
864- SqlInfo .SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY , SqlInfo . SQL_SCHEMA_TERM , SqlInfo .SQL_CATALOG_TERM ,
870+ SqlInfo .SQL_SUPPORTED_GRAMMAR , SqlInfo . SQL_ANSI92_SUPPORTED_LEVEL ,
871+ SqlInfo .SQL_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY , SqlInfo . SQL_OUTER_JOINS_SUPPORT_LEVEL ,
872+ SqlInfo .SQL_SCHEMA_TERM , SqlInfo .SQL_CATALOG_TERM ,
865873 SqlInfo .SQL_PROCEDURE_TERM , SqlInfo .SQL_CATALOG_AT_START , SqlInfo .SQL_SCHEMAS_SUPPORTED_ACTIONS ,
866874 SqlInfo .SQL_CATALOGS_SUPPORTED_ACTIONS , SqlInfo .SQL_SUPPORTED_POSITIONED_COMMANDS ,
867875 SqlInfo .SQL_SELECT_FOR_UPDATE_SUPPORTED ,
@@ -1050,6 +1058,7 @@ public void testGetSqlInfo() throws SQLException {
10501058 collector .checkThat (metaData .getTimeDateFunctions (), is (EXPECTED_TIME_DATE_FUNCTIONS ));
10511059 collector .checkThat (metaData .getSearchStringEscape (), is (EXPECTED_SEARCH_STRING_ESCAPE ));
10521060 collector .checkThat (metaData .getExtraNameCharacters (), is (EXPECTED_EXTRA_NAME_CHARACTERS ));
1061+ collector .checkThat (metaData .supportsConvert (), is (EXPECTED_SQL_SUPPORTS_CONVERT ));
10531062 collector .checkThat (
10541063 metaData .supportsConvert (BIT , INTEGER ),
10551064 is (EXPECTED_SQL_SUPPORTS_CONVERT ));
@@ -1079,6 +1088,9 @@ public void testGetSqlInfo() throws SQLException {
10791088 collector .checkThat (metaData .supportsANSI92FullSQL (), is (EXPECTED_ANSI92_FULL_SQL ));
10801089 collector .checkThat (metaData .supportsIntegrityEnhancementFacility (),
10811090 is (EXPECTED_SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY ));
1091+ collector .checkThat (metaData .supportsOuterJoins (), is (EXPECTED_SUPPORTS_OUTER_JOINS ));
1092+ collector .checkThat (metaData .supportsFullOuterJoins (), is (EXPECTED_SUPPORTS_FULL_OUTER_JOINS ));
1093+ collector .checkThat (metaData .supportsLimitedOuterJoins (), is (EXPECTED_SUPPORTS_LIMITED_JOINS ));
10821094 collector .checkThat (metaData .getSchemaTerm (), is (EXPECTED_SCHEMA_TERM ));
10831095 collector .checkThat (metaData .getProcedureTerm (), is (EXPECTED_PROCEDURE_TERM ));
10841096 collector .checkThat (metaData .getCatalogTerm (), is (EXPECTED_CATALOG_TERM ));
0 commit comments