OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HeavyDBSqlDataTypeSpec.java
Go to the documentation of this file.
1 package com.mapd.parser.extension.ddl.heavydb;
2 
3 import org.apache.calcite.sql.SqlDataTypeSpec;
4 import org.apache.calcite.sql.SqlTypeNameSpec;
5 import org.apache.calcite.sql.parser.SqlParserPos;
6 import org.apache.calcite.util.Pair;
7 
8 public class HeavyDBSqlDataTypeSpec extends SqlDataTypeSpec {
9  private final Pair<HeavyDBEncoding, Integer> encoding;
10 
11  public HeavyDBSqlDataTypeSpec(final SqlTypeNameSpec typeNameSpec, SqlParserPos pos) {
12  super(typeNameSpec, null, null, pos);
13  this.encoding = null;
14  }
15 
17  final SqlDataTypeSpec dataTypeSpec, Pair<HeavyDBEncoding, Integer> encoding) {
18  super(dataTypeSpec.getTypeNameSpec(),
19  dataTypeSpec.getTimeZone(),
20  dataTypeSpec.getNullable(),
21  dataTypeSpec.getParserPosition());
22  this.encoding = encoding;
23  }
24 
25  public HeavyDBSqlDataTypeSpec withEncoding(Pair<HeavyDBEncoding, Integer> encoding) {
26  SqlDataTypeSpec dataTypeSpec = super.withNullable(getNullable());
27  return new HeavyDBSqlDataTypeSpec(dataTypeSpec, encoding);
28  }
29 
30  @Override
31  public HeavyDBSqlDataTypeSpec withNullable(Boolean nullable) {
32  SqlDataTypeSpec dataTypeSpec = super.withNullable(nullable);
33  return new HeavyDBSqlDataTypeSpec(dataTypeSpec, this.encoding);
34  }
35 
37  if (encoding == null) {
38  return null;
39  } else {
40  return encoding.right;
41  }
42  }
43 
44  public String getEncodingString() {
45  if (encoding == null) {
46  return null;
47  } else {
48  return encoding.left.name();
49  }
50  }
51 }
HeavyDBSqlDataTypeSpec(final SqlDataTypeSpec dataTypeSpec, Pair< HeavyDBEncoding, Integer > encoding)
HeavyDBSqlDataTypeSpec(final SqlTypeNameSpec typeNameSpec, SqlParserPos pos)
HeavyDBSqlDataTypeSpec withEncoding(Pair< HeavyDBEncoding, Integer > encoding)