Skip to content

Instantly share code, notes, and snippets.

@yahonda
Created January 16, 2018 02:32
Show Gist options
  • Save yahonda/80664ed7de2c3b8fa270ac4d8f1edcbc to your computer and use it in GitHub Desktop.
Save yahonda/80664ed7de2c3b8fa270ac4d8f1edcbc to your computer and use it in GitHub Desktop.
rep1626_rails51.rb
# frozen_string_literal: true
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end
gemfile(true) do
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem "rails", github: "rails/rails", branch: "5-1-stable"
gem "activerecord-oracle_enhanced-adapter", github: "rsim/oracle-enhanced", branch: "release18"
gem "minitest"
platforms :ruby do
gem "ruby-oci8"
end
end
require "active_record"
require "minitest/autorun"
require "logger"
require "active_record/connection_adapters/oracle_enhanced_adapter"
# Ensure backward compatibility with Minitest 4
Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
# Set Oracle enhanced adapter specific connection parameters
DATABASE_NAME = ENV["DATABASE_NAME"] || "orcl"
DATABASE_HOST = ENV["DATABASE_HOST"]
DATABASE_PORT = ENV["DATABASE_PORT"]
DATABASE_USER = ENV["DATABASE_USER"] || "oracle_enhanced"
DATABASE_PASSWORD = ENV["DATABASE_PASSWORD"] || "oracle_enhanced"
DATABASE_SYS_PASSWORD = ENV["DATABASE_SYS_PASSWORD"] || "admin"
CONNECTION_PARAMS = {
adapter: "oracle_enhanced",
database: DATABASE_NAME,
host: DATABASE_HOST,
port: DATABASE_PORT,
username: DATABASE_USER,
password: DATABASE_PASSWORD
}
ActiveRecord::Base.establish_connection(CONNECTION_PARAMS)
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Schema.define do
create_table :users, :force => true do |t|
t.string :fullname
end
end
class User < ActiveRecord::Base
end
class BugTest < Minitest::Test
def test_some_unicode_test
u2 = User.create(fullname: '(ง ͠° ͟ل ͡°)ง')
u2.reload.fullname
assert_equal u2.fullname, '(ง ͠° ͟ل ͡°)ง'
end
end
@yahonda
Copy link
Author

yahonda commented Jan 16, 2018

$ ruby rep1626_rails51.rb
Fetching https://github.com/rails/rails.git
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using rake 12.3.0
Using concurrent-ruby 1.0.5
Using i18n 0.9.1
Using minitest 5.11.1
Using thread_safe 0.3.6
Using tzinfo 1.2.4
Using activesupport 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using builder 3.2.3
Using erubi 1.7.0
Using mini_portile2 2.3.0
Using nokogiri 1.8.1
Using rails-dom-testing 2.0.3
Using crass 1.0.3
Using loofah 2.1.1
Using rails-html-sanitizer 1.0.3
Using actionview 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using rack 2.0.3
Using rack-test 0.8.2
Using actionpack 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using nio4r 2.2.0
Using websocket-extensions 0.1.3
Using websocket-driver 0.6.5
Using actioncable 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using globalid 0.4.1
Using activejob 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using mini_mime 1.0.0
Using mail 2.7.0
Using actionmailer 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using activemodel 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using arel 8.0.0
Using activerecord 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using ruby-plsql 0.6.0
Using activerecord-oracle_enhanced-adapter 1.8.2 from https://github.com/rsim/oracle-enhanced.git (at /home/yahonda/git/oracle-enhanced@6eaf3a4)
Using bundler 1.16.1
Using method_source 0.9.0
Using thor 0.20.0
Using railties 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using sprockets 3.7.1
Using sprockets-rails 3.2.1
Using rails 5.1.4 from https://github.com/rails/rails.git (at 5-1-stable@f7e5f19)
Using ruby-oci8 2.2.5.1
-- create_table(:users, {:force=>true})
D, [2018-01-16T02:32:47.091621 #1588] DEBUG -- : (30.9ms) DROP TABLE "USERS"
D, [2018-01-16T02:32:47.100575 #1588] DEBUG -- : (8.4ms) DROP SEQUENCE "USERS_SEQ"
D, [2018-01-16T02:32:47.122795 #1588] DEBUG -- : (21.4ms) CREATE TABLE "USERS" ("ID" NUMBER(38) NOT NULL PRIMARY KEY, "FULLNAME" VARCHAR2(255))
D, [2018-01-16T02:32:47.127514 #1588] DEBUG -- : (4.3ms) CREATE SEQUENCE "USERS_SEQ" START WITH 10000
-> 0.1203s
D, [2018-01-16T02:32:47.161141 #1588] DEBUG -- : (2.4ms) SELECT SYS_CONTEXT('userenv', 'current_schema') FROM dual
D, [2018-01-16T02:32:47.178375 #1588] DEBUG -- : (6.5ms) SELECT cols.column_name AS name, cols.data_type AS sql_type, cols.data_default, cols.nullable, cols.virtual_column, cols.hidden_column, cols.data_type_owner AS sql_type_owner, DECODE(cols.data_type, 'NUMBER', data_precision, 'FLOAT', data_precision, 'VARCHAR2', DECODE(char_used, 'C', char_length, data_length), 'RAW', DECODE(char_used, 'C', char_length, data_length), 'CHAR', DECODE(char_used, 'C', char_length, data_length), NULL) AS limit, DECODE(data_type, 'NUMBER', data_scale, NULL) AS scale, comments.comments as column_comment FROM all_tab_cols cols, all_col_comments comments WHERE cols.owner = 'ORACLE_ENHANCED' AND cols.table_name = 'AR_INTERNAL_METADATA' AND cols.hidden_column = 'NO' AND cols.owner = comments.owner AND cols.table_name = comments.table_name AND cols.column_name = comments.column_name ORDER BY cols.column_id
D, [2018-01-16T02:32:47.182230 #1588] DEBUG -- : ActiveRecord::InternalMetadata Load (1.5ms) SELECT "AR_INTERNAL_METADATA".* FROM "AR_INTERNAL_METADATA" WHERE "AR_INTERNAL_METADATA"."KEY" = :a1 FETCH FIRST :a2 ROWS ONLY [["key", "environment"], ["LIMIT", 1]]
D, [2018-01-16T02:32:47.183435 #1588] DEBUG -- : (0.6ms) SELECT SYS_CONTEXT('userenv', 'current_schema') FROM dual
Run options: --seed 46018

Running:

D, [2018-01-16T02:32:47.208940 #1588] DEBUG -- : (4.4ms) SELECT cols.column_name AS name, cols.data_type AS sql_type, cols.data_default, cols.nullable, cols.virtual_column, cols.hidden_column, cols.data_type_owner AS sql_type_owner, DECODE(cols.data_type, 'NUMBER', data_precision, 'FLOAT', data_precision, 'VARCHAR2', DECODE(char_used, 'C', char_length, data_length), 'RAW', DECODE(char_used, 'C', char_length, data_length), 'CHAR', DECODE(char_used, 'C', char_length, data_length), NULL) AS limit, DECODE(data_type, 'NUMBER', data_scale, NULL) AS scale, comments.comments as column_comment FROM all_tab_cols cols, all_col_comments comments WHERE cols.owner = 'ORACLE_ENHANCED' AND cols.table_name = 'USERS' AND cols.hidden_column = 'NO' AND cols.owner = comments.owner AND cols.table_name = comments.table_name AND cols.column_name = comments.column_name ORDER BY cols.column_id
D, [2018-01-16T02:32:47.334985 #1588] DEBUG -- : (105.0ms) SELECT LOWER(view_name) FROM all_views WHERE owner = SYS_CONTEXT('userenv', 'current_schema')
D, [2018-01-16T02:32:47.337595 #1588] DEBUG -- : Sequence (1.2ms) select us.sequence_name from all_sequences us where us.sequence_owner = 'ORACLE_ENHANCED' and us.sequence_name = upper('USERS_seq')
D, [2018-01-16T02:32:47.341369 #1588] DEBUG -- : Primary Key (3.3ms) SELECT cc.column_name FROM all_constraints c, all_cons_columns cc WHERE c.owner = 'ORACLE_ENHANCED' AND c.table_name = 'USERS' AND c.constraint_type = 'P' AND cc.owner = c.owner AND cc.constraint_name = c.constraint_name
D, [2018-01-16T02:32:47.346792 #1588] DEBUG -- : Sequence (0.9ms) select us.sequence_name from all_sequences us where us.sequence_owner = 'ORACLE_ENHANCED' and us.sequence_name = upper('USERS_seq')
D, [2018-01-16T02:32:47.348836 #1588] DEBUG -- : Primary Key (1.6ms) SELECT cc.column_name FROM all_constraints c, all_cons_columns cc WHERE c.owner = 'ORACLE_ENHANCED' AND c.table_name = 'USERS' AND c.constraint_type = 'P' AND cc.owner = c.owner AND cc.constraint_name = c.constraint_name
D, [2018-01-16T02:32:47.350593 #1588] DEBUG -- : Primary Key Trigger (1.3ms) SELECT trigger_name
FROM all_triggers
WHERE owner = 'ORACLE_ENHANCED'
AND trigger_name = q'[USERS_PKT]'
AND table_owner = 'ORACLE_ENHANCED'
AND table_name = q'[USERS]'
AND status = 'ENABLED'

D, [2018-01-16T02:32:47.403521 #1588] DEBUG -- : SQL (48.6ms) INSERT INTO "USERS" ("FULLNAME", "ID") VALUES (:a1, :a2) [["fullname", "(ง ͠° ͟ل ͡°)ง"], ["id", 10000]]
D, [2018-01-16T02:32:47.410713 #1588] DEBUG -- : User Load (4.4ms) SELECT "USERS".* FROM "USERS" WHERE "USERS"."ID" = :a1 FETCH FIRST :a2 ROWS ONLY [["id", 10000], ["LIMIT", 1]]
.

Finished in 0.209073s, 4.7830 runs/s, 4.7830 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
$

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment