bug fixed to retrieve columns names in a correct order (defined in the database schema) for the sampling operations, for the getTableDetails. Updates in Sampler, DatabasesManager and PostgresTableStructure classes.
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/DatabasesResourcesManager@98845 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
7762f7a162
commit
83df040993
|
@ -45,8 +45,16 @@ public class Sampler {
|
||||||
private static final String queryForRandomSampleOnTablePostgres = "select %1$s from %2$s order by random() limit 100";
|
private static final String queryForRandomSampleOnTablePostgres = "select %1$s from %2$s order by random() limit 100";
|
||||||
|
|
||||||
// query to get columns' name
|
// query to get columns' name
|
||||||
private static final String queryForColumnsPostgres = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'";
|
private static final String queryForColumnsPostgres = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s' order by ordinal_position asc"; // order
|
||||||
private static final String queryForColumnsMysql = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'";
|
// rows
|
||||||
|
// in
|
||||||
|
// ascending
|
||||||
|
// order
|
||||||
|
// on
|
||||||
|
// the
|
||||||
|
// ordinal_position
|
||||||
|
// attribute
|
||||||
|
private static final String queryForColumnsMysql = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'order by ordinal_position asc";
|
||||||
|
|
||||||
private static final String MYSQL = "MySQL";
|
private static final String MYSQL = "MySQL";
|
||||||
private static final String POSTGRES = "Postgres";
|
private static final String POSTGRES = "Postgres";
|
||||||
|
@ -262,6 +270,7 @@ public class Sampler {
|
||||||
// //print check
|
// //print check
|
||||||
// AnalysisLogger.getLogger().debug(
|
// AnalysisLogger.getLogger().debug(
|
||||||
// "DatabaseManagement->size: " + columnsSet.size());
|
// "DatabaseManagement->size: " + columnsSet.size());
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < columnsSet.size(); i++) {
|
for (int i = 0; i < columnsSet.size(); i++) {
|
||||||
|
|
||||||
|
|
|
@ -271,7 +271,7 @@ public class PostgresTableStructure extends AbstractTableStructure {
|
||||||
|
|
||||||
// String queryForStructure =
|
// String queryForStructure =
|
||||||
// "SELECT table_schema,table_name,column_name,column_default,is_nullable,data_type,character_maximum_length,character_set_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s';";
|
// "SELECT table_schema,table_name,column_name,column_default,is_nullable,data_type,character_maximum_length,character_set_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s';";
|
||||||
String queryForStructure = "SELECT column_name,column_default,is_nullable,data_type,character_maximum_length,udt_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s';";
|
String queryForStructure = "SELECT column_name,column_default,is_nullable,data_type,character_maximum_length,udt_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s' order by ordinal_position asc;";
|
||||||
|
|
||||||
return queryForStructure;
|
return queryForStructure;
|
||||||
|
|
||||||
|
|
|
@ -81,12 +81,12 @@ public class DatabaseManagement {
|
||||||
private static final String listSchemaNameQuery = "select nspname from pg_namespace where nspname <> 'information_schema' and nspname !~ E'^pg_'";
|
private static final String listSchemaNameQuery = "select nspname from pg_namespace where nspname <> 'information_schema' and nspname !~ E'^pg_'";
|
||||||
|
|
||||||
// query to retrieve datatype columns of a database table
|
// query to retrieve datatype columns of a database table
|
||||||
private static final String queryForDataTypeColumnsPostgres = "SELECT data_type FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'";
|
private static final String queryForDataTypeColumnsPostgres = "SELECT data_type FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s' order by ordinal_position asc";
|
||||||
private static final String queryForDataTypeColumnsMysql = "SELECT data_type FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'";
|
private static final String queryForDataTypeColumnsMysql = "SELECT data_type FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s' order by ordinal_position asc";
|
||||||
|
|
||||||
// query to get columns' name
|
// query to get columns' name
|
||||||
private static final String queryForColumnsPostgres = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'";
|
private static final String queryForColumnsPostgres = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s' order by ordinal_position asc";
|
||||||
private static final String queryForColumnsMysql = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s'";
|
private static final String queryForColumnsMysql = "SELECT column_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s' order by ordinal_position asc";
|
||||||
|
|
||||||
// Header Table that contains the column names of a table
|
// Header Table that contains the column names of a table
|
||||||
private String header = "";
|
private String header = "";
|
||||||
|
|
Loading…
Reference in New Issue