mirror of
https://github.com/mdbtools/mdbtools.git
synced 2026-01-02 20:42:14 +08:00
add support for LIMIT clause in SQL engine
This commit is contained in:
@@ -429,6 +429,17 @@ int mdb_sql_add_column(MdbSQL *sql, char *column_name)
|
||||
sql->num_columns++;
|
||||
return 0;
|
||||
}
|
||||
int mdb_sql_add_limit(MdbSQL *sql, char *limit)
|
||||
{
|
||||
sql->limit = atoi(limit);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mdb_sql_add_function1(MdbSQL *sql, char *func_name, char *arg1)
|
||||
{
|
||||
fprintf(stderr, "calling function %s with %s", func_name, arg1);
|
||||
return 0;
|
||||
}
|
||||
int mdb_sql_add_table(MdbSQL *sql, char *table_name)
|
||||
{
|
||||
MdbSQLTable *t;
|
||||
@@ -509,6 +520,8 @@ void mdb_sql_reset(MdbSQL *sql)
|
||||
|
||||
sql->all_columns = 0;
|
||||
sql->max_rows = -1;
|
||||
sql->row_count = 0;
|
||||
sql->limit = 0;
|
||||
}
|
||||
static void print_break(int sz, int first)
|
||||
{
|
||||
@@ -762,7 +775,14 @@ mdb_sql_bind_all(MdbSQL *sql)
|
||||
int
|
||||
mdb_sql_fetch_row(MdbSQL *sql, MdbTableDef *table)
|
||||
{
|
||||
return mdb_fetch_row(table);
|
||||
int rc = mdb_fetch_row(table);
|
||||
if (rc) {
|
||||
if (sql->row_count + 1 > sql->limit) {
|
||||
return 0;
|
||||
}
|
||||
sql->row_count++;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user