add support for LIMIT clause in SQL engine

This commit is contained in:
Brian Bruns
2016-08-30 08:43:34 -04:00
parent 2355aec912
commit 23bab7c2d6
5 changed files with 37 additions and 11 deletions

View File

@@ -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