cql_code test_all_column_encoded_multi_out_union()

in sources/run_test_client.c [1134:1224]


cql_code test_all_column_encoded_multi_out_union(sqlite3 *db) {
  printf("Running column encoded multi out union fetchers test\n");
  tests++;

  cql_object_ref encoder = cql_copy_encoder(db);

  load_decoded_multi_out_union_result_set_ref result_set;
  SQL_E(load_decoded_multi_out_union_fetch_results(db, &result_set));
  E(load_decoded_multi_out_union_result_count(result_set) == 2, "expected 2 rows from result table\n");
  E(cql_result_set_get_meta(result_set)->columnCount == 12, "expected 12 columns from result table\n");
  load_decoded_multi_out_union_result_set_ref rs = (load_decoded_multi_out_union_result_set_ref)result_set;

  cql_bool b0 = load_decoded_multi_out_union_get_b0_value(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 0), "expected b0 is encoded\n");
  E(load_decoded_multi_out_union_get_b0_is_encoded(rs), "expected b0 is encoded\n");
  cql_bool b0_exp = cql_decode_bool(encoder, b0, -1, NULL);
  E(b0_exp == 0, "expected b0 is 0, value %d\n", b0_exp);

  cql_int32 i0 = load_decoded_multi_out_union_get_i0_value(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 1), "expected i0 is encoded\n");
  cql_int32 i0_exp = cql_decode_int32(encoder, i0, -1, NULL);
  E(i0_exp == 0, "expected i0 is 0, value %d\n", i0_exp);

  cql_int64 l0 = load_decoded_multi_out_union_get_l0_value(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 2), "expected l0 is encoded\n");
  cql_int64 l0_exp = cql_decode_int64(encoder, l0, -1, NULL);
  E(l0_exp == 0, "expected l0 is 0, value %lld\n", l0_exp);

  cql_double d0 = load_decoded_multi_out_union_get_d0_value(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 3), "expected dd0 is encoded\n");
  cql_double d0_exp = cql_decode_double(encoder, d0, -1, NULL);
  E(d0_exp == 0.0, "expected d0 is 0.0, value %lf\n", d0_exp);

  cql_string_ref s0 = load_decoded_multi_out_union_get_s0(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 4), "expected s0 is encoded\n");
  cql_string_ref s0_decode = cql_decode_string_ref_new(encoder, s0, -1, NULL);
  cql_string_ref s0_exp = cql_string_ref_new("0");
  E(cql_string_equal(s0_decode, s0_exp), "expected s0 is 0, value %s\n", s0_decode->ptr);
  cql_string_release(s0_decode);
  cql_string_release(s0_exp);

  cql_blob_ref bl0 = load_decoded_multi_out_union_get_bl0(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 5), "expected bl0 is encoded\n");
  cql_blob_ref bl0_decode = cql_decode_blob_ref_new(encoder, bl0, -1, NULL);
  cql_blob_ref bl0_exp = cql_blob_ref_new("0", 1);
  E(cql_blob_equal(bl0_decode, bl0_exp), "expected bl0 is \"0\", value \"%s\"\n", (const char *)bl0_decode->ptr);
  cql_blob_release(bl0_decode);
  cql_blob_release(bl0_exp);

  cql_bool b1 = load_decoded_multi_out_union_get_b1(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 6), "expected b1 is encoded\n");
  cql_bool b1_exp = cql_decode_bool(encoder, b1, -1, NULL);
  E(b1_exp == 1, "expected b1 is 1, value %d\n", b1_exp);

  cql_int32 i1 = load_decoded_multi_out_union_get_i1(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 7), "expected i1 is encoded\n");
  cql_int32 i1_exp = cql_decode_int32(encoder, i1, -1, NULL);
  E(i1_exp == 1, "expected i1 is 1, value %d\n", i1_exp);

  cql_int64 l1 = load_decoded_multi_out_union_get_l1(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 8), "expected l1 is encoded\n");
  cql_int64 l1_exp = cql_decode_int64(encoder, l1, -1, NULL);
  E(l1_exp == 1, "expected l1 is 1, value %lld\n", l1_exp);

  cql_double d1 = load_decoded_multi_out_union_get_d1(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 9), "expected d1 is encoded\n");
  cql_double d1_exp = cql_decode_double(encoder, d1, -1, NULL);
  E(d1_exp == 1.1, "expected d1 is 1.1, value %lf\n", d1_exp);

  cql_string_ref s1 = load_decoded_multi_out_union_get_s1(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 10), "expected s1 is encoded\n");
  cql_string_ref s1_decode = cql_decode_string_ref_new(encoder, s1, -1, NULL);
  cql_string_ref s1_exp = cql_string_ref_new("1");
  E(cql_string_equal(s1_decode, s1_exp), "expected s1 is 1, value %s\n", s1_decode->ptr);
  cql_string_release(s1_decode);
  cql_string_release(s1_exp);

  cql_blob_ref bl1 = load_decoded_multi_out_union_get_bl1(rs, 1);
  E(cql_result_set_get_is_encoded_col((cql_result_set_ref)rs, 11), "expected bl1 is encoded\n");
  cql_blob_ref bl1_decode = cql_decode_blob_ref_new(encoder, bl1, -1, NULL);
  cql_blob_ref bl1_exp = cql_blob_ref_new("1", 1);
  E(cql_blob_equal(bl1_decode, bl1_exp), "expected bl1 is \"1\", value \"%s\"\n", (const char *)bl1_decode->ptr);
  cql_blob_release(bl1_decode);
  cql_blob_release(bl1_exp);

  cql_result_set_release(result_set);
  cql_object_release(encoder);

  tests_passed++;
  return SQLITE_OK;
}