|
| 1 | +# QuerySQLite |
| 2 | + |
1 | 3 | ```@index |
2 | 4 | Modules = [QuerySQLite] |
3 | 5 | ``` |
4 | 6 |
|
5 | 7 | ## User documentation |
6 | 8 |
|
7 | | -QuerySQLite is an experimental package sponsored by Google Summer of Code. It's |
8 | | -finally ready for public use. Although QuerySQLite is only tested on SQLite, |
9 | | -it's been purposefully designed to easily incorporate other database software. |
| 9 | +QuerySQLite is an experimental package sponsored by Google Summer of Code. It's finally ready for public use. Although QuerySQLite is only tested using SQLite, it's been purposefully designed to easily incorporate other database software. |
10 | 10 |
|
11 | | -Use [`Database`](@ref) to wrap an external database. Then, you can access its |
12 | | -tables using `.`, and conduct most `Query` operations on them. In theory, most |
13 | | -operations should "just work". There are a couple of exceptions. |
| 11 | +Use [`Database`](@ref) to wrap an external database. Then, you can access its tables using `.`, and conduct most `Query` operations on them. In theory, most operations should "just work". There are a couple of exceptions. |
14 | 12 |
|
15 | | -### Non-overloadable methods |
| 13 | +### Non-overloadable syntax and functions |
16 | 14 |
|
17 | | -Functions like `ifelse` and `typeof` can't be overloaded. Instead, QuerySQLite |
18 | | -exports the [`if_else`](@ref) and [`type_of`](@ref) functions and overloads them |
19 | | -instead. |
| 15 | +Patterns like `if` and functions like `ifelse` and `typeof` can't be overloaded. Instead, QuerySQLite exports the [`if_else`](@ref) and [`type_of`](@ref) functions and overloads them instead. |
20 | 16 |
|
21 | 17 | ### No SQL arguments |
22 | 18 |
|
23 | | -If you would like to translate code to SQL, but you do not pass any SQL |
24 | | -arguments, you will need use [`BySQL`](@ref) to pass a dummy SQL object instead. |
25 | | -See the `BySQL` docstring for more information. |
| 19 | +If you would like to translate code to SQL, but you do not pass any SQL arguments, you will need to use [`BySQL`](@ref) to pass a dummy SQL object instead. See the `BySQL` docstring for more information. |
26 | 20 |
|
27 | 21 | ## Developer documentation |
28 | 22 |
|
29 | | -QuerySQLite hijacks Julia's multiple dispatch to translate external database |
30 | | -commands to SQL instead of evaluating them. To do this, it construct a |
31 | | -"model_row" that represents the structure of a row of data. If you would like to |
32 | | -support for a new function, there are only a few steps: |
33 | | - |
34 | | -- Use the `@code_instead` macro to specify the argument types for diversion |
35 | | -into SQL translation. |
36 | | -- If your function will modify the row structure of the |
37 | | -table, define a `model_row_call` method. |
38 | | -- Use the `@translate_default` macro to name the matching SQL function. If more |
39 | | -involved processing is required, define a `translate_call` method instead. |
40 | | -- If you would like to show your SQL expression in a non-standard way, edit the |
41 | | -`show` method for `SQLExpression`s. |
| 23 | +QuerySQLite hijacks Julia's multiple dispatch to translate external database commands to SQL instead of evaluating them. To do this, it constructs a "model_row" that represents the structure of a row of data. If you would like to add support for a new function, there are only a few steps: |
| 24 | + |
| 25 | +- Use the `@code_instead` macro to specify the argument types for diversion into SQL translation. |
| 26 | +- If your function will modify the row structure of the table, define a `model_row_call` method. |
| 27 | +- Use the `@translate_default` macro to name the matching SQL function. If more involved processing is required, define a `translate_call` method instead. |
| 28 | +- If you would like to show your SQL expression in a non-standard way, edit the `show` method for `SQLExpression`s. |
42 | 29 |
|
43 | 30 | ```@autodocs |
44 | 31 | Modules = [QuerySQLite] |
|
0 commit comments