Index: include/mdbsql.h =================================================================== RCS file: /cvsroot/mdbtools/mdbtools/include/mdbsql.h,v retrieving revision 1.4 diff -r1.4 mdbsql.h 16a17 > int max_rows; 42c43 < char *g_input_ptr; --- > extern char *g_input_ptr; 61c62,63 < --- > int mdbsql_run_query(MdbSQL *sql, char *mybuf); > void mdb_sql_set_maxrow(MdbSQL *sql,int aMaxrow); Index: include/mdbtools.h =================================================================== RCS file: /cvsroot/mdbtools/mdbtools/include/mdbtools.h,v retrieving revision 1.20 diff -r1.20 mdbtools.h 113c113 < GHashTable *mdb_backends; --- > extern GHashTable *mdb_backends; cvs server: Diffing src cvs server: Diffing src/extras cvs server: Diffing src/gmdb cvs server: Diffing src/gmdb2 cvs server: Diffing src/gmdb2/gladefiles cvs server: Diffing src/gmdb2/help cvs server: Diffing src/gmdb2/help/C cvs server: Diffing src/gmdb2/help/C/figures cvs server: Diffing src/gmdb2/pixmaps cvs server: Diffing src/include cvs server: Diffing src/libmdb Index: src/libmdb/backend.c =================================================================== RCS file: /cvsroot/mdbtools/mdbtools/src/libmdb/backend.c,v retrieving revision 1.7 diff -r1.7 backend.c 25c25 < --- > GHashTable *mdb_backends; cvs server: Diffing src/odbc cvs server: Diffing src/sql Index: src/sql/lexer.l =================================================================== RCS file: /cvsroot/mdbtools/mdbtools/src/sql/lexer.l,v retrieving revision 1.5 diff -r1.5 lexer.l 40a41,42 > 1[ ]=[ ]0 { return MAX0ROW; } > 0[ ]=[ ]1 { return MAX0ROW; } 42c44 < \"[A-z][A-z0-9 ]*\" { --- > \"[a-zA-Z_][a-zA-Z0-9_ #@i ]*\" { 47c49 < [A-z][A-z0-9]* { yylval.name = strdup(yytext); return NAME; } --- > [a-zA-Z_][a-zA-Z0-9_#@]* { yylval.name = strdup(yytext); return NAME; } Index: src/sql/mdbsql.c =================================================================== RCS file: /cvsroot/mdbtools/mdbtools/src/sql/mdbsql.c,v retrieving revision 1.8 diff -r1.8 mdbsql.c 22a23,24 > char *g_input_ptr; > 61c63 < --- > sql->max_rows = -1; 553a556,585 > int parse(MdbSQL *sql, char *buf) > { > g_input_ptr = buf; > /* begin unsafe */ > _mdb_sql(sql); > if (yyparse()) { > /* end unsafe */ > fprintf(stderr, "Couldn't parse SQL\n"); > mdb_sql_reset(sql); > return 0; > } else { > return 1; > } > } > > > int mdbsql_run_query(MdbSQL *sql, char *mybuf) > { > if (parse(sql, mybuf) && sql->cur_table) { > mdbsql_bind_all(sql); > return 1; > } > else > return 0; > } > > void mdb_sql_set_maxrow(MdbSQL *sql,int aMaxrow) > { > sql->max_rows = aMaxrow; > } \ No newline at end of file Index: src/sql/parser.y =================================================================== RCS file: /cvsroot/mdbtools/mdbtools/src/sql/parser.y,v retrieving revision 1.6 diff -r1.6 parser.y 44c44 < %token IDENT NAME PATH STRING NUMBER --- > %token IDENT NAME PATH STRING NUMBER MAX0ROW 49a50 > %type identify 79c80,83 < sarg --- > MAX0ROW { > mdb_sql_set_maxrow(_mdb_sql(NULL), 0); > } > | sarg 80a85 > | '(' sarg AND sarg_list ')' 84c89,90 < NAME operator constant { --- > '(' sarg ')' > | identify operator constant { 89c95,105 < | constant operator NAME { --- > | constant operator identify { > mdb_sql_add_sarg(_mdb_sql(NULL), $3, $2, $1); > free($1); > free($3); > } > | identify operator identify { > mdb_sql_add_sarg(_mdb_sql(NULL), $3, $2, $1); > free($1); > free($3); > } > | constant operator constant { 95d110 < 108a124,126 > identify: > IDENT > | NAME 111c129 < | NAME --- > | identify 114,115c132,133 < NAME { mdb_sql_add_table(_mdb_sql(NULL), $1); free($1); } < | IDENT { mdb_sql_add_table(_mdb_sql(NULL), $1); free($1); } --- > identify { mdb_sql_add_table(_mdb_sql(NULL), $1); free($1); } > | identify identify { mdb_sql_add_table(_mdb_sql(NULL), $1); free($1); } 125,127c143,144 < NAME { mdb_sql_add_column(_mdb_sql(NULL), $1); free($1); } < | IDENT { mdb_sql_add_column(_mdb_sql(NULL), $1); free($1); } < ; --- > identify { mdb_sql_add_column(_mdb_sql(NULL), $1); free($1); } > ;