Instance Constructors
-
new
SmartConnectorExternalCatalog(session: SparkSession)
Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
def
alterDatabase(schemaDefinition: CatalogDatabase): Unit
-
def
alterPartitions(schema: String, table: String, parts: Seq[CatalogTablePartition]): Unit
-
def
alterTable(table: CatalogTable): Unit
-
def
alterTableSchema(schemaName: String, table: String, schema: StructType): Unit
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
def
close(): Unit
-
-
def
createDatabase(schemaDefinition: CatalogDatabase, ignoreIfExists: Boolean): Unit
-
def
createFunction(schema: String, function: CatalogFunction): Unit
-
def
createPartitions(schema: String, table: String, parts: Seq[CatalogTablePartition], ignoreIfExists: Boolean): Unit
-
def
createPolicy(schemaName: String, policyName: String, targetTable: String, policyFor: String, policyApplyTo: Seq[String], expandedPolicyApplyTo: Seq[String], owner: String, filterString: String): Unit
-
def
createTable(table: CatalogTable, ignoreIfExists: Boolean): Unit
-
def
databaseExists(schema: String): Boolean
-
def
dropDatabase(schema: String, ignoreIfNotExists: Boolean, cascade: Boolean): Unit
-
def
dropFunction(schema: String, funcName: String): Unit
-
def
dropPartitions(schema: String, table: String, parts: Seq[TablePartitionSpec], ignoreIfNotExists: Boolean, purge: Boolean, retainData: Boolean): Unit
-
def
dropTable(schema: String, table: String, ignoreIfNotExists: Boolean, purge: Boolean): Unit
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
def
functionExists(schema: String, funcName: String): Boolean
-
def
getAllTables(skipSchemas: Seq[String] = SYS_SCHEMA :: Nil): Seq[CatalogTable]
-
def
getBaseTable(tableDefinition: CatalogTable): Option[String]
-
def
getCachedCatalogTable(schema: String, table: String): CatalogTable
-
final
def
getClass(): Class[_]
-
def
getDatabase(schema: String): CatalogDatabase
-
def
getDependents(schema: String, table: String, catalogTable: CatalogTable, includeTypes: Seq[Type], excludeTypes: Seq[Type]): Seq[CatalogTable]
-
def
getDependentsFromProperties(schema: String, properties: Map[String, String], includeTypes: Seq[Type], excludeTypes: Seq[Type]): Seq[CatalogTable]
-
def
getDependentsFromProperties(schema: String, table: String, includeTypes: Seq[Type] = Nil, excludeTypes: Seq[Type] = Nil): Seq[CatalogTable]
-
def
getFunction(schema: String, funcName: String): CatalogFunction
-
def
getPartition(schema: String, table: String, spec: TablePartitionSpec): CatalogTablePartition
-
def
getPartitionOption(schema: String, table: String, spec: TablePartitionSpec): Option[CatalogTablePartition]
-
def
getPolicies(schema: String, table: String, properties: Map[String, String]): Seq[CatalogTable]
-
def
getRelationInfo(schema: String, table: String, rowTable: Boolean): (RelationInfo, Option[LocalRegion])
-
def
getTable(schema: String, table: String): CatalogTable
-
def
getTableOption(schema: String, table: String): Option[CatalogTable]
-
def
getTableWithBaseTable(table: CatalogTable): Seq[(String, String)]
-
def
hashCode(): Int
-
def
invalidate(name: (String, String)): Unit
-
def
invalidateAll(): Unit
-
def
invalidateCaches(relations: Seq[(String, String)]): Unit
-
def
isConnectionException(e: SQLException): Boolean
-
final
def
isInstanceOf[T0]: Boolean
-
def
jdbcUrl: String
-
def
listDatabases(pattern: String): Seq[String]
-
def
listDatabases(): Seq[String]
-
def
listFunctions(schema: String, pattern: String): Seq[String]
-
def
listPartitionNames(schema: String, table: String, partialSpec: Option[TablePartitionSpec]): Seq[String]
-
def
listPartitions(schema: String, table: String, partialSpec: Option[TablePartitionSpec]): Seq[CatalogTablePartition]
-
def
listPartitionsByFilter(schema: String, table: String, predicates: Seq[Expression]): Seq[CatalogTablePartition]
-
def
listTables(schema: String, pattern: String): Seq[String]
-
def
listTables(schema: String): Seq[String]
-
def
loadDynamicPartitions(schema: String, table: String, loadPath: String, partition: TablePartitionSpec, replace: Boolean, numDP: Int, holdDDLTime: Boolean): Unit
-
def
loadPartition(schema: String, table: String, loadPath: String, partition: TablePartitionSpec, isOverwrite: Boolean, holdDDLTime: Boolean, inheritTableSpecs: Boolean): Unit
-
def
loadTable(schema: String, table: String, loadPath: String, isOverwrite: Boolean, holdDDLTime: Boolean): Unit
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
renameFunction(schema: String, oldName: String, newName: String): Unit
-
def
renamePartitions(schema: String, table: String, specs: Seq[TablePartitionSpec], newSpecs: Seq[TablePartitionSpec]): Unit
-
def
renameTable(schemaName: String, oldName: String, newName: String): Unit
-
def
requireDbExists(schema: String): Unit
-
def
requireFunctionExists(schema: String, funcName: String): Unit
-
def
requireFunctionNotExists(schema: String, funcName: String): Unit
-
def
requireTableExists(schema: String, table: String): Unit
-
def
schemaNotFoundException(schema: String): AnalysisException
-
val
session: SparkSession
-
def
setCurrentDatabase(schema: String): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
systemSchemaDefinition: CatalogDatabase
-
def
tableExists(schema: String, table: String): Boolean
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
-
def
withExceptionHandling[T](function: ⇒ T): T
Inherited from ExternalCatalog
Inherited from AnyRef
Inherited from Any
An ExternalCatalog implementation for the smart connector mode.
Note that unlike other ExternalCatalog implementations, this is created one for each session rather than being a singleton in the SharedState because each request needs to be authenticated independently using the credentials of the user that created the session. Consequently calls to "sharedState.externalCatalog()" will return null in smart connector mode and should never be used. For internal code paths in Spark that use it, an alternative dummy global might be added later that switches the user authentication using thread-locals or similar, but as of now it is used only by some hive insert paths which are not used in SnappySessionState.