const struct lookup_int *lookup;
};

static const struct attribute attributes[] = {
#define ATTR(s,t) { #s, s, type_##t, NULL }
#define ATTR2(s,t,l) { #s, s, type_##t, l }
    ATTR(SQL_COLUMN_LENGTH, INTEGER),
    ATTR(SQL_COLUMN_PRECISION, INTEGER),
    ATTR(SQL_COLUMN_SCALE, INTEGER),
    ATTR(SQL_DESC_LENGTH, LEN),
    ATTR(SQL_DESC_OCTET_LENGTH, LEN),
    ATTR(SQL_DESC_PRECISION, SMALLINT),
    ATTR(SQL_DESC_SCALE, SMALLINT),
    ATTR(SQL_DESC_DISPLAY_SIZE, INTEGER),
    ATTR(SQL_DESC_TYPE_NAME, CHARP),
    ATTR2(SQL_DESC_CONCISE_TYPE, SMALLINT, sql_types),
    ATTR2(SQL_DESC_TYPE, SMALLINT, sql_types)
#undef ATTR2
#undef ATTR
};

static const struct attribute *
lookup_attr(const char *name)
{
    unsigned int i;

    if (!name)
        fatal("Line %u: NULL attribute\n", line_num);
    for (i = 0; i < sizeof(attributes) / sizeof(attributes[0]); ++i)
        if (strcmp(attributes[i].name, name) == 0 || strcmp(attributes[i].name + 4, name) == 0)
            return &attributes[i];
Beispiel #2
0
struct attribute
{
	const char *name;
	int value;
	test_type_t type;
	const struct lookup_int *lookup;
};

static const struct attribute attributes[] = {
#define ATTR(s,t) { #s, s, type_##t, NULL }
#define ATTR2(s,t,l) { #s, s, type_##t, l }
	ATTR(SQL_ATTR_APP_PARAM_DESC, DESC),
	ATTR(SQL_ATTR_APP_ROW_DESC, DESC),
	ATTR(SQL_ATTR_ASYNC_ENABLE, UINTEGER),
	ATTR2(SQL_ATTR_CONCURRENCY, UINTEGER, concurrency),
	ATTR2(SQL_ATTR_CURSOR_SCROLLABLE, UINTEGER, scrollable),
	ATTR2(SQL_ATTR_CURSOR_SENSITIVITY, UINTEGER, sensitivity),
	ATTR2(SQL_ATTR_CURSOR_TYPE, UINTEGER, cursor_type),
	ATTR(SQL_ATTR_ENABLE_AUTO_IPD, UINTEGER),
	ATTR(SQL_ATTR_FETCH_BOOKMARK_PTR, VOIDP),
	ATTR(SQL_ATTR_IMP_PARAM_DESC, DESC),
	ATTR(SQL_ATTR_IMP_ROW_DESC, DESC),
	ATTR(SQL_ATTR_KEYSET_SIZE, UINTEGER),
	ATTR(SQL_ATTR_MAX_LENGTH, UINTEGER),
	ATTR(SQL_ATTR_MAX_ROWS, UINTEGER),
	ATTR(SQL_ATTR_METADATA_ID, UINTEGER),
	ATTR2(SQL_ATTR_NOSCAN, UINTEGER, noscan),
	ATTR(SQL_ATTR_PARAM_BIND_OFFSET_PTR, VOIDP),
	ATTR(SQL_ATTR_PARAM_BIND_OFFSET_PTR, VOIDP),
	ATTR(SQL_ATTR_PARAM_BIND_TYPE, UINTEGER),