@@ -14,112 +14,13 @@ extern "C" {
14
14
15
15
#include " connected_dbc.h"
16
16
17
- /*
18
- * Answer ES/SQL sends to SYS TYPES
19
- * TODO: (Changes: MINIMUM_SCALE changed from 0 to MAXIMUM_SCALE for:
20
- * HALF_FLOAT, SCALED_FLOAT, FLOAT, DOUBLE.)
21
- */
22
- static const char systypes_answer[] = " \
23
- {\
24
- \" columns\" : [\
25
- {\" name\" : \" TYPE_NAME\" , \" type\" : \" keyword\" },\
26
- {\" name\" : \" DATA_TYPE\" , \" type\" : \" integer\" },\
27
- {\" name\" : \" PRECISION\" , \" type\" : \" integer\" },\
28
- {\" name\" : \" LITERAL_PREFIX\" , \" type\" : \" keyword\" },\
29
- {\" name\" : \" LITERAL_SUFFIX\" , \" type\" : \" keyword\" },\
30
- {\" name\" : \" CREATE_PARAMS\" , \" type\" : \" keyword\" },\
31
- {\" name\" : \" NULLABLE\" , \" type\" : \" short\" },\
32
- {\" name\" : \" CASE_SENSITIVE\" , \" type\" : \" boolean\" },\
33
- {\" name\" : \" SEARCHABLE\" , \" type\" : \" short\" },\
34
- {\" name\" : \" UNSIGNED_ATTRIBUTE\" , \" type\" : \" boolean\" },\
35
- {\" name\" : \" FIXED_PREC_SCALE\" , \" type\" : \" boolean\" },\
36
- {\" name\" : \" AUTO_INCREMENT\" , \" type\" : \" boolean\" },\
37
- {\" name\" : \" LOCAL_TYPE_NAME\" , \" type\" : \" keyword\" },\
38
- {\" name\" : \" MINIMUM_SCALE\" , \" type\" : \" short\" },\
39
- {\" name\" : \" MAXIMUM_SCALE\" , \" type\" : \" short\" },\
40
- {\" name\" : \" SQL_DATA_TYPE\" , \" type\" : \" integer\" },\
41
- {\" name\" : \" SQL_DATETIME_SUB\" , \" type\" : \" integer\" },\
42
- {\" name\" : \" NUM_PREC_RADIX\" , \" type\" : \" integer\" },\
43
- {\" name\" : \" INTERVAL_PRECISION\" , \" type\" : \" integer\" }\
44
- ],\
45
- \" rows\" : [\
46
- [\" BYTE\" , -6, 3, \" '\" , \" '\" , null, 2, false, 3, false, false,\
47
- false, null, 0, 0, -6, 0, 10, null],\
48
- [\" LONG\" , -5, 19, \" '\" , \" '\" , null, 2, false, 3, false, false,\
49
- false, null, 0, 0, -5, 0, 10, null],\
50
- [\" BINARY\" , -3, 2147483647, \" '\" , \" '\" , null, 2, false, 3, true,\
51
- false, false, null, null, null, -3, 0, null, null],\
52
- [\" NULL\" , 0, 0, \" '\" , \" '\" , null, 2, false, 3, true, false, false,\
53
- null, null, null, 0, 0, null, null],\
54
- [\" INTEGER\" , 4, 10, \" '\" , \" '\" , null, 2, false, 3, false, false,\
55
- false, null, 0, 0, 4, 0, 10, null],\
56
- [\" SHORT\" , 5, 5, \" '\" , \" '\" , null, 2, false, 3, false, false,\
57
- false, null, 0, 0, 5, 0, 10, null],\
58
- [\" HALF_FLOAT\" , 6, 16, \" '\" , \" '\" , null, 2, false, 3, false, false,\
59
- false, null, 0, 16, 6, 0, 2, null],\
60
- [\" SCALED_FLOAT\" , 6, 19, \" '\" , \" '\" , null, 2, false, 3, false,\
61
- false, false, null, 0, 19, 6, 0, 2, null],\
62
- [\" FLOAT\" , 7, 7, \" '\" , \" '\" , null, 2, false, 3, false, false,\
63
- false, null, 0, 7, 7, 0, 2, null],\
64
- [\" DOUBLE\" , 8, 15, \" '\" , \" '\" , null, 2, false, 3, false, false,\
65
- false, null, 0, 15, 8, 0, 2, null],\
66
- [\" KEYWORD\" , 12, 256, \" '\" , \" '\" , null, 2, true, 3, true, false,\
67
- false, null, null, null, 12, 0, null, null],\
68
- [\" TEXT\" , 12, 2147483647, \" '\" , \" '\" , null, 2, true, 3, true,\
69
- false, false, null, null, null, 12, 0, null, null],\
70
- [\" BOOLEAN\" , 16, 1, \" '\" , \" '\" , null, 2, false, 3, true, false,\
71
- false, null, null, null, 16, 0, null, null],\
72
- [\" DATE\" , 91, 10, \" '\" , \" '\" , null, 2, false, 3, true, false,\
73
- false, null, null, null, 91, 0, null, null],\
74
- [\" DATETIME\" , 93, 24, \" '\" , \" '\" , null, 2, false, 3, true, false,\
75
- false, null, 3, 3, 9, 3, null, null],\
76
- [\" INTERVAL_YEAR\" , 101, 7, \" '\" , \" '\" , null, 2, false, 3, true,\
77
- false, false, null, null, null, 101, 0, null, null],\
78
- [\" INTERVAL_MONTH\" , 102, 7, \" '\" , \" '\" , null, 2, false, 3, true,\
79
- false, false, null, null, null, 102, 0, null, null],\
80
- [\" INTERVAL_DAY\" , 103, 23, \" '\" , \" '\" , null, 2, false, 3, true,\
81
- false, false, null, null, null, 103, 0, null, null],\
82
- [\" INTERVAL_HOUR\" , 104, 23, \" '\" , \" '\" , null, 2, false, 3, true,\
83
- false, false, null, null, null, 104, 0, null, null],\
84
- [\" INTERVAL_MINUTE\" , 105, 23, \" '\" , \" '\" , null, 2, false, 3, true,\
85
- false, false, null, null, null, 105, 0, null, null],\
86
- [\" INTERVAL_SECOND\" , 106, 23, \" '\" , \" '\" , null, 2, false, 3, true,\
87
- false, false, null, null, null, 106, 0, null, null],\
88
- [\" INTERVAL_YEAR_TO_MONTH\" , 107, 7, \" '\" , \" '\" , null, 2, false, 3,\
89
- true, false, false, null, null, null, 107, 0, null, null],\
90
- [\" INTERVAL_DAY_TO_HOUR\" , 108, 23, \" '\" , \" '\" , null, 2, false, 3,\
91
- true, false, false, null, null, null, 108, 0, null, null],\
92
- [\" INTERVAL_DAY_TO_MINUTE\" , 109, 23, \" '\" , \" '\" , null, 2, false, 3,\
93
- true, false, false, null, null, null, 109, 0, null, null],\
94
- [\" INTERVAL_DAY_TO_SECOND\" , 110, 23, \" '\" , \" '\" , null, 2, false, 3,\
95
- true, false, false, null, null, null, 110, 0, null, null],\
96
- [\" INTERVAL_HOUR_TO_MINUTE\" , 111, 23, \" '\" , \" '\" , null, 2, false,\
97
- 3, true, false, false, null, null, null, 111, 0, null, null],\
98
- [\" INTERVAL_HOUR_TO_SECOND\" , 112, 23, \" '\" , \" '\" , null, 2, false,\
99
- 3, true, false, false, null, null, null, 112, 0, null, null],\
100
- [\" INTERVAL_MINUTE_TO_SECOND\" , 113, 23, \" '\" , \" '\" , null, 2, false,\
101
- 3, true, false, false, null, null, null, 113, 0, null, null],\
102
- [\" UNSUPPORTED\" , 1111, 0, \" '\" , \" '\" , null, 2, false, 3, true,\
103
- false, false, null, null, null, 1111, 0, null, null],\
104
- [\" OBJECT\" , 2002, 0, \" '\" , \" '\" , null, 2, false, 3, true, false,\
105
- false, null, null, null, 2002, 0, null, null],\
106
- [\" NESTED\" , 2002, 0, \" '\" , \" '\" , null, 2, false, 3, true, false,\
107
- false, null, null, null, 2002, 0, null, null]\
108
- ]\
109
- }\
110
- " ;
111
-
112
- /* minimal, valid connection string */
113
- static const SQLWCHAR connect_string[] = L" Driver=ElasticODBC" ;
114
-
115
17
116
18
/*
117
19
* Class will provide a "connected" DBC: the ES types are loaded.
118
20
*/
119
21
ConnectedDBC::ConnectedDBC ()
120
22
{
121
- SQLRETURN ret;
122
- cstr_st types;
23
+ cstr_st types = {0 };
123
24
124
25
ret = SQLAllocHandle (SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
125
26
assert (SQL_SUCCEEDED (ret));
@@ -131,14 +32,12 @@ ConnectedDBC::ConnectedDBC()
131
32
ret = SQLAllocHandle (SQL_HANDLE_DBC, env, &dbc);
132
33
assert (SQL_SUCCEEDED (ret));
133
34
134
-
135
- types.cnt = sizeof (systypes_answer) - 1 ;
136
- types.str = (SQLCHAR *)malloc (types.cnt );
35
+ types.str = (SQLCHAR *)strdup (SYSTYPES_ANSWER);
137
36
assert (types.str != NULL );
138
- memcpy ( types.str , systypes_answer, types. cnt ) ;
37
+ types.cnt = sizeof (SYSTYPES_ANSWER) - 1 ;
139
38
140
- ret = SQLDriverConnect (dbc, (SQLHWND)&types, (SQLWCHAR *)connect_string ,
141
- sizeof (connect_string ) / sizeof (connect_string [0 ]) - 1 , NULL , 0 , NULL ,
39
+ ret = SQLDriverConnect (dbc, (SQLHWND)&types, (SQLWCHAR *)CONNECT_STRING ,
40
+ sizeof (CONNECT_STRING ) / sizeof (CONNECT_STRING [0 ]) - 1 , NULL , 0 , NULL ,
142
41
ESODBC_SQL_DRIVER_TEST);
143
42
assert (SQL_SUCCEEDED (ret));
144
43
0 commit comments