src/dbfs/common.c
branchnew-evsql
changeset 48 8b019d191353
parent 41 6abda2fa4579
child 49 bb2ff0d2d343
equal deleted inserted replaced
47:8c6c459eacb7 48:8b019d191353
    18         WARNING("[dbfs] weird mode-type: %s", type);
    18         WARNING("[dbfs] weird mode-type: %s", type);
    19         return 0;
    19         return 0;
    20     }
    20     }
    21 }
    21 }
    22 
    22 
    23 int _dbfs_check_res (const struct evsql_result_info *res, size_t rows, size_t cols) {
    23 int _dbfs_check_res (struct evsql_result *res, size_t rows, size_t cols) {
    24     int err = 0;
    24     int err = 0;
    25 
    25 
    26     // check if it failed
    26     // check if it failed
    27     if (res->error)
    27     if (evsql_result_check(res))
    28         NERROR(evsql_result_error(res));
    28         NERROR(evsql_result_error(res));
    29         
    29         
    30     // not found?
    30     // not found?
    31     if (evsql_result_rows(res) == 0 && evsql_result_affected(res) == 0)
    31     if (evsql_result_rows(res) == 0 && evsql_result_affected(res) == 0)
    32         SERROR(err = 1);
    32         SERROR(err = 1);
    47         err = -1;
    47         err = -1;
    48 
    48 
    49     return err;
    49     return err;
    50 }
    50 }
    51 
    51 
    52 err_t dbfs_check_result (const struct evsql_result_info *res, size_t rows, size_t cols) {
    52 err_t dbfs_check_result (struct evsql_result *res, size_t rows, size_t cols) {
    53     err_t err;
    53     err_t err;
    54 
    54 
    55     // number of rows returned/affected
    55     // number of rows returned/affected
    56     size_t nrows = evsql_result_rows(res) ? : evsql_result_affected(res);
    56     size_t nrows = evsql_result_rows(res) ? : evsql_result_affected(res);
    57 
    57 
    58     // did the query fail outright?
    58     // did the query fail outright?
    59     if (res->error)
    59     if (evsql_result_check(res))
    60         // dump error message
    60         // dump error message
    61         NXERROR(err = EIO, evsql_result_error(res));
    61         NXERROR(err = EIO, evsql_result_error(res));
    62     
    62     
    63     // SELECT/DELETE/UPDATE WHERE didn't match any rows -> ENOENT
    63     // SELECT/DELETE/UPDATE WHERE didn't match any rows -> ENOENT
    64     if (nrows == 0)
    64     if (nrows == 0)
    77 
    77 
    78 error:
    78 error:
    79     return err;
    79     return err;
    80 }
    80 }
    81 
    81 
    82 int _dbfs_stat_info (struct stat *st, const struct evsql_result_info *res, size_t row, size_t col_offset) {
    82 int _dbfs_stat_info (struct stat *st, struct evsql_result *res, size_t row, size_t col_offset) {
    83     int err = 0;
    83     int err = 0;
    84     
    84     
    85     uint16_t mode;
    85     uint16_t mode;
    86     uint32_t size = 0;  // NULL for non-REG inodes
    86     uint32_t size = 0;  // NULL for non-REG inodes
    87     uint64_t nlink = 0; // will be NULL for non-GROUP BY queries
    87     uint64_t nlink = 0; // will be NULL for non-GROUP BY queries