changelog.md 20 KB

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

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)