Skip to content

Commit 77efb98

Browse files
committed
Support UNSIGNED TINYINT SMALLINT INT BIGINT
1 parent 7d5bcdb commit 77efb98

File tree

11 files changed

+315
-65
lines changed

11 files changed

+315
-65
lines changed

include/crossdb.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,15 @@ xdb_column_bool (xdb_res_t *pRes, xdb_row_t *pRow, uint16_t iCol);
204204
int
205205
xdb_column_int (xdb_res_t *pRes, xdb_row_t *pRow, uint16_t iCol);
206206

207+
uint32_t
208+
xdb_column_uint (xdb_res_t *pRes, xdb_row_t *pRow, uint16_t iCol);
209+
207210
int64_t
208211
xdb_column_int64 (xdb_res_t *pRes, xdb_row_t *pRow, uint16_t iCol);
209212

213+
uint64_t
214+
xdb_column_uint64 (xdb_res_t *pRes, xdb_row_t *pRow, uint16_t iCol);
215+
210216
float
211217
xdb_column_float (xdb_res_t *pRes, xdb_row_t *pRow, uint16_t iCol);
212218

src/admin/xdb_backup.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,20 @@ xdb_row2sql (xdb_res_t *pRes, xdb_row_t *pRow, const char *tbl_name, char *buf,
2929
case XDB_TYPE_TINYINT:
3030
len += sprintf (buf+len, "%d,", xdb_column_int (pRes, pRow, i));
3131
break;
32+
case XDB_TYPE_UINT:
33+
case XDB_TYPE_USMALLINT:
34+
case XDB_TYPE_UTINYINT:
35+
len += sprintf (buf+len, "%u,", xdb_column_int (pRes, pRow, i));
36+
break;
3237
case XDB_TYPE_BOOL:
3338
len += sprintf (buf+len, "%s,", xdb_column_bool(pRes, pRow, i) ? "true" : "false");
3439
break;
3540
case XDB_TYPE_BIGINT:
3641
len += sprintf (buf+len, "%"PRIi64",", xdb_column_int64 (pRes, pRow, i));
3742
break;
43+
case XDB_TYPE_UBIGINT:
44+
len += sprintf (buf+len, "%"PRIu64",", xdb_column_int64 (pRes, pRow, i));
45+
break;
3846
case XDB_TYPE_TIMESTAMP:
3947
*(buf + len++) = '\'';
4048
len += xdb_timestamp_sprintf (xdb_column_int64 (pRes, pRow, i), buf+len, size - len);

src/admin/xdb_shell.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,20 @@ xdb_get_row_len (xdb_res_t *pRes, xdb_row_t *pRow, int *pColLen)
9292
case XDB_TYPE_TINYINT:
9393
len = snprintf (buf, sizeof(buf), "%d", xdb_column_int (pRes, pRow, i));
9494
break;
95+
case XDB_TYPE_UINT:
96+
case XDB_TYPE_USMALLINT:
97+
case XDB_TYPE_UTINYINT:
98+
len = snprintf (buf, sizeof(buf), "%u", xdb_column_int (pRes, pRow, i));
99+
break;
95100
case XDB_TYPE_BOOL:
96101
len = snprintf (buf, sizeof(buf), "%s", xdb_column_bool(pRes, pRow, i) ? "true" : "false");
97102
break;
98103
case XDB_TYPE_BIGINT:
99104
len = snprintf (buf, sizeof(buf), "%"PRIi64, xdb_column_int64 (pRes, pRow, i));
100105
break;
106+
case XDB_TYPE_UBIGINT:
107+
len = snprintf (buf, sizeof(buf), "%"PRIu64, xdb_column_int64 (pRes, pRow, i));
108+
break;
101109
case XDB_TYPE_FLOAT:
102110
case XDB_TYPE_DOUBLE:
103111
len = snprintf (buf, sizeof(buf), "%f", xdb_column_double (pRes, pRow, i));
@@ -185,6 +193,13 @@ xdb_fprint_row_table (FILE *pFile, xdb_res_t *pRes, xdb_row_t *pRow, int *pColLe
185193
plen = xdb_fprintf (pFile, "%d", xdb_column_int (pRes, pRow, i));
186194
}
187195
break;
196+
case XDB_TYPE_UINT:
197+
case XDB_TYPE_USMALLINT:
198+
case XDB_TYPE_UTINYINT:
199+
if (0 == n) {
200+
plen = xdb_fprintf (pFile, "%u", xdb_column_int (pRes, pRow, i));
201+
}
202+
break;
188203
case XDB_TYPE_BOOL:
189204
if (0 == n) {
190205
plen = xdb_fprintf (pFile, "%s", xdb_column_bool(pRes, pRow, i) ? "true" : "false");
@@ -195,6 +210,11 @@ xdb_fprint_row_table (FILE *pFile, xdb_res_t *pRes, xdb_row_t *pRow, int *pColLe
195210
plen = xdb_fprintf (pFile, "%"PRIi64, xdb_column_int64 (pRes, pRow, i));
196211
}
197212
break;
213+
case XDB_TYPE_UBIGINT:
214+
if (0 == n) {
215+
plen = xdb_fprintf (pFile, "%"PRIu64, xdb_column_int64 (pRes, pRow, i));
216+
}
217+
break;
198218
case XDB_TYPE_FLOAT:
199219
case XDB_TYPE_DOUBLE:
200220
if (0 == n) {

src/core/xdb_common.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define XDB_ROW_COL_CNT 4096
2020

2121
typedef struct xdb_res_t {
22-
uint32_t len_type; // MSB 4bit are type xdb_restype_t
22+
uint32_t len_type; // MSB 4bit are type xdb_restype_e
2323
uint16_t errcode; // 4
2424
uint16_t status; // 6 xdb_status_t
2525

@@ -75,16 +75,17 @@ typedef struct xdb_meta_t {
7575
} xdb_meta_t;
7676

7777
typedef enum {
78-
XDB_RET_ROW = 0,
79-
XDB_RET_REPLY,
78+
XDB_RET_ROW,
8079
XDB_RET_META,
8180
XDB_RET_MSG,
82-
XDB_RET_COMPRESS,
83-
XDB_RET_INSERT, // (meta + row)
81+
XDB_RET_REPLY = 4, // (meta + rows)
82+
XDB_RET_INITIAL, // (meta + row)
83+
XDB_RET_INSERT, // (meta + row)
84+
XDB_RET_UPDATE, // (msg is bitmap, meta + new row + old row)
8485
XDB_RET_DELETE, // (meta + row)
85-
XDB_RET_UPDATE, // (old meta, old row, set meta, set row)
86+
XDB_RET_COMPRESS,
8687
XDB_RET_EOF = 0xF,
87-
} xdb_restype_t;
88+
} xdb_restype_e;
8889

8990
typedef enum {
9091
XDB_STATUS_MORE_RESULTS = (1<<3),

0 commit comments

Comments
 (0)