Skip to content

Commit d45ec4e

Browse files
committed
fix oracle test expectatiion for limit emulation
1 parent fe14303 commit d45ec4e

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

t/11-sql-with-models.t

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ SELECT
9090
) AS SUB_ALIAS
9191
FROM BLOG
9292
WHERE (BLOG.NAME = ?)
93+
EOF
94+
95+
$expected = sql_normalize(<<'EOF') if DodTestUtil->driver eq 'Oracle';
96+
SELECT BLOG.ID, BLOG.PARENT_ID, BLOG.NAME, (SELECT * FROM (SELECT ENTRY.ID FROM ENTRY WHERE (ENTRY.BLOG_ID = BLOG.ID) AND (ENTRY.TEXT = ?)) WHERE rownum <= 1) AS SUB_ALIAS FROM BLOG WHERE (BLOG.NAME = ?)
9397
EOF
9498

9599
is sql_normalize($stmt->as_sql), sql_normalize($expected), 'right sql';
@@ -122,6 +126,10 @@ SELECT
122126
) AS SUB_ALIAS
123127
FROM BLOG
124128
WHERE (BLOG.NAME = ?)
129+
EOF
130+
131+
$expected = sql_normalize(<<'EOF') if DodTestUtil->driver eq 'Oracle';
132+
SELECT BLOG.ID, BLOG.PARENT_ID, BLOG.NAME, (SELECT * FROM (SELECT ENTRY.ID FROM ENTRY WHERE (ENTRY.BLOG_ID = BLOG.ID) AND (ENTRY.TEXT = ?)) WHERE rownum <= 1) AS SUB_ALIAS FROM BLOG WHERE (BLOG.NAME = ?)
125133
EOF
126134

127135
is sql_normalize($stmt->as_sql), sql_normalize($expected), 'right sql';
@@ -267,6 +275,11 @@ WHERE
267275
(ENTRY.BLOG_ID IN (SELECT BLOG.ID FROM BLOG WHERE (BLOG.NAME LIKE ? ESCAPE '!')))
268276
LIMIT 4
269277
EOF
278+
279+
$expected = sql_normalize(<<'EOF') if DodTestUtil->driver eq 'Oracle';
280+
SELECT * FROM (SELECT ENTRY.ID, ENTRY.BLOG_ID, ENTRY.TITLE, ENTRY.TEXT FROM ENTRY WHERE (ENTRY.TEXT = ?) AND (ENTRY.BLOG_ID IN (SELECT BLOG.ID FROM BLOG WHERE (BLOG.NAME LIKE ? ESCAPE '!')))) WHERE rownum <= 4
281+
EOF
282+
270283
is sql_normalize($stmt->as_sql), sql_normalize($expected), 'right sql';
271284
is_deeply($stmt->{bind}, ['first', 'blog1'], 'right bind values');
272285
my @res = Blog->driver->search('Blog', $stmt);
@@ -319,6 +332,11 @@ WHERE
319332
)
320333
LIMIT 4
321334
EOF
335+
336+
$expected = sql_normalize(<<'EOF') if DodTestUtil->driver eq 'Oracle';
337+
SELECT * FROM (SELECT ENTRY.ID, ENTRY.BLOG_ID, ENTRY.TITLE, ENTRY.TEXT FROM ENTRY WHERE (((TEXT = ?)) OR ((BLOG_ID IN (SELECT BLOG.ID FROM BLOG WHERE ((NAME LIKE ? ESCAPE '!')) AND ((NAME LIKE ? ESCAPE '!'))))) OR ((TEXT = ?))) AND ((ID IN (?,?)))) WHERE rownum <= 4
338+
EOF
339+
322340
is sql_normalize($stmt->as_sql), sql_normalize($expected), 'right sql';
323341
is_deeply($stmt->{bind}, ['first', 'blog!%', '!%2', 'second', $blog1->ID, $blog2->ID], 'right bind values');
324342
my @res = Blog->driver->search('Blog', $stmt);

t/schemas/entry.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ CREATE TABLE ENTRY (
22
ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
33
BLOG_ID INTEGER,
44
TITLE VARCHAR(50),
5-
TEXT MEDIUMTEXT
5+
TEXT VARCHAR(50)
66
)

0 commit comments

Comments
 (0)