Skip to content

Commit 8034b6a

Browse files
author
Jonny Dixon
committed
Update for timestamps and boolean issues for Sybase
1 parent ed811b6 commit 8034b6a

6 files changed

Lines changed: 60 additions & 37 deletions

File tree

dremio-sybasearp-plugin.jar

509 Bytes
Binary file not shown.

pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,25 @@
3535
<artifactId>dremio-ce-jdbc-plugin</artifactId>
3636
<version>${version.dremio}</version>
3737
</dependency>
38+
39+
<dependency>
40+
<groupId>junit</groupId>
41+
<artifactId>junit</artifactId>
42+
<version>4.12</version>
43+
<scope>test</scope>
44+
</dependency>
45+
46+
<dependency>
47+
<groupId>org.apache.httpcomponents</groupId>
48+
<artifactId>httpclient</artifactId>
49+
<version>4.5.9</version>
50+
</dependency>
51+
52+
<dependency>
53+
<groupId>com.fasterxml.jackson.core</groupId>
54+
<artifactId>jackson-databind</artifactId>
55+
<version>2.9.9.3</version>
56+
</dependency>
3857
</dependencies>
3958

4059
<build>

src/main/java/com/dremio/exec/store/jdbc/conf/SybaseConf.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ protected Config toPluginConfig(SabotContext context) {
105105
private CloseableDataSource newDataSource() {
106106
final Properties properties = new Properties();
107107

108+
properties.setProperty("JCONNECT_VERSION", "7");
109+
108110
if (useSsl) {
109111
properties.setProperty("SYBSOCKET_FACTORY", "DEFAULT");
110112
}

src/main/java/com/dremio/exec/store/jdbc/dialect/SybaseDialect.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.apache.calcite.sql.SqlWriter;
1515
import org.apache.calcite.sql.parser.SqlParserPos;
1616
import com.dremio.exec.store.jdbc.dialect.arp.ArpDialect;
17+
import com.dremio.common.expression.CompleteType;
1718

1819
/*
1920
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -48,6 +49,15 @@ public boolean hasImplicitTableAlias() {
4849
return false;
4950
}
5051

52+
@Override
53+
public boolean supportsLiteral(CompleteType type) {
54+
if (CompleteType.BIT.equals(type)) {
55+
return false;
56+
}
57+
58+
return super.supportsLiteral(type);
59+
}
60+
5161
@Override
5262
public void unparseCall(final SqlWriter writer, final SqlCall call, final int leftPrec, final int rightPrec) {
5363
// Transform SqlSelect nodes that have a fetch node to be SqlSelect nodes with a TOP and no fetch.

src/main/resources/arp/implementation/sybase-arp.yaml

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ syntax:
2424
# Manually Configured Syntax Section.
2525
identifier_quote: '"'
2626
identifier_length_limit: 128
27-
allows_boolean_literal: true
27+
allows_boolean_literal: false
2828
map_boolean_literal_to_bit: false
2929
supports_catalogs: true
3030
supports_schemas: true
@@ -33,132 +33,120 @@ data_types:
3333
mappings:
3434
# Manually Configured Data Types Mappings Section.
3535
- source:
36-
name: "BIT"
36+
name: "INTEGER"
3737
dremio:
38-
name: "boolean"
39-
required_cast_arguments: "none"
38+
name: "integer"
4039
- source:
41-
name: "INT"
40+
name: "TIMESTAMP"
4241
dremio:
43-
name: "integer"
44-
required_cast_arguments: "none"
42+
name: "timestamp"
4543
- source:
46-
name: "INTEGER"
44+
name: "INT"
4745
dremio:
4846
name: "integer"
49-
required_cast_arguments: "none"
5047
- source:
5148
name: "SMALLINT"
5249
dremio:
5350
name: "integer"
54-
required_cast_arguments: "none"
5551
- source:
5652
name: "TINYINT"
5753
dremio:
5854
name: "integer"
59-
required_cast_arguments: "none"
6055
- source:
6156
name: "BIGINT"
6257
dremio:
6358
name: "bigint"
64-
required_cast_arguments: "none"
6559
- source:
6660
name: "DECIMAL"
6761
dremio:
6862
name: "decimal"
69-
required_cast_arguments: "none"
7063
- source:
7164
name: "REAL"
7265
dremio:
7366
name: "double"
74-
required_cast_arguments: "none"
7567
- source:
7668
name: "NUMERIC"
7769
dremio:
7870
name: "integer"
79-
required_cast_arguments: "none"
8071
- source:
8172
name: "MONEY"
8273
dremio:
8374
name: "double"
84-
required_cast_arguments: "none"
8575
- source:
8676
name: "SMALLMONEY"
8777
dremio:
8878
name: "double"
89-
required_cast_arguments: "none"
9079
- source:
9180
name: "DATETIME"
9281
max_scale: 8
9382
dremio:
9483
name: "timestamp"
95-
required_cast_arguments: "none"
9684
- source:
9785
name: "SMALLDATETIME"
9886
max_scale: 4
9987
dremio:
10088
name: "timestamp"
101-
required_cast_arguments: "none"
10289
- source:
10390
name: "DATE"
10491
dremio:
105-
name: "date"
106-
required_cast_arguments: "none"
92+
name: "timestamp"
10793
- source:
10894
name: "TIME"
10995
dremio:
11096
name: "time"
111-
required_cast_arguments: "none"
97+
- source:
98+
name: "VARCHAR"
99+
dremio:
100+
name: "varchar"
112101
- source:
113102
name: "TEXT"
114103
dremio:
115104
name: "varchar"
116-
required_cast_arguments: "none"
117105
- source:
118106
name: "UNITEXT"
119107
dremio:
120108
name: "varchar"
121-
required_cast_arguments: "none"
122109
- source:
123110
name: "BINARY"
124111
dremio:
125112
name: "varchar"
126-
required_cast_arguments: "none"
127113
- source:
128114
name: "VARBINARY"
129115
dremio:
130116
name: "varchar"
131-
required_cast_arguments: "none"
132117
- source:
133118
name: "IMAGE"
134119
dremio:
135120
name: "varchar"
136-
required_cast_arguments: "none"
137121
- source:
138122
name: "CHAR"
139123
dremio:
140124
name: "varchar"
141-
required_cast_arguments: "none"
142125
- source:
143126
name: "NCHAR"
144127
dremio:
145128
name: "varchar"
146-
required_cast_arguments: "none"
147-
- source:
148-
name: "VARCHAR"
149-
dremio:
150-
name: "varchar"
151-
required_cast_arguments: "none"
152129
- source:
153130
name: "NVARCHAR"
154131
dremio:
155132
name: "varchar"
156-
required_cast_arguments: "none"
157133
- source:
158134
name: "UNIVARCHAR"
159135
dremio:
160136
name: "varchar"
161-
required_cast_arguments: "none"
137+
- source:
138+
name: "BIT"
139+
dremio:
140+
name: "boolean"
141+
default_cast_spec: true
142+
- source:
143+
name: "BIGDATETIME"
144+
dremio:
145+
name: "timestamp"
146+
- source:
147+
name: "BIGTIME"
148+
dremio:
149+
name: "time"
162150

163151
relational_algebra:
164152
aggregation:
@@ -288,7 +276,7 @@ expressions:
288276
correlated: true
289277
scalar: true
290278
in_clause: true
291-
exists_clase: true
279+
exists_clause: true
292280
supports_case: true
293281
supports_over: true
294282
datetime_formats:
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
2+
log4j.appender.stdout.Target=System.out
3+
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
4+
log4j.rootLogger=info, stdout

0 commit comments

Comments
 (0)