Class BaseConnectorTest


public abstract class BaseConnectorTest extends AbstractTestQueries
Generic test for connectors.
  • Constructor Details

    • BaseConnectorTest

      public BaseConnectorTest()
  • Method Details

    • initMockCatalog

      public void initMockCatalog()
    • buildMockConnectorPlugin

      protected MockConnectorPlugin buildMockConnectorPlugin()
    • hasBehavior

      protected boolean hasBehavior(TestingConnectorBehavior connectorBehavior)
      Make sure to group related behaviours together in the order and grouping they are declared in TestingConnectorBehavior.
    • ensureTestNamingConvention

      public void ensureTestNamingConvention()
      Overrides:
      ensureTestNamingConvention in class AbstractTestQueryFramework
    • ensureDistributedQueryRunner

      public void ensureDistributedQueryRunner()
      Ensure the tests are run with DistributedQueryRunner. E.g. LocalQueryRunner takes some shortcuts, not exercising certain aspects.
    • testShowCreateSchema

      public void testShowCreateSchema()
    • testCreateSchema

      public void testCreateSchema()
    • testDropNonEmptySchemaWithTable

      public void testDropNonEmptySchemaWithTable()
    • testDropNonEmptySchemaWithView

      public void testDropNonEmptySchemaWithView()
    • testDropNonEmptySchemaWithMaterializedView

      public void testDropNonEmptySchemaWithMaterializedView()
    • testColumnsInReverseOrder

      public void testColumnsInReverseOrder()
    • testCharVarcharComparison

      public void testCharVarcharComparison()
    • testVarcharCharComparison

      public void testVarcharCharComparison()
    • testAggregation

      public void testAggregation()
    • testExactPredicate

      public void testExactPredicate()
    • testInListPredicate

      public void testInListPredicate()
    • testIsNullPredicate

      public void testIsNullPredicate()
    • testLikePredicate

      public void testLikePredicate()
    • testMultipleRangesPredicate

      public void testMultipleRangesPredicate()
    • testRangePredicate

      public void testRangePredicate()
    • testDateYearOfEraPredicate

      public void testDateYearOfEraPredicate()
    • testPredicateReflectedInExplain

      public void testPredicateReflectedInExplain()
    • testSortItemsReflectedInExplain

      public void testSortItemsReflectedInExplain()
    • testVarcharCastToDateInPredicate

      public void testVarcharCastToDateInPredicate()
    • testConcurrentScans

      public void testConcurrentScans()
    • testSelectAll

      public void testSelectAll()
    • testSelectInTransaction

      public void testSelectInTransaction()
    • testSelectVersionOfNonExistentTable

      public void testSelectVersionOfNonExistentTable()
    • testTrySelectTableVersion

      public void testTrySelectTableVersion()
      A connector can support FOR TIMESTAMP, FOR VERSION, both or none. With FOR TIMESTAMP/VERSION is can support some types but not the others. Because of version support being multidimensional, TestingConnectorBehavior is not defined. The test verifies that query doesn't fail in some weird way, serving as a smoke test for versioning. The purpose of the test is to validate the connector does proper validation.
    • verifyVersionedQueryFailurePermissible

      protected void verifyVersionedQueryFailurePermissible(Exception e)
    • testJoinWithEmptySides

      public void testJoinWithEmptySides(OptimizerConfig.JoinDistributionType joinDistributionType)
      Test interactions between optimizer (including CBO), scheduling and connector metadata APIs.
    • joinDistributionTypes

      public Object[][] joinDistributionTypes()
    • testJoin

      public void testJoin()
      Test interactions between optimizer (including CBO) and connector metadata APIs.
    • testDescribeTable

      public void testDescribeTable()
    • getDescribeOrdersResult

      protected MaterializedResult getDescribeOrdersResult()
    • testShowInformationSchemaTables

      public void testShowInformationSchemaTables()
    • testView

      public void testView()
    • testCreateViewSchemaNotFound

      public void testCreateViewSchemaNotFound()
    • testViewCaseSensitivity

      public void testViewCaseSensitivity()
    • testMaterializedView

      public void testMaterializedView()
    • testMaterializedViewAllTypes

      public void testMaterializedViewAllTypes()
    • testMaterializedViewGracePeriod

      public void testMaterializedViewGracePeriod()
    • testFederatedMaterializedView

      public void testFederatedMaterializedView()
    • testFederatedMaterializedViewWithGracePeriod

      public void testFederatedMaterializedViewWithGracePeriod()
    • testMaterializedViewBaseTableGone

      public void testMaterializedViewBaseTableGone(boolean initialized)
    • testColumnCommentMaterializedView

      public void testColumnCommentMaterializedView()
    • testCompatibleTypeChangeForView

      public void testCompatibleTypeChangeForView()
    • testCompatibleTypeChangeForView2

      public void testCompatibleTypeChangeForView2()
    • testViewMetadata

      public void testViewMetadata(String securityClauseInCreate, String securityClauseInShowCreate)
    • testViewMetadataDataProvider

      public static Object[][] testViewMetadataDataProvider()
    • testShowCreateView

      public void testShowCreateView()
    • testRenameMaterializedView

      public void testRenameMaterializedView()
    • testViewAndMaterializedViewTogether

      public void testViewAndMaterializedViewTogether()
    • testReadMetadataWithRelationsConcurrentModifications

      public void testReadMetadataWithRelationsConcurrentModifications() throws Exception
      Test that reading table, column metadata, like SHOW TABLES or reading from information_schema.views does not fail when relations are concurrently created or dropped.
      Throws:
      Exception
    • testReadMetadataWithRelationsConcurrentModifications

      protected void testReadMetadataWithRelationsConcurrentModifications(int readIterations, int testTimeoutSeconds) throws Exception
      Throws:
      Exception
    • createTableSqlTemplateForConcurrentModifications

      protected String createTableSqlTemplateForConcurrentModifications()
    • queryRepeatedly

      protected Callable<Void> queryRepeatedly(int minIterations, AtomicInteger incompleteReadTasks, String sql)
      Run sql query at least minIterations times and keep running until other tasks complete. incompleteReadTasks is used for orchestrating end of execution.
    • createDropRepeatedly

      protected Callable<Void> createDropRepeatedly(Runnable initReady, Supplier<Boolean> done, String namePrefix, String createTemplate, String dropTemplate)
    • submitTasks

      protected <T> void submitTasks(List<Callable<T>> callables, CompletionService<T> completionService)
    • testExplainAnalyze

      public void testExplainAnalyze()
    • testExplainAnalyzeVerbose

      public void testExplainAnalyzeVerbose()
    • testTableSampleSystem

      public void testTableSampleSystem()
    • testTableSampleWithFiltering

      public void testTableSampleWithFiltering()
    • testShowCreateTable

      public void testShowCreateTable()
    • testSelectInformationSchemaTables

      public void testSelectInformationSchemaTables()
    • testSelectInformationSchemaColumns

      public void testSelectInformationSchemaColumns()
    • testShowCreateInformationSchema

      public void testShowCreateInformationSchema()
    • testShowCreateInformationSchemaTable

      public void testShowCreateInformationSchemaTable()
    • testRollback

      public void testRollback()
    • testWriteNotAllowedInTransaction

      public void testWriteNotAllowedInTransaction()
    • assertWriteNotAllowedInTransaction

      protected void assertWriteNotAllowedInTransaction(TestingConnectorBehavior behavior, String sql)
    • testRenameSchema

      public void testRenameSchema()
    • testDropSchemaCascade

      public void testDropSchemaCascade()
    • testAddColumn

      public void testAddColumn()
    • tableDefinitionForAddColumn

      protected String tableDefinitionForAddColumn()
      The table must have one column 'x' of varchar type.
    • testAddColumnWithComment

      public void testAddColumnWithComment()
    • testAddNotNullColumnToEmptyTable

      public void testAddNotNullColumnToEmptyTable()
    • testAddNotNullColumn

      public void testAddNotNullColumn()
    • columnIsNullable

      protected boolean columnIsNullable(String tableName, String columnName)
    • verifyAddNotNullColumnToNonEmptyTableFailurePermissible

      protected void verifyAddNotNullColumnToNonEmptyTableFailurePermissible(Throwable e)
    • testAddRowField

      public void testAddRowField()
    • testDropColumn

      public void testDropColumn()
    • testDropRowField

      public void testDropRowField()
    • testDropRowFieldWhenDuplicates

      public void testDropRowFieldWhenDuplicates()
    • testDropRowFieldCaseSensitivity

      public void testDropRowFieldCaseSensitivity()
    • testDropAmbiguousRowFieldCaseSensitivity

      public void testDropAmbiguousRowFieldCaseSensitivity()
    • testDropAndAddColumnWithSameName

      public void testDropAndAddColumnWithSameName()
    • testRenameColumn

      public void testRenameColumn()
    • testRenameColumnWithComment

      public void testRenameColumnWithComment()
    • testRenameRowField

      public void testRenameRowField()
    • testRenameRowFieldCaseSensitivity

      public void testRenameRowFieldCaseSensitivity()
    • testSetColumnType

      public void testSetColumnType()
    • testSetColumnTypes

      public void testSetColumnTypes(BaseConnectorTest.SetColumnTypeSetup setup)
    • setColumnTypesDataProvider

      public Object[][] setColumnTypesDataProvider()
    • filterSetColumnTypesDataProvider

      protected Optional<BaseConnectorTest.SetColumnTypeSetup> filterSetColumnTypesDataProvider(BaseConnectorTest.SetColumnTypeSetup setup)
    • testSetColumnTypeWithNotNull

      public void testSetColumnTypeWithNotNull()
    • testSetColumnTypeWithComment

      public void testSetColumnTypeWithComment()
    • testSetColumnTypeWithDefaultColumn

      public void testSetColumnTypeWithDefaultColumn()
    • testSetColumnIncompatibleType

      public void testSetColumnIncompatibleType()
    • testSetColumnOutOfRangeType

      public void testSetColumnOutOfRangeType()
    • verifySetColumnTypeFailurePermissible

      protected void verifySetColumnTypeFailurePermissible(Throwable e)
    • testSetFieldType

      public void testSetFieldType()
    • testSetFieldTypes

      public void testSetFieldTypes(BaseConnectorTest.SetColumnTypeSetup setup)
    • setFieldTypesDataProvider

      public Object[][] setFieldTypesDataProvider()
    • filterSetFieldTypesDataProvider

      protected Optional<BaseConnectorTest.SetColumnTypeSetup> filterSetFieldTypesDataProvider(BaseConnectorTest.SetColumnTypeSetup setup)
    • testSetFieldTypeCaseSensitivity

      public void testSetFieldTypeCaseSensitivity()
    • testSetFieldTypeWithNotNull

      public void testSetFieldTypeWithNotNull()
    • testSetFieldTypeWithComment

      public void testSetFieldTypeWithComment()
    • testSetFieldIncompatibleType

      public void testSetFieldIncompatibleType()
    • testSetFieldOutOfRangeType

      public void testSetFieldOutOfRangeType()
    • verifySetFieldTypeFailurePermissible

      protected void verifySetFieldTypeFailurePermissible(Throwable e)
    • getColumnType

      protected String getColumnType(String tableName, String columnName)
    • testCreateTable

      public void testCreateTable()
    • testCreateSchemaWithNonLowercaseOwnerName

      public void testCreateSchemaWithNonLowercaseOwnerName()
    • testCreateSchemaWithLongName

      public void testCreateSchemaWithLongName()
    • testRenameSchemaToLongName

      public void testRenameSchemaToLongName()
    • maxSchemaNameLength

      protected OptionalInt maxSchemaNameLength()
    • verifySchemaNameLengthFailurePermissible

      protected void verifySchemaNameLengthFailurePermissible(Throwable e)
    • testCreateTableWithLongTableName

      public void testCreateTableWithLongTableName()
    • testRenameTableToLongTableName

      public void testRenameTableToLongTableName()
    • maxTableNameLength

      protected OptionalInt maxTableNameLength()
    • maxTableRenameLength

      protected OptionalInt maxTableRenameLength()
    • verifyTableNameLengthFailurePermissible

      protected void verifyTableNameLengthFailurePermissible(Throwable e)
    • testCreateTableWithLongColumnName

      public void testCreateTableWithLongColumnName()
    • testAlterTableAddLongColumnName

      public void testAlterTableAddLongColumnName()
    • testAlterTableRenameColumnToLongName

      public void testAlterTableRenameColumnToLongName()
    • columnExists

      protected boolean columnExists(String tableName, String columnName)
    • maxColumnNameLength

      protected OptionalInt maxColumnNameLength()
    • verifyColumnNameLengthFailurePermissible

      protected void verifyColumnNameLengthFailurePermissible(Throwable e)
    • testCreateTableWithTableComment

      public void testCreateTableWithTableComment()
    • testCreateTableWithColumnComment

      public void testCreateTableWithColumnComment()
    • testCreateTableSchemaNotFound

      public void testCreateTableSchemaNotFound()
    • testCreateTableAsSelect

      public void testCreateTableAsSelect()
    • testCreateTableAsSelectWithTableComment

      public void testCreateTableAsSelectWithTableComment()
    • testCreateTableAsSelectSchemaNotFound

      public void testCreateTableAsSelectSchemaNotFound()
    • testCreateTableAsSelectWithUnicode

      public void testCreateTableAsSelectWithUnicode()
    • assertCreateTableAsSelect

      protected void assertCreateTableAsSelect(String query, String rowCountQuery)
    • assertCreateTableAsSelect

      protected void assertCreateTableAsSelect(String query, String expectedQuery, String rowCountQuery)
    • assertCreateTableAsSelect

      protected void assertCreateTableAsSelect(Session session, String query, String expectedQuery, String rowCountQuery)
    • testCreateTableAsSelectNegativeDate

      public void testCreateTableAsSelectNegativeDate()
    • errorMessageForCreateTableAsSelectNegativeDate

      protected String errorMessageForCreateTableAsSelectNegativeDate(String date)
    • testRenameTable

      public void testRenameTable() throws Exception
      Throws:
      Exception
    • testRenameTableAcrossSchema

      public void testRenameTableAcrossSchema() throws Exception
      Throws:
      Exception
    • testRenameTableToUnqualifiedPreservesSchema

      public void testRenameTableToUnqualifiedPreservesSchema() throws Exception
      Throws:
      Exception
    • testCommentTable

      public void testCommentTable()
    • getTableComment

      protected String getTableComment(String catalogName, String schemaName, String tableName)
    • testCommentView

      public void testCommentView()
    • testCommentColumn

      public void testCommentColumn()
    • testCommentColumnName

      public void testCommentColumnName(String columnName)
    • testCommentColumnName

      protected void testCommentColumnName(String columnName, boolean delimited)
    • testCommentViewColumn

      public void testCommentViewColumn()
    • getColumnComment

      protected String getColumnComment(String tableName, String columnName)
    • testInsert

      public void testInsert()
    • testInsertForDefaultColumn

      public void testInsertForDefaultColumn()
    • createTableWithDefaultColumns

      protected TestTable createTableWithDefaultColumns()
    • testInsertUnicode

      public void testInsertUnicode()
    • testInsertHighestUnicodeCharacter

      public void testInsertHighestUnicodeCharacter()
    • testInsertArray

      public void testInsertArray()
    • testInsertSameValues

      public void testInsertSameValues()
    • testInsertNegativeDate

      public void testInsertNegativeDate()
    • errorMessageForInsertNegativeDate

      protected String errorMessageForInsertNegativeDate(String date)
    • testInsertIntoNotNullColumn

      public void testInsertIntoNotNullColumn()
    • testUpdateNotNullColumn

      public void testUpdateNotNullColumn()
    • errorMessageForInsertIntoNotNullColumn

      protected String errorMessageForInsertIntoNotNullColumn(String columnName)
    • testInsertInTransaction

      public void testInsertInTransaction()
    • testSelectAfterInsertInTransaction

      public void testSelectAfterInsertInTransaction()
    • verifySelectAfterInsertFailurePermissible

      protected void verifySelectAfterInsertFailurePermissible(Throwable e)
    • testDelete

      public void testDelete()
    • testDeleteWithLike

      public void testDeleteWithLike()
    • testDeleteWithComplexPredicate

      public void testDeleteWithComplexPredicate()
    • testDeleteWithSubquery

      public void testDeleteWithSubquery()
    • testExplainAnalyzeWithDeleteWithSubquery

      public void testExplainAnalyzeWithDeleteWithSubquery()
    • testDeleteWithSemiJoin

      public void testDeleteWithSemiJoin()
    • testDeleteWithVarcharPredicate

      public void testDeleteWithVarcharPredicate()
    • verifySupportsDeleteDeclaration

      public void verifySupportsDeleteDeclaration()
    • verifySupportsRowLevelDeleteDeclaration

      public void verifySupportsRowLevelDeleteDeclaration()
    • testDeleteAllDataFromTable

      public void testDeleteAllDataFromTable()
    • testRowLevelDelete

      public void testRowLevelDelete()
    • testUpdate

      public void testUpdate()
    • testUpdateRowConcurrently

      public void testUpdateRowConcurrently() throws Exception
      Throws:
      Exception
    • verifyConcurrentUpdateFailurePermissible

      protected void verifyConcurrentUpdateFailurePermissible(Exception e)
    • testInsertRowConcurrently

      public void testInsertRowConcurrently() throws Exception
      Throws:
      Exception
    • verifyConcurrentInsertFailurePermissible

      protected void verifyConcurrentInsertFailurePermissible(Exception e)
    • testAddColumnConcurrently

      public void testAddColumnConcurrently() throws Exception
      Throws:
      Exception
    • verifyConcurrentAddColumnFailurePermissible

      protected void verifyConcurrentAddColumnFailurePermissible(Exception e)
    • createTableWithOneIntegerColumn

      protected TestTable createTableWithOneIntegerColumn(String namePrefix)
    • testUpdateWithPredicates

      public void testUpdateWithPredicates()
    • testUpdateRowType

      public void testUpdateRowType()
    • testPredicateOnRowTypeField

      public void testPredicateOnRowTypeField()
    • testUpdateAllValues

      public void testUpdateAllValues()
    • testDropTable

      public void testDropTable()
    • testDropTableIfExists

      public void testDropTableIfExists()
    • testTruncateTable

      public void testTruncateTable()
    • testQueryLoggingCount

      public void testQueryLoggingCount()
    • tableDefinitionForQueryLoggingCount

      protected String tableDefinitionForQueryLoggingCount()
      The table must have two columns foo_1 and foo_2_4 of any type.
    • testShowSchemasFromOther

      public void testShowSchemasFromOther()
    • testSymbolAliasing

      public void testSymbolAliasing()
    • testWrittenStats

      public void testWrittenStats()
    • testWrittenDataSize

      public void testWrittenDataSize()
    • testNoDataSystemTable

      public void testNoDataSystemTable()
      Some connectors support system table denoted with $-suffix. Ensure no connector exposes table_name$data directly to users, as it would mean the same thing as table_name itself.
    • testColumnName

      public void testColumnName(String columnName)
    • testColumnName

      protected void testColumnName(String columnName, boolean delimited)
    • testAddAndDropColumnName

      public void testAddAndDropColumnName(String columnName)
    • testAddAndDropColumnName

      protected void testAddAndDropColumnName(String columnName, boolean delimited)
    • createTableSqlForAddingAndDroppingColumn

      protected String createTableSqlForAddingAndDroppingColumn(String tableName, String columnNameInSql)
      Create a table with name "tableName" and with two columns: "columnNameInSql" varchar(50), value varchar(50)
    • testRenameColumnName

      public void testRenameColumnName(String columnName)
    • testRenameColumnName

      protected void testRenameColumnName(String columnName, boolean delimited)
    • isColumnNameRejected

      protected boolean isColumnNameRejected(Exception exception, String columnName, boolean delimited)
    • requiresDelimiting

      protected static boolean requiresDelimiting(String identifierName)
    • testColumnNameDataProvider

      public Object[][] testColumnNameDataProvider()
    • filterColumnNameTestData

      protected Optional<String> filterColumnNameTestData(String columnName)
    • dataMappingTableName

      protected String dataMappingTableName(String trinoTypeName)
    • testCreateTableWithTableCommentSpecialCharacter

      public void testCreateTableWithTableCommentSpecialCharacter(String comment)
    • testCreateTableAsSelectWithTableCommentSpecialCharacter

      public void testCreateTableAsSelectWithTableCommentSpecialCharacter(String comment)
    • testCreateTableWithColumnCommentSpecialCharacter

      public void testCreateTableWithColumnCommentSpecialCharacter(String comment)
    • testAddColumnWithCommentSpecialCharacter

      public void testAddColumnWithCommentSpecialCharacter(String comment)
    • testCommentTableSpecialCharacter

      public void testCommentTableSpecialCharacter(String comment)
    • testCommentColumnSpecialCharacter

      public void testCommentColumnSpecialCharacter(String comment)
    • testCommentDataProvider

      public Object[][] testCommentDataProvider()
    • varcharLiteral

      protected static String varcharLiteral(String value)
    • testDataMappingSmokeTest

      public void testDataMappingSmokeTest(BaseConnectorTest.DataMappingTestSetup dataMappingTestSetup)
    • testDataMappingSmokeTestDataProvider

      public final Object[][] testDataMappingSmokeTestDataProvider()
    • filterDataMappingSmokeTestData

      protected Optional<BaseConnectorTest.DataMappingTestSetup> filterDataMappingSmokeTestData(BaseConnectorTest.DataMappingTestSetup dataMappingTestSetup)
    • testCaseSensitiveDataMapping

      public void testCaseSensitiveDataMapping(BaseConnectorTest.DataMappingTestSetup dataMappingTestSetup)
    • testCaseSensitiveDataMappingProvider

      public final Object[][] testCaseSensitiveDataMappingProvider()
    • filterCaseSensitiveDataMappingTestData

      protected Optional<BaseConnectorTest.DataMappingTestSetup> filterCaseSensitiveDataMappingTestData(BaseConnectorTest.DataMappingTestSetup dataMappingTestSetup)
    • testPotentialDuplicateDereferencePushdown

      public void testPotentialDuplicateDereferencePushdown()
      A regression test for row (struct) dereference pushdown edge case, with duplicate expressions. See https://github.com/trinodb/trino/issues/11559 and https://github.com/trinodb/trino/issues/11560.
    • testMergeDeleteWithCTAS

      public void testMergeDeleteWithCTAS()
    • createTableForWrites

      protected String createTableForWrites(String createTable)
    • testMergeLarge

      public void testMergeLarge()
    • testMergeSimpleSelect

      public void testMergeSimpleSelect()
    • testMergeFruits

      public void testMergeFruits()
    • testMergeMultipleOperations

      public void testMergeMultipleOperations()
    • testMergeSimpleQuery

      public void testMergeSimpleQuery()
    • testMergeAllInserts

      public void testMergeAllInserts()
    • testMergeFalseJoinCondition

      public void testMergeFalseJoinCondition()
    • testMergeAllColumnsUpdated

      public void testMergeAllColumnsUpdated()
    • testMergeAllMatchesDeleted

      public void testMergeAllMatchesDeleted()
    • testMergeMultipleRowsMatchFails

      public void testMergeMultipleRowsMatchFails()
    • testMergeQueryWithStrangeCapitalization

      public void testMergeQueryWithStrangeCapitalization()
    • testMergeWithoutTablesAliases

      public void testMergeWithoutTablesAliases()
    • testMergeWithUnpredictablePredicates

      public void testMergeWithUnpredictablePredicates()
    • testMergeWithSimplifiedUnpredictablePredicates

      public void testMergeWithSimplifiedUnpredictablePredicates()
    • testMergeCasts

      public void testMergeCasts()
    • testMergeSubqueries

      public void testMergeSubqueries()
    • testMergeNonNullableColumns

      public void testMergeNonNullableColumns()
    • testMergeAllColumnsReversed

      public void testMergeAllColumnsReversed()
    • testMaterializedViewColumnName

      public void testMaterializedViewColumnName(String columnName)
    • testProjectionPushdown

      public void testProjectionPushdown()
    • testProjectionWithCaseSensitiveField

      public void testProjectionWithCaseSensitiveField()
    • testProjectionPushdownMultipleRows

      public void testProjectionPushdownMultipleRows()
    • testProjectionPushdownWithHighlyNestedData

      public void testProjectionPushdownWithHighlyNestedData()
    • testProjectionPushdownReadsLessData

      public void testProjectionPushdownReadsLessData()
    • testProjectionPushdownPhysicalInputSize

      public void testProjectionPushdownPhysicalInputSize()
    • assertPartialLimitWithPreSortedInputsCount

      protected Consumer<Plan> assertPartialLimitWithPreSortedInputsCount(Session session, int expectedCount)
    • withMockTableListing

      protected void withMockTableListing(String forSchema, Function<ConnectorSession,List<String>> listing, Runnable closure)
    • createSchemaSql

      protected String createSchemaSql(String schemaName)
    • supportsPhysicalPushdown

      protected boolean supportsPhysicalPushdown()
    • sessionWithProjectionPushdownDisabled

      protected Session sessionWithProjectionPushdownDisabled()