Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
public
/
sequelize
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
不要怂,就是干,撸起袖子干!
Commit b6f04ac6
authored
Mar 26, 2019
by
Simon Schick
Committed by
Sushant
Mar 26, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(query-generator): convert numbers to date types (#10569)
1 parent
b0da59b6
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
34 deletions
lib/dialects/abstract/query-generator.js
test/unit/sql/where.test.js
test/unit/utils.test.js
lib/dialects/abstract/query-generator.js
View file @
b6f04ac
...
@@ -2365,7 +2365,7 @@ class QueryGenerator {
...
@@ -2365,7 +2365,7 @@ class QueryGenerator {
return
this
.
_joinKeyValue
(
key
,
`(
${
this
.
escape
(
value
,
field
)}
)`
,
comparator
,
options
.
prefix
);
return
this
.
_joinKeyValue
(
key
,
`(
${
this
.
escape
(
value
,
field
)}
)`
,
comparator
,
options
.
prefix
);
case
Op
.
between
:
case
Op
.
between
:
case
Op
.
notBetween
:
case
Op
.
notBetween
:
return
this
.
_joinKeyValue
(
key
,
`
${
this
.
escape
(
value
[
0
]
)}
AND
${
this
.
escape
(
value
[
1
]
)}
`
,
comparator
,
options
.
prefix
);
return
this
.
_joinKeyValue
(
key
,
`
${
this
.
escape
(
value
[
0
]
,
field
)}
AND
${
this
.
escape
(
value
[
1
],
field
)}
`
,
comparator
,
options
.
prefix
);
case
Op
.
raw
:
case
Op
.
raw
:
throw
new
Error
(
'The `$raw` where property is no longer supported. Use `sequelize.literal` instead.'
);
throw
new
Error
(
'The `$raw` where property is no longer supported. Use `sequelize.literal` instead.'
);
case
Op
.
col
:
case
Op
.
col
:
...
...
test/unit/sql/where.test.js
View file @
b6f04ac
...
@@ -118,7 +118,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -118,7 +118,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
mssql
:
'[deleted] IS NULL'
mssql
:
'[deleted] IS NULL'
});
});
describe
(
'
$
in'
,
()
=>
{
describe
(
'
Op.
in'
,
()
=>
{
testsql
(
'equipment'
,
{
testsql
(
'equipment'
,
{
[
Op
.
in
]:
[
1
,
3
]
[
Op
.
in
]:
[
1
,
3
]
},
{
},
{
...
@@ -156,7 +156,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -156,7 +156,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
not'
,
()
=>
{
describe
(
'
Op.
not'
,
()
=>
{
testsql
(
'deleted'
,
{
testsql
(
'deleted'
,
{
[
Op
.
not
]:
true
[
Op
.
not
]:
true
},
{
},
{
...
@@ -178,7 +178,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -178,7 +178,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
notIn'
,
()
=>
{
describe
(
'
Op.
notIn'
,
()
=>
{
testsql
(
'equipment'
,
{
testsql
(
'equipment'
,
{
[
Op
.
notIn
]:
[]
[
Op
.
notIn
]:
[]
},
{
},
{
...
@@ -200,7 +200,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -200,7 +200,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
ne'
,
()
=>
{
describe
(
'
Op.
ne'
,
()
=>
{
testsql
(
'email'
,
{
testsql
(
'email'
,
{
[
Op
.
ne
]:
'jack.bauer@gmail.com'
[
Op
.
ne
]:
'jack.bauer@gmail.com'
},
{
},
{
...
@@ -209,8 +209,8 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -209,8 +209,8 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$and/$or/$
not'
,
()
=>
{
describe
(
'
Op.and/Op.or/Op.
not'
,
()
=>
{
describe
(
'
$
or'
,
()
=>
{
describe
(
'
Op.
or'
,
()
=>
{
testsql
(
'email'
,
{
testsql
(
'email'
,
{
[
Op
.
or
]:
[
'maker@mhansen.io'
,
'janzeh@gmail.com'
]
[
Op
.
or
]:
[
'maker@mhansen.io'
,
'janzeh@gmail.com'
]
},
{
},
{
...
@@ -292,7 +292,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -292,7 +292,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
and'
,
()
=>
{
describe
(
'
Op.
and'
,
()
=>
{
testsql
(
Op
.
and
,
{
testsql
(
Op
.
and
,
{
[
Op
.
or
]:
{
[
Op
.
or
]:
{
group_id
:
1
,
group_id
:
1
,
...
@@ -345,7 +345,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -345,7 +345,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
not'
,
()
=>
{
describe
(
'
Op.
not'
,
()
=>
{
testsql
(
Op
.
not
,
{
testsql
(
Op
.
not
,
{
[
Op
.
or
]:
{
[
Op
.
or
]:
{
group_id
:
1
,
group_id
:
1
,
...
@@ -366,7 +366,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -366,7 +366,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
col'
,
()
=>
{
describe
(
'
Op.
col'
,
()
=>
{
testsql
(
'userId'
,
{
testsql
(
'userId'
,
{
[
Op
.
col
]:
'user.id'
[
Op
.
col
]:
'user.id'
},
{
},
{
...
@@ -409,7 +409,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -409,7 +409,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
gt'
,
()
=>
{
describe
(
'
Op.
gt'
,
()
=>
{
testsql
(
'rank'
,
{
testsql
(
'rank'
,
{
[
Op
.
gt
]:
2
[
Op
.
gt
]:
2
},
{
},
{
...
@@ -425,7 +425,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -425,7 +425,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
like'
,
()
=>
{
describe
(
'
Op.
like'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
like
]:
'%swagger'
[
Op
.
like
]:
'%swagger'
},
{
},
{
...
@@ -434,7 +434,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -434,7 +434,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
startsWith'
,
()
=>
{
describe
(
'
Op.
startsWith'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
startsWith
]:
'swagger'
[
Op
.
startsWith
]:
'swagger'
},
{
},
{
...
@@ -443,7 +443,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -443,7 +443,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
endsWith'
,
()
=>
{
describe
(
'
Op.
endsWith'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
endsWith
]:
'swagger'
[
Op
.
endsWith
]:
'swagger'
},
{
},
{
...
@@ -452,7 +452,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -452,7 +452,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
substring'
,
()
=>
{
describe
(
'
Op.
substring'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
substring
]:
'swagger'
[
Op
.
substring
]:
'swagger'
},
{
},
{
...
@@ -461,7 +461,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -461,7 +461,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
between'
,
()
=>
{
describe
(
'
Op.
between'
,
()
=>
{
testsql
(
'date'
,
{
testsql
(
'date'
,
{
[
Op
.
between
]:
[
'2013-01-01'
,
'2013-01-11'
]
[
Op
.
between
]:
[
'2013-01-01'
,
'2013-01-11'
]
},
{
},
{
...
@@ -470,6 +470,30 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -470,6 +470,30 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
testsql
(
'date'
,
{
testsql
(
'date'
,
{
[
Op
.
between
]:
[
new
Date
(
'2013-01-01'
),
new
Date
(
'2013-01-11'
)]
},
{
default
:
"[date] BETWEEN '2013-01-01 00:00:00.000 +00:00' AND '2013-01-11 00:00:00.000 +00:00'"
,
mysql
:
"`date` BETWEEN '2013-01-01 00:00:00' AND '2013-01-11 00:00:00'"
,
mariadb
:
"`date` BETWEEN '2013-01-01 00:00:00.000' AND '2013-01-11 00:00:00.000'"
});
testsql
(
'date'
,
{
[
Op
.
between
]:
[
1356998400000
,
1357862400000
]
},
{
model
:
{
rawAttributes
:
{
date
:
{
type
:
new
DataTypes
.
DATE
()
}
}
}
},
{
default
:
"[date] BETWEEN '2013-01-01 00:00:00.000 +00:00' AND '2013-01-11 00:00:00.000 +00:00'"
,
mssql
:
"[date] BETWEEN N'2013-01-01 00:00:00.000 +00:00' AND N'2013-01-11 00:00:00.000 +00:00'"
});
testsql
(
'date'
,
{
[
Op
.
between
]:
[
'2012-12-10'
,
'2013-01-02'
],
[
Op
.
between
]:
[
'2012-12-10'
,
'2013-01-02'
],
[
Op
.
notBetween
]:
[
'2013-01-04'
,
'2013-01-20'
]
[
Op
.
notBetween
]:
[
'2013-01-04'
,
'2013-01-20'
]
},
{
},
{
...
@@ -478,7 +502,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -478,7 +502,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
notBetween'
,
()
=>
{
describe
(
'
Op.
notBetween'
,
()
=>
{
testsql
(
'date'
,
{
testsql
(
'date'
,
{
[
Op
.
notBetween
]:
[
'2013-01-01'
,
'2013-01-11'
]
[
Op
.
notBetween
]:
[
'2013-01-01'
,
'2013-01-11'
]
},
{
},
{
...
@@ -489,7 +513,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -489,7 +513,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
if
(
current
.
dialect
.
supports
.
ARRAY
)
{
if
(
current
.
dialect
.
supports
.
ARRAY
)
{
describe
(
'ARRAY'
,
()
=>
{
describe
(
'ARRAY'
,
()
=>
{
describe
(
'
$
contains'
,
()
=>
{
describe
(
'
Op.
contains'
,
()
=>
{
testsql
(
'muscles'
,
{
testsql
(
'muscles'
,
{
[
Op
.
contains
]:
[
2
,
3
]
[
Op
.
contains
]:
[
2
,
3
]
},
{
},
{
...
@@ -513,7 +537,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -513,7 +537,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
overlap'
,
()
=>
{
describe
(
'
Op.
overlap'
,
()
=>
{
testsql
(
'muscles'
,
{
testsql
(
'muscles'
,
{
[
Op
.
overlap
]:
[
3
,
11
]
[
Op
.
overlap
]:
[
3
,
11
]
},
{
},
{
...
@@ -521,7 +545,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -521,7 +545,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
any'
,
()
=>
{
describe
(
'
Op.
any'
,
()
=>
{
testsql
(
'userId'
,
{
testsql
(
'userId'
,
{
[
Op
.
any
]:
[
4
,
5
,
6
]
[
Op
.
any
]:
[
4
,
5
,
6
]
},
{
},
{
...
@@ -538,7 +562,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -538,7 +562,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
postgres
:
'"userId" = ANY (ARRAY[2,5]::INTEGER[])'
postgres
:
'"userId" = ANY (ARRAY[2,5]::INTEGER[])'
});
});
describe
(
'
$
values'
,
()
=>
{
describe
(
'
Op.
values'
,
()
=>
{
testsql
(
'userId'
,
{
testsql
(
'userId'
,
{
[
Op
.
any
]:
{
[
Op
.
any
]:
{
[
Op
.
values
]:
[
4
,
5
,
6
]
[
Op
.
values
]:
[
4
,
5
,
6
]
...
@@ -561,7 +585,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -561,7 +585,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
all'
,
()
=>
{
describe
(
'
Op.
all'
,
()
=>
{
testsql
(
'userId'
,
{
testsql
(
'userId'
,
{
[
Op
.
all
]:
[
4
,
5
,
6
]
[
Op
.
all
]:
[
4
,
5
,
6
]
},
{
},
{
...
@@ -578,7 +602,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -578,7 +602,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
postgres
:
'"userId" = ALL (ARRAY[2,5]::INTEGER[])'
postgres
:
'"userId" = ALL (ARRAY[2,5]::INTEGER[])'
});
});
describe
(
'
$
values'
,
()
=>
{
describe
(
'
Op.
values'
,
()
=>
{
testsql
(
'userId'
,
{
testsql
(
'userId'
,
{
[
Op
.
all
]:
{
[
Op
.
all
]:
{
[
Op
.
values
]:
[
4
,
5
,
6
]
[
Op
.
values
]:
[
4
,
5
,
6
]
...
@@ -601,7 +625,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -601,7 +625,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
like'
,
()
=>
{
describe
(
'
Op.
like'
,
()
=>
{
testsql
(
'userId'
,
{
testsql
(
'userId'
,
{
[
Op
.
like
]:
{
[
Op
.
like
]:
{
[
Op
.
any
]:
[
'foo'
,
'bar'
,
'baz'
]
[
Op
.
any
]:
[
'foo'
,
'bar'
,
'baz'
]
...
@@ -1064,7 +1088,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1064,7 +1088,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
}
}
if
(
current
.
dialect
.
supports
.
REGEXP
)
{
if
(
current
.
dialect
.
supports
.
REGEXP
)
{
describe
(
'
$
regexp'
,
()
=>
{
describe
(
'
Op.
regexp'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
regexp
]:
'^sw.*r$'
[
Op
.
regexp
]:
'^sw.*r$'
},
{
},
{
...
@@ -1074,7 +1098,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1074,7 +1098,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
regexp'
,
()
=>
{
describe
(
'
Op.
regexp'
,
()
=>
{
testsql
(
'newline'
,
{
testsql
(
'newline'
,
{
[
Op
.
regexp
]:
'^new\nline$'
[
Op
.
regexp
]:
'^new\nline$'
},
{
},
{
...
@@ -1084,7 +1108,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1084,7 +1108,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
notRegexp'
,
()
=>
{
describe
(
'
Op.
notRegexp'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
notRegexp
]:
'^sw.*r$'
[
Op
.
notRegexp
]:
'^sw.*r$'
},
{
},
{
...
@@ -1094,7 +1118,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1094,7 +1118,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
notRegexp'
,
()
=>
{
describe
(
'
Op.
notRegexp'
,
()
=>
{
testsql
(
'newline'
,
{
testsql
(
'newline'
,
{
[
Op
.
notRegexp
]:
'^new\nline$'
[
Op
.
notRegexp
]:
'^new\nline$'
},
{
},
{
...
@@ -1105,7 +1129,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1105,7 +1129,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
if
(
current
.
dialect
.
name
===
'postgres'
)
{
if
(
current
.
dialect
.
name
===
'postgres'
)
{
describe
(
'
$
iRegexp'
,
()
=>
{
describe
(
'
Op.
iRegexp'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
iRegexp
]:
'^sw.*r$'
[
Op
.
iRegexp
]:
'^sw.*r$'
},
{
},
{
...
@@ -1113,7 +1137,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1113,7 +1137,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
iRegexp'
,
()
=>
{
describe
(
'
Op.
iRegexp'
,
()
=>
{
testsql
(
'newline'
,
{
testsql
(
'newline'
,
{
[
Op
.
iRegexp
]:
'^new\nline$'
[
Op
.
iRegexp
]:
'^new\nline$'
},
{
},
{
...
@@ -1121,7 +1145,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1121,7 +1145,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
notIRegexp'
,
()
=>
{
describe
(
'
Op.
notIRegexp'
,
()
=>
{
testsql
(
'username'
,
{
testsql
(
'username'
,
{
[
Op
.
notIRegexp
]:
'^sw.*r$'
[
Op
.
notIRegexp
]:
'^sw.*r$'
},
{
},
{
...
@@ -1129,7 +1153,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
...
@@ -1129,7 +1153,7 @@ describe(Support.getTestDialectTeaser('SQL'), () => {
});
});
});
});
describe
(
'
$
notIRegexp'
,
()
=>
{
describe
(
'
Op.
notIRegexp'
,
()
=>
{
testsql
(
'newline'
,
{
testsql
(
'newline'
,
{
[
Op
.
notIRegexp
]:
'^new\nline$'
[
Op
.
notIRegexp
]:
'^new\nline$'
},
{
},
{
...
...
test/unit/utils.test.js
View file @
b6f04ac
...
@@ -144,7 +144,7 @@ describe(Support.getTestDialectTeaser('Utils'), () => {
...
@@ -144,7 +144,7 @@ describe(Support.getTestDialectTeaser('Utils'), () => {
});
});
});
});
it
(
'
$
or where'
,
()
=>
{
it
(
'
Op.
or where'
,
()
=>
{
expect
(
Utils
.
mapOptionFieldNames
({
expect
(
Utils
.
mapOptionFieldNames
({
where
:
{
where
:
{
[
Op
.
or
]:
{
[
Op
.
or
]:
{
...
@@ -171,7 +171,7 @@ describe(Support.getTestDialectTeaser('Utils'), () => {
...
@@ -171,7 +171,7 @@ describe(Support.getTestDialectTeaser('Utils'), () => {
});
});
});
});
it
(
'
$
or[] where'
,
()
=>
{
it
(
'
Op.
or[] where'
,
()
=>
{
expect
(
Utils
.
mapOptionFieldNames
({
expect
(
Utils
.
mapOptionFieldNames
({
where
:
{
where
:
{
[
Op
.
or
]:
[
[
Op
.
or
]:
[
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment