~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to examples/pipe_query.cc

  • Committer: Mark Atwood
  • Date: 2012-01-04 16:59:32 UTC
  • mfrom: (2478.2.3 real-key-use-catalog)
  • Revision ID: me@mark.atwood.name-20120104165932-cm0xqs4by0u3p4cy
mergeĀ lp:~stewart/drizzle/key-use-catalog

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
 *
35
35
 */
36
36
 
37
 
 
38
 
#include <config.h>
39
 
 
40
37
#include <errno.h>
41
38
#include <stdio.h>
42
39
#include <stdlib.h>
43
40
#include <string.h>
44
41
#include <unistd.h>
45
42
 
46
 
#include <libdrizzle/drizzle_client.h>
 
43
#include <libdrizzle-2.0/drizzle_client.h>
47
44
 
48
45
#define BUFFER_CHUNK 8192
49
46
 
56
53
  char *password= NULL;
57
54
  char *buffer= NULL;
58
55
  size_t buffer_size= 0;
59
 
  size_t buffer_total= 0;
60
56
  ssize_t read_size= 0;
61
 
  drizzle_st drizzle;
62
 
  drizzle_con_st *con= (drizzle_con_st*)malloc(sizeof(drizzle_con_st));
 
57
  drizzle_st *drizzle;
63
58
  drizzle_result_st result;
64
 
  drizzle_return_t ret;
65
 
  drizzle_field_t field;
66
59
  size_t offset;
67
60
  size_t size;
68
61
  size_t total;
69
62
 
70
 
  if (con == NULL)
71
 
  {
72
 
    printf("Failed to allocate memory for drizzle connection");
73
 
    exit(1);
74
 
  }
75
 
 
76
63
  /* The docs say this might fail, so check for errors. */
77
 
  if (drizzle_create(&drizzle) == NULL)
 
64
  if ((drizzle= drizzle_create()) == NULL)
78
65
  {
79
66
    printf("drizzle_create:failed\n");
80
67
    exit(1);
81
68
  }
82
69
 
83
 
  if (drizzle_con_create(&drizzle, con) == NULL)
 
70
  drizzle_con_st *con;
 
71
  if ((con= drizzle_con_create(drizzle)) == NULL)
84
72
  {
85
 
    printf("drizzle_con_create:%s\n", drizzle_error(&drizzle));
 
73
    printf("drizzle_con_create:%s\n", drizzle_error(drizzle));
86
74
    exit(1);
87
75
  }
88
76
 
148
136
      return 1;
149
137
    }
150
138
 
151
 
    buffer_total= buffer_size + BUFFER_CHUNK;
152
139
  } while ((read_size= read(0, buffer + buffer_size, BUFFER_CHUNK)) != 0);
153
140
 
 
141
  drizzle_return_t ret;
154
142
  (void)drizzle_query(con, &result, buffer, buffer_size, &ret);
155
143
  if (ret != DRIZZLE_RETURN_OK)
156
144
  {
157
 
    printf("drizzle_query:%s\n", drizzle_error(&drizzle));
 
145
      printf("drizzle_query:%s\n", drizzle_error(drizzle));
158
146
    return 1;
159
147
  }
160
148
 
163
151
  ret= drizzle_column_skip(&result);
164
152
  if (ret != DRIZZLE_RETURN_OK)
165
153
  {
166
 
    printf("drizzle_column_skip:%s\n", drizzle_error(&drizzle));
 
154
    printf("drizzle_column_skip:%s\n", drizzle_error(drizzle));
167
155
    return 1;
168
156
  }
169
157
 
171
159
  {
172
160
    while (1)
173
161
    {
174
 
      field= drizzle_field_read(&result, &offset, &size, &total, &ret);
 
162
      drizzle_field_t field= drizzle_field_read(&result, &offset, &size, &total, &ret);
175
163
      if (ret == DRIZZLE_RETURN_ROW_END)
 
164
      {
176
165
        break;
 
166
      }
177
167
      else if (ret != DRIZZLE_RETURN_OK)
178
168
      {
179
 
        printf("drizzle_field_read:%s\n", drizzle_error(&drizzle));
 
169
        printf("drizzle_field_read:%s\n", drizzle_error(drizzle));
180
170
        return 1;
181
171
      }
182
172
 
183
173
      if (field == NULL)
 
174
      {
184
175
        printf("NULL");
 
176
      }
185
177
      else
 
178
      {
186
179
        printf("%.*s", (int)size, field);
 
180
      }
187
181
 
188
182
      if (offset + size == total)
 
183
      {
189
184
        printf("\t");
 
185
      }
190
186
    }
191
187
 
192
188
    printf("\n");
194
190
 
195
191
  if (ret != DRIZZLE_RETURN_OK)
196
192
  {
197
 
    printf("drizzle_row_read:%s\n", drizzle_error(&drizzle));
 
193
    printf("drizzle_row_read:%s\n", drizzle_error(drizzle));
198
194
    return 1;
199
195
  }
200
196
 
201
197
  drizzle_result_free(&result);
202
198
  drizzle_con_free(con);
203
 
  drizzle_free(&drizzle);
 
199
  drizzle_free(drizzle);
204
200
 
205
 
  free(con);
206
201
  return 0;
207
202
}