public class org.apache.hive.service.cli.operation.GetCrossReferenceOperation extends org.apache.hive.service.cli.operation.MetadataOperation
{
private static final org.apache.hive.service.cli.TableSchema RESULT_SET_SCHEMA;
private final java.lang.String parentCatalogName;
private final java.lang.String parentSchemaName;
private final java.lang.String parentTableName;
private final java.lang.String foreignCatalogName;
private final java.lang.String foreignSchemaName;
private final java.lang.String foreignTableName;
private final org.apache.hive.service.cli.RowSet rowSet;
public void <init>(org.apache.hive.service.cli.session.HiveSession, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
{
org.apache.hive.service.rpc.thrift.TProtocolVersion v;
org.apache.hive.service.cli.operation.GetCrossReferenceOperation v;
java.lang.Object[] v;
org.slf4j.Logger v;
org.apache.hive.service.cli.RowSet v;
org.apache.hive.service.cli.TableSchema v;
org.apache.hive.service.cli.OperationType v;
org.apache.hive.service.cli.session.HiveSession v;
java.lang.String v, v, v, v, v, v;
v := @this: org.apache.hive.service.cli.operation.GetCrossReferenceOperation;
v := @parameter: org.apache.hive.service.cli.session.HiveSession;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.hive.service.cli.OperationType: org.apache.hive.service.cli.OperationType GET_FUNCTIONS>;
specialinvoke v.<org.apache.hive.service.cli.operation.MetadataOperation: void <init>(org.apache.hive.service.cli.session.HiveSession,org.apache.hive.service.cli.OperationType)>(v, v);
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String parentCatalogName> = v;
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String parentSchemaName> = v;
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String parentTableName> = v;
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String foreignCatalogName> = v;
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String foreignSchemaName> = v;
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String foreignTableName> = v;
v = <org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.TableSchema RESULT_SET_SCHEMA>;
v = virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.rpc.thrift.TProtocolVersion getProtocolVersion()>();
v = staticinvoke <org.apache.hive.service.cli.RowSetFactory: org.apache.hive.service.cli.RowSet create(org.apache.hive.service.cli.TableSchema,org.apache.hive.service.rpc.thrift.TProtocolVersion,boolean)>(v, v, 0);
v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.RowSet rowSet> = v;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[6];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v[4] = v;
v[5] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Starting GetCrossReferenceOperation with the following parameters: parentCatalogName={}, parentSchemaName={}, parentTableName={}, foreignCatalog={}, foreignSchema={}, foreignTable={}", v);
return;
}
public void runInternal() throws org.apache.hive.service.cli.HiveSQLException
{
java.lang.Integer v, v, v, v;
boolean v, v, v;
java.lang.Exception v;
org.apache.hive.service.cli.session.HiveSession v;
java.util.List v;
org.apache.hadoop.hive.metastore.api.ForeignKeysRequest v;
org.apache.hadoop.hive.metastore.IMetaStoreClient v;
org.apache.hive.service.cli.operation.GetCrossReferenceOperation v;
java.lang.Object[] v;
org.apache.hive.service.cli.OperationState v, v, v;
org.apache.hive.service.cli.RowSet v, v;
org.apache.hive.service.cli.TableSchema v;
int v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.hive.service.cli.HiveSQLException v;
org.slf4j.Logger v, v, v, v, v, v;
java.util.Iterator v;
java.lang.Object v;
v := @this: org.apache.hive.service.cli.operation.GetCrossReferenceOperation;
v = <org.apache.hive.service.cli.OperationState: org.apache.hive.service.cli.OperationState RUNNING>;
virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.OperationState setState(org.apache.hive.service.cli.OperationState)>(v);
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Fetching cross reference metadata");
label:
v = virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.session.HiveSession getParentSession()>();
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: org.apache.hadoop.hive.metastore.IMetaStoreClient getMetaStoreClient()>();
v = new org.apache.hadoop.hive.metastore.api.ForeignKeysRequest;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String parentSchemaName>;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String parentTableName>;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String foreignSchemaName>;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String foreignTableName>;
specialinvoke v.<org.apache.hadoop.hive.metastore.api.ForeignKeysRequest: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
v = interfaceinvoke v.<org.apache.hadoop.hive.metastore.IMetaStoreClient: java.util.List getForeignKeys(org.apache.hadoop.hive.metastore.api.ForeignKeysRequest)>(v);
if v != null goto label;
label:
return;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = newarray (java.lang.Object)[14];
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String parentCatalogName>;
v[0] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getPktable_db()>();
v[1] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getPktable_name()>();
v[2] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getPkcolumn_name()>();
v[3] = v;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String foreignCatalogName>;
v[4] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getFktable_db()>();
v[5] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getFktable_name()>();
v[6] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getFkcolumn_name()>();
v[7] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: int getKey_seq()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[8] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: int getUpdate_rule()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[9] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: int getDelete_rule()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[10] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getFk_name()>();
v[11] = v;
v = virtualinvoke v.<org.apache.hadoop.hive.metastore.api.SQLForeignKey: java.lang.String getPk_name()>();
v[12] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v[13] = v;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.RowSet rowSet>;
interfaceinvoke v.<org.apache.hive.service.cli.RowSet: org.apache.hive.service.cli.RowSet addRow(java.lang.Object[])>(v);
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.TableSchema RESULT_SET_SCHEMA>;
v = virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: java.lang.String getDebugMessage(java.lang.String,org.apache.hive.service.cli.TableSchema)>("cross reference", v);
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>(v, v);
goto label;
label:
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.RowSet rowSet>;
v = interfaceinvoke v.<org.apache.hive.service.cli.RowSet: int numRows()>();
if v != 0 goto label;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("No cross reference metadata has been returned.");
label:
v = <org.apache.hive.service.cli.OperationState: org.apache.hive.service.cli.OperationState FINISHED>;
virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.OperationState setState(org.apache.hive.service.cli.OperationState)>(v);
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Fetching cross reference metadata has been successfully finished");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.OperationState: org.apache.hive.service.cli.OperationState ERROR>;
virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.OperationState setState(org.apache.hive.service.cli.OperationState)>(v);
v = new org.apache.hive.service.cli.HiveSQLException;
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public org.apache.hive.service.cli.TableSchema getResultSetSchema() throws org.apache.hive.service.cli.HiveSQLException
{
org.apache.hive.service.cli.operation.GetCrossReferenceOperation v;
org.apache.hive.service.cli.OperationState v;
org.apache.hive.service.cli.TableSchema v;
java.util.Set v;
v := @this: org.apache.hive.service.cli.operation.GetCrossReferenceOperation;
v = <org.apache.hive.service.cli.OperationState: org.apache.hive.service.cli.OperationState FINISHED>;
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: void assertState(java.util.Collection)>(v);
v = <org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.TableSchema RESULT_SET_SCHEMA>;
return v;
}
public org.apache.hive.service.cli.RowSet getNextRowSet(org.apache.hive.service.cli.FetchOrientation, long) throws org.apache.hive.service.cli.HiveSQLException
{
org.apache.hive.service.cli.operation.GetCrossReferenceOperation v;
org.apache.hive.service.cli.OperationState v;
org.apache.hive.service.cli.RowSet v, v, v;
java.util.Set v;
long v;
org.apache.hive.service.cli.FetchOrientation v, v;
boolean v;
v := @this: org.apache.hive.service.cli.operation.GetCrossReferenceOperation;
v := @parameter: org.apache.hive.service.cli.FetchOrientation;
v := @parameter: long;
v = <org.apache.hive.service.cli.OperationState: org.apache.hive.service.cli.OperationState FINISHED>;
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: void assertState(java.util.Collection)>(v);
virtualinvoke v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: void validateDefaultFetchOrientation(org.apache.hive.service.cli.FetchOrientation)>(v);
v = <org.apache.hive.service.cli.FetchOrientation: org.apache.hive.service.cli.FetchOrientation FETCH_FIRST>;
v = virtualinvoke v.<org.apache.hive.service.cli.FetchOrientation: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.RowSet rowSet>;
interfaceinvoke v.<org.apache.hive.service.cli.RowSet: void setStartOffset(long)>(0L);
label:
v = v.<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.RowSet rowSet>;
v = interfaceinvoke v.<org.apache.hive.service.cli.RowSet: org.apache.hive.service.cli.RowSet extractSubset(int)>(v);
return v;
}
static void <clinit>()
{
org.apache.hive.service.cli.TableSchema v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.hadoop.hive.serde.thrift.Type v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v = new org.apache.hive.service.cli.TableSchema;
specialinvoke v.<org.apache.hive.service.cli.TableSchema: void <init>()>();
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("PKTABLE_CAT", v, "Parent key table catalog (may be null)");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("PKTABLE_SCHEM", v, "Parent key table schema (may be null)");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("PKTABLE_NAME", v, "Parent Key table name");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("PKCOLUMN_NAME", v, "Parent Key column name");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("FKTABLE_CAT", v, "Foreign key table catalog (may be null)");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("FKTABLE_SCHEM", v, "Foreign key table schema (may be null)");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("FKTABLE_NAME", v, "Foreign Key table name");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("FKCOLUMN_NAME", v, "Foreign Key column name");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type INT_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("KEQ_SEQ", v, "Sequence number within primary key");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type INT_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("UPDATE_RULE", v, "What happens to foreign key when parent key is updated");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type INT_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("DELETE_RULE", v, "What happens to foreign key when parent key is deleted");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("FK_NAME", v, "Foreign key name (may be null)");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type STRING_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("PK_NAME", v, "Primary key name (may be null)");
v = <org.apache.hadoop.hive.serde.thrift.Type: org.apache.hadoop.hive.serde.thrift.Type INT_TYPE>;
v = virtualinvoke v.<org.apache.hive.service.cli.TableSchema: org.apache.hive.service.cli.TableSchema addPrimitiveColumn(java.lang.String,org.apache.hadoop.hive.serde.thrift.Type,java.lang.String)>("DEFERRABILITY", v, "Can the evaluation of foreign key constraints be deferred until commit");
<org.apache.hive.service.cli.operation.GetCrossReferenceOperation: org.apache.hive.service.cli.TableSchema RESULT_SET_SCHEMA> = v;
return;
}
}