~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/canonical/database/postgresql.py

  • Committer: Jeroen Vermeulen
  • Date: 2011-09-26 06:30:07 UTC
  • mto: This revision was merged to the branch mainline in revision 14049.
  • Revision ID: jeroen.vermeulen@canonical.com-20110926063007-1fb5eelnidpnra9a
Fix lots of lint in recently-changed files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
85
85
 
86
86
    for t in cur.fetchall():
87
87
        # t == (src_table, src_column, dest_table, dest_column, upd, del)
88
 
        if t not in _state: # Avoid loops
 
88
        # Avoid loops:
 
89
        if t not in _state:
89
90
            _state.append(t)
90
91
            # Recurse, Locating references to the reference we just found.
91
92
            listReferences(cur, t[0], t[1], _state)
93
94
    # from the original (table, column), making it easier to change keys
94
95
    return _state
95
96
 
 
97
 
96
98
def listUniques(cur, table, column):
97
99
    '''Return a list of unique indexes on `table` that include the `column`
98
100
 
175
177
            rv.append(tuple(keys))
176
178
    return rv
177
179
 
 
180
 
178
181
def listSequences(cur):
179
182
    """Return a list of (schema, sequence, table, column) tuples.
180
183
 
206
209
    for schema, sequence in list(cur.fetchall()):
207
210
        match = re.search('^(\w+)_(\w+)_seq$', sequence)
208
211
        if match is None:
209
 
            rv.append( (schema, sequence, None, None) )
 
212
            rv.append((schema, sequence, None, None))
210
213
        else:
211
214
            table = match.group(1)
212
215
            column = match.group(2)
225
228
            cur.execute(sql, dict(schema=schema, table=table, column=column))
226
229
            num = cur.fetchone()[0]
227
230
            if num == 1:
228
 
                rv.append( (schema, sequence, table, column) )
 
231
                rv.append((schema, sequence, table, column))
229
232
            else:
230
 
                rv.append( (schema, sequence, None, None) )
 
233
                rv.append((schema, sequence, None, None))
231
234
    return rv
232
235
 
 
236
 
233
237
def generateResetSequencesSQL(cur):
234
238
    """Return SQL that will reset table sequences to match the data in them.
235
239
    """
257
261
    else:
258
262
        return ''
259
263
 
 
264
 
260
265
def resetSequences(cur):
261
266
    """Reset table sequences to match the data in them.
262
267
 
281
286
# Regular expression used to parse row count estimate from EXPLAIN output
282
287
_rows_re = re.compile("rows=(\d+)\swidth=")
283
288
 
 
289
 
284
290
def estimateRowCount(cur, query):
285
291
    """Ask the PostgreSQL query optimizer for an estimated rowcount.
286
292
 
422
428
 
423
429
    cur.execute("SET enable_seqscan=%s" % permission_value)
424
430
 
 
431
 
425
432
def all_tables_in_schema(cur, schema):
426
433
    """Return a set of all tables in the given schema.
427
 
   
 
434
 
428
435
    :returns: A set of quoted, fully qualified table names.
429
436
    """
430
437
    cur.execute("""
574
581
 
575
582
    for table, column in listReferences(cur, 'person', 'id'):
576
583
        print '%32s %32s' % (table, column)
577