Title: [867] trunk/activerecord-jdbc:
Add tests for aliasing with multibyte characters,
and make sure that column names are also always unicode strings
- Revision
- 867
- Author
- olabini
- Date
- 2008-01-05 09:08:05 -0500 (Sat, 05 Jan 2008)
Log Message
Add tests for aliasing with multibyte characters, and make sure that column names are also always unicode strings
Modified Paths
Diff
Modified: trunk/activerecord-jdbc/src/java/jdbc_adapter/JdbcAdapterInternalService.java (866 => 867)
--- trunk/activerecord-jdbc/src/java/jdbc_adapter/JdbcAdapterInternalService.java 2008-01-05 04:53:19 UTC (rev 866)
+++ trunk/activerecord-jdbc/src/java/jdbc_adapter/JdbcAdapterInternalService.java 2008-01-05 14:08:05 UTC (rev 867)
@@ -668,7 +668,7 @@
int[] col_scale = new int[col_count];
for(int i=0;i<col_count;i++) {
- col_names[i] = runtime.newString(metadata.getColumnName(i+1).toLowerCase());
+ col_names[i] = RubyString.newUnicodeString(runtime, metadata.getColumnName(i+1).toLowerCase());
col_types[i] = metadata.getColumnType(i+1);
col_scale[i] = metadata.getScale(i+1);
}
@@ -707,7 +707,7 @@
if(storesUpper && !HAS_SMALL.matcher(s1).find()) {
s1 = s1.toLowerCase();
}
- col_names[i] = runtime.newString(s1);
+ col_names[i] = RubyString.newUnicodeString(runtime, s1);
col_types[i] = metadata.getColumnType(i+1);
col_scale[i] = metadata.getScale(i+1);
}
@@ -741,7 +741,7 @@
int[] col_scale = new int[col_count];
for (int i=0;i<col_count;i++) {
- col_names[i] = runtime.newString(metadata.getColumnName(i+1));
+ col_names[i] = RubyString.newUnicodeString(runtime, metadata.getColumnName(i+1));
col_types[i] = metadata.getColumnType(i+1);
col_scale[i] = metadata.getScale(i+1);
}
Modified: trunk/activerecord-jdbc/test/simple.rb (866 => 867)
--- trunk/activerecord-jdbc/test/simple.rb 2008-01-05 04:53:19 UTC (rev 866)
+++ trunk/activerecord-jdbc/test/simple.rb 2008-01-05 14:08:05 UTC (rev 867)
@@ -167,6 +167,18 @@
super
end
+ def test_multibyte_aliasing
+ str = "テスト"
+ quoted_alias = Entry.connection.quote_column_name(str)
+ sql = "SELECT title AS #{quoted_alias} from entries"
+ records = Entry.connection.select_all(sql)
+ records.each do |rec|
+ rec.keys.each do |key|
+ assert_equal str, key
+ end
+ end
+ end
+
def test_select_multibyte_string
@java_con.createStatement().execute("insert into entries (title, content) values ('テスト', '本文')")
entry = Entry.find(:first)
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel