The R Project SVN R-packages

Rev

Rev 3458 | Rev 3473 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3458 Rev 3471
Line 104... Line 104...
104
    const char *coltype;
104
    const char *coltype;
105
    int type = -1, res, nprotected = 0;
105
    int type = -1, res, nprotected = 0;
106
    SEXP ret, value;
106
    SEXP ret, value;
107
 
107
 
108
    if (!IS_CHARACTER(name)) {
108
    if (!IS_CHARACTER(name)) {
109
        Rprintf("ERROR: argument is not a string.\n");
109
        error("argument is not a string.\n");
110
        return R_NilValue;
-
 
111
    }
110
    }
112
 
111
 
113
    iname = SDF_INAME(sdf);
112
    iname = SDF_INAME(sdf);
114
    varname = CHAR_ELT(name, 0);
113
    varname = CHAR_ELT(name, 0);
115
 
114
 
Line 1077... Line 1076...
1077
    sqlite3_step(stmt);
1076
    sqlite3_step(stmt);
1078
    strcpy(g_sql_buf[0], sqlite3_column_decltype(stmt, 0));
1077
    strcpy(g_sql_buf[0], sqlite3_column_decltype(stmt, 0));
1079
    sqlite3_finalize(stmt);
1078
    sqlite3_finalize(stmt);
1080
 
1079
 
1081
    /* create a new vector of that type */
1080
    /* create a new vector of that type */
1082
    iname = _create_svector1(mkString("tmp-sort"), g_sql_buf[0], NULL, TRUE);
1081
    iname = _create_svector1(mkString("tmp_sort"), g_sql_buf[0], NULL, TRUE);
1083
 
1082
 
1084
    /* insert to new sdf ordered */
1083
    /* insert to new sdf ordered */
1085
    sprintf(g_sql_buf[0], "insert into [%s].sdf_data "
1084
    sprintf(g_sql_buf[0], "insert into [%s].sdf_data "
1086
            "select [row name], [%s] from [%s].sdf_data "
1085
            "select [row name], [%s] from [%s].sdf_data "
1087
            "order by [%s] %s", iname, varname_src, iname_src, varname_src,
1086
            "order by [%s] %s", iname, varname_src, iname_src, varname_src,
Line 1091... Line 1090...
1091
 
1090
 
1092
    if (TEST_SDFVECTORTYPE(svec, "factor")) { /* copy factor table to iname */
1091
    if (TEST_SDFVECTORTYPE(svec, "factor")) { /* copy factor table to iname */
1093
        if (TEST_SDFVECTORTYPE(svec, "ordered")) type = "ordered";
1092
        if (TEST_SDFVECTORTYPE(svec, "ordered")) type = "ordered";
1094
        else type = "factor";
1093
        else type = "factor";
1095
        _copy_factor_levels2(type, iname_src, varname_src, iname, "V1");
1094
        _copy_factor_levels2(type, iname_src, varname_src, iname, "V1");
1096
    } else type = CHAR_ELT(GET_CLASS(svec), 1);
1095
    } else type = CHAR_ELT(GET_SDFVECTORTYPE(svec), 0);
1097
 
1096
 
1098
    UNUSE_SDF2(iname_src);
1097
    UNUSE_SDF2(iname_src);
1099
    UNUSE_SDF2(iname);
1098
    UNUSE_SDF2(iname);
1100
 
1099
 
1101
    return _create_svector_sexp(iname, "V1", type);
1100
    return _create_svector_sexp(iname, "V1", type);