package org.xenei.jdbc4sparql.meta;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Level;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.xenei.jdbc4sparql.LoggingConfig;
import org.xenei.jdbc4sparql.config.MemDatasetProducer;
import org.xenei.jdbc4sparql.iface.Catalog;
import org.xenei.jdbc4sparql.iface.DatasetProducer;
import org.xenei.jdbc4sparql.iface.Schema;
import org.xenei.jdbc4sparql.iface.Table;
import org.xenei.jdbc4sparql.impl.rdf.RdfCatalog;
import org.xenei.jdbc4sparql.impl.rdf.RdfTable;
import org.xenei.jdbc4sparql.sparql.SparqlResultSet;
import org.xenei.jdbc4sparql.sparql.parser.SparqlParser;
import org.xenei.jdbc4sparql.sparql.parser.jsqlparser.SparqlParserImpl;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.Literal;
public class MetaCatalogValuesTests {
private Map<String, Catalog> catalogs;
private SparqlParser parser;
private DatasetProducer dpProducer;
private RdfCatalog catalog;
private final String queryString = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+ "SELECT ?tbl ?colName WHERE { ?tbl a <http://org.xenei.jdbc4sparql/entity/Table> ;"
+ "<http://www.w3.org/2000/01/rdf-schema#label> '%s' ;"
+ "<http://org.xenei.jdbc4sparql/entity/Table#column> ?list ."
+ "?list rdf:rest*/rdf:first ?column ."
+ "?column <http://www.w3.org/2000/01/rdf-schema#label> ?colName ; "
+ " }";
@Before
public void setup() throws FileNotFoundException, IOException {
LoggingConfig.setConsole(Level.DEBUG);
LoggingConfig.setRootLogger(Level.INFO);
// LoggingConfig.setLogger("org.xenei.jdbc4sparql.sparql", Level.DEBUG);
LoggingConfig.setLogger("com.hp.hpl.jena.", Level.INFO);
LoggingConfig.setLogger("org.xenei.jdbc4sparql", Level.INFO);
catalogs = new HashMap<String, Catalog>();
dpProducer = new MemDatasetProducer();
catalog = (RdfCatalog) MetaCatalogBuilder.getInstance(dpProducer);
catalogs.put(catalog.getName().getShortName(), catalog);
parser = new SparqlParserImpl();
}
@After
public void tearDown() throws Exception {
dpProducer.close();
}
@Test
public void testAttributesTable() {
final String[] names = {
"TYPE_CAT", "TYPE_SCHEM", "TYPE_NAME", "ATTR_NAME",
"DATA_TYPE", "ATTR_TYPE_NAME", "ATTR_SIZE", "DECIMAL_DIGITS",
"NUM_PREC_RADIX", "NULLABLE", "REMARKS", "ATTR_DEF",
"SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH",
"ORDINAL_POSITION", "IS_NULLABLE", "SCOPE_CATALOG",
"SCOPE_SCHEMA", "SCOPE_TABLE", "SOURCE_DATA_TYPE"
};
verifyNames(MetaCatalogBuilder.ATTRIBUTES_TABLE, names);
}
@Test
public void testBestRowTable() {
final String[] names = {
"SCOPE", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME",
"COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS",
"PSEUDO_COLUMN"
};
verifyNames(MetaCatalogBuilder.BEST_ROW_TABLE, names);
}
@Test
public void testCatalogsTable() {
final String[] names = {
"TABLE_CAT"
};
verifyNames(MetaCatalogBuilder.CATALOGS_TABLE, names);
}
@Test
public void testClientInfoTable() {
final String[] names = {
"NAME", "MAX_LEN", "DEFAULT_VALUE", "DESCRIPTION"
};
verifyNames(MetaCatalogBuilder.CLIENT_INFO_TABLE, names);
}
@Test
public void testColumnPriviligesTable() {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME",
"GRANTOR", "GRANTEE", "PRIVILEGE", "IS_GRANTABLE"
};
verifyNames(MetaCatalogBuilder.COLUMN_PRIVILIGES_TABLE, names);
}
@Test
public void testColumnsTable() throws SQLException {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME",
"DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH",
"DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS",
"COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB",
"CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE",
"SCOPE_CATLOG", "SCOPE_SCHEMA", "SCOPE_TABLE",
"SOURCE_DATA_TYPE", "IS_AUTOINCREMENT"
};
verifyNames(MetaCatalogBuilder.COLUMNS_TABLE, names);
// final Schema schema =
// catalog.getSchema(MetaCatalogBuilder.SCHEMA_NAME);
// final Table table =
// schema.getTable(MetaCatalogBuilder.COLUMNS_TABLE);
// final SparqlResultSet rs = ((RdfTable) table).getResultSet(catalogs,
// parser);
// Assert.assertTrue(rs.first());
// while (!rs.isAfterLast()) {
// for (int i=0;i<names.length;i++)
// {
// System.out.print( String.format("%s=%s ", names[i],
// rs.getString(i+1)));
// }
// System.out.println();
// rs.next();
// }
// rs.close();
}
@Test
public void testExportedKeysTable() {
final String[] names = {
"PKTABLE_CAT", "PKTABLE_SCHEM", "PKTABLE_NAME",
"PKCOLUMN_NAME", "FKTABLE_CAT", "FKTABLE_SCHEM",
"FKTABLE_NAME", "FKCOLUMN_NAME", "KEY_SEQ", "UPDATE_RULE",
"DELETE_RULE", "FK_NAME", "PK_NAME", "DEFERRABILITY"
};
verifyNames(MetaCatalogBuilder.EXPORTED_KEYS_TABLE, names);
}
@Test
public void testFunctionColumnsTable() {
final String[] names = {
"FUNCTION_CAT", "FUNCTION_SCHEM", "FUNCTION_NAME",
"COLUMN_NAME", "COLUMN_TYPE", "DATA_TYPE", "TYPE_NAME",
"PRECISION", "LENGTH", "SCALE", "RADIX", "NULLABLE", "REMARKS",
"CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE",
"SPECIFIC_NAME"
};
verifyNames(MetaCatalogBuilder.FUNCTION_COLUMNS_TABLE, names);
}
@Test
public void testFunctionsTable() {
final String[] names = {
"FUNCTION_CAT", "FUNCTION_SCHEM", "FUNCTION_NAME", "REMARKS",
"FUNCTION_TYPE", "SPECIFIC_NAME"
};
verifyNames(MetaCatalogBuilder.FUNCTIONS_TABLE, names);
}
@Test
public void testImportedKeysTable() {
final String[] names = {
"PKTABLE_CAT", "PKTABLE_SCHEM", "PKTABLE_NAME",
"PKCOLUMN_NAME", "FKTABLE_CAT", "FKTABLE_SCHEM",
"FKTABLE_NAME", "FKCOLUMN_NAME", "KEY_SEQ", "UPDATE_RULE",
"DELETE_RULE", "FK_NAME", "PK_NAME", "DEFERRABILITY"
};
verifyNames(MetaCatalogBuilder.IMPORTED_KEYS_TABLE, names);
}
@Test
public void testIndexInfoTable() {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "NON_UNIQUE",
"INDEX_QUALIFIER", "INDEX_NAME", "TYPE", "ORDINAL_POSITION",
"COLUMN_NAME", "ASC_OR_DESC", "CARDINALITY", "PAGES",
"FILTER_CONDITION"
};
verifyNames(MetaCatalogBuilder.INDEXINFO_TABLE, names);
}
@Test
public void testPrimaryKeyTable() {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME",
"KEY_SEQ", "PK_NAME"
};
verifyNames(MetaCatalogBuilder.PRIMARY_KEY_TABLE, names);
}
@Test
public void testProcedureColumnsTable() {
final String[] names = {
"PROCEDURE_CAT", "PROCEDURE_SCHEM", "PROCEDURE_NAME",
"COLUMN_NAME", "COLUMN_TYPE", "DATA_TYPE", "TYPE_NAME",
"PRECISION", "LENGTH", "SCALE", "RADIX", "NULLABLE", "REMARKS",
"COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB",
"CHAR_OCTET_LENGTH", "ORDINAL_POSITION", "IS_NULLABLE",
"SPECIFIC_NAME"
};
verifyNames(MetaCatalogBuilder.PROCEDURE_COLUMNS_TABLE, names);
}
@Test
public void testProceduresTable() {
final String[] names = {
"PROCEDURE_CAT", "PROCEDURE_SCHEM", "PROCEDURE_NAME",
"FUTURE1", "FUTURE2", "FUTURE3", "REMARKS", "PROCEDURE_TYPE",
"SPECIFIC_NAME"
};
verifyNames(MetaCatalogBuilder.PROCEDURES_TABLE, names);
}
@Test
public void testSchemasTable() {
final String[] names = {
"TABLE_SCHEM", "TABLE_CATALOG"
};
verifyNames(MetaCatalogBuilder.SCHEMAS_TABLE, names);
}
@Test
public void testSuperTablesTable() {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "SUPERTABLE_NAME"
};
verifyNames(MetaCatalogBuilder.SUPER_TABLES_TABLE, names);
}
@Test
public void testSuperTypesTable() {
final String[] names = {
"TYPE_CAT", "TYPE_SCHEM", "TYPE_NAME", "SUPERTYPE_CAT",
"SUPERTYPE_SCHEM", "SUPERTYPE_NAME"
};
verifyNames(MetaCatalogBuilder.SUPER_TYPES_TABLE, names);
}
@Test
public void testTablePrivilegesTable() {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "GRANTOR", "GRANTEE",
"PRIVILEGE", "IS_GRANTABLE"
};
verifyNames(MetaCatalogBuilder.TABLE_PRIVILEGES_TABLE, names);
}
@Test
public void testTablesTable() throws SQLException {
final String[] names = {
"TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "TABLE_TYPE",
"REMARKS", "TYPE_CAT", "TYPE_SCHEM", "TYPE_NAME",
"SELF_REFERENCING_COL_NAME", "REF_GENERATION"
};
verifyNames(MetaCatalogBuilder.TABLES_TABLE, names);
final Schema schema = catalog.getSchema(MetaCatalogBuilder.SCHEMA_NAME);
final Table table = schema.getTable(MetaCatalogBuilder.TABLES_TABLE);
final SparqlResultSet rs = ((RdfTable) table).getResultSet(catalogs,
parser);
Assert.assertTrue(rs.first());
while (!rs.isAfterLast()) {
rs.next();
}
rs.close();
}
@Test
public void testTableTypesTable() {
final String[] names = {
"TABLE_TYPE"
};
verifyNames(MetaCatalogBuilder.TABLE_TYPES_TABLE, names);
}
@Test
public void testTypeInfoTableTable() {
final String[] names = {
"TYPE_NAME", "DATA_TYPE", "PRECISION", "LITERAL_PREFIX",
"LITERAL_SUFFIX", "CREATE_PARAMS", "NULLABLE",
"CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE",
"FIXED_PREC_SCALE", "AUTO_INCREMENT", "LOCAL_TYPE_NAME",
"MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE",
"SQL_DATETIME_SUB", "NUM_PREC_RADIX"
};
verifyNames(MetaCatalogBuilder.TYPEINFO_TABLE, names);
}
@Test
public void testUDTTable() {
final String[] names = {
"TYPE_CAT", "TYPE_SCHEM", "TYPE_NAME", "CLASS_NAME",
"DATA_TYPE", "REMARKS", "BASE_TYPE"
};
verifyNames(MetaCatalogBuilder.UDT_TABLES, names);
}
@Test
public void testVersionColumnsTable() {
final String[] names = {
"SCOPE", "COLUMN_NAME", "DATA_TYPE", "TYPE_NAME",
"COLUMN_SIZE", "BUFFER_LENGTH", "DECIMAL_DIGITS",
"PSEUDO_COLUMN"
};
verifyNames(MetaCatalogBuilder.VERSION_COLUMNS_TABLE, names);
}
@Test
public void testXrefTable() {
final String[] names = {
"PKTABLE_CAT", "PKTABLE_SCHEM", "PKTABLE_NAME",
"PKCOLUMN_NAME", "FKTABLE_CAT", "FKTABLE_SCHEM",
"FKTABLE_NAME", "FKCOLUMN_NAME", "KEY_SEQ", "UPDATE_RULE",
"DELETE_RULE", "FK_NAME", "PK_NAME", "DEFERRABILITY"
};
verifyNames(MetaCatalogBuilder.XREF_TABLE, names);
}
private void verifyNames(final String tblName, final String[] colNames) {
final List<String> names = Arrays.asList(colNames);
int count = 0;
final Query query = QueryFactory.create(String.format(queryString,
tblName));
final QueryExecution qexec = QueryExecutionFactory.create(query,
dpProducer.getMetaDatasetUnionModel());
try {
final ResultSet results = qexec.execSelect();
for (; results.hasNext();) {
count++;
final QuerySolution soln = results.nextSolution();
final Literal l = soln.getLiteral("colName");
Assert.assertTrue(l.getString() + " is missing",
names.contains(l.getString()));
}
Assert.assertEquals(names.size(), count);
} finally {
qexec.close();
}
}
@Test
public void arbitraryTest() {
// String queryString =
// "SELECT DISTINCT ?TABLE_CAT ?TABLE_SCHEM ?TABLE_NAME ?COLUMN_NAME ?DATA_TYPE ?TYPE_NAME ?COLUMN_SIZE ?BUFFER_LENGTH ?DECIMAL_DIGITS ?NUM_PREC_RADIX ?NULLABLE ?REMARKS ?COLUMN_DEF ?SQL_DATA_TYPE ?SQL_DATETIME_SUB ?CHAR_OCTET_LENGTH ?ORDINAL_POSITION ?IS_NULLABLE ?SCOPE_CATLOG ?SCOPE_SCHEMA ?SCOPE_TABLE ?SOURCE_DATA_TYPE ?IS_AUTOINCREMENT"
// +
// " WHERE" +
// " { { { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://org.xenei.jdbc4sparql/entity/Column> ."
// +
// " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#table> ?v_f13657e4_6674_4af2_8d4f_6de18d655197 ."
// +
// " ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 <http://org.xenei.jdbc4sparql/entity/Schema#tables> ?v_f13657e4_6674_4af2_8d4f_6de18d655197 ."
// +
// " ?v_0606127e_438b_49aa_bee9_4d882d7f998f <http://org.xenei.jdbc4sparql/entity/Catalog#schemas> ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 ."
// +
// " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#columnDef> ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 ."
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#autoIncrement> ?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d ."
// +
// " ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://org.xenei.jdbc4sparql/entity/Table#column> ?v_8f09a023_7155_43bb_810e_66727126a28c . "
// +
// " ?v_0606127e_438b_49aa_bee9_4d882d7f998f <http://www.w3.org/2000/01/rdf-schema#label> ?v_60396d95_05cb_3f65_ac33_76af9371d45a . "
// +
// " ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 <http://www.w3.org/2000/01/rdf-schema#label> ?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8 . "
// +
// " ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://www.w3.org/2000/01/rdf-schema#label> ?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4 . "
// +
// " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://www.w3.org/2000/01/rdf-schema#label> ?v_055e5fdf_9ffd_3734_b005_bfe91175ad41 . "
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#type> ?v_866904db_b993_3be1_8caf_9d38d89b2d58"
// +
// " OPTIONAL" +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#typeName> ?v_4686423b_c7d8_3e2f_8419_2e8d666900bc}"
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#scale> ?v_90528c50_8dca_3922_b967_1b5f4bfbac16"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_caa2b141_2274_36c6_9358_ac218278a66e}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a}"
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#nullable> ?v_959bda57_4240_3bae_b500_a1cb3145adb3"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#remarks> ?v_8631fa67_8894_3282_8dc5_d6e426b90183}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_cd150c95_4c31_3011_bd29_c0ea109ad4de}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_a34bd851_fe93_3448_904e_058bcaa2a488}"
// +
// " { ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://org.xenei.jdbc4sparql/entity/Table#column> _:b0 ."
// +
// " _:b0 <http://jena.hpl.hp.com/ARQ/list#index> _:b1 ." +
// " _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?v_b444882e_dad7_4aa8_9f4d_fb7ba90bfc17 ."
// +
// " _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 ."
// +
// " _:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 ."
// +
// " _:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>"
// +
// " BIND(( ?v_b444882e_dad7_4aa8_9f4d_fb7ba90bfc17 + 1 ) AS ?v_fdcdadc6_1aca_3423_a36b_057fb163d115)"
// +
// " }" +
// " OPTIONAL" +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#nullable> ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3"
// +
// " BIND(if(( ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3 = 1 ), \"YES\", if(( ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3 = 0 ), \"NO\", \"\")) AS ?v_754a86ff_b4f2_3218_b894_8855e1bd02a2)"
// +
// " }" +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_35d0f90a_8271_317c_b412_a6eec8629b8a}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_c535c245_5a83_3d2b_9500_346d76834403}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4}"
// +
// " OPTIONAL" +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#type> ?v_b311cba9_6169_32fc_a57d_af9e98adab52}"
// +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#autoIncrement> ?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d"
// +
// " BIND(if(?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d, \"YES\", \"NO\") AS ?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c)"
// +
// " }" +
// " FILTER ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( checkTypeF(?v_60396d95_05cb_3f65_ac33_76af9371d45a) && checkTypeF(?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8) ) && checkTypeF(?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4) ) && checkTypeF(?v_055e5fdf_9ffd_3734_b005_bfe91175ad41) ) && checkTypeF(?v_866904db_b993_3be1_8caf_9d38d89b2d58) ) && checkTypeF(?v_4686423b_c7d8_3e2f_8419_2e8d666900bc) ) && checkTypeF(?v_90528c50_8dca_3922_b967_1b5f4bfbac16) ) && checkTypeF(?v_caa2b141_2274_36c6_9358_ac218278a66e) ) && checkTypeF(?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d) ) && checkTypeF(?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a) ) && checkTypeF(?v_959bda57_4240_3bae_b500_a1cb3145adb3) ) && checkTypeF(?v_8631fa67_8894_3282_8dc5_d6e426b90183) ) && checkTypeF(?v_cd150c95_4c31_3011_bd29_c0ea109ad4de) ) && checkTypeF(?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6) ) && checkTypeF(?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c) ) && checkTypeF(?v_a34bd851_fe93_3448_904e_058bcaa2a488) ) && checkTypeF(?v_fdcdadc6_1aca_3423_a36b_057fb163d115) ) && checkTypeF(?v_754a86ff_b4f2_3218_b894_8855e1bd02a2) ) && checkTypeF(?v_35d0f90a_8271_317c_b412_a6eec8629b8a) ) && checkTypeF(?v_c535c245_5a83_3d2b_9500_346d76834403) ) && checkTypeF(?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4) ) && checkTypeF(?v_b311cba9_6169_32fc_a57d_af9e98adab52) ) && checkTypeF(?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c) )"
// +
// " }" +
// " BIND(forceTypeF(?v_35d0f90a_8271_317c_b412_a6eec8629b8a) AS ?SCOPE_CATLOG)"
// +
// " BIND(forceTypeF(?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c) AS ?SQL_DATETIME_SUB)"
// +
// " BIND(forceTypeF(?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d) AS ?DECIMAL_DIGITS)"
// +
// " BIND(forceTypeF(?v_60396d95_05cb_3f65_ac33_76af9371d45a) AS ?TABLE_CAT)"
// +
// " BIND(forceTypeF(?v_754a86ff_b4f2_3218_b894_8855e1bd02a2) AS ?IS_NULLABLE)"
// +
// " BIND(forceTypeF(?v_4686423b_c7d8_3e2f_8419_2e8d666900bc) AS ?TYPE_NAME)"
// +
// " BIND(forceTypeF(?v_c535c245_5a83_3d2b_9500_346d76834403) AS ?SCOPE_SCHEMA)"
// +
// " BIND(forceTypeF(?v_b311cba9_6169_32fc_a57d_af9e98adab52) AS ?SOURCE_DATA_TYPE)"
// +
// " BIND(forceTypeF(?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c) AS ?IS_AUTOINCREMENT)"
// +
// " BIND(forceTypeF(?v_cd150c95_4c31_3011_bd29_c0ea109ad4de) AS ?COLUMN_DEF)"
// +
// " BIND(forceTypeF(?v_055e5fdf_9ffd_3734_b005_bfe91175ad41) AS ?COLUMN_NAME)"
// +
// " BIND(forceTypeF(?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6) AS ?SQL_DATA_TYPE)"
// +
// " BIND(forceTypeF(?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a) AS ?NUM_PREC_RADIX)"
// +
// " BIND(forceTypeF(?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4) AS ?SCOPE_TABLE)"
// +
// " BIND(forceTypeF(?v_a34bd851_fe93_3448_904e_058bcaa2a488) AS ?CHAR_OCTET_LENGTH)"
// +
// " BIND(forceTypeF(?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8) AS ?TABLE_SCHEM)"
// +
// " BIND(forceTypeF(?v_fdcdadc6_1aca_3423_a36b_057fb163d115) AS ?ORDINAL_POSITION)"
// +
// " BIND(forceTypeF(?v_90528c50_8dca_3922_b967_1b5f4bfbac16) AS ?COLUMN_SIZE)"
// +
// " BIND(forceTypeF(?v_caa2b141_2274_36c6_9358_ac218278a66e) AS ?BUFFER_LENGTH)"
// +
// " BIND(forceTypeF(?v_959bda57_4240_3bae_b500_a1cb3145adb3) AS ?NULLABLE)"
// +
// " BIND(forceTypeF(?v_8631fa67_8894_3282_8dc5_d6e426b90183) AS ?REMARKS)"
// +
// " BIND(forceTypeF(?v_866904db_b993_3be1_8caf_9d38d89b2d58) AS ?DATA_TYPE)"
// +
// " BIND(forceTypeF(?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4) AS ?TABLE_NAME)"
// +
// " }" +
// " }" +
// " ORDER BY ASC(?TABLE_CAT) ASC(?TABLE_SCHEM) ASC(?TABLE_NAME) ASC(?ORDINAL_POSITION)"
// +
// "";
final String queryString = "PREFIX f: <java:org.xenei.jdbc4sparql.sparql.> SELECT DISTINCT ?TABLE_CAT ?TABLE_SCHEM ?TABLE_NAME ?COLUMN_NAME ?DATA_TYPE ?TYPE_NAME ?COLUMN_SIZE ?BUFFER_LENGTH ?DECIMAL_DIGITS ?NUM_PREC_RADIX ?NULLABLE ?REMARKS ?COLUMN_DEF ?SQL_DATA_TYPE ?SQL_DATETIME_SUB ?CHAR_OCTET_LENGTH ?ORDINAL_POSITION ?IS_NULLABLE ?SCOPE_CATLOG ?SCOPE_SCHEMA ?SCOPE_TABLE ?SOURCE_DATA_TYPE ?IS_AUTOINCREMENT"
+ " WHERE"
+ " { { { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://org.xenei.jdbc4sparql/entity/Column> ."
+ " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#table> ?v_f13657e4_6674_4af2_8d4f_6de18d655197 ."
+ " ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 <http://org.xenei.jdbc4sparql/entity/Schema#tables> ?v_f13657e4_6674_4af2_8d4f_6de18d655197 ."
+ " ?v_0606127e_438b_49aa_bee9_4d882d7f998f <http://org.xenei.jdbc4sparql/entity/Catalog#schemas> ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 ."
+ " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#columnDef> ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 ."
+ " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#autoIncrement> ?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d ."
+ " ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://org.xenei.jdbc4sparql/entity/Table#column> ?v_8f09a023_7155_43bb_810e_66727126a28c . "
+ " ?v_0606127e_438b_49aa_bee9_4d882d7f998f <http://www.w3.org/2000/01/rdf-schema#label> ?v_60396d95_05cb_3f65_ac33_76af9371d45a . "
+ " ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 <http://www.w3.org/2000/01/rdf-schema#label> ?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8 . "
+ " ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://www.w3.org/2000/01/rdf-schema#label> ?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4 . "
+ " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://www.w3.org/2000/01/rdf-schema#label> ?v_055e5fdf_9ffd_3734_b005_bfe91175ad41 . "
+ " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#type> ?v_866904db_b993_3be1_8caf_9d38d89b2d58"
+ " OPTIONAL"
+ " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#typeName> ?v_4686423b_c7d8_3e2f_8419_2e8d666900bc}"
+ " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#scale> ?v_90528c50_8dca_3922_b967_1b5f4bfbac16"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_caa2b141_2274_36c6_9358_ac218278a66e}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a}"
+ " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#nullable> ?v_959bda57_4240_3bae_b500_a1cb3145adb3"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#remarks> ?v_8631fa67_8894_3282_8dc5_d6e426b90183}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_cd150c95_4c31_3011_bd29_c0ea109ad4de}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_a34bd851_fe93_3448_904e_058bcaa2a488}"
+ " { ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://org.xenei.jdbc4sparql/entity/Table#column> _:b0 ."
+ " _:b0 <http://jena.hpl.hp.com/ARQ/list#index> _:b1 ."
+ " _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?v_b444882e_dad7_4aa8_9f4d_fb7ba90bfc17 ."
+ " _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 ."
+ " _:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 ."
+ " _:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>"
+ " BIND(( ?v_b444882e_dad7_4aa8_9f4d_fb7ba90bfc17 + 1 ) AS ?v_fdcdadc6_1aca_3423_a36b_057fb163d115)"
+ " }"
+ " OPTIONAL"
+ " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#nullable> ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3"
+ " BIND(if(( ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3 = 1 ), \"YES\", if(( ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3 = 0 ), \"NO\", \"\")) AS ?v_754a86ff_b4f2_3218_b894_8855e1bd02a2)"
+ " }"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_35d0f90a_8271_317c_b412_a6eec8629b8a}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_c535c245_5a83_3d2b_9500_346d76834403}"
+ " OPTIONAL"
+ " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4}"
+ " OPTIONAL"
+ " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#type> ?v_b311cba9_6169_32fc_a57d_af9e98adab52}"
+ " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#autoIncrement> ?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d"
+ " BIND(if(?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d, \"YES\", \"NO\") AS ?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c)"
+ " }"
+ " FILTER ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( f:CheckTypeF(?v_60396d95_05cb_3f65_ac33_76af9371d45a, 12, false) && f:CheckTypeF(?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8, 12, false) ) && f:CheckTypeF(?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4, 12, false) ) && f:CheckTypeF(?v_055e5fdf_9ffd_3734_b005_bfe91175ad41, 12, false) ) && f:CheckTypeF(?v_866904db_b993_3be1_8caf_9d38d89b2d58, 4, false) ) && f:CheckTypeF(?v_4686423b_c7d8_3e2f_8419_2e8d666900bc, 12, true) ) && f:CheckTypeF(?v_90528c50_8dca_3922_b967_1b5f4bfbac16, 4, false) ) && f:CheckTypeF(?v_caa2b141_2274_36c6_9358_ac218278a66e, 4, true) ) && f:CheckTypeF(?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d, 4, true) ) && f:CheckTypeF(?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a, 4, true) ) && f:CheckTypeF(?v_959bda57_4240_3bae_b500_a1cb3145adb3, 4, false) ) && f:CheckTypeF(?v_8631fa67_8894_3282_8dc5_d6e426b90183, 12, true) ) && f:CheckTypeF(?v_cd150c95_4c31_3011_bd29_c0ea109ad4de, 12, true) ) && f:CheckTypeF(?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6, 4, true) ) && f:CheckTypeF(?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c, 4, true) ) && f:CheckTypeF(?v_a34bd851_fe93_3448_904e_058bcaa2a488, 4, true) ) && f:CheckTypeF(?v_fdcdadc6_1aca_3423_a36b_057fb163d115, 4, false) ) && f:CheckTypeF(?v_754a86ff_b4f2_3218_b894_8855e1bd02a2, 12, true) ) && f:CheckTypeF(?v_35d0f90a_8271_317c_b412_a6eec8629b8a, 12, true) ) && f:CheckTypeF(?v_c535c245_5a83_3d2b_9500_346d76834403, 12, true) ) && f:CheckTypeF(?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4, 12, true) ) && f:CheckTypeF(?v_b311cba9_6169_32fc_a57d_af9e98adab52, 5, true) ) && f:CheckTypeF(?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c, 12, false) )"
+ " }"
+ " BIND(?v_35d0f90a_8271_317c_b412_a6eec8629b8a AS ?SCOPE_CATLOG)"
+ " BIND(?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c AS ?SQL_DATETIME_SUB)"
+ " BIND(?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d AS ?DECIMAL_DIGITS)"
+ " BIND(?v_60396d95_05cb_3f65_ac33_76af9371d45a AS ?TABLE_CAT)"
+ " BIND(?v_754a86ff_b4f2_3218_b894_8855e1bd02a2 AS ?IS_NULLABLE)"
+ " BIND(?v_4686423b_c7d8_3e2f_8419_2e8d666900bc AS ?TYPE_NAME)"
+ " BIND(?v_c535c245_5a83_3d2b_9500_346d76834403 AS ?SCOPE_SCHEMA)"
+ " BIND(?v_b311cba9_6169_32fc_a57d_af9e98adab52 AS ?SOURCE_DATA_TYPE)"
+ " BIND(?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c AS ?IS_AUTOINCREMENT)"
+ " BIND(?v_cd150c95_4c31_3011_bd29_c0ea109ad4de AS ?COLUMN_DEF)"
+ " BIND(?v_055e5fdf_9ffd_3734_b005_bfe91175ad41 AS ?COLUMN_NAME)"
+ " BIND(?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6 AS ?SQL_DATA_TYPE)"
+ " BIND(?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a AS ?NUM_PREC_RADIX)"
+ " BIND(?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4 AS ?SCOPE_TABLE)"
+ " BIND(?v_a34bd851_fe93_3448_904e_058bcaa2a488 AS ?CHAR_OCTET_LENGTH)"
+ " BIND(?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8 AS ?TABLE_SCHEM)"
+ " BIND(?v_fdcdadc6_1aca_3423_a36b_057fb163d115 AS ?ORDINAL_POSITION)"
+ " BIND(?v_90528c50_8dca_3922_b967_1b5f4bfbac16 AS ?COLUMN_SIZE)"
+ " BIND(?v_caa2b141_2274_36c6_9358_ac218278a66e AS ?BUFFER_LENGTH)"
+ " BIND(?v_959bda57_4240_3bae_b500_a1cb3145adb3 AS ?NULLABLE)"
+ " BIND(?v_8631fa67_8894_3282_8dc5_d6e426b90183 AS ?REMARKS)"
+ " BIND(?v_866904db_b993_3be1_8caf_9d38d89b2d58 AS ?DATA_TYPE)"
+ " BIND(?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4 AS ?TABLE_NAME)"
+ " }"
+ " }"
+ " ORDER BY ASC(?TABLE_CAT) ASC(?TABLE_SCHEM) ASC(?TABLE_NAME) ASC(?ORDINAL_POSITION)"
+ "";
// String queryString =
// "PREFIX f: <java:org.xenei.jdbc4sparql.sparql.> SELECT DISTINCT ?TABLE_CAT ?TABLE_SCHEM ?TABLE_NAME ?COLUMN_NAME ?DATA_TYPE ?TYPE_NAME ?COLUMN_SIZE ?BUFFER_LENGTH ?DECIMAL_DIGITS ?NUM_PREC_RADIX ?NULLABLE ?REMARKS ?COLUMN_DEF ?SQL_DATA_TYPE ?SQL_DATETIME_SUB ?CHAR_OCTET_LENGTH ?ORDINAL_POSITION ?IS_NULLABLE ?SCOPE_CATLOG ?SCOPE_SCHEMA ?SCOPE_TABLE ?SOURCE_DATA_TYPE ?IS_AUTOINCREMENT"
// +
// " WHERE" +
// " { { { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://org.xenei.jdbc4sparql/entity/Column> ."
// +
// " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#table> ?v_f13657e4_6674_4af2_8d4f_6de18d655197 ."
// +
// " ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 <http://org.xenei.jdbc4sparql/entity/Schema#tables> ?v_f13657e4_6674_4af2_8d4f_6de18d655197 ."
// +
// " ?v_0606127e_438b_49aa_bee9_4d882d7f998f <http://org.xenei.jdbc4sparql/entity/Catalog#schemas> ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 ."
// +
// " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#columnDef> ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 ."
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#autoIncrement> ?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d ."
// +
// " ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://org.xenei.jdbc4sparql/entity/Table#column> ?v_8f09a023_7155_43bb_810e_66727126a28c . "
// +
// " ?v_0606127e_438b_49aa_bee9_4d882d7f998f <http://www.w3.org/2000/01/rdf-schema#label> ?v_60396d95_05cb_3f65_ac33_76af9371d45a . "
// +
// " ?v_208b578e_16ab_4d95_afd5_27dd8ec56a12 <http://www.w3.org/2000/01/rdf-schema#label> ?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8 . "
// +
// " ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://www.w3.org/2000/01/rdf-schema#label> ?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4 . "
// +
// " ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://www.w3.org/2000/01/rdf-schema#label> ?v_055e5fdf_9ffd_3734_b005_bfe91175ad41 . "
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#type> ?v_866904db_b993_3be1_8caf_9d38d89b2d58"
// +
// " OPTIONAL" +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#typeName> ?v_4686423b_c7d8_3e2f_8419_2e8d666900bc}"
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#scale> ?v_90528c50_8dca_3922_b967_1b5f4bfbac16"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_caa2b141_2274_36c6_9358_ac218278a66e}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a}"
// +
// " ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#nullable> ?v_959bda57_4240_3bae_b500_a1cb3145adb3"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Column#remarks> ?v_8631fa67_8894_3282_8dc5_d6e426b90183}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_cd150c95_4c31_3011_bd29_c0ea109ad4de}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_a34bd851_fe93_3448_904e_058bcaa2a488}"
// +
// " { ?v_f13657e4_6674_4af2_8d4f_6de18d655197 <http://org.xenei.jdbc4sparql/entity/Table#column> _:b0 ."
// +
// " _:b0 <http://jena.hpl.hp.com/ARQ/list#index> _:b1 ." +
// " _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?v_b444882e_dad7_4aa8_9f4d_fb7ba90bfc17 ."
// +
// " _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 ."
// +
// " _:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 ."
// +
// " _:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>"
// +
// " BIND(( ?v_b444882e_dad7_4aa8_9f4d_fb7ba90bfc17 + 1 ) AS ?v_fdcdadc6_1aca_3423_a36b_057fb163d115)"
// +
// " }" +
// " OPTIONAL" +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#nullable> ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3"
// +
// " BIND(if(( ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3 = 1 ), \"YES\", if(( ?v_38f6b9fd_7328_4b19_8d45_54c6ec7a97e3 = 0 ), \"NO\", \"\")) AS ?v_754a86ff_b4f2_3218_b894_8855e1bd02a2)"
// +
// " }" +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_35d0f90a_8271_317c_b412_a6eec8629b8a}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_c535c245_5a83_3d2b_9500_346d76834403}"
// +
// " OPTIONAL" +
// " { ?v_5ac7b517_6c40_3bcb_a218_d1805f13a221 <http://org.xenei.jdbc4sparql/entity/Table#null> ?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4}"
// +
// " OPTIONAL" +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#type> ?v_b311cba9_6169_32fc_a57d_af9e98adab52}"
// +
// " { ?v_ba3dcc5e_4e4a_4e67_8c17_111b4d6b3aa2 <http://org.xenei.jdbc4sparql/entity/ColumnDef#autoIncrement> ?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d"
// +
// " BIND(if(?v_9f33903c_1dfb_4e0c_b212_5fdcd232c99d, \"YES\", \"NO\") AS ?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c)"
// +
// " }" +
// " FILTER ( f:CheckTypeF(?v_60396d95_05cb_3f65_ac33_76af9371d45a, 12, false) )"
// +
// " }" +
// " BIND(?v_35d0f90a_8271_317c_b412_a6eec8629b8a AS ?SCOPE_CATLOG)"
// +
// " BIND(?v_a8c445fa_46a4_3a08_a3e3_0d165ddc0e6c AS ?SQL_DATETIME_SUB)"
// +
// " BIND(?v_65190fd1_682f_34ca_b75c_f08a7d4c5e7d AS ?DECIMAL_DIGITS)"
// +
// " BIND(?v_60396d95_05cb_3f65_ac33_76af9371d45a AS ?TABLE_CAT)"
// +
// " BIND(?v_754a86ff_b4f2_3218_b894_8855e1bd02a2 AS ?IS_NULLABLE)"
// +
// " BIND(?v_4686423b_c7d8_3e2f_8419_2e8d666900bc AS ?TYPE_NAME)"
// +
// " BIND(?v_c535c245_5a83_3d2b_9500_346d76834403 AS ?SCOPE_SCHEMA)"
// +
// " BIND(?v_b311cba9_6169_32fc_a57d_af9e98adab52 AS ?SOURCE_DATA_TYPE)"
// +
// " BIND(?v_9c1c939e_a918_3003_bf84_dc43bee6bb5c AS ?IS_AUTOINCREMENT)"
// +
// " BIND(?v_cd150c95_4c31_3011_bd29_c0ea109ad4de AS ?COLUMN_DEF)"
// +
// " BIND(?v_055e5fdf_9ffd_3734_b005_bfe91175ad41 AS ?COLUMN_NAME)"
// +
// " BIND(?v_1e2f7717_47d1_35cd_8135_a9b3b25b47c6 AS ?SQL_DATA_TYPE)"
// +
// " BIND(?v_7d58e0e2_0d5e_38f1_b8e8_4d39ba9d492a AS ?NUM_PREC_RADIX)"
// +
// " BIND(?v_37c9ca97_f24e_3c6e_b20b_97e86525a5b4 AS ?SCOPE_TABLE)"
// +
// " BIND(?v_a34bd851_fe93_3448_904e_058bcaa2a488 AS ?CHAR_OCTET_LENGTH)"
// +
// " BIND(?v_131f86b0_fe97_3301_a6fd_4c518f5d0fa8 AS ?TABLE_SCHEM)"
// +
// " BIND(?v_fdcdadc6_1aca_3423_a36b_057fb163d115 AS ?ORDINAL_POSITION)"
// +
// " BIND(?v_90528c50_8dca_3922_b967_1b5f4bfbac16 AS ?COLUMN_SIZE)"
// +
// " BIND(?v_caa2b141_2274_36c6_9358_ac218278a66e AS ?BUFFER_LENGTH)"
// +
// " BIND(?v_959bda57_4240_3bae_b500_a1cb3145adb3 AS ?NULLABLE)"
// +
// " BIND(?v_8631fa67_8894_3282_8dc5_d6e426b90183 AS ?REMARKS)"
// +
// " BIND(?v_866904db_b993_3be1_8caf_9d38d89b2d58 AS ?DATA_TYPE)"
// +
// " BIND(?v_3d2e3ea9_e4d9_3606_8d7b_e9c7aed93fe4 AS ?TABLE_NAME)"
// +
// " }" +
// " }" +
// " ORDER BY ASC(?TABLE_CAT) ASC(?TABLE_SCHEM) ASC(?TABLE_NAME) ASC(?ORDINAL_POSITION)"
// +
// "";
final Schema schema = catalog.getSchema(MetaCatalogBuilder.SCHEMA_NAME);
final Table table = schema.getTable(MetaCatalogBuilder.COLUMNS_TABLE);
final Query query = QueryFactory.create(queryString);
final List<QuerySolution> results = table.getCatalog()
.executeLocalQuery(query);
System.out.println(results.size());
for (final QuerySolution soln : results) {
System.out.println(soln);
// RDFNode x = soln.get("varName") ; // Get a result variable by
// name.
// Resource r = soln.getResource("VarR") ; // Get a result variable
// - must be a resource
// RDFNode t = soln.getLiteral("VarL") ; // Get a result variable -
// must be a literal
}
}
}