Search in sources :

Example 31 with Table

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());
}
Also used : Table(net.sf.jsqlparser.schema.Table)

Example 32 with Table

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));
    }
}
Also used : Table(net.sf.jsqlparser.schema.Table) Insert(net.sf.jsqlparser.statement.insert.Insert) Test(org.junit.Test)

Example 33 with Table

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);
}
Also used : Table(net.sf.jsqlparser.schema.Table) Column(net.sf.jsqlparser.schema.Column)

Example 34 with Table

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);
}
Also used : Table(net.sf.jsqlparser.schema.Table)

Example 35 with Table

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());
    }
}
Also used : Delete(net.sf.jsqlparser.statement.delete.Delete) DBException(org.jkiss.dbeaver.DBException) Table(net.sf.jsqlparser.schema.Table) CreateTable(net.sf.jsqlparser.statement.create.table.CreateTable) CreateTable(net.sf.jsqlparser.statement.create.table.CreateTable) Insert(net.sf.jsqlparser.statement.insert.Insert) Update(net.sf.jsqlparser.statement.update.Update) CreateView(net.sf.jsqlparser.statement.create.view.CreateView) Drop(net.sf.jsqlparser.statement.drop.Drop) Alter(net.sf.jsqlparser.statement.alter.Alter) CreateIndex(net.sf.jsqlparser.statement.create.index.CreateIndex) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

Table (net.sf.jsqlparser.schema.Table)42 Column (net.sf.jsqlparser.schema.Column)18 Expression (net.sf.jsqlparser.expression.Expression)14 Test (org.junit.Test)13 Select (net.sf.jsqlparser.statement.select.Select)11 PlainSelect (net.sf.jsqlparser.statement.select.PlainSelect)9 AndExpression (net.sf.jsqlparser.expression.operators.conditional.AndExpression)8 ArrayList (java.util.ArrayList)6 Nullable (org.jkiss.code.Nullable)6 Statement (net.sf.jsqlparser.statement.Statement)5 DBException (org.jkiss.dbeaver.DBException)5 InvocationTargetException (java.lang.reflect.InvocationTargetException)4 java.util (java.util)4 List (java.util.List)4 Matcher (java.util.regex.Matcher)4 Pattern (java.util.regex.Pattern)4 PatternSyntaxException (java.util.regex.PatternSyntaxException)4 LongValue (net.sf.jsqlparser.expression.LongValue)4 Delete (net.sf.jsqlparser.statement.delete.Delete)4 Insert (net.sf.jsqlparser.statement.insert.Insert)4