@@ -80,52 +80,59 @@ void CheckSQLColAttribute(SQLHSTMT stmt, SQLUSMALLINT idx,
8080 SQLLEN unsigned_col = 0 ;
8181
8282 EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_NAME, &name[0 ],
83- (SQLSMALLINT)name.size (), &name_len, 0 ));
83+ (SQLSMALLINT)name.size (), &name_len, nullptr ));
8484
85- EXPECT_EQ (SQL_SUCCESS,
86- SQLColAttribute (stmt, idx, SQL_DESC_BASE_COLUMN_NAME, &base_column_name[0 ],
87- (SQLSMALLINT)base_column_name.size (), &column_name_len, 0 ));
85+ EXPECT_EQ (
86+ SQL_SUCCESS,
87+ SQLColAttribute (stmt, idx, SQL_DESC_BASE_COLUMN_NAME, &base_column_name[0 ],
88+ (SQLSMALLINT)base_column_name.size (), &column_name_len, nullptr ));
8889
8990 EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_LABEL, &label[0 ],
90- (SQLSMALLINT)label.size (), &label_len, 0 ));
91-
92- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_TYPE, 0 , 0 , 0 , &data_type));
91+ (SQLSMALLINT)label.size (), &label_len, nullptr ));
9392
9493 EXPECT_EQ (SQL_SUCCESS,
95- SQLColAttribute (stmt, idx, SQL_DESC_CONCISE_TYPE , 0 , 0 , 0 , &concise_type ));
94+ SQLColAttribute (stmt, idx, SQL_DESC_TYPE , 0 , 0 , nullptr , &data_type ));
9695
97- EXPECT_EQ (SQL_SUCCESS,
98- SQLColAttribute (stmt, idx, SQL_DESC_DISPLAY_SIZE, 0 , 0 , 0 , &display_size ));
96+ EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_CONCISE_TYPE, 0 , 0 , nullptr ,
97+ &concise_type ));
9998
100- EXPECT_EQ (SQL_SUCCESS,
101- SQLColAttribute (stmt, idx, SQL_DESC_FIXED_PREC_SCALE, 0 , 0 , 0 , &prec_scale ));
99+ EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_DISPLAY_SIZE, 0 , 0 , nullptr ,
100+ &display_size ));
102101
103- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_LENGTH, 0 , 0 , 0 , &length));
102+ EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_FIXED_PREC_SCALE, 0 , 0 ,
103+ nullptr , &prec_scale));
104104
105- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_LITERAL_PREFIX, &prefix[ 0 ],
106- (SQLSMALLINT)prefix. size (), &prefix_len, 0 ));
105+ EXPECT_EQ (SQL_SUCCESS,
106+ SQLColAttribute (stmt, idx, SQL_DESC_LENGTH, 0 , 0 , nullptr , &length ));
107107
108- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_LITERAL_SUFFIX, &suffix[0 ],
109- (SQLSMALLINT)suffix.size (), &suffix_len, 0 ));
108+ EXPECT_EQ (SQL_SUCCESS,
109+ SQLColAttribute (stmt, idx, SQL_DESC_LITERAL_PREFIX, &prefix[0 ],
110+ (SQLSMALLINT)prefix.size (), &prefix_len, nullptr ));
110111
111- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_PRECISION, 0 , 0 , 0 , &size));
112+ EXPECT_EQ (SQL_SUCCESS,
113+ SQLColAttribute (stmt, idx, SQL_DESC_LITERAL_SUFFIX, &suffix[0 ],
114+ (SQLSMALLINT)suffix.size (), &suffix_len, nullptr ));
112115
113- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_SCALE, 0 , 0 , 0 , &scale));
116+ EXPECT_EQ (SQL_SUCCESS,
117+ SQLColAttribute (stmt, idx, SQL_DESC_PRECISION, 0 , 0 , nullptr , &size));
118+
119+ EXPECT_EQ (SQL_SUCCESS,
120+ SQLColAttribute (stmt, idx, SQL_DESC_SCALE, 0 , 0 , nullptr , &scale));
114121
115122 EXPECT_EQ (SQL_SUCCESS,
116- SQLColAttribute (stmt, idx, SQL_DESC_NULLABLE, 0 , 0 , 0 , &nullability));
123+ SQLColAttribute (stmt, idx, SQL_DESC_NULLABLE, 0 , 0 , nullptr , &nullability));
117124
118125 EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_NUM_PREC_RADIX, 0 , 0 , 0 ,
119126 &num_prec_radix));
120127
121- EXPECT_EQ (SQL_SUCCESS,
122- SQLColAttribute (stmt, idx, SQL_DESC_OCTET_LENGTH, 0 , 0 , 0 , &octet_length));
128+ EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, SQL_DESC_OCTET_LENGTH, 0 , 0 , nullptr ,
129+ &octet_length));
123130
124131 EXPECT_EQ (SQL_SUCCESS,
125- SQLColAttribute (stmt, idx, SQL_DESC_SEARCHABLE, 0 , 0 , 0 , &searchable));
132+ SQLColAttribute (stmt, idx, SQL_DESC_SEARCHABLE, 0 , 0 , nullptr , &searchable));
126133
127134 EXPECT_EQ (SQL_SUCCESS,
128- SQLColAttribute (stmt, idx, SQL_DESC_UNSIGNED, 0 , 0 , 0 , &unsigned_col));
135+ SQLColAttribute (stmt, idx, SQL_DESC_UNSIGNED, 0 , 0 , nullptr , &unsigned_col));
129136
130137 std::wstring name_str = ConvertToWString (name, name_len);
131138 std::wstring base_column_name_str = ConvertToWString (base_column_name, column_name_len);
@@ -173,36 +180,38 @@ void CheckSQLColAttributes(SQLHSTMT stmt, SQLUSMALLINT idx,
173180 SQLLEN unsigned_col = 0 ;
174181
175182 EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_NAME, &name[0 ],
176- (SQLSMALLINT)name.size (), &name_len, 0 ));
177-
178- EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_LABEL, &label[0 ],
179- (SQLSMALLINT)label.size (), &label_len, 0 ));
183+ (SQLSMALLINT)name.size (), &name_len, nullptr ));
180184
181185 EXPECT_EQ (SQL_SUCCESS,
182- SQLColAttributes (stmt, idx, SQL_COLUMN_TYPE, 0 , 0 , 0 , &data_type));
186+ SQLColAttributes (stmt, idx, SQL_COLUMN_LABEL, &label[0 ],
187+ (SQLSMALLINT)label.size (), &label_len, nullptr ));
183188
184189 EXPECT_EQ (SQL_SUCCESS,
185- SQLColAttributes (stmt, idx, SQL_COLUMN_DISPLAY_SIZE , 0 , 0 , 0 , &display_size ));
190+ SQLColAttributes (stmt, idx, SQL_COLUMN_TYPE , 0 , 0 , nullptr , &data_type ));
186191
187- EXPECT_EQ (SQL_SUCCESS,
188- SQLColAttribute (stmt, idx, SQL_COLUMN_MONEY, 0 , 0 , 0 , &prec_scale ));
192+ EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_DISPLAY_SIZE, 0 , 0 ,
193+ nullptr , &display_size ));
189194
190195 EXPECT_EQ (SQL_SUCCESS,
191- SQLColAttributes (stmt, idx, SQL_COLUMN_LENGTH , 0 , 0 , 0 , &length ));
196+ SQLColAttribute (stmt, idx, SQL_COLUMN_MONEY , 0 , 0 , nullptr , &prec_scale ));
192197
193198 EXPECT_EQ (SQL_SUCCESS,
194- SQLColAttributes (stmt, idx, SQL_COLUMN_PRECISION, 0 , 0 , 0 , &size));
195-
196- EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_SCALE, 0 , 0 , 0 , &scale));
199+ SQLColAttributes (stmt, idx, SQL_COLUMN_LENGTH, 0 , 0 , nullptr , &length));
197200
198201 EXPECT_EQ (SQL_SUCCESS,
199- SQLColAttributes (stmt, idx, SQL_COLUMN_NULLABLE , 0 , 0 , 0 , &nullability ));
202+ SQLColAttributes (stmt, idx, SQL_COLUMN_PRECISION , 0 , 0 , nullptr , &size ));
200203
201204 EXPECT_EQ (SQL_SUCCESS,
202- SQLColAttributes (stmt, idx, SQL_COLUMN_SEARCHABLE , 0 , 0 , 0 , &searchable ));
205+ SQLColAttributes (stmt, idx, SQL_COLUMN_SCALE , 0 , 0 , nullptr , &scale ));
203206
204- EXPECT_EQ (SQL_SUCCESS,
205- SQLColAttributes (stmt, idx, SQL_COLUMN_UNSIGNED, 0 , 0 , 0 , &unsigned_col));
207+ EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_NULLABLE, 0 , 0 , nullptr ,
208+ &nullability));
209+
210+ EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_SEARCHABLE, 0 , 0 , nullptr ,
211+ &searchable));
212+
213+ EXPECT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, SQL_COLUMN_UNSIGNED, 0 , 0 , nullptr ,
214+ &unsigned_col));
206215
207216 std::wstring name_str = ConvertToWString (name, name_len);
208217 std::wstring label_str = ConvertToWString (label, label_len);
@@ -235,7 +244,7 @@ void GetSQLColAttributeString(SQLHSTMT stmt, const std::wstring& wsql, SQLUSMALL
235244 SQLSMALLINT str_len = 0 ;
236245
237246 ASSERT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, field_identifier, &str_val[0 ],
238- (SQLSMALLINT)str_val.size (), &str_len, 0 ));
247+ (SQLSMALLINT)str_val.size (), &str_len, nullptr ));
239248
240249 value = ConvertToWString (str_val, str_len);
241250}
@@ -255,8 +264,9 @@ void GetSQLColAttributesString(SQLHSTMT stmt, const std::wstring& wsql, SQLUSMAL
255264 std::vector<SQLWCHAR> str_val (kOdbcBufferSize );
256265 SQLSMALLINT str_len = 0 ;
257266
258- ASSERT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, field_identifier, &str_val[0 ],
259- (SQLSMALLINT)str_val.size (), &str_len, 0 ));
267+ ASSERT_EQ (SQL_SUCCESS,
268+ SQLColAttributes (stmt, idx, field_identifier, &str_val[0 ],
269+ (SQLSMALLINT)str_val.size (), &str_len, nullptr ));
260270
261271 value = ConvertToWString (str_val, str_len);
262272}
@@ -271,7 +281,8 @@ void GetSQLColAttributeNumeric(SQLHSTMT stmt, const std::wstring& wsql, SQLUSMAL
271281 ASSERT_EQ (SQL_SUCCESS, SQLFetch (stmt));
272282
273283 SQLLEN num_val = 0 ;
274- ASSERT_EQ (SQL_SUCCESS, SQLColAttribute (stmt, idx, field_identifier, 0 , 0 , 0 , value));
284+ ASSERT_EQ (SQL_SUCCESS,
285+ SQLColAttribute (stmt, idx, field_identifier, 0 , 0 , nullptr , value));
275286}
276287
277288void GetSQLColAttributesNumeric (SQLHSTMT stmt, const std::wstring& wsql, SQLUSMALLINT idx,
@@ -284,7 +295,8 @@ void GetSQLColAttributesNumeric(SQLHSTMT stmt, const std::wstring& wsql, SQLUSMA
284295 ASSERT_EQ (SQL_SUCCESS, SQLFetch (stmt));
285296
286297 SQLLEN num_val = 0 ;
287- ASSERT_EQ (SQL_SUCCESS, SQLColAttributes (stmt, idx, field_identifier, 0 , 0 , 0 , value));
298+ ASSERT_EQ (SQL_SUCCESS,
299+ SQLColAttributes (stmt, idx, field_identifier, 0 , 0 , nullptr , value));
288300}
289301} // namespace
290302
@@ -303,19 +315,21 @@ TYPED_TEST(ColumnsTest, SQLColAttributeTestInputData) {
303315 SQLLEN numeric_attr = 0 ;
304316
305317 // All character values populated
306- EXPECT_EQ (SQL_SUCCESS,
307- SQLColAttribute (this ->stmt , idx, SQL_DESC_NAME, &character_attr[0 ],
308- (SQLSMALLINT)character_attr.size (), &character_attr_len, 0 ));
318+ EXPECT_EQ (
319+ SQL_SUCCESS,
320+ SQLColAttribute (this ->stmt , idx, SQL_DESC_NAME, &character_attr[0 ],
321+ (SQLSMALLINT)character_attr.size (), &character_attr_len, nullptr ));
309322
310323 // All numeric values populated
311- EXPECT_EQ (SQL_SUCCESS,
312- SQLColAttribute ( this -> stmt , idx, SQL_DESC_COUNT, 0 , 0 , 0 , &numeric_attr));
324+ EXPECT_EQ (SQL_SUCCESS, SQLColAttribute ( this -> stmt , idx, SQL_DESC_COUNT, 0 , 0 , nullptr ,
325+ &numeric_attr));
313326
314327 // Pass null values, driver should not throw error
315- EXPECT_EQ (SQL_SUCCESS,
316- SQLColAttribute ( this -> stmt , idx, SQL_COLUMN_TABLE_NAME, 0 , 0 , 0 , 0 ));
328+ EXPECT_EQ (SQL_SUCCESS, SQLColAttribute ( this -> stmt , idx, SQL_COLUMN_TABLE_NAME, 0 , 0 ,
329+ nullptr , nullptr ));
317330
318- EXPECT_EQ (SQL_SUCCESS, SQLColAttribute (this ->stmt , idx, SQL_DESC_COUNT, 0 , 0 , 0 , 0 ));
331+ EXPECT_EQ (SQL_SUCCESS,
332+ SQLColAttribute (this ->stmt , idx, SQL_DESC_COUNT, 0 , 0 , nullptr , nullptr ));
319333}
320334
321335TYPED_TEST (ColumnsTest, SQLColAttributeGetCharacterLen) {
@@ -331,7 +345,7 @@ TYPED_TEST(ColumnsTest, SQLColAttributeGetCharacterLen) {
331345
332346 // Check length of character attribute
333347 ASSERT_EQ (SQL_SUCCESS, SQLColAttribute (this ->stmt , 1 , SQL_DESC_BASE_COLUMN_NAME, 0 , 0 ,
334- &character_attr_len, 0 ));
348+ &character_attr_len, nullptr ));
335349 EXPECT_EQ (4 * GetSqlWCharSize (), character_attr_len);
336350}
337351
@@ -350,9 +364,10 @@ TYPED_TEST(ColumnsTest, SQLColAttributeInvalidFieldId) {
350364 SQLSMALLINT character_attr_len = 0 ;
351365 SQLLEN numeric_attr = 0 ;
352366
353- ASSERT_EQ (SQL_ERROR,
354- SQLColAttribute (this ->stmt , idx, invalid_field_id, &character_attr[0 ],
355- (SQLSMALLINT)character_attr.size (), &character_attr_len, 0 ));
367+ ASSERT_EQ (
368+ SQL_ERROR,
369+ SQLColAttribute (this ->stmt , idx, invalid_field_id, &character_attr[0 ],
370+ (SQLSMALLINT)character_attr.size (), &character_attr_len, nullptr ));
356371 // Verify invalid descriptor field identifier error state is returned
357372 VerifyOdbcErrorState (SQL_HANDLE_STMT, this ->stmt , kErrorStateHY091 );
358373}
@@ -373,7 +388,7 @@ TYPED_TEST(ColumnsTest, SQLColAttributeInvalidColId) {
373388 ASSERT_EQ (SQL_ERROR,
374389 SQLColAttribute (this ->stmt , invalid_col_id, SQL_DESC_BASE_COLUMN_NAME,
375390 &character_attr[0 ], (SQLSMALLINT)character_attr.size (),
376- &character_attr_len, 0 ));
391+ &character_attr_len, nullptr ));
377392 // Verify invalid descriptor index error state is returned
378393 VerifyOdbcErrorState (SQL_HANDLE_STMT, this ->stmt , kErrorState07009 );
379394}
0 commit comments