]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/log
thirdparty/sqlalchemy/sqlalchemy.git
12 years agoformatting
Mike Bayer [Sat, 8 Jun 2013 20:14:09 +0000 (16:14 -0400)] 
formatting

12 years agochangelog
Mike Bayer [Sat, 8 Jun 2013 19:13:39 +0000 (15:13 -0400)] 
changelog

12 years agoMerge pull request #3 from bslatkin/master
mike bayer [Sat, 8 Jun 2013 19:11:25 +0000 (12:11 -0700)] 
Merge pull request #3 from bslatkin/master

Makes gaerdbms for App Engine use local MySQL server when running in dev_appserver2

12 years agomost of these dialect=mysql.dialect() calls are redundant
Mike Bayer [Sat, 8 Jun 2013 18:49:56 +0000 (14:49 -0400)] 
most of these dialect=mysql.dialect() calls are redundant

12 years ago- changelog for [ticket:2704]
Mike Bayer [Sat, 8 Jun 2013 18:47:04 +0000 (14:47 -0400)] 
- changelog for [ticket:2704]
- use an isinstance() check, concerned a TypeError might be indiscriminate

12 years agoMerged in malor/sqlalchemy (pull request #1)
Mike Bayer [Sat, 8 Jun 2013 18:39:17 +0000 (14:39 -0400)] 
Merged in malor/sqlalchemy (pull request #1)

Fix using of 'mysql_length' for composite indexes

12 years agoFix using of 'mysql_length' for composite indexes
Roman Podolyaka [Sat, 8 Jun 2013 17:38:02 +0000 (20:38 +0300)] 
Fix using of 'mysql_length' for composite indexes

Currently, one can specify the prefix length for an index
column using 'mysql_length' keyword argument when creating
an Index instance. But in case of composite indexes the
prefix length value is applied only to the last column.

Extend the existing API in way so that 'mysql_length' argument
value can be either:
    - an integer specifying the same prefix length value
      for each column of an index
    - a (column_name --> integer value) mapping specifying
      the prefix length value for each column of an index
      separately

Fixes issue #2704.

12 years agoalso clarified the changelog regarding Cls.scalar != 'value'
Mike Bayer [Sat, 8 Jun 2013 17:39:20 +0000 (13:39 -0400)] 
also clarified the changelog regarding Cls.scalar != 'value'

12 years agoAdded additional criterion to the ==, != comparators, used with
Mike Bayer [Sat, 8 Jun 2013 17:23:15 +0000 (13:23 -0400)] 
Added additional criterion to the ==, != comparators, used with
scalar values, for comparisons to None to also take into account
the association record itself being non-present, in addition to the
existing test for the scalar endpoint on the association record
being NULL.  Previously, comparing ``Cls.scalar == None`` would return
records for which ``Cls.associated`` were present and
``Cls.associated.scalar`` is None, but not rows for which
``Cls.associated`` is non-present.  More significantly, the
inverse operation ``Cls.scalar != None`` *would* return ``Cls``
rows for which ``Cls.associated`` was non-present.

Additionally, added a special use case where you
can call ``Cls.scalar.has()`` with no arguments,
when ``Cls.scalar`` is a column-based value - this returns whether or
not ``Cls.associated`` has any rows present, regardless of whether
or not ``Cls.associated.scalar`` is NULL or not.
[ticket:2751]

12 years agoFixing the error regex to match numbers with the long suffix, like 1146L
Brett Slatkin [Sat, 8 Jun 2013 09:04:27 +0000 (02:04 -0700)] 
Fixing the error regex to match numbers with the long suffix, like 1146L

12 years agoPEP8
Brett Slatkin [Sat, 8 Jun 2013 07:15:37 +0000 (00:15 -0700)] 
PEP8

12 years agoMakes gaerdbms for App Engine use local MySQL server when running under dev_appserver2.
Brett Slatkin [Sat, 8 Jun 2013 07:10:26 +0000 (00:10 -0700)] 
Makes gaerdbms for App Engine use local MySQL server when running under dev_appserver2.

12 years ago- Fixed an obscure bug where the wrong results would be
Mike Bayer [Sat, 8 Jun 2013 03:04:33 +0000 (23:04 -0400)] 
- Fixed an obscure bug where the wrong results would be
fetched when joining/joinedloading across a many-to-many
relationship to a single-table-inheriting
subclass with a specific discriminator value, due to "secondary"
rows that would come back.  The "secondary" and right-side
tables are now inner joined inside of parenthesis for all
ORM joins on many-to-many relationships so that the left->right
join can accurately filtered.
[ticket:2369]

12 years agoremove all remaining start/end py2k/py3k blocks
Mike Bayer [Fri, 7 Jun 2013 21:51:12 +0000 (17:51 -0400)] 
remove all remaining start/end py2k/py3k blocks

12 years agofix test
Mike Bayer [Thu, 6 Jun 2013 22:53:44 +0000 (18:53 -0400)] 
fix test

12 years agoMerge branch 'ticket_2587'
Mike Bayer [Thu, 6 Jun 2013 22:07:05 +0000 (18:07 -0400)] 
Merge branch 'ticket_2587'

12 years agodial back the default "flatness" a bit, it will be there for joinedload and query...
Mike Bayer [Thu, 6 Jun 2013 22:06:02 +0000 (18:06 -0400)] 
dial back the default "flatness" a bit, it will be there for joinedload and query.join(), but if
you're dealing with aliased() or with_polymorphic() you need to say "flat=True".  Just the one
flag though, "flat" implies "aliased".

12 years agoWhen querying the information schema on SQL Server 2000, removed
Mike Bayer [Thu, 6 Jun 2013 16:52:18 +0000 (12:52 -0400)] 
When querying the information schema on SQL Server 2000, removed
a CAST call that was added in 0.8.1 to help with driver issues,
which apparently is not compatible on 2000.
The CAST remains in place for SQL Server 2005 and greater.
[ticket:2747]

12 years agoshrugs
Mike Bayer [Wed, 5 Jun 2013 22:27:36 +0000 (18:27 -0400)] 
shrugs

12 years agoa test for what's breaking, plus a non-working fix for it...
Mike Bayer [Wed, 5 Jun 2013 22:06:59 +0000 (18:06 -0400)] 
a  test for what's breaking, plus a non-working fix for it...

12 years agogenericize tests here
Mike Bayer [Wed, 5 Jun 2013 03:20:02 +0000 (23:20 -0400)] 
genericize tests here

12 years agoMerge branch 'ticket_2587'
Mike Bayer [Wed, 5 Jun 2013 01:38:56 +0000 (21:38 -0400)] 
Merge branch 'ticket_2587'

Conflicts:
test/profiles.txt
test/sql/test_selectable.py

12 years ago- add coverage for result map rewriting
Mike Bayer [Wed, 5 Jun 2013 01:36:34 +0000 (21:36 -0400)] 
- add coverage for result map rewriting
- fix the result map rewriter for col mismatches, since the rewritten
select at the moment typically has more columns than the original

12 years agocallcounts
Mike Bayer [Wed, 5 Jun 2013 00:53:38 +0000 (20:53 -0400)] 
callcounts

12 years ago- if the select() does not have use_labels on, then we just render
Mike Bayer [Tue, 4 Jun 2013 23:52:53 +0000 (19:52 -0400)] 
- if the select() does not have use_labels on, then we just render
the joins as is, regardless of the dialect not supporting it.  use_labels=True
indicates a higher level of automation and also can maintain the labels
between rewritten and not.  use_labels=False indicates a manual use case.

12 years ago- support for a__b_dc, i.e. two levels of nesting
Mike Bayer [Tue, 4 Jun 2013 23:44:57 +0000 (19:44 -0400)] 
- support for a__b_dc, i.e. two levels of nesting

12 years agorepair these tests now that we allow join from selectable to fromgrouping
Mike Bayer [Tue, 4 Jun 2013 22:58:24 +0000 (18:58 -0400)] 
repair these tests now that we allow join from selectable to fromgrouping

12 years agoclean up the dialect selection thing here
Mike Bayer [Tue, 4 Jun 2013 22:49:24 +0000 (18:49 -0400)] 
clean up the dialect selection thing here

12 years ago- add a flag to DefaultDialect for this so that people will have some
Mike Bayer [Tue, 4 Jun 2013 22:43:59 +0000 (18:43 -0400)] 
- add a flag to DefaultDialect for this so that people will have some
workaround

12 years ago- improve overlapping selectables, apply to both query and relationship
Mike Bayer [Tue, 4 Jun 2013 22:23:06 +0000 (18:23 -0400)] 
- improve overlapping selectables, apply to both query and relationship
- clean up inspect() calls within query._join()
- make sure join.alias(flat) propagates
- fix almost all assertion tests

12 years ago- eager loads
Mike Bayer [Tue, 4 Jun 2013 20:48:14 +0000 (16:48 -0400)] 
- eager loads
- two suite of SQL assertions converted

12 years agohere's the flat join thing. it just works. Changing the existing compiled SQL...
Mike Bayer [Tue, 4 Jun 2013 20:21:25 +0000 (16:21 -0400)] 
here's the flat join thing.  it just works.   Changing the existing compiled SQL assertions
might even be most of the tests we need (though dedicated sql tests would be needed anyway)

12 years agoand this comment
Mike Bayer [Tue, 4 Jun 2013 18:31:56 +0000 (14:31 -0400)] 
and this comment

12 years agorewriting scheme now works.
Mike Bayer [Tue, 4 Jun 2013 18:30:29 +0000 (14:30 -0400)] 
rewriting scheme now works.

12 years agocapture the really hard one in a test (hooray)
Mike Bayer [Tue, 4 Jun 2013 17:11:03 +0000 (13:11 -0400)] 
capture the really hard one in a test (hooray)

12 years agoOK this is the broken version, need to think a lot more about this
Mike Bayer [Tue, 4 Jun 2013 01:28:53 +0000 (21:28 -0400)] 
OK this is the broken version, need to think a lot more about this

12 years ago- pulling out more aliases, sort of
Mike Bayer [Tue, 4 Jun 2013 01:01:20 +0000 (21:01 -0400)] 
- pulling out more aliases, sort of

12 years agoThe ``deferrable`` keyword argument on :class:`.ForeignKey` and
Mike Bayer [Mon, 3 Jun 2013 22:33:20 +0000 (18:33 -0400)] 
The ``deferrable`` keyword argument on :class:`.ForeignKey` and
:class:`.ForeignKeyConstraint` will not render the ``DEFERRABLE`` keyword
on the MySQL dialect.  For a long time we left this in place because
a non-deferrable foreign key would act very differently than a deferrable
one, but some environments just disable FKs on MySQL, so we'll be less
opinionated here. [ticket:2721]

12 years agoFixed bug where :class:`.MutableDict` didn't report a change event
Mike Bayer [Mon, 3 Jun 2013 22:23:23 +0000 (18:23 -0400)] 
Fixed bug where :class:`.MutableDict` didn't report a change event
when ``clear()`` was called.
[ticket:2730]

12 years ago- clean up some of the requires for cross-schema reflection
Mike Bayer [Mon, 3 Jun 2013 22:11:32 +0000 (18:11 -0400)] 
- clean up some of the requires for cross-schema reflection
- add oracle profile counts

12 years agoFixed bug whereby joining a select() of a table "A" with multiple
Mike Bayer [Mon, 3 Jun 2013 21:03:15 +0000 (17:03 -0400)] 
Fixed bug whereby joining a select() of a table "A" with multiple
foreign key paths to a table "B", to that table "B", would fail
to produce the "ambiguous join condition" error that would be
reported if you join table "A" directly to "B"; it would instead
produce a join condition with multiple criteria.
[ticket:2738]

12 years agoFixed bug whereby using :meth:`.MetaData.reflect` across a remote
Mike Bayer [Mon, 3 Jun 2013 20:40:59 +0000 (16:40 -0400)] 
Fixed bug whereby using :meth:`.MetaData.reflect` across a remote
schema as well as a local schema could produce wrong results
in the case where both schemas had a table of the same name.
[ticket:2728]

12 years ago- remove the ``__iter__()`` with notimplemented since it interferes
Mike Bayer [Mon, 3 Jun 2013 20:32:12 +0000 (16:32 -0400)] 
- remove the ``__iter__()`` with notimplemented since it interferes
with legitimate iterable detection, [ticket:2726]

12 years ago- add changelog/migration note
Mike Bayer [Mon, 3 Jun 2013 19:38:08 +0000 (15:38 -0400)] 
- add changelog/migration note
- inline the label check

12 years agoMerge branch 'master' into ticket_1068
Mike Bayer [Mon, 3 Jun 2013 19:18:16 +0000 (15:18 -0400)] 
Merge branch 'master' into ticket_1068

12 years ago- fdb is now official, [ticket:2504]
Mike Bayer [Mon, 3 Jun 2013 17:53:42 +0000 (13:53 -0400)] 
- fdb is now official, [ticket:2504]
- restore the rollback cleanup handler, pg8000 is mostly obsolete
as a dialect and the firebird drivers need it

12 years agotest tweak
Mike Bayer [Mon, 3 Jun 2013 17:45:28 +0000 (13:45 -0400)] 
test tweak

12 years agoMerge branch 'master' into ticket_1068
Mike Bayer [Mon, 3 Jun 2013 17:13:16 +0000 (13:13 -0400)] 
Merge branch 'master' into ticket_1068

12 years ago- some tweaks to try to help out mssql+pyodbc support a bit, py3k is really
Mike Bayer [Mon, 3 Jun 2013 16:54:56 +0000 (12:54 -0400)] 
- some tweaks to try to help out mssql+pyodbc support a bit, py3k is really
not happening too well (I need to stick with linux + freetds 0.91, I know)

12 years agoworking through tests....
Mike Bayer [Mon, 3 Jun 2013 00:23:03 +0000 (20:23 -0400)] 
working through tests....

12 years ago- figured out what the from_self() thing was about, part of query.statement, but...
Mike Bayer [Sun, 2 Jun 2013 23:48:30 +0000 (19:48 -0400)] 
- figured out what the from_self() thing was about, part of query.statement, but would
like to improve upon query.statement needing to do this

12 years agogetting things to join without subqueries, but some glitches in the compiler step
Mike Bayer [Sun, 2 Jun 2013 23:33:19 +0000 (19:33 -0400)] 
getting things to join without subqueries, but some glitches in the compiler step
when we do query.count() are showing

12 years agoimplement join rewriting inside of visit_select(). Currently this is global or not...
Mike Bayer [Sun, 2 Jun 2013 22:05:47 +0000 (18:05 -0400)] 
implement join rewriting inside of visit_select().  Currently this is global or not based on fixing nested_join_translation as True or not.

12 years ago- blow away context._attributes
Mike Bayer [Sun, 2 Jun 2013 16:06:39 +0000 (12:06 -0400)] 
- blow away context._attributes
- to account for query._attributes/context.attributes, just pass
the attributes dict directly to the PathRegistry methods

12 years ago0.8 changelog in 0.9
Mike Bayer [Fri, 31 May 2013 16:00:56 +0000 (12:00 -0400)] 
0.8 changelog in 0.9

12 years agoFixed a regression caused by [ticket:2682] whereby the
Mike Bayer [Fri, 31 May 2013 15:52:31 +0000 (11:52 -0400)] 
Fixed a regression caused by [ticket:2682] whereby the
evaluation invoked by :meth:`.Query.update` and :meth:`.Query.delete`
would hit upon unsupported ``True`` and ``False`` symbols
which now appear due to the usage of ``IS``.
[ticket:2737]

12 years agoadd a test for the exception we want to raise here
Mike Bayer [Fri, 31 May 2013 00:26:45 +0000 (20:26 -0400)] 
add a test for the exception we want to raise here

12 years agoThe "auto-aliasing" behavior of the :class:`.Query.select_from`
Mike Bayer [Fri, 31 May 2013 00:09:44 +0000 (20:09 -0400)] 
The "auto-aliasing" behavior of the :class:`.Query.select_from`
method has been turned off.  The specific behavior is now
availble via a new method :class:`.Query.select_entity_from`.
[ticket:2736]

12 years ago- implement armin's awesome metaclass adaptor, can drop the refs to MetaBase.
Mike Bayer [Thu, 30 May 2013 20:20:59 +0000 (16:20 -0400)] 
- implement armin's awesome metaclass adaptor, can drop the refs to MetaBase.

12 years agoremove
Mike Bayer [Thu, 30 May 2013 20:02:46 +0000 (16:02 -0400)] 
remove

12 years agoMerge branch 'rel_0_9' (was already merged...git wants to merge again)
Mike Bayer [Thu, 30 May 2013 19:59:24 +0000 (15:59 -0400)] 
Merge branch 'rel_0_9'  (was already merged...git wants to merge again)

12 years ago- the distinct hash code logic here is entirely obsolete as you can
Mike Bayer [Thu, 30 May 2013 19:56:00 +0000 (15:56 -0400)] 
- the distinct hash code logic here is entirely obsolete as you can
do eq_() on columnelements now with a meaningful bool; jython is entirely a
non-starter right now in any case as 2.7 doesn't support common accessors like __defaults__

12 years ago- fix up 0.9 links
Mike Bayer [Thu, 30 May 2013 02:37:36 +0000 (22:37 -0400)] 
- fix up 0.9 links

12 years agore-add these...
Mike Bayer [Wed, 29 May 2013 23:57:40 +0000 (19:57 -0400)] 
re-add these...

12 years ago- version 0.9
Mike Bayer [Wed, 29 May 2013 23:02:17 +0000 (19:02 -0400)] 
- version 0.9
- changelog, migration doc

12 years ago- add typical local test scripts
Mike Bayer [Wed, 29 May 2013 22:50:33 +0000 (18:50 -0400)] 
- add typical local test scripts

12 years agoMerge branch 'rel_0_9'
Mike Bayer [Wed, 29 May 2013 22:49:27 +0000 (18:49 -0400)] 
Merge branch 'rel_0_9'

Conflicts:
lib/sqlalchemy/dialects/postgresql/hstore.py
lib/sqlalchemy/util/__init__.py
lib/sqlalchemy/util/compat.py

12 years agokeep the contract for Properties as returning lists for keys, values, items.
Mike Bayer [Wed, 29 May 2013 22:46:10 +0000 (18:46 -0400)] 
keep the contract for Properties as returning lists for keys, values, items.
It's not the same as a dictionary as __iter__ does the values

12 years agoadd the py2k symbol from the 0.9 branch to support the hstore change
Mike Bayer [Wed, 29 May 2013 22:36:10 +0000 (18:36 -0400)] 
add the py2k symbol from the 0.9 branch to support the hstore change

12 years agochangelog
Mike Bayer [Wed, 29 May 2013 22:30:56 +0000 (18:30 -0400)] 
changelog

12 years ago- repair for py3k
Mike Bayer [Wed, 29 May 2013 22:29:12 +0000 (18:29 -0400)] 
- repair for py3k
- fix test

12 years agoUnicode support for psycopg2 native hstore implementation
Dmitry Mugtasimov [Tue, 28 May 2013 12:50:12 +0000 (16:50 +0400)] 
Unicode support for psycopg2 native hstore implementation

12 years ago hstores are text, and in py3k they seem to be implcitly unicode. so
Mike Bayer [Wed, 29 May 2013 22:08:28 +0000 (18:08 -0400)] 
  hstores are text, and in py3k they seem to be implcitly unicode.  so
    add unicode encoding for py2k for the non-native hstore, pullreq for
    native psycopg2 support coming....

12 years agochangelog
Mike Bayer [Wed, 29 May 2013 22:30:56 +0000 (18:30 -0400)] 
changelog

12 years ago- repair for py3k
Mike Bayer [Wed, 29 May 2013 22:29:12 +0000 (18:29 -0400)] 
- repair for py3k
- fix test

12 years agoUnicode support for psycopg2 native hstore implementation
Dmitry Mugtasimov [Tue, 28 May 2013 12:50:12 +0000 (16:50 +0400)] 
Unicode support for psycopg2 native hstore implementation

12 years ago hstores are text, and in py3k they seem to be implcitly unicode. so
Mike Bayer [Wed, 29 May 2013 22:08:28 +0000 (18:08 -0400)] 
  hstores are text, and in py3k they seem to be implcitly unicode.  so
    add unicode encoding for py2k for the non-native hstore, pullreq for
    native psycopg2 support coming....

12 years ago- move an import stuck in the middle here...
Mike Bayer [Tue, 28 May 2013 05:43:12 +0000 (01:43 -0400)] 
- move an import stuck in the middle here...

12 years agoMerge branch 'master' into rel_0_9
Mike Bayer [Tue, 28 May 2013 05:22:32 +0000 (01:22 -0400)] 
Merge branch 'master' into rel_0_9

12 years agoFixed a small bug in the dogpile example where the generation
Mike Bayer [Tue, 28 May 2013 05:22:10 +0000 (01:22 -0400)] 
Fixed a small bug in the dogpile example where the generation
of SQL cache keys wasn't applying deduping labels to the
statement the same way :class:`.Query` normally does.

12 years agomagic accessors to the rescue
Mike Bayer [Tue, 28 May 2013 01:43:29 +0000 (21:43 -0400)] 
magic accessors to the rescue

12 years agostill not locating more nested expressions, may need to match on name
Mike Bayer [Tue, 28 May 2013 01:05:16 +0000 (21:05 -0400)] 
still not locating more nested expressions, may need to match on name

12 years agoattempt number one, doesn't detect though if the label in the order by is not directl...
Mike Bayer [Mon, 27 May 2013 23:22:59 +0000 (19:22 -0400)] 
attempt number one, doesn't detect though if the label in the order by is not directly present there.

12 years ago- run the whole test suite with the "debugging" ordered dict on,
Mike Bayer [Mon, 27 May 2013 21:15:30 +0000 (17:15 -0400)] 
- run the whole test suite with the "debugging" ordered dict on,
find some more failures

12 years ago- additional oracle fixes. cx_oracle under py3k is complaining about tuples to execu...
Mike Bayer [Mon, 27 May 2013 21:06:05 +0000 (17:06 -0400)] 
- additional oracle fixes.  cx_oracle under py3k is complaining about tuples to executemany(),
so just unconditionally turn this into a list
- this one test segfaults only on py3k + cx_oracle

12 years ago- oracle py3k fix
Mike Bayer [Mon, 27 May 2013 20:34:18 +0000 (16:34 -0400)] 
- oracle py3k fix

12 years ago- fix a dict while iterate mutation
Mike Bayer [Mon, 27 May 2013 17:39:24 +0000 (13:39 -0400)] 
- fix a dict while iterate mutation
- illustrate how OrderedDict can catch these, but commented out
to save function overhead

12 years agofix test_execute w c extensions
Mike Bayer [Mon, 27 May 2013 00:44:34 +0000 (20:44 -0400)] 
fix test_execute w c extensions

12 years agoclean up types.py
Mike Bayer [Mon, 27 May 2013 00:24:39 +0000 (20:24 -0400)] 
clean up types.py

12 years agoclean up some of this collection stuff
Mike Bayer [Mon, 27 May 2013 00:17:22 +0000 (20:17 -0400)] 
clean up some of this collection stuff

12 years agofix an errant str check
Mike Bayer [Mon, 27 May 2013 00:04:54 +0000 (20:04 -0400)] 
fix an errant str check

12 years agoget profile 1a back down to 5100 calls, that one was 10% greater due to this
Mike Bayer [Mon, 27 May 2013 00:02:17 +0000 (20:02 -0400)] 
get profile 1a back down to 5100 calls, that one was 10% greater due to this

12 years agomssql test fixes
Mike Bayer [Sun, 26 May 2013 23:49:50 +0000 (19:49 -0400)] 
mssql test fixes

12 years ago- zoomark tests
Mike Bayer [Sun, 26 May 2013 23:47:13 +0000 (19:47 -0400)] 
- zoomark tests
- rewrite all profiles, we'll review the diffs to see if anything is too far out

12 years agoa pass where we try to squash down as many list()/keys() combinations
Mike Bayer [Sun, 26 May 2013 23:06:13 +0000 (19:06 -0400)] 
a pass where we try to squash down as many list()/keys() combinations
as possible

12 years agofix the unicode test suite
Mike Bayer [Sun, 26 May 2013 22:25:43 +0000 (18:25 -0400)] 
fix the unicode test suite

12 years agodo a sweep of some obvious 3kisms
Mike Bayer [Sun, 26 May 2013 22:23:26 +0000 (18:23 -0400)] 
do a sweep of some obvious 3kisms

12 years agoremove this
Mike Bayer [Sun, 26 May 2013 22:08:03 +0000 (18:08 -0400)] 
remove this

12 years ago- oracle tests passing in py3k!!
Mike Bayer [Sun, 26 May 2013 21:58:07 +0000 (17:58 -0400)] 
- oracle tests passing in py3k!!

12 years agoa few more oracle fixes
Mike Bayer [Sun, 26 May 2013 21:39:53 +0000 (17:39 -0400)] 
a few more oracle fixes