- HiveMetaStoreClient#createTable: Set the default catalog, set processor capabilities or else, and hook.preCreateTable
- SessionHiveMetaStoreClient#create_table: Bail out and create a temporary table if the give table is temporary
- HiveMetaStoreClient#create_table: Issue a Thrift request
- HiveMetaStoreClient#createTable: hook.CommitCreateTable
From the outmost wrapper,
- HiveMetaStoreClientWithHook: hook.preCreateTable
- HiveMetaStoreClientWithTmpTable: Bail out and create a temporary table if the given table is temporary
- HiveMetaStoreClientWithSessionFeature: Do nothing
- HiveMetaStoreClientWithLocalCache: Do nothing
- ThriftHiveMetaStoreClient: Set the default catalog name, set processor capabilities or else, and then issue a Thrift client
- HiveMetaStoreClientWithHook: hook.commitCreateTable
Order | Original | New |
---|---|---|
1 | Set the default catalog | hook.preCreateTable |
2 | Set processor capabilities | Tmp table handling |
3 | hook.preCreateTable | Set the default catalog |
4 | Tmp table handling | Set processor capabilities |
5 | Thrift request | Thrift request |
6 | hook.CommitCreateTable | hook.CommitCreateTable |
- The original implementation fills a catalog name or processor capabilities at a very early stage, so HiveMetaHook or another part can see the values