} // testUseAnotherSchemaBuilder() private void runParseabilityTest(JsonDataContext dc) { Schema default_schema = dc.getDefaultSchema(); Debug.WriteLine("JsonDataContextTest.runParseabilityTest() default_schema:'" + default_schema.getName() + "'"); int table_count = default_schema.getTableCount(); Table[] tables = default_schema.getTables(false); string expected_value = ""; string value_returned = ""; string[] column_names = null; string tables_str = ""; foreach (Table t in tables) { column_names = t.getColumnNames(); tables_str = NArrays.ArrayAsString(column_names); } Table table = default_schema.getTable(0); column_names = table.getColumnNames(); //string tables_str = string.Join(", ", column_names); // column_names.ToString(); tables_str = NArrays.ArrayAsString(column_names); expected_value = "[country, gender, id, name]"; value_returned = tables_str; Debug.WriteLine("JsonDataContextTest.runParseabilityTest() tables_str: '" + tables_str); Debug.Assert(expected_value.Equals(tables_str), "JsonDataContextTest.runParseabilityTest()\n" + " *Assertion Failed* expected_value: '" + expected_value + "'\n" + " test_value: '" + value_returned + "'" ); Column[] columns = table.getColumns(); DataSet dataSet = dc.materializeMainSchemaTable(table, columns, 100000); Debug.Assert(dataSet.next()); expected_value = "Row[values=[US, null, 1234, John Doe]]"; value_returned = dataSet.getRow().ToString(); Debug.Assert("Row[values=[US, null, 1234, John Doe]]".Equals(value_returned), "JsonDataContextTest.runParseabilityTest()\n" + " *Assertion Failed* expected_value: '" + expected_value + "'\n" + " test_value: '" + value_returned + "'"); Debug.Assert(!dataSet.next()); Debug.Assert("Row[values=[USA, F, 1235, Jane Doe]]".Equals(dataSet.getRow().ToString())); Debug.Assert(!dataSet.next()); dataSet.close(); } // runParseabilityTest()
// @Override public TableFromBuilder from(Schema schema, String tableName) { Table table = schema.getTableByName(tableName); if (table == null) { throw new ArgumentException("Nu such table '" + tableName + "' found in schema: " + schema + ". Available tables are: " + NArrays.ArrayAsString(schema.getTableNames(false))); } return(from(table)); }
// @Override public Column findColumn(String columnName) // throws IllegalArgumentException { if (columnName == null) { throw new ArgumentException("columnName cannot be null"); } List <FromItem> fromItems = _query.getFromClause().getItems(); List <SelectItem> selectItems = _query.getSelectClause().getItems(); Column column = null; int dotIndex = columnName.IndexOf('.'); if (dotIndex != -1) { // check aliases of from items String aliasPart = columnName.Substring(0, dotIndex); String columnPart = columnName.Substring(dotIndex + 1); foreach (FromItem fromItem in fromItems) { column = null; column = findColumnInAliasedTable(column, fromItem, aliasPart, columnPart); if (column != null) { return(column); } } } // check columns already in select clause foreach (SelectItem item in selectItems) { column = item.getColumn(); if (column != null) { if (columnName.Equals(column.getName())) { return(column); } } } foreach (FromItem fromItem in fromItems) { Table table = fromItem.getTable(); if (table != null) { column = table.getColumnByName(columnName); if (column != null) { return(column); } } } column = _dataContext.getColumnByQualifiedLabel(columnName); if (column != null) { return(column); } ArgumentException exception = new ArgumentException("Could not find column: " + columnName); if (logger.isDebugEnabled()) { logger.debug("findColumn('" + columnName + "') could not resolve a column", exception); foreach (FromItem fromItem in fromItems) { Table table = fromItem.getTable(); if (table != null) { logger.debug("Table available in FROM item: {}. Column names: {}", table, NArrays.ArrayAsString(table.getColumnNames())); } } } throw exception; }