Skip to content

Releases: coderaiser/happy-sql

happy-sql v2.4.0

Choose a tag to compare

@coderaiser coderaiser released this 27 Aug 19:21

🐞 fix

  • 044050d nextval: scope DEFAULT nextval conversion to column defaults
  • 6f9d707 from: rightOuterJoin missing from printer imports
  • ba06223 over: window frame ROWS BETWEEN support
  • 6c35624 create-table: TEMP keyword and WITHOUT ROWID
  • 038cac6 references: ON DELETE and ON UPDATE actions
  • 6cd9a75 drop-view: IF EXISTS support
  • d5bd976 create-index: column sort order and index method
  • 1a6dc5f over: window frame ROWS BETWEEN support
  • e8c9ba6 column-definition: GENERATED ALWAYS AS expression
  • dbaea87 count: preserve DISTINCT modifier
  • 5d9ce53 like: ESCAPE clause support
  • e8322bc analyze: qualified table names
  • d0446af update: SQLite OR ABORT and OR FAIL
  • 1ffd47d order-by: ordinals and NULLS FIRST/LAST
  • 48c9aed alter-table: rename table, add constraint, RLS actions
  • 297b46a create-table: table-level primary key and unique constraints
  • 8f3d71f insert: optional column list, DEFAULT VALUES, table alias
  • 1609515 from: JOIN USING support
  • 4c0bc85 pragma: support get/set/qualified/string forms
  • 3ed2c4f select: support full expression set in select columns
  • 44bf5d7 happy-sql: from: UNNEST and func_call alias support
  • fedfc86 happy-sql: ANALYZE and REINDEX preserve table name
  • fbb7ce6 from: SQLite INDEXED BY and NOT INDEXED table hints
  • 923c7bb vacuum: VACUUM INTO file support
  • d00c4d2 update: SQLite OR REPLACE and OR IGNORE
  • 196eae8 drop-index: IF EXISTS support
  • 0cf9caf create-index: IF NOT EXISTS, CONCURRENTLY, WHERE partial index
  • 15cf3bb with-named: remove extra indentation from CTE body
  • 018e921 lateral-join: alias without AS for subquery
  • e3f4ae8 detach database statement
  • c070d03 window: named WINDOW clause
  • 9792a5e from: subquery alias without AS keyword
  • 4868889 where: ISNULL/NOTNULL postfix
  • 3bea77a create-table: AS SELECT form
  • d5ff74b values: standalone VALUES statement
  • 6f27346 truncate: add statement
  • 5a07d99 select: DISTINCT ON
  • 964f8e6 func-call: FILTER (WHERE ...)
  • 407ff5e binary-expression: || concat
  • ed2b211 operand: :: cast_operator_expr
  • b08cc9f binary-expression: ?? → ?

🔥 feature

  • 3fff1e3 happy-sql: putout_processor_sql
  • 97f890f USING
  • 8ccaa46 RIGHT OUTER JOIN
  • 29a5510 happy-sql: DO block
  • a18ac59 reindex, analyze, release-savepoint: add trivial statement types
  • f0fef07 create-virtual-table: SQLite CREATE VIRTUAL TABLE USING
  • dfe2b2c grant: GRANT privilege ON table TO role
  • 2a29916 create-schema: CREATE SCHEMA
  • f272f3b create-extension: CREATE EXTENSION
  • cd61021 drop-view: DROP VIEW
  • aef8f2a create-view: CREATE VIEW and CREATE MATERIALIZED VIEW
  • d2585b8 set-param: SET and SHOW parameter statements
  • 0e734a4 explain: EXPLAIN and EXPLAIN ANALYZE

happy-sql v2.3.0

Choose a tag to compare

@coderaiser coderaiser released this 24 Aug 19:54

🐞 fix

  • 219bd9b happy-sql: parser: REPLACE INTO
  • 91b29e2 happy-sql: parser: intersect and except
  • 198b65b npmignore: fixture: exclude

🔥 feature

  • 9236576 happy-sql: printer: replaceInto
  • 7f333dc happy-sql: printer: intersect and except

happy-sql v2.2.1

Choose a tag to compare

@coderaiser coderaiser released this 24 Aug 15:45

🐞 fix

  • c1535ff npmignore: fixture: exclude

happy-sql v2.2.0

Choose a tag to compare

@coderaiser coderaiser released this 24 Aug 15:44

🐞 fix

  • d0a98eb column-definition: NOT NULL, DEFAULT, UNIQUE, CHECK, REFERENCES; CREATE TABLE IF NOT EXISTS
  • 8db3673 insert: multi-row VALUES support
  • 24afa16 index: wire create_index_stmt and vacuum_stmt to clauseVisitors
  • 4cdca5c from: LATERAL join support
  • b87b5ab select: ARRAY literal expression in column list
  • e803804 operand: ANY and ALL quantifier expressions
  • e5ca74f operand: handle PostgreSQL :: cast operator (cast_operator_expr)
  • 6f26e0c printer: CallExpression: into
  • 7325059 printer: queries
  • 9c12f1a printer: queries
  • d82705d where: NOT EXISTS, paren_expr in nested conditions
  • 719b4e3 happy-sql: parser+printer: UNION distinct vs UNION ALL
  • c8b4354 alter-table: support ADD COLUMN, DROP COLUMN, RENAME COLUMN, ALTER COLUMN TYPE
  • 9d052b4 binary: JSONB ->, ->>, and || string concat operators
  • 8d8205e binary: JSONB ->, ->>, and || string concat operators
  • f5ab342 select: support EXTRACT(unit FROM col)
  • 016d2ed select: support table.* (member_expr with all_columns)
  • 6a7510d select: support NULL and TRUE/FALSE literals
  • ea56135 drop-table: support multiple tables
  • 1a05cfd update: support RETURNING clause
  • c3e8b45 update: support FROM clause
  • 81c9875 where: not-between: detect betweenKw array, emit notBetween()
  • 267f929 binary: NOT LIKE, ILIKE, SIMILAR TO, IS DISTINCT FROM: add to OP_CONVERTERS
  • d52c89c from: support NATURAL JOIN
  • c595d7e from: support FULL OUTER JOIN
  • 7287f91 select: support CASE WHEN
  • 69e2c88 select: support CAST(x AS TYPE)
  • e112e67 where: support EXISTS
  • 324625b where: support IN (subquery)
  • 4922056 from: support subquery in FROM
  • b980624 returning: handle RETURNING *
  • a7b7b53 select: func-call: pass args to generic functions
  • 601c165 from: preserve LEFT/INNER/RIGHT/LEFT OUTER JOIN type

🔥 feature

  • 624c378 VACUUM
  • be90105 create index: add
  • 06be326 happy-sql: parser+printer: WINDOW ... OVER (PARTITION BY, ORDER BY)
  • bb3762d happy-sql: parser+printer: array literal ARRAY[...]
  • 34ab6f1 happy-sql: parser+printer: JSON/JSONB operators as array tuples
  • c1b121a attach: SQLite ATTACH DATABASE: parser + printer
  • 823912c pragma: SQLite PRAGMA statement: parser + printer
  • eadebe8 drop-index: parser + printer
  • 847adae transaction: BEGIN, COMMIT, ROLLBACK, SAVEPOINT, ROLLBACK TO SAVEPOINT
  • e2feb52 happy-sql: ctx -> printer
  • 515f571 happy-sql: generate_series — table-valued function in FROM
  • 39f51e3 parser/printer: where: between: add + test: happy-sql: roundtrip: full groupBy integration test
  • 6a22942 parser/printer: where: not-in: add
  • c1461ac parser/printer: distinct: add
  • 8885f47 parser/printer: limit, offset: add
  • 48f567c parser/printer: order-by: add
  • 33a852e parser/printer: aggregate functions: sum, avg, min, max, count(col)

happy-sql v2.1.1

Choose a tag to compare

@coderaiser coderaiser released this 22 Aug 19:29

🔥 feature

  • e2feb52 happy-sql: ctx -> printer
  • 515f571 happy-sql: generate_series — table-valued function in FROM
  • 39f51e3 parser/printer: where: between: add + test: happy-sql: roundtrip: full groupBy integration test
  • 6a22942 parser/printer: where: not-in: add
  • c1461ac parser/printer: distinct: add
  • 8885f47 parser/printer: limit, offset: add
  • 48f567c parser/printer: order-by: add
  • 33a852e parser/printer: aggregate functions: sum, avg, min, max, count(col)

happy-sql v2.1.0

Choose a tag to compare

@coderaiser coderaiser released this 22 Aug 17:24

🔥 feature

  • 533076c parser: WITH RECURSIVE: add

happy-sql v2.0.8

Choose a tag to compare

@coderaiser coderaiser released this 21 Aug 15:12

🐞 fix

  • c5eddac happy-sql: remove js-printer
  • 31bebb9 happy-sql: use @putout/printer for convertSqlToJs
  • 1acd691 happy-sql: convertSqlToJs: use js-printer

🔥 feature

  • f8ae0f4 apply printer methods
  • 90905ad happy-sql: parser: clause: fixture

happy-sql v2.0.7

Choose a tag to compare

@coderaiser coderaiser released this 20 Aug 11:49

🐞 fix

  • 0ddbb26 happy-sql: parser: improve error message

happy-sql v2.0.6

Choose a tag to compare

@coderaiser coderaiser released this 20 Aug 11:38

🔥 feature

  • eea70b5 @putout/parser: add source of incorrect sql

happy-sql v2.0.5

Choose a tag to compare

@coderaiser coderaiser released this 20 Aug 11:31

🐞 fix

  • b1cf2b1 happy-sql: parser: where