Changelog¶
All notable changes to this project will be documented in this file.
1.12.0¶
Released 2022-02-05
Bug¶
ALTER TABLE SET SCHEMA (#1409)
Bug Fixes¶
Update ANTLR v4 go.mod entry (#1336)
Check delete statements for CTEs (#1329)
Fix validation of GROUP BY on field aliases (#1348)
Fix imports when non-copyfrom queries needed imports that copyfrom queries didn’t (#1386)
Remove extra comment newline (#1395)
Enable strict function checking (#1405)
Documentation¶
Bump version to 1.11.0 (#1308)
Features¶
Inheritance (#1339)
Generate query code using ASTs instead of templates (#1338)
Add support for CREATE TABLE a ( LIKE b ) (#1355)
Add support for sql.NullInt16 (#1376)
Miscellaneous Tasks¶
Add tests for :exec{result,rows} (#1344)
Delete template-based codegen (#1345)
Build¶
Bump github.com/jackc/pgx/v4 from 4.14.0 to 4.14.1 (#1316)
Bump golang from 1.17.3 to 1.17.4 (#1331)
Bump golang from 1.17.4 to 1.17.5 (#1337)
Bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (#1343)
Remove devel Docker build
Bump golang from 1.17.5 to 1.17.6 (#1369)
Bump github.com/google/go-cmp from 0.5.6 to 0.5.7 (#1382)
Format all Go code (#1387)
1.11.0¶
Released 2021-11-24
Bug Fixes¶
Update incorrect signatures (#1180)
Correct aggregate func sig (#1182)
Jsonb_build_object (#1211)
Case-insensitive identifiers (#1216)
Incorrect handling of meta (#1228)
Detect invalid INSERT expression (#1231)
Respect alias name for coalesce (#1232)
Mark nullable when casting NULL (#1233)
Support nullable fields in joins for MySQL engine (#1249)
Fix between expression handling of table references (#1268)
Support nullable fields in joins on same table (#1270)
Fix missing binds in ORDER BY (#1273)
Set RV for TargetList items on updates (#1252)
Fix MySQL parser for query without trailing semicolon (#1282)
Validate table alias references (#1283)
Add support for MySQL ON DUPLICATE KEY UPDATE (#1286)
Support references to columns in joined tables in UPDATE statements (#1289)
Add validation for GROUP BY clause column references (#1285)
Prevent variable redeclaration in single param conflict (#1298)
Use common params struct field for same named params (#1296)
Documentation¶
Replace deprecated go get with go install (#1181)
Fix package name referenced in tutorial (#1202)
Add environment variables (#1264)
Add go.17+ install instructions (#1280)
Warn about golang-migrate file order (#1302)
Features¶
Instrument compiler via runtime/trace (#1258)
Add MySQL support for BETWEEN arguments (#1265)
Refactor¶
Move from io/ioutil to io and os package (#1164)
Styling¶
Apply gofmt to sample code (#1261)
Build¶
Bump golang from 1.17.0 to 1.17.1 (#1173)
Bump eskatos/gradle-command-action from 1 to 2 (#1220)
Bump golang from 1.17.1 to 1.17.2 (#1227)
Bump github.com/pganalyze/pg_query_go/v2 (#1234)
Bump actions/checkout from 2.3.4 to 2.3.5 (#1238)
Bump babel from 2.9.0 to 2.9.1 in /docs (#1245)
Bump golang from 1.17.2 to 1.17.3 (#1272)
Bump actions/checkout from 2.3.5 to 2.4.0 (#1267)
Bump github.com/lib/pq from 1.10.3 to 1.10.4 (#1278)
Bump github.com/jackc/pgx/v4 from 4.13.0 to 4.14.0 (#1303)
Cmd/sqlc¶
Bump version to v1.11.0
1.10.0¶
Released 2021-09-07
Documentation¶
Fix invalid language support table (#1161)
Add a getting started guide for MySQL (#1163)
Build¶
Bump golang from 1.16.7 to 1.17.0 (#1129)
Bump github.com/lib/pq from 1.10.2 to 1.10.3 (#1160)
Ci¶
Upgrade Go to 1.17 (#1130)
Cmd/sqlc¶
Bump version to v1.10.0 (#1165)
Codegen/golang¶
Consolidate import logic (#1139)
Add pgx support for range types (#1146)
Use pgtype for hstore when using pgx (#1156)
Codgen/golang¶
Use p[gq]type for network address types (#1142)
Endtoend¶
Run
go test
in CI (#1134)
Engine/mysql¶
Add support for LIKE (#1162)
Golang¶
Output NullUUID when necessary (#1137)
1.9.0¶
Released 2021-08-13
Documentation¶
Update documentation (a bit) for v1.9.0 (#1117)
Build¶
Bump golang from 1.16.6 to 1.16.7 (#1107)
Cmd/sqlc¶
Bump version to v1.9.0 (#1121)
Compiler¶
Add tests for COALESCE behavior (#1112)
Handle subqueries in SELECT statements (#1113)
1.8.0¶
Released 2021-05-03
Documentation¶
Add language support Matrix (#920)
Features¶
Add case style config option (#905)
Python¶
Eliminate runtime package and use sqlalchemy (#939)
Build¶
Bump github.com/google/go-cmp from 0.5.4 to 0.5.5 (#926)
Bump github.com/lib/pq from 1.9.0 to 1.10.0 (#931)
Bump golang from 1.16.0 to 1.16.1 (#935)
Bump golang from 1.16.1 to 1.16.2 (#942)
Bump github.com/jackc/pgx/v4 from 4.10.1 to 4.11.0 (#956)
Bump github.com/go-sql-driver/mysql from 1.5.0 to 1.6.0 (#961)
Bump github.com/pganalyze/pg_query_go/v2 (#965)
Bump urllib3 from 1.26.3 to 1.26.4 in /docs (#968)
Bump golang from 1.16.2 to 1.16.3 (#963)
Bump github.com/lib/pq from 1.10.0 to 1.10.1 (#980)
Cmd¶
Add the –experimental flag (#929)
Fix sqlc init (#959)
Cmd/sqlc¶
Bump version to v1.7.1-devel (#913)
Bump version to v1.8.0
Codegen¶
Generate valid enum names for symbols (#972)
Postgresql¶
Support generated columns
Add test for PRIMARY KEY INCLUDE
Add tests for CREATE TABLE PARTITION OF
CREATE TRIGGER EXECUTE FUNCTION
Add support for renaming types (#971)
Sql/ast¶
Resolve return values from functions (#964)
Workflows¶
Only run tests once (#924)
1.7.0¶
Released 2021-02-28
Bug Fixes¶
Struct tag formatting (#833)
Documentation¶
Include all the existing Markdown files (#877)
Split docs into four sections (#882)
Reorganize and consolidate documentation
Add link to Windows download (#888)
Shorten the README (#889)
Features¶
Adding support for pgx/v4
Adding support for pgx/v4
README¶
Add Go Report Card badge (#891)
Build¶
Bump github.com/google/go-cmp from 0.5.3 to 0.5.4 (#813)
Bump github.com/lib/pq from 1.8.0 to 1.9.0 (#820)
Bump golang from 1.15.5 to 1.15.6 (#822)
Bump github.com/jackc/pgx/v4 from 4.9.2 to 4.10.0 (#823)
Bump github.com/jackc/pgx/v4 from 4.10.0 to 4.10.1 (#839)
Bump golang from 1.15.6 to 1.15.7 (#855)
Bump golang from 1.15.7 to 1.15.8 (#881)
Bump github.com/spf13/cobra from 1.1.1 to 1.1.2 (#892)
Bump golang from 1.15.8 to 1.16.0 (#897)
Bump github.com/lfittl/pg_query_go from 1.0.1 to 1.0.2 (#901)
Bump github.com/spf13/cobra from 1.1.2 to 1.1.3 (#893)
Catalog¶
Improve alter column type (#818)
Ci¶
Uprade to Go 1.15 (#887)
Cmd¶
Allow config file location to be specified (#863)
Cmd/sqlc¶
Bump to version v1.6.1-devel (#807)
Bump version to v1.7.0 (#912)
Codegen/golang¶
Make sure to import net package (#858)
Compiler¶
Support UNION query
Dolphin¶
Generate bools for tinyint(1)
Support joins in update statements (#883)
Add support for union query
Endtoend¶
Add tests for INTERSECT and EXCEPT
Go.mod¶
Update to go 1.15 and run ‘go mod tidy’ (#808)
Mysql¶
Compile tinyint(1) to bool (#873)
Sql/ast¶
Add enum values for SetOperation
1.6.0¶
Released 2020-11-23
Dolphin¶
Implement Rename (#651)
Skip processing view drops (#653)
README¶
Update language / database support (#698)
Astutils¶
Fix Params rewrite call (#674)
Build¶
Bump golang from 1.14 to 1.15.3 (#765)
Bump docker/build-push-action from v1 to v2.1.0 (#764)
Bump github.com/google/go-cmp from 0.4.0 to 0.5.2 (#766)
Bump github.com/spf13/cobra from 1.0.0 to 1.1.1 (#767)
Bump github.com/jackc/pgx/v4 from 4.6.0 to 4.9.2 (#768)
Bump github.com/lfittl/pg_query_go from 1.0.0 to 1.0.1 (#773)
Bump github.com/google/go-cmp from 0.5.2 to 0.5.3 (#783)
Bump golang from 1.15.3 to 1.15.5 (#782)
Bump github.com/lib/pq from 1.4.0 to 1.8.0 (#769)
Catalog¶
Improve variadic argument support (#804)
Cmd/sqlc¶
Bump to version v1.6.0 (#806)
Codegen¶
Fix errant database/sql imports (#789)
Compiler¶
Use engine-specific reserved keywords (#677)
Dolphi¶
Add list of builtin functions (#795)
Dolphin¶
Update to the latest MySQL parser (#665)
Add ENUM() support (#676)
Add test for table aliasing (#684)
Add MySQL ddl_create_table test (#685)
Implete TRUNCATE table (#697)
Represent tinyint as int32 (#797)
Add support for coalesce (#802)
Add function signatures (#796)
Endtoend¶
Add MySQL json test (#692)
Add MySQL update set multiple test (#696)
Examples¶
Use generated enum constants in db_test (#678)
Port ondeck to MySQL (#680)
Add MySQL authors example (#682)
Internal/cmd¶
Print correct config file on parse failure (#749)
Kotlin¶
Remove runtime dependency (#774)
Metadata¶
Support multiple comment prefixes (#683)
Postgresql¶
Support string concat operator (#701)
Sql/catalog¶
Add support for variadic functions (#798)
1.5.0¶
Released 2020-08-05
Documentation¶
Build sqlc using Go 1.14 (#549)
Cmd¶
Add debugging support (#573)
Cmd/sqlc¶
Bump version to v1.4.1-devel (#548)
Bump version to v1.5.0
Compiler¶
Support calling functions with defaults (#635)
Skip func args without a paramRef (#636)
Return a single column from coalesce (#639)
Config¶
Add emit_empty_slices to version one (#552)
Contrib¶
Add generated code for contrib
Dinosql¶
Remove deprecated package (#554)
Dolphin¶
Add support for column aliasing (#566)
Implement star expansion for subqueries (#619)
Implement exapansion with reserved words (#620)
Implement parameter refs (#621)
Implement limit and offest (#622)
Implement inserts (#623)
Implement delete (#624)
Implement simple update statements (#625)
Implement INSERT … SELECT (#626)
Use test driver instead of TiDB driver (#629)
Implement named parameters via sqlc.arg() (#632)
Endtoend¶
Add MySQL test for SELECT * JOIN (#565)
Add MySQL test for inflection (#567)
Engine¶
Create engine package (#556)
Equinox¶
Use the new equinox-io/setup action (#586)
Examples¶
Run tests for MySQL booktest (#627)
Golang¶
Add support for the money type (#561)
Generate correct types for int2 and int8 (#579)
Internal¶
Rm catalog, pg, postgres packages (#555)
Mod¶
Downgrade TiDB package to fix build (#603)
Mysql¶
Upgrade to the latest vitess commit (#562)
Support to infer type of a duplicated arg (#615)
Allow some builtin functions to be nullable (#616)
Postgresql¶
Generate all functions in pg_catalog (#550)
Remove pg_catalog schema from tests (#638)
Move contrib code to a package
Sql/catalog¶
Fix comparison of pg_catalog types (#637)
Tools¶
Generate functions for all of contrib
Workflow¶
Migrate to equinox-io/setup-release-tool (#614)
1.4.0¶
Released 2020-06-17
Dockerfile¶
Add version build argument (#487)
MySQL¶
Prevent Panic when WHERE clause contains parenthesis. (#531)
README¶
Document emit_exact_table_names (#486)
All¶
Remove the exp build tag (#507)
Catalog¶
Support functions with table parameters (#541)
Cmd¶
Bump to version 1.3.1-devel (#485)
Cmd/sqlc¶
Bump version to v1.4.0 (#547)
Codegen¶
Add the new codegen packages (#513)
Add the :execresult query annotation (#542)
Compiler¶
Validate function calls (#505)
Port bottom of parseQuery (#510)
Don’t mutate table name (#517)
Enable experimental parser by default (#518)
Apply rename rules to enum constants (#523)
Temp fix for typecast function parameters (#530)
Endtoend¶
Standardize JSON formatting (#490)
Add per-test configuration files (#521)
Read expected stderr failures from disk (#527)
Internal/dinosql¶
Check parameter style before ref (#488)
Remove unneeded column suffix (#492)
Support named function arguments (#494)
Internal/postgresql¶
Fix NamedArgExpr rewrite (#491)
Multierr¶
Move dinosql.ParserErr to a new package (#496)
Named¶
Port parameter style validation to SQL (#504)
Parser¶
Support columns from subselect statements (#489)
Rewrite¶
Move parameter rewrite to package (#499)
Sqlite¶
Use convert functions instead of the listener (#519)
Sqlpath¶
Move ReadSQLFiles into a separate package (#495)
Validation¶
Move query validation to separate package (#498)
1.3.0¶
Released 2020-05-12
Makefile¶
Update target (#449)
README¶
Add Myles as a sponsor (#469)
Testing¶
Make sure all Go examples build (#480)
Cmd¶
Bump version to v1.3.0 (#484)
Cmd/sqlc¶
Bump version to v1.2.1-devel (#442)
Dinosql¶
Inline addFile (#446)
Add PostgreSQL support for TRUNCATE (#448)
Gen¶
Emit json.RawMessage for JSON columns (#461)
Go.mod¶
Use latest lib/pq (#471)
Parser¶
Use same function to load SQL files (#483)
Postgresql¶
Fix panic walking CreateTableAsStmt (#475)
1.2.0¶
Released 2020-04-07
Documentation¶
Publish to Docker Hub (#422)
README¶
Docker installation docs (#424)
Cmd/sqlc¶
Bump version to v1.1.1-devel (#407)
Bump version to v1.2.0 (#441)
Gen¶
Add special case for “campus” (#435)
Properly quote reserved keywords on expansion (#436)
Migrations¶
Move migration parsing to new package (#427)
Parser¶
Generate correct types for SELECT EXISTS (#411)
1.1.0¶
Released 2020-03-17
README¶
Add installation instructions (#350)
Add section on running tests (#357)
Fix typo (#371)
Ast¶
Add AST for ALTER TABLE ADD / DROP COLUMN (#376)
Add support for CREATE TYPE as ENUM (#388)
Add support for CREATE / DROP SCHEMA (#389)
Astutils¶
Apply changes to the ValuesList slice (#372)
Cmd¶
Return v1.0.0 (#348)
Return next bug fix version (#349)
Cmd/sqlc¶
Bump version to v1.1.0 (#406)
Compiler¶
Wire up the experimental parsers
Config¶
Remove “emit_single_file” option (#367)
Dolphin¶
Add experimental parser for MySQL
Gen¶
Add option to emit single file for Go (#366)
Add support for the ltree extension (#385)
Go.mod¶
Add packages for MySQL and SQLite parsers
Internal/dinosql¶
Support Postgres macaddr type in Go (#358)
Internal/endtoend¶
Remove %w (#354)
Kotlin¶
Add Query class to support timeout and cancellation (#368)
Postgresql¶
Add experimental parser for MySQL
Sql¶
Add generic SQL AST
Sql/ast¶
Port support for COMMENT ON (#391)
Implement DROP TYPE (#397)
Implement ALTER TABLE RENAME (#398)
Implement ALTER TABLE RENAME column (#399)
Implement ALTER TABLE SET SCHEMA (#400)
Sql/catalog¶
Port tests over from catalog pkg (#402)
Sql/errors¶
Add a new errors package (#390)
Sqlite¶
Add experimental parser for SQLite
1.0.0¶
Released 2020-02-18
Documentation¶
Add documentation for query commands (#270)
Add named parameter documentation (#332)
README¶
Add sponsors section (#333)
Cmd¶
Remove parse subcommand (#322)
Config¶
Parse V2 config format
Add support for YAML (#336)
Examples¶
Add the jets and booktest examples (#237)
Move sqlc.json into examples folder (#238)
Add the authors example (#241)
Add build tag to authors tests (#319)
Internal¶
Allow CTE to be used with UPDATE (#268)
Remove the PackageMap from settings (#295)
Internal/config¶
Create new config package (#313)
Internal/dinosql¶
Emit Querier interface (#240)
Strip leading “go-“ or trailing “-go” from import (#262)
Overrides can now be basic types (#271)
Import needed types for Querier (#285)
Handle schema-scoped enums (#310)
Ignore golang-migrate rollbacks (#320)
Internal/endtoend¶
Move more tests to the record/replay framework
Add update test for named params (#329)
Internal/mysql¶
Fix flaky test (#242)
Port tests to endtoend package (#315)
Internal/parser¶
Resolve nested CTEs (#324)
Error if last query is missing (#325)
Support joins with aliases (#326)
Remove print statement (#327)
Internal/sqlc¶
Add support for composite types (#311)
Kotlin¶
Support primitives
Arrays, enums, and dates
Generate examples
README for examples
Factor out db setup extension
Fix enums, use List instead of Array
Port Go tests for examples
Rewrite numbered params to positional params
Always use use, fix indents
Unbox query params
Parser¶
Attach range vars to insert params
Attach range vars to insert params (#342)
Remove dead code (#343)
0.1.0¶
Released 2020-01-07
Documentation¶
Replace remaining references to DinoSQL with sqlc (#149)
README¶
Fix download links (#66)
Add LIMIT 1 to query that should return one (#99)
Catalog¶
Support “ALTER TABLE … DROP CONSTRAINT …” (#34)
Differentiate functions with different argument types (#51)
Ci¶
Enable tests on pull requests
Cmd¶
Include filenames in error messages (#69)
Do not output any changes on error (#72)
Dinosql/internal¶
Add lower and upper functions (#215)
Ignore alter sequence commands (#219)
Gen¶
Add DO NOT EDIT comments to generated code (#50)
Include all schemas when generating models (#90)
Prefix structs with schema name (#91)
Generate single import for uuid package (#98)
Use same import logic for all Go files
Pick correct struct to return for queries (#107)
Create consistent JSON tags (#110)
Add Close method to Queries struct (#127)
Ignore empty override settings (#128)
Turn SQL comments into Go comments (#136)
Internal/catalog¶
Parse unnamed function arguments (#166)
Internal/dinosql¶
Prepare() with no GoQueries still valid (#95)
Fix multiline comment rendering (#142)
Dereference alias nodes on walk (#158)
Ignore sql-migrate rollbacks (#160)
Sort imported packages (#165)
Add support for timestamptz (#169)
Error on missing queries (#180)
Use more database/sql null types (#182)
Support the pg_temp schema (#183)
Override columns with array type (#184)
Implement robust expansion
Implement robust expansion (#186)
Add COMMENT ON support (#191)
Add DATE support
Add DATE support (#196)
Filter out invalid characters (#198)
Quote reserved keywords (#205)
Return parser errors first (#207)
Implement advisory locks (#212)
Error on duplicate query names (#221)
Fix incorrect enum names (#223)
Add support for numeric types
Add support for numeric types (#228)
Internal/dinosql/testdata/ondeck¶
Add Makefile (#156)
Ondeck¶
Move all tests to GitHub CI (#58)
ParseQuery¶
Return either a query or an error (#178)
Parser¶
Use schema when resolving catalog refs (#82)
Support function calls in expressions (#104)
Correctly handle single files (#119)
Return error if missing RETURNING (#131)
Add support for mathmatical operators (#132)
Add support for simple case expressions (#134)
Error on mismatched INSERT input (#135)
Set IsArray on joined columns (#139)
Pg¶
Store functions in the catalog (#41)
Add location to errors (#73)