def renameSql(old, new, table, c, n): tempTable = Expression.Relation("temp" + str(n), c) where = "" rd.createTempAs("tempRename", rd.selectSql("*", table.name, where, c), c) rd.modifAttr("tempRename", "RENAME COLUMN", old.name + " to " + new.name, c) sel = rd.selectSql("*", "tempRename", where, c) rd.createTempAs("temp" + str(n), sel, c) c.execute("DROP TABLE tempRename") return tempTable
def joinSql(table, table2, c, n): tempTable = Expression.Relation("temp" + str(n), c) rd.createTempAs( "temp" + str(n), rd.selectSql("*", table.name + " Natural Join " + table2.name, "", c), c) return tempTable
def selectionSqlAttr(attr1, attr2, table, c, n): tempTable = Expression.Relation("temp" + str(n), c) rd.createTempAs( "temp" + str(n), rd.selectSql("*", table, " WHERE " + attr1.name + "=" + attr2.name, c), c) return tempTable
def selectionSqlCst(attr, cst, table, c, n): tempTable = Expression.Relation("temp" + str(n), c) rd.createTempAs( "temp" + str(n), rd.selectSql("*", table, " WHERE " + attr.name + "='" + str(cst.valeur) + "'", c), c) return tempTable
def projectionSql(attrlist, table, c, n): where = " GROUP BY " attrs = "" for i in range(len(attrlist)): if i != len(attrlist) - 1: attrs += str(attrlist[i]) + ", " else: attrs += str(attrlist[i]) + " " rd.createTempAs("temp" + str(n), rd.selectSql(attrlist, table, where + attrs, c), c) tempTable = Expression.Relation("temp" + str(n), c) return tempTable
def unionSql(table, table2, c, n): tempTable = Expression.Relation("temp" + str(n), c) sel1 = rd.selectSql("*", table.name, "", c) colstab = rd.getColAndTypes(table.name, c) cols = "" for i in range(len(colstab)): if i != len(colstab) - 1: cols += colstab[i][0] + ", " else: cols += colstab[i][0] + " " sel2 = "SELECT " + cols + " FROM " + table2.name rd.createTempAs("temp" + str(n), sel1 + " UNION " + sel2, c) return tempTable