Project

General

Profile

Statistics
| Revision:

# Date Author Comment
2820 06/13/2012 08:06 PM Aaron Marcuse-Kubitza

sql.py: cast(): Support string column name inputs

2819 06/13/2012 07:12 PM Aaron Marcuse-Kubitza

sql.py: DbConn: Renamed col_default() to col_info() and have it return a sql_gen.TypedCol object containing all the TypedCol info about the column, not just the default value

2818 06/13/2012 06:55 PM Aaron Marcuse-Kubitza

sql_gen.py: TypedCol: Added default and nullable params

2817 06/13/2012 06:53 PM Aaron Marcuse-Kubitza

dicts.py: Import util after items that util depends on have been defined, to avoid unsatisfied circular dependency

2816 06/13/2012 06:30 PM Aaron Marcuse-Kubitza

sql.py: DbConn.col_default(): Pass the connection to sql_gen.as_Code() so it fixes the syntax on values returned by PostgreSQL

2815 06/13/2012 06:29 PM Aaron Marcuse-Kubitza

sql_gen.py: as_Code(): Added optional db param, which causes the function to run db.std_code() on the value to fix the syntax

2814 06/13/2012 06:27 PM Aaron Marcuse-Kubitza

sql.py: DbConn: Added std_code()

2813 06/13/2012 03:02 PM Aaron Marcuse-Kubitza

db_xml.py: Removed into_table_name() because this functionality is now handled by sql.into_table_name()

2812 06/13/2012 02:59 PM Aaron Marcuse-Kubitza

sql.py: into_table_name(): Also parse hierarchical tables (mappings with a rank column) using a special syntax

2811 06/13/2012 02:44 PM Aaron Marcuse-Kubitza

sql.py: put_table(): Fixed bug where distinct_on included columns that were not in the input table, and were thus incorrectly taken from the LEFT JOINed output table

2810 06/12/2012 10:32 PM Aaron Marcuse-Kubitza

sql.py: track_data_error(): Do nothing if cols are empty, because mk_track_data_error() requires at least one col. mk_track_data_error(): Assert that cols are not empty because VALUES clause requires at least one row.

2809 06/12/2012 10:26 PM Aaron Marcuse-Kubitza

bin/map: by_col: Pass on_error to db_xml.put_table() that calls ex_tracker.track()

2808 06/12/2012 10:14 PM Aaron Marcuse-Kubitza

sql.py: put_table(): No handler for exception: Pass exception to on_error() instead of raising a warning, so that error message can be formatted

2807 06/12/2012 10:08 PM Aaron Marcuse-Kubitza

db_xml.py: put_table(): Pass on_error to sql.put_table()

2806 06/12/2012 10:07 PM Aaron Marcuse-Kubitza

db_xml.py: put_table(): Take on_error param like row-based put()

2805 06/12/2012 10:06 PM Aaron Marcuse-Kubitza

sql.py: put_table(): Take on_error param

2804 06/12/2012 09:48 PM Aaron Marcuse-Kubitza

sql.py: get_cur_query(): Removed no longer used input_params parameter

2803 06/12/2012 09:46 PM Aaron Marcuse-Kubitza

sql.py: Removed unused mogrify()

2802 06/12/2012 09:42 PM Aaron Marcuse-Kubitza

sql.py: DbConn.DbCursor.execute(): Removed no longer used params parameter

2801 06/12/2012 09:32 PM Aaron Marcuse-Kubitza

sql.py: with_autocommit(): Use isolation_level attr and set_isolation_level() method of connection instead of autocommit attr to support older versions of psycopg2

2800 06/12/2012 09:18 PM Aaron Marcuse-Kubitza

sql.py: DbConn.DbCursor.execute(): Only fetch all rows for empty SELECT query, to support older versions of Python that would give a "no results to fetch" error for other types of queries

2799 06/12/2012 09:13 PM Aaron Marcuse-Kubitza

csv2db: When reraising exception, use `raise` instead of `raise e` to preserve whole stack trace

2798 06/12/2012 09:12 PM Aaron Marcuse-Kubitza

sql.py: Removed no longer used _query_lookup()

2797 06/12/2012 09:05 PM Aaron Marcuse-Kubitza

sql.py: DbConn: Cache queries without params, as params are no longer used

2796 06/12/2012 09:03 PM Aaron Marcuse-Kubitza

sql.py: DbConn.is_cached(): Removed no longer used params parameter

2795 06/12/2012 09:01 PM Aaron Marcuse-Kubitza

sql.py: Removed no longer used run_raw_query()

2794 06/12/2012 09:00 PM Aaron Marcuse-Kubitza

sql.py: run_query(): Call db.run_query() directly instead of via run_raw_query()

2793 06/12/2012 08:56 PM Aaron Marcuse-Kubitza

sql.py: DbConn.run_query(): Removed no longer used params parameter

2792 06/12/2012 08:50 PM Aaron Marcuse-Kubitza

sql.py: DbConn._db(): Setting search_path: Use esc_value() instead of params

2791 06/12/2012 08:43 PM Aaron Marcuse-Kubitza

sql.py: run_query(): Removed no longer used params parameter

2790 06/12/2012 08:37 PM Aaron Marcuse-Kubitza

sql.py: run_query_into(): Moved main case (into != None) outside of if statement because the special-case if statement contains `return`

2789 06/12/2012 08:35 PM Aaron Marcuse-Kubitza

sql.py: run_query_into(): Removed no longer used params parameter

2788 06/12/2012 08:32 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): Removed no longer used params parameter

2787 06/12/2012 08:25 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): Return just the query instead of the query plus empty params

2786 06/12/2012 08:22 PM Aaron Marcuse-Kubitza

sql.py: mk_select(): Return just the query instead of the query plus empty params

2785 06/12/2012 08:12 PM Aaron Marcuse-Kubitza

sql.py: tables(): Use select() instead of a custom run_query() to avoid using params, which will be deprecated to make it easier to support old versions of Python

2784 06/12/2012 08:11 PM Aaron Marcuse-Kubitza

sql.py: DbConn.DbCursor.execute(): Require that params are empty, to ensure that code uses db.esc_value() instead. This keeps literal values in the same place as the rest of the query, so that they do not need to be maintained and passed around separately in a params list.

2783 06/12/2012 08:06 PM Aaron Marcuse-Kubitza

sql.py: constraint_cols(): Use db.esc_value() instead of params

2782 06/12/2012 08:05 PM Aaron Marcuse-Kubitza

sql.py: index_cols(): Use db.esc_value() instead of params

2781 06/12/2012 08:00 PM Aaron Marcuse-Kubitza

sql.py: add_pkey(): Use simpler `ADD PRIMARY KEY` syntax to avoid having to create a name for the primary key

2780 06/12/2012 07:57 PM Aaron Marcuse-Kubitza

db_xml.py: put_table(): Subsetting in_table: Add pkey to created temp table to facilitate joining it with intermediate tables

2779 06/12/2012 07:47 PM Aaron Marcuse-Kubitza

sql.py: tables(): Use select() instead of a custom run_query() to avoid using params, which will be deprecated to make it easier to support old versions of Python

2778 06/12/2012 07:14 PM Aaron Marcuse-Kubitza

schemas/postgresql.nimoy.conf: shared_buffers: Fixed syntax error where decimals were not supported

2777 06/12/2012 07:03 PM Aaron Marcuse-Kubitza

sql.py: truncate(): Re-added support for string tables using sql_gen.as_Table(). This fixes empty_db(), which relied on this functionality.

2776 06/12/2012 07:01 PM Aaron Marcuse-Kubitza

sql_gen.py: as_Table(): Added schema param to use as default schema

2775 06/12/2012 06:54 PM Aaron Marcuse-Kubitza

inputs/SALVIAS: Switched to using CSV exports of the DB, so that staging tables could be created for column-based import

2774 06/12/2012 06:48 PM Aaron Marcuse-Kubitza

sql.py: run_query_into(): Added add_indexes_ param which causes the function to add indexes on the created table

2773 06/12/2012 06:18 PM Aaron Marcuse-Kubitza

sql.py: create_table(): Use new add_indexes()

2772 06/12/2012 06:15 PM Aaron Marcuse-Kubitza

sql.py: Added add_indexes()

2771 06/12/2012 05:38 PM Aaron Marcuse-Kubitza

sql.py: get_cur_query(): Fixed bug where strings.ustr() needed to be used instead of str() when ensuring that get_cur_query() returns a string

2770 06/12/2012 05:35 PM Aaron Marcuse-Kubitza

sql.py: cast(): Removed conditional checks for save_errors, since it's now always true if the function got passed the `not save_errors` special case

2769 06/12/2012 05:32 PM Aaron Marcuse-Kubitza

sql.py: cast(): Only convert errors to warnings if errors will be saved in errors_table, so that import will always be aborted if user supplied invalid values in the mappings, even if these values are passed through a relational function

2768 06/12/2012 04:58 PM Aaron Marcuse-Kubitza

sql.py: put_table(): Support inserting tables with all default values, by providing the pkey's default value for all rows so that the SELECT query has at least one column

2767 06/12/2012 04:57 PM Aaron Marcuse-Kubitza

sql_gen.py: is_table_col(): Check that input is a Col object

2766 06/12/2012 04:31 PM Aaron Marcuse-Kubitza

sql.py: put_table(): Assert that mapping is non-empty

2765 06/12/2012 04:23 PM Aaron Marcuse-Kubitza

sql.py: mk_select(): Assert that fields list is non-empty

2764 06/12/2012 04:18 PM Aaron Marcuse-Kubitza

sql.py: DbConn.DbCursor.execute(): Set _is_insert only if query starts with INSERT, so that function definitions containing INSERT are not cached as INSERT statements (exceptions only) themselves

2763 06/12/2012 04:10 PM Aaron Marcuse-Kubitza

sql.py: DbConn.DbCursor.execute(): Fixed bug where params == None would apparently turn off the mogrifier completely, causing "%"s to be excessively escaped, by just setting params to None if it was [] or () and not using strings.esc_for_mogrify() at all

2762 06/12/2012 03:51 PM Aaron Marcuse-Kubitza

sql.py: DbConn.DbCursor.execute(): If not using params, escape the query using strings.esc_for_mogrify() in case any literals contained "%"s

2761 06/12/2012 03:49 PM Aaron Marcuse-Kubitza

strings.py: Added esc_for_mogrify()

2760 06/12/2012 03:05 PM Aaron Marcuse-Kubitza

sql.py: create_table(): Add indexes on all non-pkey columns, unless turned off or deferred using new param col_indexes

2759 06/12/2012 02:46 PM Aaron Marcuse-Kubitza

csv2db: Add column indexes on errors table. Use typed_cols and `.to_Col()` to iterate over columns to add indexes on, for the main and errors tables.

2758 06/11/2012 11:13 PM Aaron Marcuse-Kubitza

sql.py: Added track_data_error(). put_table(): ignore(): Take extra e param for the exception. Use track_data_error() to store the invalid value in the errors table.

2757 06/11/2012 11:11 PM Aaron Marcuse-Kubitza

sql_gen.py: Join.to_str(): Add newline before and after right table if it's been renamed (and therefore takes up multiple lines)

2756 06/11/2012 11:10 PM Aaron Marcuse-Kubitza

exc.py: ExceptionWithCause: Store the cause in an instance variable for later use

2755 06/11/2012 10:47 PM Aaron Marcuse-Kubitza

sql.py: mk_track_data_error(): Rename the errors_table to make the generated SQL less verbose

2754 06/11/2012 10:42 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): Run sql_gen.remove_table_rename() on table to get just the actual name in the DB

2753 06/11/2012 10:42 PM Aaron Marcuse-Kubitza

sql_gen.py: Added remove_table_rename()

2752 06/11/2012 10:40 PM Aaron Marcuse-Kubitza

sql_gen.py: Col: Run `.to_Table()` on table to get just the reference to the table, not any SQL code that defines it

2751 06/11/2012 10:10 PM Aaron Marcuse-Kubitza

sql.py: Added mk_track_data_error() and use it in cast(). This also ensures that if only one source column's row in the CROSS JOIN violates a unique constraint, other source columns' rows are still inserted.

2750 06/11/2012 09:59 PM Aaron Marcuse-Kubitza

sql_gen.py: with_default_table(): Added overwrite param to overwrite the table (if it isn't a NamedCol)

2749 06/11/2012 09:57 PM Aaron Marcuse-Kubitza

sql_gen.py: Join.to_str(): join(): Get just the table name of left_table and right_table using `.to_Table()`. Moved order switching of tables inside join() because the order reversing only applies to an individual condition.

2748 06/11/2012 09:34 PM Aaron Marcuse-Kubitza

sql_gen.py: Renamed set_default_table() to with_default_table() and copy col before modifying it so don't modify input

2747 06/11/2012 09:14 PM Aaron Marcuse-Kubitza

sql_gen.py: Added set_default_table(). as_ValueCond(): Use set_default_table() instead of as_Col() so that any name-only column also gets its table set. Join.to_str(): Parse left side using set_default_table() instead of as_Col() so that any name-only column also gets its table set.

2746 06/11/2012 07:31 PM Aaron Marcuse-Kubitza

sql_gen.py: Join: mapping param defaults to {} for e.g. CROSS JOINs. to_str(): Omit join_cond if mapping is empty, rather than if join is a specific type.

2745 06/11/2012 07:24 PM Aaron Marcuse-Kubitza

sql_gen.py: NamedValues: Change cols to Col objects with the table set to `name`

2744 06/11/2012 07:23 PM Aaron Marcuse-Kubitza

sql_gen.py: Added set_cols_table()

2743 06/11/2012 07:00 PM Aaron Marcuse-Kubitza

sql.py: mk_insert_select(): returning: Use sql_gen.to_name_only_col()

2742 06/11/2012 06:52 PM Aaron Marcuse-Kubitza

sql_gen.py: NamedTable: cols: Use sql_gen.Col objects or name strings instead of pre-rendered SQL code

2741 06/11/2012 06:35 PM Aaron Marcuse-Kubitza

sql_gen.py: NamedTable: Wrap nested code in Expr if needed

2740 06/11/2012 06:27 PM Aaron Marcuse-Kubitza

sql_gen.py: Added NamedValues

2739 06/11/2012 06:04 PM Aaron Marcuse-Kubitza

sql_gen.py: Values: Support multiple rows

2738 06/11/2012 05:54 PM Aaron Marcuse-Kubitza

sql.py: insert(): Use new sql_gen.Values

2737 06/11/2012 05:53 PM Aaron Marcuse-Kubitza

sql_gen.py: Added Values and default

2736 06/11/2012 05:26 PM Aaron Marcuse-Kubitza

sql_gen.py: Join.to_str(): Don't add join condition for CROSS JOINs

2735 06/11/2012 05:03 PM Aaron Marcuse-Kubitza

sql.py: put_table(): Factored out errors_table name setting so it can be used by ignore()

2734 06/11/2012 04:38 PM Aaron Marcuse-Kubitza

bin/map: If doing full import, clear errors table

2733 06/11/2012 04:37 PM Aaron Marcuse-Kubitza

sql.py: truncate(): Support sql_gen.Table objects

2732 06/11/2012 04:21 PM Aaron Marcuse-Kubitza

sql.py: Moved truncate() to Database structure queries section

2731 06/11/2012 04:11 PM Aaron Marcuse-Kubitza

sql.py: tables(): Run query with log_level=4 because it's a low-level structure-determining query

2730 06/11/2012 04:07 PM Aaron Marcuse-Kubitza

sql.py: table_exists(): Use new tables() exact param so that LIKE special chars in table name are not interpreted specially

2729 06/11/2012 04:07 PM Aaron Marcuse-Kubitza

sql.py: tables(): Added exact param to check for exact matches only

2728 06/11/2012 04:03 PM Aaron Marcuse-Kubitza

sql.py: put_table(): MissingCastException: Use new errors_table()

2727 06/11/2012 04:02 PM Aaron Marcuse-Kubitza

csv2db: Use new sql.errors_table()

2726 06/11/2012 04:02 PM Aaron Marcuse-Kubitza

sql.py: Added table_exists() and errors_table()

2725 06/08/2012 09:59 PM Aaron Marcuse-Kubitza

sql.py: DbConn.print_notices(): Fixed bug where it should not do anything for a MySQL connection, because that doesn't store notices the way Postgres does

2724 06/08/2012 09:54 PM Aaron Marcuse-Kubitza

sql.py: put_table(): MissingCastException: Debug message: Added Redmine formatting

2723 06/08/2012 09:48 PM Aaron Marcuse-Kubitza

schemas/functions.sql, vegbien.sql: Removed no longer needed cast functions, which are now created on the fly by column-based import

2722 06/08/2012 09:45 PM Aaron Marcuse-Kubitza

schemas/functions.sql: _nullIf(): Ignore uncastable value, because a value that's invalid for the given type is still well-defined as not matching the nullif() criterion

2721 06/08/2012 09:25 PM Aaron Marcuse-Kubitza

sql.py: put_table(): MissingCastException: Debug message: Removed "'s" so it wouldn't mess up syntax highlighting when pasting debug output into a SQL file