Skip to content

Commit

Permalink
Merge pull request #4630 from jpschorr/add-partiql-mode
Browse files Browse the repository at this point in the history
Add partiql mode
  • Loading branch information
nightwing committed Feb 18, 2022
2 parents c34aa27 + 7fa7e8c commit f9c58ce
Show file tree
Hide file tree
Showing 9 changed files with 2,101 additions and 0 deletions.
68 changes: 68 additions & 0 deletions demo/kitchen-sink/docs/ion.ion
@@ -0,0 +1,68 @@
// Comment
/*
Multi
Line
Comment
*/
[1,2,3,45 /*TODO: should be 42, obviously*/, 2016-04-21T08:10:46Z, 2016-04-21T08:10:46-08:00, 2016-04-21, 2016, 0x5, 0b0110]
(5 7 1 3 [
'a', 'b',
null, null.int, null.bool, null.list
true, false,
nan, -inf, +inf,
"str",
"str with embedded \" ",
'''str with embedded \''' ''',
{{"clob content"}},
{{ AB/ }}
])

'''

multi
line
string

'''

states::{
// https://amzn.github.io/ion-docs/docs/spec.html
root: rules::[
include::'value'
],

// https://amzn.github.io/ion-docs/docs/spec.html#string
string: rules::[
match::{
regex: "(\\\")((?:\\\\\"|[^\"])*)(\\\")",
token: ['string.dblq.punc.start', 'string.dblq', 'string.dblq.punc.end']
},
push::{
regex: "\'{3}",
token: 'string.trpq.punc.start',
states: rules::[
pop::{
regex: "\'{3}",
token: 'string.trpq.punc.end',
},
match::{
regex: "(?:\\\\'*|.|[^']*)",
token: 'string.trpq'
}
]
},
],

/*
...
*/
}
{
"json": {
"compatibility": true,
"open sourced": "2016-04-21T08:10:46Z",
"foo": 9,
"bar": 1.1,
"baz": [{"id": 1}, {"id":2}]
}
}
62 changes: 62 additions & 0 deletions demo/kitchen-sink/docs/partiql.partiql
@@ -0,0 +1,62 @@
-- comment
/* multi
line
comment */

SELECT a, b, c FROM stuff s INNER CROSS JOIN @s WHERE f(s) -- comment
-- comment
SELECT "a", b FROM stuff s, @s WHERE f(s)

SELECT VALUE {'sensor': s.sensor,
'readings': (SELECT VALUE l.co
FROM logs as l
WHERE l.sensor = s.sensor
)
}
FROM sensors AS s

SELECT VALUE (PIVOT v AT g
FROM UNPIVOT r as v At g
WHERE g LIKE 'co%')
FROM sensors AS r


SELECT x.*
FROM [{'a':1, 'b':1}, {'a':2}, 'foo'] AS x

-- NOTE: the embedded ion values parse as ion (inside the backticks "`")
SELECT x.*
FROM `[{'a':1, 'b':1}, {'a':2}, "foo"]` AS x

SELECT VALUE {v.a: v.b, v.c: v.d}
FROM <<{'a':'same', 'b':1, 'c':'same', 'd':2}>> AS v

SELECT u.id, feedbackId, commentId, upvoteId
FROM users as u, u.feedbacks as feedback at feedbackId
LEFT CROSS JOIN feedback.comments as comment AT commentId
LEFT CROSS JOIN UNPIVOT comment.upvotes as upvote at upvoteId


SELECT (
SELECT numRec, tabulated
FROM committed.changes changes,
(SELECT u.id, feedbackId, commentId, upvoteId
FROM changes.tabulated as u,
u.feedbacks as feedback at feedbackId LEFT CROSS JOIN feedback.comments as comment AT commentId
LEFT CROSS JOIN UNPIVOT comment.upvotes as upvote at upvoteId
) as tabulated,
changes.numRec as numRec
)
AS changes
FROM incoming_committed committed

SELECT SUM(AVG(n)) FROM <<numbers, numbers>> AS n

SELECT VALUES v.a
FROM [{'a':1, 'b':true}, {'a':2, 'b':null}, {'a':3}] v
WHERE v.b

SELECT attributeId, COUNT(*) as the_count
FROM repeating_things
GROUP BY attributeId GROUP AS g
HAVING 1 = 0
2 changes: 2 additions & 0 deletions lib/ace/ext/modelist.js
Expand Up @@ -106,6 +106,7 @@ var supportedModes = {
HTML_Ruby: ["erb|rhtml|html.erb"],
INI: ["ini|conf|cfg|prefs"],
Io: ["io"],
Ion: ["ion"],
Jack: ["jack"],
Jade: ["jade|pug"],
Java: ["java"],
Expand Down Expand Up @@ -147,6 +148,7 @@ var supportedModes = {
Nunjucks: ["nunjucks|nunjs|nj|njk"],
ObjectiveC: ["m|mm"],
OCaml: ["ml|mli"],
PartiQL: ["partiql|pql"],
Pascal: ["pas|p"],
Perl: ["pl|pm"],
pgSQL: ["pgsql"],
Expand Down

0 comments on commit f9c58ce

Please sign in to comment.