Skip to content

Releases: xnuinside/simple-ddl-parser

Added Athena as output mode, refactoring & better support for '\\' strings

11 Aug 22:21
6494e42
Compare
Choose a tag to compare

IMPORTANT:

In this versions there is some output changes & fixes that can break your code.

  1. Now all arguments inside brackets are parsed as separate strings in the list.
    For example:
    file_format = (TYPE=JSON NULL_IF=('field') this was parsed like 'NULL_IF': "('field')",
    now it will be: 'NULL_IF': ["'field'"],

  2. Added separate tokens for EQ = and IN (previously they was parsed as IDs also - for internal info, for contributors.

  3. Some check statements in columns now parsed validly, also IN statements parsed as normal lists.
    So this statement include_exclude_ind CHAR(1) NOT NULL CONSTRAINT chk_metalistcombo_logicalopr
    CHECK (include_exclude_ind IN ('I', 'E')),

will produce this output:

{'check': {'constraint_name': 'chk_metalistcombo_logicalopr',
'statement': {'in_statement': {'in': ["'I'", "'E'"],
'name': 'include_exclude_ind'}}},

Fixes

  1. DEFAULT word now is not arriving in key 'default' (it was before in some cases)

New Features

  1. Added Athena output mode and initial support - #272

1.5.0 fix uniques in case of indexes / unique case for several columns

18 May 21:33
Compare
Choose a tag to compare

Fixes

  1. Now, unique set up to column only if it was only one column in unique constraint/index. Issue - #255
  2. Fixed issue when UNIQUE KEY was identified as primary key - #253

v1.4.0 ⭕ Oracle new output keywords - is_global & temp

14 May 20:27
Compare
Choose a tag to compare

Fixes

🔍 BigQuery:

  1. Indexes without schema causes issues in BigQuery dialect - fixed.

Improvements

⭕ Oracle:

  1. Added new output keywords in table definition - temp & is_global. Added support for create global temporary table - #182

1.3.0 🐘 PostgreSQL WITH TIME ZONE & 🔍 BigQuery PARTITION BY Improvements

11 May 16:55
Compare
Choose a tag to compare

Fixes

🐘 PostgreSQL:

  1. Timezone was moved out from type definition to keyword 'with_time_zone' it can be True (if with time zone) or False (if without)

🔍 BigQuery:

  1. Previously Range in RANGE_BUCKETS was parsed as a columns, now this behaviour is changed and
    range placed in own keyword - 'range' (can be array or str).
    Also for all ``*_TRUNC PARTITIONS` like DATETIME_TRUNC, TIMESTAMP_TRUNC, etc, second argument moved to arg 'trunc_by'

Improvements

🐘 PostgreSQL:

  1. Added support for PostgreSQL with / without time zone - #250

🔍 BigQuery:

  1. Added support for GENERATE_ARRAY in RANGE_BUCKETS #183

1.2.1 MySQL 🐬 & ⭕ Oracle & 🐘 PostgreSQL updates

09 May 12:55
ade1dd0
Compare
Choose a tag to compare

Fixes

🐬 MySQL:

  1. Fixed issue relative to auto_increment that caused empty output if auto_increment defined in table properties -
    #206

Improvements

🐬 MySQL:

  1. auto_increment added as property to mysql output

⭕ Oracle:

  1. Added support for constraint name in column definition - #203
  2. Added support for GENERATED (ALWAYS | (BY DEFAULT [ON NULL])) AS IDENTITY in column definition

🐘 PostgreSQL:

  1. Added support for CAST statement in column GENERATE ALWAYS expression - #198

v1.1.0: 🐬 & ❄ Improvements

21 Apr 18:25
Compare
Choose a tag to compare

Improvements

🐬 MySQL:

  1. Added support for INDEX statement inside table definition
  2. Added support for MySQL INVISIBLE/VISIBLE statement - #243

❄ Snowflake:

  1. Added support for cluster by statement before columns definition - #234

1.0.4 Few Fixes & New statements release

25 Mar 20:50
Compare
Choose a tag to compare

🐈

Improvements

  1. Support functions with schema prefix in DEFAULT and CHECK statements. #240

Fixes

  1. Fix for REFERENCES NOT NULL - #239
  2. Fix for snowflake stage name location format bug fix - #241

v1.0.3 Fixed bug with `CREATE OR REPLACE SCHEMA` & some more

20 Jan 15:30
Compare
Choose a tag to compare

v1.0.3

Improvements

  1. Fixed bug with CREATE OR REPLACE SCHEMA.
  2. Added support of create empty tables without columns CREATE TABLE tablename (); (valid syntax in SQL)

Snowflake

  1. Fixed bug with snowflake stage_ fileformat option value equal a single string as FIELD_OPTIONALLY_ENCLOSED_BY = '\"', FIELD_DELIMITER = '|'
  2. improve snowflake fileformat key equals value into dict. type.

v1.0.2 Snowflake, MySQL, and other small improvements release

14 Jan 14:20
Compare
Choose a tag to compare

Improvements

  1. Fixed bug with places first table property value in 'authorization' key. Now it is used real property name.
  2. Fixed typo on Databricks dialect
  3. improved equals symbols support within COMMENT statement.
  4. turn regexp into functions

MySQL Improvements

  1. UNSIGNED property after int parsed validly now

Snowflake

  1. Snowflake TAG now available on SCHEMA definitions.

v1.0.1 `normalize_names=True` improvements

11 Jan 06:00
Compare
Choose a tag to compare

v1.0.1

Minor Fixes

  1. When using normalize_names=True do not remove [] from types like decimal(21)[].
  2. When using normalize_names=True ensure that "complex"."type" style names convert to complex.type.