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

Reply via email to