Skip to content

Commit b157815

Browse files
theoryoalders
authored andcommitted
Add CockroachDB
1 parent f082315 commit b157815

File tree

5 files changed

+94
-42
lines changed

5 files changed

+94
-42
lines changed

Changes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Revision history for Perl extension URI::db.
22

33
0.20
4+
- Added URI::cockroach.
45

56
0.19 2018-07-19T15:15:04Z
67
- Added URI::snowflake.

lib/URI/cockroach.pm

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package URI::cockroach;
2+
use base 'URI::_db';
3+
our $VERSION = '0.20';
4+
5+
sub default_port { 26257 }
6+
sub dbi_driver { 'Pg' }
7+
sub canonical_engine { 'cockroach' }
8+
9+
sub _dbi_param_map {
10+
my $self = shift;
11+
return (
12+
[ host => scalar $self->host ],
13+
[ port => scalar $self->port ],
14+
[ dbname => scalar $self->dbname ],
15+
);
16+
}

lib/URI/cockroachdb.pm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package URI::cockroachdb;
2+
use base 'URI::cockroach';
3+
our $VERSION = '0.20';

t/dbi.t

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,36 @@ for my $spec (
418418
dbi => [ [Server => 'foo'], [Port => 123], [Database => 'try'] ],
419419
qry => [ foo => 1, foo => 2, lol => 'yes', Driver => 'Snowflaker' ],
420420
},
421+
{
422+
uri => 'db:cockroach:',
423+
dsn => 'dbi:Pg:port=26257',
424+
dbi => [ [host => undef], [port => 26257], [dbname => undef] ],
425+
qry => [],
426+
},
427+
{
428+
uri => 'db:cockroach://xxx:5432',
429+
dsn => 'dbi:Pg:host=xxx;port=5432',
430+
dbi => [ [host => 'xxx'], [port => 5432], [dbname => undef] ],
431+
qry => [],
432+
},
433+
{
434+
uri => 'db:cockroach://foo:123/try?foo=1&foo=2&lol=yes',
435+
dsn => 'dbi:Pg:host=foo;port=123;dbname=try;foo=1;foo=2;lol=yes',
436+
dbi => [ [host => 'foo'], [port => 123], [dbname => 'try'] ],
437+
qry => [ foo => 1, foo => 2, lol => 'yes' ],
438+
},
439+
{
440+
uri => 'db:cockroachdb:',
441+
dsn => 'dbi:Pg:port=26257',
442+
dbi => [ [host => undef], [port => 26257], [dbname => undef] ],
443+
qry => [],
444+
},
445+
{
446+
uri => 'db:cockroachdb://foo:123/try?foo=1&foo=2&lol=yes',
447+
dsn => 'dbi:Pg:host=foo;port=123;dbname=try;foo=1;foo=2;lol=yes',
448+
dbi => [ [host => 'foo'], [port => 123], [dbname => 'try'] ],
449+
qry => [ foo => 1, foo => 2, lol => 'yes' ],
450+
},
421451
) {
422452
my $uri = $spec->{uri};
423453
ok my $u = URI->new($uri), "URI $uri";

t/engines.t

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,50 @@ use URI;
77
use URI::QueryParam;
88

99
for my $spec (
10-
[ db => undef, undef ],
11-
[ unknown => undef, undef ],
12-
[ postgresql => 5432, 'pg' ],
13-
[ postgres => 5432, 'pg' ],
14-
[ pgsql => 5432, 'pg' ],
15-
[ pg => 5432, 'pg' ],
16-
[ pgxc => 5432, 'pg' ],
17-
[ postgresxc => 5432, 'pg' ],
18-
[ redshift => 5432, 'pg' ],
19-
[ mysql => 3306, 'mysql' ],
20-
[ mariadb => 3306, 'mysql' ],
21-
[ maria => 3306, 'mysql' ],
22-
[ sqlite => undef, 'sqlite' ],
23-
[ sqlite3 => undef, 'sqlite' ],
24-
[ oracle => 1521, 'oracle' ],
25-
[ cubrid => 33000, 'cubrid' ], # ?
26-
[ firebird => 3050, 'firebird' ],
27-
[ mssql => 1433, 'mssql' ],
28-
[ sqlserver => 1433, 'mssql' ],
29-
[ db2 => 50000, 'db2' ], # ?
30-
[ ingres => 1524, 'ingres' ],
31-
[ sybase => 2638, 'sybase' ],
32-
[ informix => 1526, 'informix' ], # ?
33-
[ teradata => 1025, 'teradata' ],
34-
[ interbase => 3050, 'interbase' ],
35-
[ unify => 27117, 'unify' ], # ?
36-
[ mongodb => 27017, 'mongodb' ],
37-
[ mongo => 27017, 'mongodb' ],
38-
[ monetdb => 50000, 'monetdb' ], # ?
39-
[ monet => 50000, 'monetdb' ], # ?
40-
[ maxdb => 7673, 'maxdb' ], # ?
41-
[ max => 7673, 'maxdb' ], # ?
42-
[ impala => 21000, 'impala' ],
43-
[ couchdb => 5984, 'couchdb' ],
44-
[ couch => 5984, 'couchdb' ],
45-
[ hive => 10000, 'hive' ],
46-
[ cassandra => 9160, 'cassandra' ],
47-
[ derby => 1527, 'derby' ],
48-
[ vertica => 5433, 'vertica' ],
49-
[ ldapdb => undef, 'ldapdb' ],
50-
[ exasol => 8563, 'exasol' ],
51-
[ snowflake => 443, 'snowflake' ],
10+
[ db => undef, undef ],
11+
[ unknown => undef, undef ],
12+
[ postgresql => 5432, 'pg' ],
13+
[ postgres => 5432, 'pg' ],
14+
[ pgsql => 5432, 'pg' ],
15+
[ pg => 5432, 'pg' ],
16+
[ pgxc => 5432, 'pg' ],
17+
[ postgresxc => 5432, 'pg' ],
18+
[ redshift => 5432, 'pg' ],
19+
[ mysql => 3306, 'mysql' ],
20+
[ mariadb => 3306, 'mysql' ],
21+
[ maria => 3306, 'mysql' ],
22+
[ sqlite => undef, 'sqlite' ],
23+
[ sqlite3 => undef, 'sqlite' ],
24+
[ oracle => 1521, 'oracle' ],
25+
[ cubrid => 33000, 'cubrid' ], # ?
26+
[ firebird => 3050, 'firebird' ],
27+
[ mssql => 1433, 'mssql' ],
28+
[ sqlserver => 1433, 'mssql' ],
29+
[ db2 => 50000, 'db2' ], # ?
30+
[ ingres => 1524, 'ingres' ],
31+
[ sybase => 2638, 'sybase' ],
32+
[ informix => 1526, 'informix' ], # ?
33+
[ teradata => 1025, 'teradata' ],
34+
[ interbase => 3050, 'interbase' ],
35+
[ unify => 27117, 'unify' ], # ?
36+
[ mongodb => 27017, 'mongodb' ],
37+
[ mongo => 27017, 'mongodb' ],
38+
[ monetdb => 50000, 'monetdb' ], # ?
39+
[ monet => 50000, 'monetdb' ], # ?
40+
[ maxdb => 7673, 'maxdb' ], # ?
41+
[ max => 7673, 'maxdb' ], # ?
42+
[ impala => 21000, 'impala' ],
43+
[ couchdb => 5984, 'couchdb' ],
44+
[ couch => 5984, 'couchdb' ],
45+
[ hive => 10000, 'hive' ],
46+
[ cassandra => 9160, 'cassandra' ],
47+
[ derby => 1527, 'derby' ],
48+
[ vertica => 5433, 'vertica' ],
49+
[ ldapdb => undef, 'ldapdb' ],
50+
[ exasol => 8563, 'exasol' ],
51+
[ snowflake => 443, 'snowflake' ],
52+
[ cockroach => 26257, 'cockroach' ],
53+
[ cockroachdb => 26257, 'cockroach' ],
5254
) {
5355
my ($engine, $port, $canon) = @{ $spec };
5456
my $prefix = "db:$engine";

0 commit comments

Comments
 (0)