From aafe8d031fca55f82be56f56c3622e73cbd5b124 Mon Sep 17 00:00:00 2001 From: Tomoya AMACHI Date: Thu, 23 Jan 2020 01:31:12 +0900 Subject: [PATCH 1/5] Oracle : Local Naming Method --- dialect_oracle.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dialect_oracle.go b/dialect_oracle.go index 15010ca5..105eb7ff 100644 --- a/dialect_oracle.go +++ b/dialect_oracle.go @@ -870,7 +870,7 @@ func (cfg *goracleDriver) Parse(driverName, dataSourceName string) (*core.Uri, e db.DbName = match } } - if db.DbName == "" { + if db.DbName == "" && len(matches) != 0 { return nil, errors.New("dbname is empty") } return db, nil @@ -895,7 +895,7 @@ func (p *oci8Driver) Parse(driverName, dataSourceName string) (*core.Uri, error) db.DbName = match } } - if db.DbName == "" { + if db.DbName == "" && len(matches) != 0 { return nil, errors.New("dbname is empty") } return db, nil -- 2.40.1 From 2dc9add23e40c4b6fda62798c888b22dba61975e Mon Sep 17 00:00:00 2001 From: Tomoya AMACHI Date: Mon, 23 Mar 2020 05:00:37 +0900 Subject: [PATCH 2/5] add TestParseOracleConnStr --- dialect_oracle_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 dialect_oracle_test.go diff --git a/dialect_oracle_test.go b/dialect_oracle_test.go new file mode 100644 index 00000000..3faf6d7b --- /dev/null +++ b/dialect_oracle_test.go @@ -0,0 +1,36 @@ +package xorm + +import ( + "reflect" + "testing" + + "xorm.io/core" +) + +func TestParseOracleConnStr(t *testing.T) { + tests := []struct { + in string + expected string + valid bool + }{ + {"user/pass@tcp(server:1521)/db", "db", true}, + {"user/pass@server:1521/db", "db", true}, + // test for net service name : https://docs.oracle.com/cd/B13789_01/network.101/b10775/glossary.htm#i998113 + {"user/pass@server:1521", "", true}, + {"user/pass@", "", false}, + {"user/pass", "", false}, + {"", "", false}, + } + driver := core.QueryDriver("oci8") + for _, test := range tests { + t.Run(test.in, func(t *testing.T) { + driver := driver + uri, err := driver.Parse("oci8", test.in) + if err != nil && test.valid { + t.Errorf("%q got unexpected error: %s", test.in, err) + } else if err == nil && !reflect.DeepEqual(test.expected, uri.DbName) { + t.Errorf("%q got: %#v want: %#v", test.in, uri.DbName, test.expected) + } + }) + } +} -- 2.40.1 From 0dabb020aefd7dbe1f3b76b3bb74e9ff4cbe1fd9 Mon Sep 17 00:00:00 2001 From: Tomoya AMACHI Date: Mon, 23 Mar 2020 05:04:38 +0900 Subject: [PATCH 3/5] revert a goracle parser function --- dialect_oracle.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dialect_oracle.go b/dialect_oracle.go index 105eb7ff..da84eb9d 100644 --- a/dialect_oracle.go +++ b/dialect_oracle.go @@ -870,7 +870,7 @@ func (cfg *goracleDriver) Parse(driverName, dataSourceName string) (*core.Uri, e db.DbName = match } } - if db.DbName == "" && len(matches) != 0 { + if db.DbName == "" { return nil, errors.New("dbname is empty") } return db, nil -- 2.40.1 From b7677656334b71599f114d7e960148fe47e154a2 Mon Sep 17 00:00:00 2001 From: Tomoya AMACHI Date: Mon, 23 Mar 2020 05:18:18 +0900 Subject: [PATCH 4/5] stop using xorm.io/core --- dialects/oracle.go | 2 +- dialect_oracle_test.go => dialects/oracle_test.go | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) rename dialect_oracle_test.go => dialects/oracle_test.go (84%) diff --git a/dialects/oracle.go b/dialects/oracle.go index d0793382..466b6a45 100644 --- a/dialects/oracle.go +++ b/dialects/oracle.go @@ -842,7 +842,7 @@ func (p *oci8Driver) Parse(driverName, dataSourceName string) (*URI, error) { db.DBName = match } } - if db.DbName == "" && len(matches) != 0 { + if db.DBName == "" && len(matches) != 0 { return nil, errors.New("dbname is empty") } return db, nil diff --git a/dialect_oracle_test.go b/dialects/oracle_test.go similarity index 84% rename from dialect_oracle_test.go rename to dialects/oracle_test.go index 3faf6d7b..9c3a93f5 100644 --- a/dialect_oracle_test.go +++ b/dialects/oracle_test.go @@ -1,10 +1,8 @@ -package xorm +package dialects import ( "reflect" "testing" - - "xorm.io/core" ) func TestParseOracleConnStr(t *testing.T) { @@ -21,15 +19,15 @@ func TestParseOracleConnStr(t *testing.T) { {"user/pass", "", false}, {"", "", false}, } - driver := core.QueryDriver("oci8") + driver := QueryDriver("oci8") for _, test := range tests { t.Run(test.in, func(t *testing.T) { driver := driver uri, err := driver.Parse("oci8", test.in) if err != nil && test.valid { t.Errorf("%q got unexpected error: %s", test.in, err) - } else if err == nil && !reflect.DeepEqual(test.expected, uri.DbName) { - t.Errorf("%q got: %#v want: %#v", test.in, uri.DbName, test.expected) + } else if err == nil && !reflect.DeepEqual(test.expected, uri.DBName) { + t.Errorf("%q got: %#v want: %#v", test.in, uri.DBName, test.expected) } }) } -- 2.40.1 From d9106af06d1f7f2021a27013479d2db4a19252c5 Mon Sep 17 00:00:00 2001 From: Tomoya AMACHI Date: Mon, 23 Mar 2020 05:18:36 +0900 Subject: [PATCH 5/5] go mod tidy --- go.sum | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/go.sum b/go.sum index 33e5c456..84f9126e 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.37.4 h1:glPeL3BQJsbF6aIIYfZizMwc5LTYz250bDMjttbBGAU= cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= +gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s= gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= @@ -26,8 +27,6 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:9wScpmSP5A3Bk8V3XHWUcJmYTh+ZnlHVyc+A4oZYS3Y= -github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -158,7 +157,5 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -xorm.io/builder v0.3.6 h1:ha28mQ2M+TFx96Hxo+iq6tQgnkC9IZkM6D8w9sKHHF8= -xorm.io/builder v0.3.6/go.mod h1:LEFAPISnRzG+zxaxj2vPicRwz67BdhFreKg8yv8/TgU= xorm.io/builder v0.3.7 h1:2pETdKRK+2QG4mLX4oODHEhn5Z8j1m8sXa7jfu+/SZI= xorm.io/builder v0.3.7/go.mod h1:aUW0S9eb9VCaPohFCH3j7czOx1PMW3i1HrSzbLYGBSE= -- 2.40.1