use of net.sf.jsqlparser.schema.Table in project JSqlParser by JSQLParser.
the class ExpressionDeParser method visit.
@Override
public void visit(Column tableColumn) {
final Table table = tableColumn.getTable();
String tableName = null;
if (table != null) {
if (table.getAlias() != null) {
tableName = table.getAlias().getName();
} else {
tableName = table.getFullyQualifiedName();
}
}
if (tableName != null && !tableName.isEmpty()) {
buffer.append(tableName).append(".");
}
buffer.append(tableColumn.getColumnName());
}
use of net.sf.jsqlparser.schema.Table in project herddb by diennea.
the class TableSpaceMapperTest method testGetTableSpace.
@Test
public void testGetTableSpace() throws Exception {
String script = "if (tableName.startsWith('test')) return 'ns1' else return 'ns2';";
TableSpaceMapper mapper = new TableSpaceMapper(script);
{
Insert insert = new Insert();
Table table = new Table("test1");
insert.setTable(table);
assertEquals("ns1", mapper.getTableSpace(insert));
}
{
Insert insert = new Insert();
Table table = new Table("notest1");
insert.setTable(table);
assertEquals("ns2", mapper.getTableSpace(insert));
}
}
use of net.sf.jsqlparser.schema.Table in project herddb by diennea.
the class ColumnReferencesDiscovery method accumulate.
private void accumulate(Column column) {
String tableName;
Table fromTable = column.getTable();
if (fromTable == null || fromTable.getName() == null) {
if (mainTableAlias == null) {
throw new IllegalArgumentException("you have to full qualify column names, ambiguos column is " + column);
}
tableName = mainTableAlias;
} else {
tableName = fromTable.getName();
}
String tableAlias = tableName;
if (fromTable.getAlias() != null && fromTable.getAlias().getName() != null) {
tableAlias = fromTable.getAlias().getName();
}
if (mainTableAlias == null) {
mainTableAlias = tableAlias;
} else if (!mainTableAlias.equals(tableAlias)) {
containsMixedAliases = true;
mainTableAlias = null;
}
List<Column> columnsForTable = columnsByTable.get(tableAlias);
if (columnsForTable == null) {
columnsForTable = new ArrayList<>();
columnsByTable.put(tableAlias, columnsForTable);
}
columnsForTable.add(column);
}
use of net.sf.jsqlparser.schema.Table in project InformationSystem by ObeoNetwork.
the class ViewContentFinder method visit.
public void visit(AllTableColumns allTableColumns) {
ColObject col = new ColObject("*", allTableColumns.getTable().getName(), alias);
// Before to add a table we have to check table is not already present table name may be an alias.
boolean alreadyPresentTable = false;
for (Table table : tables) {
if (table.getAlias() != null && allTableColumns.getTable() != null && (table.getAlias().equals(allTableColumns.getTable().getName()))) {
alreadyPresentTable = true;
} else if (allTableColumns.getTable() != null && table.getName().equals(allTableColumns.getTable().getName())) {
alreadyPresentTable = true;
} else if (allTableColumns.getTable() != null && allTableColumns.getTable().getName() == null) {
alreadyPresentTable = true;
}
}
if (!alreadyPresentTable) {
tables.add(allTableColumns.getTable());
}
columns.add(col);
}
use of net.sf.jsqlparser.schema.Table in project dbeaver by serge-rider.
the class SQLQuery method parseQuery.
private void parseQuery() {
if (parsed) {
return;
}
parsed = true;
try {
if (CommonUtils.isEmpty(text)) {
this.statement = null;
this.parseError = new DBException("Empty query");
return;
}
statement = SQLSemanticProcessor.parseQuery(dataSource == null ? null : dataSource.getSQLDialect(), text);
if (statement instanceof Select) {
type = SQLQueryType.SELECT;
// Detect single source table (no joins, no group by, no sub-selects)
SelectBody selectBody = ((Select) statement).getSelectBody();
if (selectBody instanceof PlainSelect) {
PlainSelect plainSelect = (PlainSelect) selectBody;
if (plainSelect.getFromItem() instanceof Table && CommonUtils.isEmpty(plainSelect.getJoins()) && (plainSelect.getGroupBy() == null || CommonUtils.isEmpty(plainSelect.getGroupBy().getGroupByExpressions())) && CommonUtils.isEmpty(plainSelect.getIntoTables())) {
boolean hasSubSelects = false;
for (SelectItem si : plainSelect.getSelectItems()) {
if (si instanceof SelectExpressionItem && ((SelectExpressionItem) si).getExpression() instanceof SubSelect) {
hasSubSelects = true;
break;
}
}
if (!hasSubSelects) {
fillSingleSource((Table) plainSelect.getFromItem());
}
}
// Extract select items info
final List<SelectItem> items = plainSelect.getSelectItems();
if (items != null && !items.isEmpty()) {
selectItems = new ArrayList<>();
for (SelectItem item : items) {
selectItems.add(new SQLSelectItem(item));
}
}
}
} else if (statement instanceof Insert) {
type = SQLQueryType.INSERT;
fillSingleSource(((Insert) statement).getTable());
} else if (statement instanceof Update) {
type = SQLQueryType.UPDATE;
Table table = ((Update) statement).getTable();
if (table != null) {
fillSingleSource(table);
}
} else if (statement instanceof Delete) {
type = SQLQueryType.DELETE;
if (((Delete) statement).getTable() != null) {
fillSingleSource(((Delete) statement).getTable());
} else {
List<Table> tables = ((Delete) statement).getTables();
if (tables != null && tables.size() == 1) {
fillSingleSource(tables.get(0));
}
}
} else if (statement instanceof Alter || statement instanceof CreateTable || statement instanceof CreateView || statement instanceof Drop || statement instanceof CreateIndex) {
type = SQLQueryType.DDL;
} else {
type = SQLQueryType.UNKNOWN;
}
} catch (Throwable e) {
this.type = SQLQueryType.UNKNOWN;
this.parseError = e;
// log.debug("Error parsing SQL query [" + query + "]:" + CommonUtils.getRootCause(e).getMessage());
}
}
Aggregations