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:
Loredana Liccardo 2014-07-21 15:19:55 +00:00
parent 7762f7a162
commit 83df040993
3 changed files with 16 additions and 7 deletions

View File

@ -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++) {

View File

@ -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;

View File

@ -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 = "";