The R Project SVN R-packages

Rev

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

Rev 3509 Rev 3821
Line 56... Line 56...
56
        g_sql_buf[i] = Realloc(g_sql_buf[i], g_sql_buf_sz[i], char);
56
        g_sql_buf[i] = Realloc(g_sql_buf[i], g_sql_buf_sz[i], char);
57
    } else ret = 0;
57
    } else ret = 0;
58
    return ret;
58
    return ret;
59
} 
59
} 
60
 
60
 
61
int _expand_buf(int i, int size) {
61
R_INLINE void  _expand_buf(int i, int size) {
62
    int expanded = FALSE;
-
 
63
    if (size >= g_sql_buf_sz[i]) {
62
    if (size >= g_sql_buf_sz[i]) {
64
        g_sql_buf_sz[i] *= 2;
63
        g_sql_buf_sz[i] *= 2;
65
        g_sql_buf[i] = Realloc(g_sql_buf[i], g_sql_buf_sz[i], char);
64
        g_sql_buf[i] = Realloc(g_sql_buf[i], g_sql_buf_sz[i], char);
66
        expanded = TRUE;
65
        /* return TRUE; */
67
    }
66
    }
68
    return expanded;
67
    /* return expanded; */
69
}
68
}
70
 
69
 
71
int _sqlite_error_check(int res, const char *file, int line) {
70
int _sqlite_error_check(int res, const char *file, int line) {
72
    int ret = FALSE;
71
    int ret = FALSE;
73
    if (res != SQLITE_OK) { 
72
    if (res != SQLITE_OK) { 
Line 191... Line 190...
191
    res = sqlite3_prepare(g_workspace, g_sql_buf[2], -1, &stmt, 0);
190
    res = sqlite3_prepare(g_workspace, g_sql_buf[2], -1, &stmt, 0);
192
 
191
 
193
    sqlite3_finalize(stmt);
192
    sqlite3_finalize(stmt);
194
    if (_sqlite_error(res)) return R_NilValue; 
193
    if (_sqlite_error(res)) return R_NilValue; 
195
 
194
 
196
    PROTECT(ret = NEW_LIST(2)); 
-
 
197
 
-
 
198
    /* set list names */
-
 
199
    PROTECT(value = NEW_CHARACTER(2)); nprotected++;
-
 
200
    SET_STRING_ELT(value, 0, mkChar("iname"));
-
 
201
    SET_STRING_ELT(value, 1, mkChar("varname"));
-
 
202
    SET_NAMES(ret, value);
-
 
203
 
-
 
204
    /* set list values */
-
 
205
    SET_VECTOR_ELT(ret, 0, mkString(sdf_iname));
-
 
206
    SET_VECTOR_ELT(ret, 1, mkString("row name"));
-
 
207
 
-
 
208
    /* set class */
-
 
209
    SET_CLASS(ret, mkString("sqlite.vector"));
-
 
210
    SET_SDFVECTORTYPE(ret, mkString("character"));
195
    return _create_svector_sexp(sdf_iname, "sdf_data", "row name", "character");
211
 
-
 
212
    UNPROTECT(nprotected);
-
 
213
    return ret;
-
 
214
}
196
}
215
 
197
 
216
SEXP _create_sdf_sexp(const char *iname) {
198
SEXP _create_sdf_sexp(const char *iname) {
217
    SEXP names, class, variable, ret;
199
    SEXP names, class, variable, ret;
218
    int nprotected = 0;
200
    int nprotected = 0;