@@ -14,112 +14,13 @@ extern "C" {
1414
1515#include " connected_dbc.h"
1616
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-
11517
11618/*
11719 * Class will provide a "connected" DBC: the ES types are loaded.
11820 */
11921ConnectedDBC::ConnectedDBC ()
12022{
121- SQLRETURN ret;
122- cstr_st types;
23+ cstr_st types = {0 };
12324
12425 ret = SQLAllocHandle (SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
12526 assert (SQL_SUCCEEDED (ret));
@@ -131,14 +32,12 @@ ConnectedDBC::ConnectedDBC()
13132 ret = SQLAllocHandle (SQL_HANDLE_DBC, env, &dbc);
13233 assert (SQL_SUCCEEDED (ret));
13334
134-
135- types.cnt = sizeof (systypes_answer) - 1 ;
136- types.str = (SQLCHAR *)malloc (types.cnt );
35+ types.str = (SQLCHAR *)strdup (SYSTYPES_ANSWER);
13736 assert (types.str != NULL );
138- memcpy ( types.str , systypes_answer, types. cnt ) ;
37+ types.cnt = sizeof (SYSTYPES_ANSWER) - 1 ;
13938
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 ,
14241 ESODBC_SQL_DRIVER_TEST);
14342 assert (SQL_SUCCEEDED (ret));
14443
0 commit comments