38
#include <yatl/lite.h>
38
40
#include <libdrizzle-5.1/libdrizzle.h>
40
42
#include <string.h>
41
43
#include <stdlib.h>
47
45
int main(int argc, char *argv[])
52
49
drizzle_return_t ret;
53
50
drizzle_result_st *result;
57
con = drizzle_create_tcp("localhost", 3306, "root", "", "libdrizzle", 0);
60
printf("Drizzle connection object creation error\n");
54
drizzle_st *con= drizzle_create_tcp("localhost", 3306, "root", "", "libdrizzle", 0);
55
ASSERT_NOT_NULL_(con, "Drizzle connection object creation error");
63
57
ret = drizzle_connect(con);
64
58
if (ret != DRIZZLE_RETURN_OK)
66
printf("Drizzle connection failure\n");
61
SKIP_IF_(ret != DRIZZLE_RETURN_OK, "Drizzle connection failure");
71
64
drizzle_query_str(con, "create table libdrizzle.t1 (a int primary key auto_increment, b varchar(255), c timestamp default current_timestamp)", &ret);
72
if (ret != DRIZZLE_RETURN_OK)
74
printf("Create table failure\n");
65
ASSERT_TRUE_(ret == DRIZZLE_RETURN_OK, "create table libdrizzle.t1 (a int primary key auto_increment, b varchar(255), c timestamp default current_timestamp)");
78
67
drizzle_query_str(con, "insert into libdrizzle.t1 (b) values ('this'),('is'),('war')", &ret);
79
if (ret != DRIZZLE_RETURN_OK)
81
printf("Insert failure\n");
68
ASSERT_TRUE_(ret == DRIZZLE_RETURN_OK, "insert into libdrizzle.t1 (b) values ('this'),('is'),('war')");
85
70
result= drizzle_query_str(con, "select * from libdrizzle.t1", &ret);
86
if (ret != DRIZZLE_RETURN_OK)
88
printf("Select failure\n");
71
ASSERT_TRUE_(ret == DRIZZLE_RETURN_OK, "select * from libdrizzle.t1");
91
73
drizzle_result_buffer(result);
92
74
num_fields= drizzle_result_column_count(result);
96
printf("Retrieved bad number of fields\n");
76
ASSERT_TRUE_(num_fields == 3, "Retrieved bad number of fields");
102
79
drizzle_column_st *column;
103
80
while ((row = drizzle_row_next(result)))
105
82
drizzle_column_seek(result, 0);
108
snprintf(buf, 10, "%d", i);
109
if (strcmp(row[0], buf) != 0)
111
printf("Retrieved bad row value\n");
86
snprintf(buf, sizeof(buf), "%d", i);
87
ASSERT_EQ_(strcmp(row[0], buf), 0, "Retrieved bad row value");
114
88
while ((column= drizzle_column_next(result)))
117
if (strcmp(drizzle_column_db(column), "libdrizzle") != 0)
119
printf("Column has bad DB name\n");
122
if (strcmp(drizzle_column_table(column), "t1") != 0)
124
printf("Column had bad table name\n");
127
if ((j == 2) && (drizzle_column_max_size(column) != 255))
129
printf("Column max size wrong %lu != 255\n", drizzle_column_max_size(column));
132
if ((j == 2) && (drizzle_column_charset(column) != DRIZZLE_CHARSET_LATIN1_SWEDISH_CI))
134
printf("Column type wrong, %d != %d\n", drizzle_column_charset(column), DRIZZLE_CHARSET_UTF8_BIN);
137
if ((j == 3) && (drizzle_column_type(column) != DRIZZLE_COLUMN_TYPE_TIMESTAMP))
139
printf("Column type wrong\n");
145
printf("Wrong column count\n");
91
ASSERT_EQ_(strcmp(drizzle_column_db(column), "libdrizzle"), 0, "Column has bad DB name");
92
ASSERT_EQ_(strcmp(drizzle_column_table(column), "t1"), 0, "Column had bad table name");
93
ASSERT_FALSE_((j == 2) && (drizzle_column_max_size(column) != 255), "Column max size wrong %lu != 255", drizzle_column_max_size(column));
95
ASSERT_FALSE_((j == 2) && (drizzle_column_charset(column) != DRIZZLE_CHARSET_LATIN1_SWEDISH_CI), "Column type wrong, %d != %d", drizzle_column_charset(column), DRIZZLE_CHARSET_UTF8_BIN);
96
ASSERT_FALSE_((j == 3) && (drizzle_column_type(column) != DRIZZLE_COLUMN_TYPE_TIMESTAMP), "Column type wrong");
98
ASSERT_EQ_(j, 3, "Wrong column count");
149
100
/* Should have had 3 rows */
152
printf("Retrieved bad number of rows\n");
101
ASSERT_EQ_(i, 3, "Retrieved bad number of rows");
156
103
drizzle_result_free(result);
158
105
drizzle_query_str(con, "drop table libdrizzle.t1", &ret);
159
if (ret != DRIZZLE_RETURN_OK)
161
printf("Drop table failure\n");
106
ASSERT_EQ_(DRIZZLE_RETURN_OK, ret, "drop table libdrizzle.t1");
166
108
drizzle_quit(con);
167
109
return EXIT_SUCCESS;