mirror of
https://github.com/apache/impala.git
synced 2026-02-03 18:00:39 -05:00
IMPALA-12793 changes the syntax for creating JDBC table. The configurations of connection credentials - url, username, password, jdbc driver, etc, are set as table properties. This patch allows user to change these table properties, or edit columns via ALTER TABLE statement. Testing: - Added frontend analysis unit-tests. - Added end-to-end unit-test. - Passed Core tests Change-Id: I5ebb5de2c686d2015db78641f78299dd5f33621e Reviewed-on: http://gerrit.cloudera.org:8080/21088 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
556 lines
18 KiB
Plaintext
556 lines
18 KiB
Plaintext
====
|
|
---- QUERY
|
|
# Create external JDBC DataSource table
|
|
DROP TABLE IF EXISTS alltypes_jdbc_datasource;
|
|
CREATE TABLE alltypes_jdbc_datasource (
|
|
id INT,
|
|
bool_col BOOLEAN,
|
|
tinyint_col TINYINT,
|
|
smallint_col SMALLINT,
|
|
int_col INT,
|
|
bigint_col BIGINT,
|
|
float_col FLOAT,
|
|
double_col DOUBLE,
|
|
date_col DATE,
|
|
string_col STRING,
|
|
timestamp_col TIMESTAMP)
|
|
STORED BY JDBC
|
|
TBLPROPERTIES (
|
|
"database.type"="POSTGRES",
|
|
"jdbc.url"="jdbc:postgresql://$INTERNAL_LISTEN_HOST:5432/functional",
|
|
"jdbc.properties"="connect_timeout=20, application_name=\"myapp\"",
|
|
"jdbc.driver"="org.postgresql.Driver",
|
|
"driver.url"="$FILESYSTEM_PREFIX/test-warehouse/data-sources/jdbc-drivers/postgresql-jdbc.jar",
|
|
"dbcp.username"="hiveuser",
|
|
"dbcp.password"="password",
|
|
"table"="alltypes");
|
|
---- RESULTS
|
|
'Table has been created.'
|
|
====
|
|
---- QUERY
|
|
# Create external JDBC DataSource table
|
|
DROP TABLE IF EXISTS alltypes_jdbc_datasource_2;
|
|
CREATE TABLE alltypes_jdbc_datasource_2 (
|
|
id INT,
|
|
bool_col BOOLEAN,
|
|
tinyint_col TINYINT,
|
|
smallint_col SMALLINT,
|
|
int_col INT,
|
|
bigint_col BIGINT,
|
|
float_col FLOAT,
|
|
double_col DOUBLE,
|
|
date_col DATE,
|
|
string_col STRING,
|
|
timestamp_col TIMESTAMP)
|
|
STORED BY JDBC
|
|
TBLPROPERTIES (
|
|
"database.type"="POSTGRES",
|
|
"jdbc.url"="jdbc:postgresql://$INTERNAL_LISTEN_HOST:5432/functional",
|
|
"jdbc.driver"="org.postgresql.Driver",
|
|
"driver.url"="$FILESYSTEM_PREFIX/test-warehouse/data-sources/jdbc-drivers/postgresql-jdbc.jar",
|
|
"dbcp.username"="hiveuser",
|
|
"dbcp.password"="password",
|
|
"table"="AllTypesWithQuote",
|
|
"column.mapping"="id=id, bool_col=Bool_col, tinyint_col=Tinyint_col, smallint_col=Smallint_col, int_col=Int_col, bigint_col=Bigint_col, float_col=Float_col, double_col=Double_col, date_col=date_col, string_col=String_col, timestamp=Timestamp");
|
|
---- RESULTS
|
|
'Table has been created.'
|
|
====
|
|
---- QUERY
|
|
# Test the jdbc DataSource
|
|
# count(*) with a predicate evaluated by Impala
|
|
select count(*) from alltypes_jdbc_datasource
|
|
where float_col = 0 and string_col is not NULL
|
|
---- RESULTS
|
|
730
|
|
---- TYPES
|
|
BIGINT
|
|
====
|
|
---- QUERY
|
|
# count(*) with no predicates has no materialized slots
|
|
select count(*) from alltypes_jdbc_datasource
|
|
---- RESULTS
|
|
7300
|
|
---- TYPES
|
|
BIGINT
|
|
====
|
|
---- QUERY
|
|
# Gets all types including a row with a NULL value. The predicate pushed to
|
|
# the DataSource.
|
|
select *
|
|
from alltypes_jdbc_datasource
|
|
where id > 10 and int_col< 5 limit 5
|
|
---- RESULTS
|
|
11,false,1,1,1,10,1.100000023841858,10.1,2009-01-02,'1',2009-01-02 00:11:00.450000000
|
|
12,true,2,2,2,20,2.200000047683716,20.2,2009-01-02,'2',2009-01-02 00:12:00.460000000
|
|
13,false,3,3,3,30,3.299999952316284,30.3,2009-01-02,'3',2009-01-02 00:13:00.480000000
|
|
14,true,4,4,4,40,4.400000095367432,40.4,2009-01-02,'4',2009-01-02 00:14:00.510000000
|
|
20,true,0,0,0,0,0,0,2009-01-03,'0',2009-01-03 00:20:00.900000000
|
|
---- TYPES
|
|
INT, BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DATE, STRING, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where id > 10 and int_col< 5 limit 5
|
|
---- RESULTS
|
|
11,false,1,1.100000023841858,10.1,2009-01-02
|
|
12,true,2,2.200000047683716,20.2,2009-01-02
|
|
13,false,3,3.299999952316284,30.3,2009-01-02
|
|
14,true,4,4.400000095367432,40.4,2009-01-02
|
|
20,true,0,0,0,2009-01-03
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns from external jdbc table with case sensitive column names
|
|
# and table name.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource_2
|
|
where id > 10 and int_col< 5 limit 5
|
|
---- RESULTS
|
|
11,false,1,1.100000023841858,10.1,2009-01-02
|
|
12,true,2,2.200000047683716,20.2,2009-01-02
|
|
13,false,3,3.299999952316284,30.3,2009-01-02
|
|
14,true,4,4.400000095367432,40.4,2009-01-02
|
|
20,true,0,0,0,2009-01-03
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Inner join with a non jdbc table
|
|
select a.id, b.int_col
|
|
from alltypes_jdbc_datasource a inner join functional.alltypes b on (a.id = b.id)
|
|
where a.id = 1
|
|
---- RESULTS
|
|
1,1
|
|
---- TYPES
|
|
INT, INT
|
|
====
|
|
---- QUERY
|
|
# Inner join with another jdbc table
|
|
select a.id, b.int_col
|
|
from alltypes_jdbc_datasource a inner join alltypes_jdbc_datasource_2 b on (a.id = b.id)
|
|
where a.id < 3 group by a.id, b.int_col
|
|
---- RESULTS
|
|
0,0
|
|
1,1
|
|
2,2
|
|
---- TYPES
|
|
INT, INT
|
|
====
|
|
---- QUERY
|
|
# Cross join
|
|
select a.id, b.id
|
|
from alltypes_jdbc_datasource a cross join alltypes_jdbc_datasource b
|
|
where (a.id < 3 and b.id < 3)
|
|
order by a.id, b.id limit 10
|
|
---- RESULTS
|
|
0,0
|
|
0,1
|
|
0,2
|
|
1,0
|
|
1,1
|
|
1,2
|
|
2,0
|
|
2,1
|
|
2,2
|
|
---- TYPES
|
|
INT, INT
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col = DATE '2009-01-02' order by id limit 5;
|
|
---- RESULTS
|
|
10,true,0,0,0,2009-01-02
|
|
11,false,1,1.100000023841858,10.1,2009-01-02
|
|
12,true,2,2.200000047683716,20.2,2009-01-02
|
|
13,false,3,3.299999952316284,30.3,2009-01-02
|
|
14,true,4,4.400000095367432,40.4,2009-01-02
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '='
|
|
# with empty result.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col = DATE '1990-01-01' order by id limit 5;
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '>'.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col > DATE '2009-01-02' order by id limit 5;
|
|
---- RESULTS
|
|
20,true,0,0,0,2009-01-03
|
|
21,false,1,1.100000023841858,10.1,2009-01-03
|
|
22,true,2,2.200000047683716,20.2,2009-01-03
|
|
23,false,3,3.299999952316284,30.3,2009-01-03
|
|
24,true,4,4.400000095367432,40.4,2009-01-03
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '>'
|
|
# with empty result.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col > DATE '2990-01-01' order by id limit 5;
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '<'.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col < DATE '2009-01-02' order by id limit 5;
|
|
---- RESULTS
|
|
0,true,0,0,0,2009-01-01
|
|
1,false,1,1.100000023841858,10.1,2009-01-01
|
|
2,true,2,2.200000047683716,20.2,2009-01-01
|
|
3,false,3,3.299999952316284,30.3,2009-01-01
|
|
4,true,4,4.400000095367432,40.4,2009-01-01
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '<'
|
|
# with empty result.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col < DATE '1990-01-01' order by id limit 5;
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '>='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col >= DATE '2009-01-02' order by id limit 5;
|
|
---- RESULTS
|
|
10,true,0,0,0,2009-01-02
|
|
11,false,1,1.100000023841858,10.1,2009-01-02
|
|
12,true,2,2.200000047683716,20.2,2009-01-02
|
|
13,false,3,3.299999952316284,30.3,2009-01-02
|
|
14,true,4,4.400000095367432,40.4,2009-01-02
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '<='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col <= DATE '2009-01-02' order by id limit 5;
|
|
---- RESULTS
|
|
0,true,0,0,0,2009-01-01
|
|
1,false,1,1.100000023841858,10.1,2009-01-01
|
|
2,true,2,2.200000047683716,20.2,2009-01-01
|
|
3,false,3,3.299999952316284,30.3,2009-01-01
|
|
4,true,4,4.400000095367432,40.4,2009-01-01
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator '!='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col != DATE '2009-01-01' order by id limit 5;
|
|
---- RESULTS
|
|
10,true,0,0,0,2009-01-02
|
|
11,false,1,1.100000023841858,10.1,2009-01-02
|
|
12,true,2,2.200000047683716,20.2,2009-01-02
|
|
13,false,3,3.299999952316284,30.3,2009-01-02
|
|
14,true,4,4.400000095367432,40.4,2009-01-02
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on date predicate with operator 'between'.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col
|
|
from alltypes_jdbc_datasource
|
|
where date_col between DATE '2009-03-01' and DATE '2009-04-01' order by id limit 5;
|
|
---- RESULTS
|
|
590,true,0,0,0,2009-03-01
|
|
591,false,1,1.100000023841858,10.1,2009-03-01
|
|
592,true,2,2.200000047683716,20.2,2009-03-01
|
|
593,false,3,3.299999952316284,30.3,2009-03-01
|
|
594,true,4,4.400000095367432,40.4,2009-03-01
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col = '2009-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
12,true,2,2.200000047683716,20.2,2009-01-02,2009-01-02 00:12:00.460000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '='
|
|
# with empty result.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col = '1990-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '>'.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col > '2009-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
13,false,3,3.299999952316284,30.3,2009-01-02,2009-01-02 00:13:00.480000000
|
|
14,true,4,4.400000095367432,40.4,2009-01-02,2009-01-02 00:14:00.510000000
|
|
15,false,5,5.5,50.5,2009-01-02,2009-01-02 00:15:00.550000000
|
|
16,true,6,6.599999904632568,60.59999999999999,2009-01-02,2009-01-02 00:16:00.600000000
|
|
17,false,7,7.699999809265137,70.7,2009-01-02,2009-01-02 00:17:00.660000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '>'
|
|
# with empty result.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col > '2990-01-01 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '<'.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col < '2009-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
0,true,0,0,0,2009-01-01,2009-01-01 00:00:00
|
|
1,false,1,1.100000023841858,10.1,2009-01-01,2009-01-01 00:01:00
|
|
2,true,2,2.200000047683716,20.2,2009-01-01,2009-01-01 00:02:00.100000000
|
|
3,false,3,3.299999952316284,30.3,2009-01-01,2009-01-01 00:03:00.300000000
|
|
4,true,4,4.400000095367432,40.4,2009-01-01,2009-01-01 00:04:00.600000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '<'
|
|
# with empty result.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col < '1990-01-01 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '>='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col >= '2009-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
12,true,2,2.200000047683716,20.2,2009-01-02,2009-01-02 00:12:00.460000000
|
|
13,false,3,3.299999952316284,30.3,2009-01-02,2009-01-02 00:13:00.480000000
|
|
14,true,4,4.400000095367432,40.4,2009-01-02,2009-01-02 00:14:00.510000000
|
|
15,false,5,5.5,50.5,2009-01-02,2009-01-02 00:15:00.550000000
|
|
16,true,6,6.599999904632568,60.59999999999999,2009-01-02,2009-01-02 00:16:00.600000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '<='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col <= '2009-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
0,true,0,0,0,2009-01-01,2009-01-01 00:00:00
|
|
1,false,1,1.100000023841858,10.1,2009-01-01,2009-01-01 00:01:00
|
|
2,true,2,2.200000047683716,20.2,2009-01-01,2009-01-01 00:02:00.100000000
|
|
3,false,3,3.299999952316284,30.3,2009-01-01,2009-01-01 00:03:00.300000000
|
|
4,true,4,4.400000095367432,40.4,2009-01-01,2009-01-01 00:04:00.600000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator '!='.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col != '2009-01-02 00:12:00.460000000' order by id limit 5;
|
|
---- RESULTS
|
|
0,true,0,0,0,2009-01-01,2009-01-01 00:00:00
|
|
1,false,1,1.100000023841858,10.1,2009-01-01,2009-01-01 00:01:00
|
|
2,true,2,2.200000047683716,20.2,2009-01-01,2009-01-01 00:02:00.100000000
|
|
3,false,3,3.299999952316284,30.3,2009-01-01,2009-01-01 00:03:00.300000000
|
|
4,true,4,4.400000095367432,40.4,2009-01-01,2009-01-01 00:04:00.600000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate with operator 'between'.
|
|
select count(*) from alltypes_jdbc_datasource where timestamp_col between
|
|
'2009-01-03 00:12:00' and '2009-01-05 00:12:00'
|
|
---- RESULTS
|
|
20
|
|
---- TYPES
|
|
BIGINT
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate without time in timestamp.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col > '2009-01-03' order by id limit 5;
|
|
---- RESULTS
|
|
20,true,0,0,0,2009-01-03,2009-01-03 00:20:00.900000000
|
|
21,false,1,1.100000023841858,10.1,2009-01-03,2009-01-03 00:21:00.900000000
|
|
22,true,2,2.200000047683716,20.2,2009-01-03,2009-01-03 00:22:00.910000000
|
|
23,false,3,3.299999952316284,30.3,2009-01-03,2009-01-03 00:23:00.930000000
|
|
24,true,4,4.400000095367432,40.4,2009-01-03,2009-01-03 00:24:00.960000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Gets specified columns based on timestamp predicate without milisecond in timestamp.
|
|
select id, bool_col, smallint_col, float_col, double_col, date_col, timestamp_col
|
|
from alltypes_jdbc_datasource
|
|
where timestamp_col > '2009-01-03 00:22:00' order by id limit 5;
|
|
---- RESULTS
|
|
22,true,2,2.200000047683716,20.2,2009-01-03,2009-01-03 00:22:00.910000000
|
|
23,false,3,3.299999952316284,30.3,2009-01-03,2009-01-03 00:23:00.930000000
|
|
24,true,4,4.400000095367432,40.4,2009-01-03,2009-01-03 00:24:00.960000000
|
|
25,false,5,5.5,50.5,2009-01-03,2009-01-03 00:25:01
|
|
26,true,6,6.599999904632568,60.59999999999999,2009-01-03,2009-01-03 00:26:01.500000000
|
|
---- TYPES
|
|
INT, BOOLEAN, SMALLINT, FLOAT, DOUBLE, DATE, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Drop table
|
|
DROP TABLE alltypes_jdbc_datasource;
|
|
---- RESULTS
|
|
'Table has been dropped.'
|
|
====
|
|
---- QUERY
|
|
# Drop table
|
|
DROP TABLE alltypes_jdbc_datasource_2;
|
|
---- RESULTS
|
|
'Table has been dropped.'
|
|
====
|
|
---- QUERY
|
|
# Create JDBC table with unknown database type.
|
|
DROP TABLE IF EXISTS jdbc_test;
|
|
CREATE TABLE jdbc_test (
|
|
id INT,
|
|
bool_col BOOLEAN,
|
|
int_col INT)
|
|
STORED BY JDBC
|
|
TBLPROPERTIES (
|
|
"database.type"="UNKNOWN",
|
|
"jdbc.url"="jdbc:postgresql://$INTERNAL_LISTEN_HOST:5432/functional",
|
|
"jdbc.driver"="org.postgresql.Driver",
|
|
"driver.url"="$FILESYSTEM_PREFIX/test-warehouse/data-sources/jdbc-drivers/postgresql-jdbc.jar",
|
|
"dbcp.username"="hiveuser",
|
|
"dbcp.password"="password",
|
|
"table"="alltypes");
|
|
---- RESULTS
|
|
'Table has been created.'
|
|
====
|
|
---- QUERY
|
|
select count(*) from jdbc_test;
|
|
---- CATCH
|
|
row_regex:.*InternalException:.*Unknown database type.
|
|
====
|
|
---- QUERY
|
|
# Alter JDBC table to change database type as POSTGRES.
|
|
ALTER TABLE jdbc_test
|
|
SET TBLPROPERTIES ("database.type"="POSTGRES");
|
|
---- RESULTS
|
|
'Updated table.'
|
|
====
|
|
---- QUERY
|
|
select count(*) from jdbc_test;
|
|
---- RESULTS
|
|
7300
|
|
---- TYPES
|
|
BIGINT
|
|
====
|
|
---- QUERY
|
|
# Alter JDBC table to set wrong username and password.
|
|
ALTER TABLE jdbc_test
|
|
SET TBLPROPERTIES ("dbcp.username"="UNKNOWN", "dbcp.password"="NONE");
|
|
---- RESULTS
|
|
'Updated table.'
|
|
====
|
|
---- QUERY
|
|
select * from jdbc_test order by id limit 5;
|
|
---- CATCH
|
|
row_regex:.*Caught exception.*(FATAL: password authentication failed for user "UNKNOWN")
|
|
====
|
|
---- QUERY
|
|
# Alter JDBC table to set correct username and password.
|
|
ALTER TABLE jdbc_test
|
|
SET TBLPROPERTIES ("dbcp.username"="hiveuser", "dbcp.password"="password");
|
|
---- RESULTS
|
|
'Updated table.'
|
|
====
|
|
---- QUERY
|
|
select * from jdbc_test order by id limit 5;
|
|
---- RESULTS
|
|
0,true,0
|
|
1,false,1
|
|
2,true,2
|
|
3,false,3
|
|
4,true,4
|
|
---- TYPES
|
|
INT, BOOLEAN, INT
|
|
====
|
|
---- QUERY
|
|
# Alter JDBC table to unset the required JDBC configuration "table".
|
|
ALTER TABLE jdbc_test UNSET TBLPROPERTIES ("table");
|
|
---- CATCH
|
|
row_regex:.*AnalysisException: Unsetting the 'table' table property is not supported for JDBC DataSource table
|
|
====
|
|
---- QUERY
|
|
# Alter table to drop a column.
|
|
ALTER TABLE jdbc_test DROP COLUMN int_col;
|
|
---- RESULTS
|
|
'Column has been dropped.'
|
|
====
|
|
---- QUERY
|
|
# Alter table to add a new column.
|
|
ALTER TABLE jdbc_test ADD COLUMN IF NOT EXISTS date_col DATE;
|
|
---- RESULTS
|
|
'New column(s) have been added to the table.'
|
|
====
|
|
---- QUERY
|
|
select * from jdbc_test order by id limit 5;
|
|
---- RESULTS
|
|
0,true,2009-01-01
|
|
1,false,2009-01-01
|
|
2,true,2009-01-01
|
|
3,false,2009-01-01
|
|
4,true,2009-01-01
|
|
---- TYPES
|
|
INT, BOOLEAN, DATE
|
|
====
|
|
---- QUERY
|
|
# Alter table to change a column.
|
|
ALTER TABLE jdbc_test CHANGE COLUMN date_col timestamp_col TIMESTAMP;
|
|
---- RESULTS
|
|
'Column has been altered.'
|
|
====
|
|
---- QUERY
|
|
select * from jdbc_test order by id limit 5;
|
|
---- RESULTS
|
|
0,true,2009-01-01 00:00:00
|
|
1,false,2009-01-01 00:01:00
|
|
2,true,2009-01-01 00:02:00.100000000
|
|
3,false,2009-01-01 00:03:00.300000000
|
|
4,true,2009-01-01 00:04:00.600000000
|
|
---- TYPES
|
|
INT, BOOLEAN, TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
# Drop table.
|
|
DROP TABLE jdbc_test;
|
|
---- RESULTS
|
|
'Table has been dropped.'
|
|
====
|