Commit Graph

48 Commits

Author SHA1 Message Date
Neil O'Toole
7c56377b40
Struct alignment (#369)
* Field alignment
2024-01-27 00:11:24 -07:00
Neil O'Toole
db55986980
#307: Ingest cache (#354)
- Support for ingest cache, download cache, and progress bars.
2024-01-14 18:45:34 -07:00
Neil O'Toole
880c817958
Added aliases for cmd inspect flags; added aliases for order_by and group_by (#340) 2023-11-22 11:36:34 -07:00
Neil O'Toole
f0d83cda86
Implement SLQ having() (#339)
* Implemented SLQ having()
2023-11-22 10:56:19 -07:00
Neil O'Toole
79e1afd64f
SQL rownum() func (#332)
* Implemented SLQ rownum() func
2023-11-19 23:44:36 -07:00
Neil O'Toole
2de993acaa
Sort imports using goimports-reviser (#331) 2023-11-19 18:06:36 -07:00
Neil O'Toole
f07edef14d
Add flag --src.schema (#326)
* Support for --src.schema in commands "slq", "sql", and "inspect"
2023-11-18 17:05:48 -07:00
icp
82491db8a5
build: fix for 32-bit systems (#308) 2023-09-10 10:43:11 -06:00
Neil O'Toole
9ec1b85d37
Misc dep updates; switch to newer antlr version (#300) 2023-08-12 13:26:25 -06:00
Neil O'Toole
c7bba4dfe4
go1.21: changes to support slog as part of stdlib (#299)
* go1.21: changes to support slog as part of stdlib

* Removed accidentially checked-in line of code

* Fixed minor linting issues; reenable typecheck

* go1.21: switched to stdlib slices pkg
2023-08-12 12:54:14 -06:00
neilotoole
0b47f933c6 Fixed accidental moving of query parsing 2023-07-26 22:34:45 -06:00
Neil O'Toole
21c1dea9c4
#200: Switch excel driver for output (#291)
* Switched from xlsxw to excelw for Excel outpt
2023-07-26 22:19:11 -06:00
Neil O'Toole
7396aadb9e
#12: multiple joins (#280)
* The query language now supports multiple joins.
2023-07-03 09:34:19 -06:00
Neil O'Toole
1edc02c378
Table alias implemented (#278) 2023-06-25 10:29:24 -06:00
Neil O'Toole
2ba633fc2a
#258: Alias can be an arbitrary string. (#259)
* Fixed space issues with expressions

* Alias can now be an arbitrary string

* Alias can now be an arbitrary string (fixed)

* Alias now automatically applied to expressions

* Ignore .run

* Fixed issue with TestRun not logging correctly to testing.T

* Fiddling with sqlite3 temp file closing

* Re-enable tests
2023-06-18 00:05:09 -06:00
Neil O'Toole
44d27207f8
#256: column-only queries (#257)
* Column-only queries
2023-06-17 19:28:11 -06:00
Neil O'Toole
e93f462fff
#254: explicit where() clause (#255)
Implement explicit `where()` clause.
2023-06-16 22:54:25 -06:00
Neil O'Toole
24b5fafd78
Proprietary functions now require leading underscore (#241) 2023-05-26 21:11:38 -06:00
Neil O'Toole
958d509088
Source groups (#198)
* Implemented source groups mechanism.
2023-04-15 16:28:51 -06:00
Neil O'Toole
9a1c6a7d09
Feature/173 args (#183)
- Implement --arg feature
- Refactor sqlbuilder package (now called "render").
- Bug fixes, especially around expressions.
2023-04-07 02:00:49 -06:00
Neil O'Toole
3f6157c4c4
Change logging library to slog (#175)
- Switch to slog logger.
2023-04-02 13:49:45 -06:00
Neil O'Toole
8d47ef806d
go1.20 upgrade; lots of linting (#172) 2023-04-01 02:38:32 -06:00
Neil O'Toole
29e33ed2b1
Implement unique / DISTINCT (#165)
- Implemented "unique" function
- Implemented "count_unique" function
2023-03-28 00:48:24 -06:00
Neil O'Toole
fac3a27d7b
group_by() function (#163)
- `group_by()` now accepts function as argument.
- Refactored grammar.
- Broad improvements to function implementation.
2023-03-26 20:03:40 -06:00
Neil O'Toole
d9b56eea8a
Implement groupby() (#161)
* test: slq2sql more test cases; now executes the generated query

* groupby: first test case working against all DBs

* sakila: added sqlserver 2019 source

* groupby: tests for groupby synonyms

* groupby: final touches
2023-03-26 02:01:41 -06:00
Neil O'Toole
9746f4c1a2
orderby() (#159)
* wip: orderby impl

* Tests passing (note: ast.checkASTIntegrity is disabled)

* ExprNode now rendered via renderSelectorNode

* linting

* CHAGELOG for v0.27.0
2023-03-25 19:20:53 -06:00
Neil O'Toole
a1a89ee9dd
Support table and column names with spaces. (#156)
* sakila: initial test data

* sakila: more test data

* sakila: yet more test data setup

* whitespace cols: now working for sqlite

* grammar cleanup

* whitespace cols: now working inside count() func for sqlite

* whitespace cols: tests mostly passing; begining refactoring

* grammar: refactor handle

* grammar: more refactoring

* grammar: rename selElement to selector

* wip

* all tests passing

* all tests passing

* linting

* driver: implement CurrentSchema for all driver.SQLDriver impls

* driver: tests for AlterTableRename and AlterTableRenameColumn

* undo reformat of SQL

* undo reformat of SQL

* undo reformat of SQL

* undo reformat of SQL
2023-03-22 00:17:34 -06:00
Neil O'Toole
d3e6f89829
SLQ support for column aliases (#150)
* alias: more early work

* alias: test cases working for sqlite

* alias: SQL builder tests

* alias: func (col expr) aliases now working for SQLite

* linting

* CHANGELOG update

* Docs update

* Docs update

* Rename buildAst() -> buildAST()

* CHANGELOG typo
2023-03-18 22:58:00 -06:00
Neil O'Toole
62f067f633
Chore/upgrade to antlr 4.12.0 (#149)
* Antlr update

* README update

* parser: regenerated with antlr 4.12.0
2023-03-15 20:53:40 -06:00
Neil O'Toole
0a627a7b6f
Chore/antlr 4.11.1 upgrade (#130)
* baseline seems to be working

* Updated to antlr4

* few more module upgrades
2022-12-23 21:43:20 -07:00
Neil O'Toole
fab365f43c
gofumpt on files (#122)
* gofumpt on files

* more gofumpt
2022-12-18 01:35:59 -07:00
Neil O'Toole
c778c8ced5
Linting of _test.go files (#121)
* test linting

* test linting

* test linting

* test linting
2022-12-18 00:18:35 -07:00
Neil O'Toole
f9c19785e3
Almost at the end of the linting road (#120)
* yet more linting

* yet more linting

* yet more linting

* yet more linting

* yet more linting

* yet more linting

* yet more linting

* yet more linting
2022-12-17 23:42:11 -07:00
Neil O'Toole
425702e7ba
The linting goes on forever (#119)
* linting

* yet more linting

* yet more linting

* yet more linting

* yet more linting

* yet more linting
2022-12-17 23:07:38 -07:00
Neil O'Toole
08dfa10325
Errors linting (#117)
* errors linting

* errors linting

* formatting
2022-12-17 21:31:06 -07:00
Neil O'Toole
540adfac58
Lint long lines (#115)
* lint config now sorts results

* linted long lines

* linted long lines
2022-12-17 19:43:53 -07:00
Neil O'Toole
2831211ae9
Yet more linting (#114)
* wip: bunch o' linting

* bunch more linting
2022-12-17 17:51:33 -07:00
Neil O'Toole
e674cdc724
change 'interface{}' to 'any' (#108) 2022-12-16 16:34:33 -07:00
Neil O'Toole
a419e0b693
Misc cleanup, goimports, updates (#107)
* debugging

* generic retry functionality; some additions to stringz.go

* fiddling with magefile_sakila

* added test lock function testh.Lock

* bunch of linting, goimports, what not
2022-12-16 15:54:09 -07:00
Neil O'Toole
98e91bae51
Bunch of linting issues (#96)
* linting

* linting

* linting

* linting

* linting

* cleaned up readme trailing newlines
2021-09-12 16:14:30 -06:00
Neil O'Toole
b06b631e76
Bug #87: generated SQL should always quote table and column names in join statement (#89)
* BaseFragmentBuilder now quotes table and col names for joins

* Refactored libsq.engine so that the SQL generated from SLQ input can be tested

* Deleted dead code; additional comments
2021-03-07 23:27:35 -07:00
Neil O'Toole
e2f51f97c7 fixed panic with insert to non-existent table 2021-01-03 18:20:05 -07:00
Neil O'Toole
38be39a12f yet more pkg moving 2020-08-23 05:52:09 -06:00
Neil O'Toole
e4cc68b714
Slq move (#67)
* moved it

* what used to be libsq/slq in now libsq/ast/internal/slq
2020-08-23 05:16:16 -06:00
Neil O'Toole
58ccfc9ded
Json driver; refactoring of core packages (#66)
* Type Detector refactor

* json driver impl; refactoring of source.Files reader et al

* working on kind detector

* significant switcheroo of packages

* partway throught refactoring Kind

* major package switcheroo for Kind
2020-08-23 04:42:15 -06:00
Neil O'Toole
fd4ae53f31 codebase refactor 2020-08-06 11:58:47 -06:00
Neil O'Toole
4993d6e13d working on grammar 2016-10-30 16:35:56 -06:00
Neil O'Toole
980e49358e tidy up 2016-10-16 22:14:01 -06:00