Skip to content

Commit

Permalink
Merge branch 'main' into new-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pgrivachev authored Jun 29, 2023
2 parents 5fbc296 + c3f989d commit 61edf36
Show file tree
Hide file tree
Showing 53 changed files with 404 additions and 176 deletions.
20 changes: 9 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# Changelog

## Version 0.27.1 (19/06/2023)
## Version 0.27.2 (22/06/2023)
## What's Changed
* Added support for semi-structured data functions in Snowflake.

**Full Changelog**: https://github.com/fivetran/dbt-language-server/compare/v0.27.1...v0.27.2
---

## Version 0.27.1 (22/06/2023)
## What's Changed
* Added support for Snowflake cast operator (`::`).

Expand All @@ -10,7 +17,7 @@

## Version 0.27.0 (18/06/2023)
## What's Changed
* In this release, we've introduced a new setting, WizardForDbtCore(TM).enableSnowflakeSyntaxCheck, which is turned off by default. When activated, this setting enables syntax checks for Snowflake dbt projects. As a result, any errors within models will be detected and displayed. Please note that this is an experimental feature and may not be entirely reliable. It could potentially yield false positive errors, indicating issues where there are none.
* In this release, we've introduced a new setting, `WizardForDbtCore(TM).enableSnowflakeSyntaxCheck`, which is turned off by default. When activated, this setting enables syntax checks for Snowflake dbt projects. As a result, any errors within models will be detected and displayed. Please note that this is an experimental feature and may not be entirely reliable. It could potentially yield false positive errors, indicating issues where there are none.


**Full Changelog**: https://github.com/fivetran/dbt-language-server/compare/v0.26.2...v0.27.0
Expand Down Expand Up @@ -247,12 +254,3 @@ AS (
* Change extension logo.

**Full Changelog**: https://github.com/fivetran/dbt-language-server/compare/v0.12.0...v0.12.1
---

## Version 0.12.0 (10/10/2022)
## What's Changed
* We now don't show errors for empty models.
* Add support dbt aliases.
* Add command to create dbt project from VS Code.

**Full Changelog**: https://github.com/fivetran/dbt-language-server/compare/v0.11.1...v0.12.0
8 changes: 4 additions & 4 deletions e2e/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion e2e/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"@google-cloud/bigquery": "^6.2.0",
"@types/glob": "^8.1.0",
"@types/pg": "^8.10.2",
"@types/snowflake-sdk": "^1.6.12",
"@types/snowflake-sdk": "^1.6.13",
"@types/vscode": "^1.79.1",
"@vscode/test-electron": "^2.3.3",
"dbt-language-server-common": "file:../common",
Expand Down
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SELECT
TO_JSON(OBJECT_INSERT(OBJECT_INSERT(OBJECT_CONSTRUCT(), 'name', 'John'), 'age', 30)),
TO_JSON(PARSE_JSON('{"name": "John", "age": 30}')),
TO_JSON(object_construct('a', 1)),
TO_JSON(null),
TO_JSON('null'::VARIANT)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SELECT
AS_BOOLEAN(TRUE),
AS_BOOLEAN(0),
AS_BOOLEAN(1),
AS_BOOLEAN(to_variant(true)),
AS_BOOLEAN(array_construct(true))
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT
AS_CHAR(12345),
AS_CHAR(false),
AS_CHAR(1),
AS_CHAR(to_variant('a'))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT
AS_DATE(TO_VARIANT(TO_DATE('2018-10-10'))),
AS_DATE(2459205)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
AS_DECIMAL(to_variant(12345)),
AS_DECIMAL(to_variant(123.45), 10, 2),
AS_DECIMAL(to_variant(123.45), 10)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
AS_DOUBLE(to_variant('123.45')),
AS_DOUBLE(1),
AS_DOUBLE(1.1)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT
AS_INTEGER(to_variant(1)),
AS_INTEGER(to_variant('1'))
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
AS_NUMBER(to_variant(12345)),
AS_NUMBER(to_variant(123.45), 10, 2),
AS_NUMBER(to_variant(123.45), 10)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
AS_REAL(to_variant('123.45')),
AS_REAL(1),
AS_REAL(1.1)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT
AS_TIME(TO_VARIANT(TO_TIME('12:34:56'))),
AS_TIME(TO_VARIANT(CURRENT_TIMESTAMP()))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT
AS_TIMESTAMP_LTZ(TO_VARIANT(TO_TIMESTAMP_LTZ('2018-10-10 12:34:56')))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT
AS_TIMESTAMP_NTZ(TO_VARIANT(TO_TIMESTAMP_NTZ('2018-10-10 12:34:56')))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT
AS_TIMESTAMP_TZ(TO_VARIANT(TO_TIMESTAMP_TZ('2018-10-10 12:34:56')))
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT
AS_VARCHAR(12345),
AS_VARCHAR(false),
AS_VARCHAR(1),
AS_VARCHAR(to_variant('a'))
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
CHECK_JSON('{"name": "John"}'),
CHECK_JSON('NotJson'),
CHECK_JSON(to_variant('1'))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT
CHECK_XML('<'),
CHECK_XML('<', false)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
SELECT
value:index,
value:score
FROM
TABLE(
FLATTEN(
input => PARSE_JSON('[{"index": 1, "score": 100}, {"index": 2, "score": 200}]')
)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT
GET(PARSE_JSON('{"name": "John", "age": 30}'), 'name'),
GET(ARRAY_CONSTRUCT(11, 22), 1),
GET(TO_VARIANT(PARSE_JSON('{"name": "John", "age": 30}')), 'name'),
GET(TO_VARIANT(ARRAY_CONSTRUCT(11, 22)), 1)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT
GET_IGNORE_CASE(PARSE_JSON('{"name": "John", "age": 30}'), 'name'),
GET_IGNORE_CASE(ARRAY_CONSTRUCT(11, 22), 1),
GET_IGNORE_CASE(TO_VARIANT(PARSE_JSON('{"name": "John", "age": 30}')), 'name'),
GET_IGNORE_CASE(TO_VARIANT(ARRAY_CONSTRUCT(11, 22)), 1)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
WITH test_data AS (
SELECT PARSE_JSON('{"person": {"name": "John", "age": 30}}') AS j
)
SELECT
GET_PATH(j, 'person'),
j:person.name
from test_data
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
select IS_ARRAY(1), IS_ARRAY(false), IS_ARRAY(array_construct())
SELECT
IS_ARRAY(TRUE),
IS_ARRAY(TO_VARIANT('Sample text')),
IS_ARRAY(1),
IS_ARRAY(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_ARRAY(TO_NUMBER(1)),
IS_ARRAY(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT
IS_BINARY(TO_VARIANT(TO_BINARY('snow', 'utf-8'))),
IS_BINARY(1),
IS_BINARY(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SELECT
IS_BOOLEAN(TRUE),
IS_BOOLEAN(TO_VARIANT('Sample text')),
IS_BOOLEAN(1),
IS_BOOLEAN(TO_NUMBER(1)),
IS_BOOLEAN(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_CHAR(TRUE),
IS_CHAR('c'::variant),
IS_CHAR(TO_VARIANT('c')),
IS_CHAR(1),
IS_CHAR(TO_NUMBER(1)),
IS_CHAR(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_DATE(TRUE),
IS_DATE(TO_VARIANT('Sample text')),
IS_DATE(1),
IS_DATE(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_DATE(TO_NUMBER(1)),
IS_DATE(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_DATE_VALUE(TRUE),
IS_DATE_VALUE(TO_VARIANT('Sample text')),
IS_DATE_VALUE(1),
IS_DATE_VALUE(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_DATE_VALUE(TO_NUMBER(1)),
IS_DATE_VALUE(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_DECIMAL(TRUE),
IS_DECIMAL(TO_VARIANT('Sample text')),
IS_DECIMAL(1),
IS_DECIMAL(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_DECIMAL(TO_NUMBER(1)),
IS_DECIMAL(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_DOUBLE(TRUE),
IS_DOUBLE(TO_VARIANT('Sample text')),
IS_DOUBLE(1),
IS_DOUBLE(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_DOUBLE(TO_NUMBER(1)),
IS_DOUBLE(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_INTEGER(TRUE),
IS_INTEGER(TO_VARIANT('Sample text')),
IS_INTEGER(1),
IS_INTEGER(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_INTEGER(TO_NUMBER(1)),
IS_INTEGER(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SELECT
IS_NULL_VALUE(TRUE),
IS_NULL_VALUE(GET_PATH(parse_json('{"a": null}'), 'a')),
IS_NULL_VALUE(1),
IS_NULL_VALUE(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_NULL_VALUE(TO_NUMBER(1)),
IS_NULL_VALUE(array_construct()),
IS_NULL_VALUE(object_construct())
Original file line number Diff line number Diff line change
@@ -1,19 +1,8 @@
WITH test_data AS (
SELECT
PARSE_JSON('{"Name":"John", "Age":35, "Country":"USA"}') as person,
-- ARRAY_INSERT(ARRAY_INSERT(TO_ARRAY(''), 0, 'John'), 1, 35) as array,
100 as number
)

SELECT
-- Check if 'person' is an object
IS_OBJECT(person) as obj1,

-- TODO:
-- Check if 'array' is an object
-- IS_OBJECT(array) as obj3,

-- Check if 'number' is an object
IS_OBJECT(number) as obj4

FROM test_data;
IS_OBJECT(TRUE),
IS_OBJECT(TO_VARIANT('Sample text')),
IS_OBJECT(1),
IS_OBJECT(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_OBJECT(TO_NUMBER(1)),
IS_OBJECT(array_construct()),
IS_OBJECT(object_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_REAL(TRUE),
IS_REAL(TO_VARIANT('Sample text')),
IS_REAL(1),
IS_REAL(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
IS_REAL(TO_NUMBER(1)),
IS_REAL(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_TIME(TRUE),
IS_TIME(1),
IS_TIME(to_variant(to_time('20:57:01.123456789+07:00'))),
IS_TIME(TO_NUMBER(1)),
IS_TIME(array_construct()),
IS_TIME(object_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_TIMESTAMP_LTZ(TRUE),
IS_TIMESTAMP_LTZ(1),
IS_TIMESTAMP_LTZ(to_variant(to_timestamp_ltz('2017-02-24 12:00:00.456'))),
IS_TIMESTAMP_LTZ(TO_NUMBER(1)),
IS_TIMESTAMP_LTZ(array_construct()),
IS_TIMESTAMP_LTZ(object_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_TIMESTAMP_NTZ(TRUE),
IS_TIMESTAMP_NTZ(1),
IS_TIMESTAMP_NTZ(to_variant(to_timestamp_ntz('2017-02-24 12:00:00.456'))),
IS_TIMESTAMP_NTZ(TO_NUMBER(1)),
IS_TIMESTAMP_NTZ(array_construct()),
IS_TIMESTAMP_NTZ(object_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_TIMESTAMP_TZ(TRUE),
IS_TIMESTAMP_TZ(1),
IS_TIMESTAMP_TZ(to_variant(to_timestamp_tz('2017-02-24 12:00:00.456'))),
IS_TIMESTAMP_TZ(TO_NUMBER(1)),
IS_TIMESTAMP_TZ(array_construct()),
IS_TIMESTAMP_TZ(object_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SELECT
IS_VARCHAR(TRUE),
IS_VARCHAR('c'::variant),
IS_VARCHAR(TO_VARIANT('c')),
IS_VARCHAR(1),
IS_VARCHAR(TO_NUMBER(1)),
IS_VARCHAR(array_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
WITH sample_data AS (
SELECT '<root><element1>value1</element1><element2>value2</element2></root>' AS xml_string
)

SELECT
PARSE_XML(xml_string),
PARSE_XML(to_variant(xml_string)),
PARSE_XML(xml_string, true),
PARSE_XML(xml_string, false),
PARSE_XML(to_variant(xml_string), true)
FROM
sample_data;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SELECT
STRIP_NULL_VALUE(TRUE),
STRIP_NULL_VALUE(GET_PATH(parse_json('{"a": "b"}'), 'a')),
STRIP_NULL_VALUE(1),
STRIP_NULL_VALUE(TO_VARIANT(TO_DATE('2023-04-20', 'YYYY-MM-DD'))),
STRIP_NULL_VALUE(TO_NUMBER(1)),
STRIP_NULL_VALUE(array_construct()),
STRIP_NULL_VALUE(object_construct())
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SELECT
STRTOK_TO_ARRAY('apple,banana,orange', ',') AS fruits,
STRTOK_TO_ARRAY('dog;cat;bird', ';') AS animals,
STRTOK_TO_ARRAY('1-2-3-4-5', '-') AS numbers,
STRTOK_TO_ARRAY('1 2 3 4 5'),
STRTOK_TO_ARRAY(to_variant('1 2 3 4 5')),
STRTOK_TO_ARRAY(to_variant('1 2 3 4 5'), to_variant(' ')),
STRTOK_TO_ARRAY('1-2-3-4-5', to_variant('-'))
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT
TRY_PARSE_JSON('{"key": "value"}') AS valid_json,
TRY_PARSE_JSON('{"key": "value}') AS invalid_json,
TRY_PARSE_JSON('not json') AS non_json_string,
TRY_PARSE_JSON(to_variant('{"key": "value"}')) AS non_json_string;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SELECT
TYPEOF(123) AS int_type,
TYPEOF(123.45) AS float_type,
TYPEOF(to_variant('text')) AS string_type,
TYPEOF(to_variant(CURRENT_DATE)) AS date_type,
TYPEOF(TO_OBJECT(to_variant('{"key": "value"}'))) AS object_type;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT
XMLGET(to_variant('<book><title>Sample Book</title><author>John Doe</author></book>'), 'title'),
XMLGET(to_object(to_variant('<book><title>Sample Book</title><author>John Doe</author></book>')), 'author')
4 changes: 4 additions & 0 deletions e2e/projects/test-fixture/models/complex_query.sql
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ select
row_number() over (partition by d) as row_n,
et._file_name as fn,
parse_json('{"id":23}') as json_data,
bool(null),
safe.bool(JSON '123'),
float64(JSON '9.8'),
json_extract_array('{"a.b": {"c": ["world"]}}', "$['a.b'].c"),
from referrers r
inner join `singular-vector-135519`.dbt_ls_e2e_dataset.student_details d on d.id = r.user_id
inner join `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT j on j.project_number = r.user_id
Expand Down
Loading

0 comments on commit 61edf36

Please sign in to comment.