OmniSciDB  340b00dbf6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OmniSciSqlDataTypeSpec.java
Go to the documentation of this file.
1 package com.mapd.parser.extension.ddl.omnisci;
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 OmniSciSqlDataTypeSpec extends SqlDataTypeSpec {
9  private final Pair<OmniSciEncoding, Integer> encoding;
10 
11  public OmniSciSqlDataTypeSpec(final SqlTypeNameSpec typeNameSpec, SqlParserPos pos) {
12  super(typeNameSpec, null, null, pos);
13  this.encoding = null;
14  }
15 
17  final SqlDataTypeSpec dataTypeSpec, Pair<OmniSciEncoding, Integer> encoding) {
18  super(dataTypeSpec.getTypeNameSpec(),
19  dataTypeSpec.getTimeZone(),
20  dataTypeSpec.getNullable(),
21  dataTypeSpec.getParserPosition());
22  this.encoding = encoding;
23  }
24 
25  public OmniSciSqlDataTypeSpec withEncoding(Pair<OmniSciEncoding, Integer> encoding) {
26  SqlDataTypeSpec dataTypeSpec = super.withNullable(getNullable());
27  return new OmniSciSqlDataTypeSpec(dataTypeSpec, encoding);
28  }
29 
30  @Override
31  public OmniSciSqlDataTypeSpec withNullable(Boolean nullable) {
32  SqlDataTypeSpec dataTypeSpec = super.withNullable(nullable);
33  return new OmniSciSqlDataTypeSpec(dataTypeSpec, this.encoding);
34  }
35 
36  public Integer getEncodingSize() {
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 }
OmniSciSqlDataTypeSpec(final SqlTypeNameSpec typeNameSpec, SqlParserPos pos)
OmniSciSqlDataTypeSpec withEncoding(Pair< OmniSciEncoding, Integer > encoding)
OmniSciSqlDataTypeSpec(final SqlDataTypeSpec dataTypeSpec, Pair< OmniSciEncoding, Integer > encoding)