public class org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder extends java.lang.Object
{
private static final org.slf4j.Logger logger;
public static final int DEFAULT_VARCHAR_PRECISION;
private final java.util.List tableIdentifier;
private final org.apache.calcite.sql.SqlDialect dialect;
private final org.apache.calcite.sql.SqlNodeList sqlColumns;
public void <init>(java.util.List, org.apache.calcite.sql.SqlDialect)
{
java.lang.UnsupportedOperationException v;
org.apache.calcite.sql.parser.SqlParserPos v;
java.util.List v;
org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder v;
org.apache.calcite.sql.SqlNodeList v;
org.apache.calcite.sql.SqlDialect v;
boolean v;
v := @this: org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder;
v := @parameter: java.util.List;
v := @parameter: org.apache.calcite.sql.SqlDialect;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.calcite.sql.SqlNodeList;
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
specialinvoke v.<org.apache.calcite.sql.SqlNodeList: void <init>(org.apache.calcite.sql.parser.SqlParserPos)>(v);
v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.calcite.sql.SqlNodeList sqlColumns> = v;
v = staticinvoke <org.apache.commons.collections.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v == 0 goto label;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("Table name cannot be empty");
throw v;
label:
v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: java.util.List tableIdentifier> = v;
v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.calcite.sql.SqlDialect dialect> = v;
return;
}
public void addColumn(org.apache.drill.exec.record.MaterializedField)
{
org.apache.drill.common.exceptions.UserException v;
org.apache.calcite.sql.SqlNode v;
boolean v, v, v, v, v;
java.lang.Object[] v;
org.apache.drill.common.exceptions.UserException$Builder v, v, v;
org.apache.calcite.sql.SqlDataTypeSpec v, v;
org.apache.drill.exec.record.MaterializedField v;
org.apache.drill.common.types.TypeProtos$MajorType v, v;
int v, v, v, v, v, v;
java.lang.Boolean v;
org.apache.calcite.sql.SqlIdentifier v;
java.lang.String v, v, v, v;
org.apache.calcite.sql.parser.SqlParserPos v, v, v, v;
org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder v;
org.slf4j.Logger v;
org.apache.calcite.sql.type.SqlTypeName v;
org.apache.calcite.sql.SqlBasicTypeNameSpec v;
org.apache.calcite.schema.ColumnStrategy v;
org.apache.calcite.sql.SqlDialect v;
org.apache.calcite.sql.SqlNodeList v;
v := @this: org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder;
v := @parameter: org.apache.drill.exec.record.MaterializedField;
v = virtualinvoke v.<org.apache.drill.exec.record.MaterializedField: org.apache.drill.common.types.TypeProtos$MajorType getType()>();
v = staticinvoke <org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.drill.common.types.TypeProtos$MajorType populateScaleAndPrecisionIfRequired(org.apache.drill.common.types.TypeProtos$MajorType)>(v);
v = staticinvoke <org.apache.drill.common.types.Types: java.lang.String getSqlTypeName(org.apache.drill.common.types.TypeProtos$MajorType)>(v);
v = staticinvoke <org.apache.drill.common.types.Types: int getJdbcTypeCode(java.lang.String)>(v);
v = v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.calcite.sql.SqlDialect dialect>;
v = v instanceof org.apache.calcite.sql.dialect.PostgresqlSqlDialect;
if v == 0 goto label;
if v != 8 goto label;
v = 6;
label:
v = staticinvoke <org.apache.calcite.sql.type.SqlTypeName: org.apache.calcite.sql.type.SqlTypeName getNameForJdbcType(int)>(v);
if v != null goto label;
v = staticinvoke <org.apache.drill.common.exceptions.UserException: org.apache.drill.common.exceptions.UserException$Builder dataWriteError()>();
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<org.apache.drill.common.exceptions.UserException$Builder: org.apache.drill.common.exceptions.UserException$Builder message(java.lang.String,java.lang.Object[])>("Drill does not support writing complex fields to JDBC data sources.", v);
v = virtualinvoke v.<org.apache.drill.exec.record.MaterializedField: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u is a complex type.");
v = virtualinvoke v.<org.apache.drill.common.exceptions.UserException$Builder: org.apache.drill.common.exceptions.UserException$Builder addContext(java.lang.String)>(v);
v = <org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.slf4j.Logger logger>;
v = virtualinvoke v.<org.apache.drill.common.exceptions.UserException$Builder: org.apache.drill.common.exceptions.UserException build(org.slf4j.Logger)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: boolean hasPrecision()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: int getPrecision()>();
goto label;
label:
v = (int) -1;
v = v;
label:
v = v;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: boolean hasScale()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: int getScale()>();
goto label;
label:
v = (int) -1;
v = v;
label:
v = new org.apache.calcite.sql.SqlBasicTypeNameSpec;
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
specialinvoke v.<org.apache.calcite.sql.SqlBasicTypeNameSpec: void <init>(org.apache.calcite.sql.type.SqlTypeName,int,int,org.apache.calcite.sql.parser.SqlParserPos)>(v, v, v, v);
v = new org.apache.calcite.sql.SqlDataTypeSpec;
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
specialinvoke v.<org.apache.calcite.sql.SqlDataTypeSpec: void <init>(org.apache.calcite.sql.SqlTypeNameSpec,org.apache.calcite.sql.parser.SqlParserPos)>(v, v);
v = virtualinvoke v.<org.apache.drill.exec.record.MaterializedField: boolean isNullable()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v = virtualinvoke v.<org.apache.calcite.sql.SqlDataTypeSpec: org.apache.calcite.sql.SqlDataTypeSpec withNullable(java.lang.Boolean)>(v);
v = virtualinvoke v.<org.apache.drill.exec.record.MaterializedField: boolean isNullable()>();
if v == 0 goto label;
v = <org.apache.calcite.schema.ColumnStrategy: org.apache.calcite.schema.ColumnStrategy NULLABLE>;
goto label;
label:
v = <org.apache.calcite.schema.ColumnStrategy: org.apache.calcite.schema.ColumnStrategy NOT_NULLABLE>;
label:
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
v = new org.apache.calcite.sql.SqlIdentifier;
v = virtualinvoke v.<org.apache.drill.exec.record.MaterializedField: java.lang.String getName()>();
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
specialinvoke v.<org.apache.calcite.sql.SqlIdentifier: void <init>(java.lang.String,org.apache.calcite.sql.parser.SqlParserPos)>(v, v);
v = staticinvoke <org.apache.calcite.sql.ddl.SqlDdlNodes: org.apache.calcite.sql.SqlNode column(org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlDataTypeSpec,org.apache.calcite.sql.SqlNode,org.apache.calcite.schema.ColumnStrategy)>(v, v, v, null, v);
v = v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.calcite.sql.SqlNodeList sqlColumns>;
virtualinvoke v.<org.apache.calcite.sql.SqlNodeList: boolean add(org.apache.calcite.sql.SqlNode)>(v);
return;
}
public java.lang.String build()
{
org.apache.calcite.sql.parser.SqlParserPos v, v;
org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder v;
org.apache.calcite.sql.ddl.SqlCreateTable v;
org.apache.calcite.sql.SqlDialect v;
java.util.List v;
org.apache.calcite.sql.SqlIdentifier v;
org.apache.calcite.sql.util.SqlString v;
java.lang.String v;
org.apache.calcite.sql.SqlNodeList v;
v := @this: org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder;
v = new org.apache.calcite.sql.SqlIdentifier;
v = v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: java.util.List tableIdentifier>;
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
specialinvoke v.<org.apache.calcite.sql.SqlIdentifier: void <init>(java.util.List,org.apache.calcite.sql.parser.SqlParserPos)>(v, v);
v = <org.apache.calcite.sql.parser.SqlParserPos: org.apache.calcite.sql.parser.SqlParserPos ZERO>;
v = v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.calcite.sql.SqlNodeList sqlColumns>;
v = staticinvoke <org.apache.calcite.sql.ddl.SqlDdlNodes: org.apache.calcite.sql.ddl.SqlCreateTable createTable(org.apache.calcite.sql.parser.SqlParserPos,boolean,boolean,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNode)>(v, 0, 0, v, v, null);
v = v.<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.apache.calcite.sql.SqlDialect dialect>;
v = virtualinvoke v.<org.apache.calcite.sql.SqlNode: org.apache.calcite.sql.util.SqlString toSqlString(org.apache.calcite.sql.SqlDialect,boolean)>(v, 1);
v = virtualinvoke v.<org.apache.calcite.sql.util.SqlString: java.lang.String getSql()>();
return v;
}
private static org.apache.drill.common.types.TypeProtos$MajorType populateScaleAndPrecisionIfRequired(org.apache.drill.common.types.TypeProtos$MajorType)
{
org.apache.drill.common.types.TypeProtos$MajorType v;
org.apache.drill.common.types.TypeProtos$MinorType v, v;
int[] v;
int v, v, v;
org.apache.drill.common.types.TypeProtos$MajorType$Builder v, v, v, v, v, v, v, v;
boolean v, v, v, v;
v := @parameter: org.apache.drill.common.types.TypeProtos$MajorType;
v = <org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder$1: int[] $SwitchMap$org$apache$drill$common$types$TypeProtos$MinorType>;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: org.apache.drill.common.types.TypeProtos$MinorType getMinorType()>();
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MinorType: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: boolean hasPrecision()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: org.apache.drill.common.types.TypeProtos$MajorType$Builder toBuilder()>();
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: org.apache.drill.common.types.TypeProtos$MinorType getMinorType()>();
v = staticinvoke <org.apache.drill.common.types.Types: int maxPrecision(org.apache.drill.common.types.TypeProtos$MinorType)>(v);
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType$Builder setPrecision(int)>(v);
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType build()>();
label:
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: boolean hasScale()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: org.apache.drill.common.types.TypeProtos$MajorType$Builder toBuilder()>();
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType$Builder setScale(int)>(0);
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType build()>();
goto label;
label:
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: boolean hasPrecision()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: org.apache.drill.common.types.TypeProtos$MajorType$Builder toBuilder()>();
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType$Builder setPrecision(int)>(100);
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType build()>();
label:
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: boolean hasPrecision()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType: org.apache.drill.common.types.TypeProtos$MajorType$Builder toBuilder()>();
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType$Builder setPrecision(int)>(3);
v = virtualinvoke v.<org.apache.drill.common.types.TypeProtos$MajorType$Builder: org.apache.drill.common.types.TypeProtos$MajorType build()>();
label:
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/drill/exec/store/jdbc/utils/CreateTableStmtBuilder;");
<org.apache.drill.exec.store.jdbc.utils.CreateTableStmtBuilder: org.slf4j.Logger logger> = v;
return;
}
}