Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/postgres_filter_pushdown.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,11 @@ string PostgresFilterPushdown::TransformConstantFilter(string &column_name, Cons
constant_string = TransformLiteral(constant_filter.constant);
}
auto operator_string = TransformComparison(constant_filter.comparison_type);
return StringUtil::Format("%s %s %s", column_name, operator_string, constant_string);
string comparison = StringUtil::Format("%s %s %s", column_name, operator_string, constant_string);
if (constant_filter.constant.type().id() == LogicalTypeId::VARCHAR) {
comparison += " COLLATE \"C\"";
}
return comparison;
}

string PostgresFilterPushdown::TransformFilter(string &column_name, TableFilter &filter, column_t column_id) {
Expand Down
51 changes: 51 additions & 0 deletions test/sql/storage/attach_like.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# name: test/sql/storage/attach_like.test
# description: Test LIKE statement
# group: [storage]

require postgres_scanner

require-env POSTGRES_TEST_DATABASE_AVAILABLE

statement ok
PRAGMA enable_verification

statement ok
ATTACH 'dbname=postgresscanner' AS s1 (TYPE POSTGRES)

statement ok
USE s1

statement ok
CREATE OR REPLACE TABLE like_test (col1 VARCHAR)

statement ok
INSERT INTO like_test VALUES ('foo8bar'),('foo9bar'),('Здра9вейте')

query I
FROM like_test WHERE col1 LIKE 'foo8%';
----
foo8bar

query I
FROM like_test WHERE col1 LIKE 'foo9%';
----
foo9bar

query I
FROM like_test WHERE col1 LIKE 'Здра%';
----
Здра9вейте

query I
FROM like_test WHERE col1 LIKE 'Здра9%';
----
Здра9вейте

statement ok
DROP TABLE like_test

statement ok
USE memory

statement ok
DETACH s1
Loading