Commit 19479af1 authored by Kevin Deldycke's avatar Kevin Deldycke

Update ZMySQLDDA string.

Replace some Tabs with Spaces.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@7701 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 197db67b
Z MySQL DDA Releases
Z MySQL Deferred DA Releases
2.0.9
......
##############################################################################
#
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
#
# Copyright (c) Digital Creations. All rights reserved.
# Copyright (c) Nexedi SARL 2004. All rights reserved.
#
#
# This license has been certified as Open Source(tm).
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
......@@ -27,43 +27,43 @@
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
#
#
# Disclaimer
#
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
......@@ -76,12 +76,12 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
#
##############################################################################
from Products.ZMySQLDA.DA import *
......@@ -101,10 +101,10 @@ class DeferredConnection(Connection):
Experimental MySQL DA which implements
deferred SQL code execution to reduce locking issues
"""
meta_type=title='Z %s Database Deferred Connection' % database_type
meta_type=title='Z %s Deferred Database Connection' % database_type
def factory(self): return DeferredDB
def connect(self,s):
try: self._v_database_connection.close()
except: pass
......@@ -114,11 +114,11 @@ class DeferredConnection(Connection):
self._v_database_connection=DeferredDB(s)
self._v_connected=DateTime()
return self
classes=('DA.DeferredConnection')
meta_types=(
{'name':'Z %s Database Deferred Connection' % database_type,
{'name':'Z %s Deferred Database Connection' % database_type,
'action':'manage_addZ%sDeferredConnectionForm' % database_type,
},
)
......
Z MySQL Deferred DA
This is the Z MySQL database deferred adapter product for the
This is the Z MySQL database deferred adapter product for the
Z Object Publishing Environment. It is based on
ZMySQLDA and follows the same API and installation
procedure.
procedure.
The main difference with ZMySQLDA is that the execution
of SQL expressions is deferred and executed during the Zope
commit time rather than immediately. This allows for example
......@@ -12,7 +12,7 @@ Z MySQL Deferred DA
time, which reduces risks of lock. It also allows to use
MyISAM tables without raising useless exception messages related
to the non transactional nature of MyISAM.
** IMPORTANT **
SELECT expressions will not work in deferred mode
\ No newline at end of file
##############################################################################
#
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
#
# Copyright (c) Digital Creations. All rights reserved.
#
#
# This license has been certified as Open Source(tm).
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
......@@ -26,43 +26,43 @@
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
#
#
# Disclaimer
#
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
......@@ -75,12 +75,12 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
#
##############################################################################
__doc__='''Generic Deferred Database Adapter Package Registration
......@@ -97,11 +97,11 @@ def initialize(context):
context.registerClass(
DA.DeferredConnection,
permission='Add Z MySQL Database Deferred Connections',
permission='Add Z MySQL Deferred Database Connections',
constructors=(DA.manage_addZMySQLDeferredConnectionForm,
DA.manage_addZMySQLDeferredConnection,)
)
context.registerHelp()
context.registerHelpTitle('ZMySQLDDA')
<html>
<head><title>Add Z MySQL Database Connection</title></head>
<head><title>Add Z MySQL Deferred Database Connection</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<h2>Add Z MySQL Database Deferred Connection</h2>
<form action="manage_addZMySQLConnection" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="id" size="40"
value="MySQL_database_connection">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP"><em>Title</em></th>
<td align="LEFT" valign="TOP">
</tr>
<tr>
<th align="LEFT" valign="TOP"><em>Title</em></th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="title" size="40"
value="Z MySQL Database Connection">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">
</tr>
<tr>
<th align="LEFT" valign="TOP">
Enter a Database Connection String
<a href="#1"><sup>1</sup></a></th>
<td align="LEFT" valign="TOP">
<a href="#1"><sup>1</sup></a></th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="connection_string" size="40">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Connect immediately</th>
<td align="LEFT" valign="TOP">
</tr>
<tr>
<th align="LEFT" valign="TOP">Connect immediately</th>
<td align="LEFT" valign="TOP">
<input name="check" type="CHECKBOX" value="YES" CHECKED>
</td>
</tr>
<tr>
<td></td>
<td><br><input type="SUBMIT" value="Add"></td>
</tr>
</tr>
<tr>
<td></td>
<td><br><input type="SUBMIT" value="Add"></td>
</tr>
</table>
</form>
......@@ -85,7 +85,7 @@
respect, it's equivalent to transactions turned off.
<p>
Transactions are highly recommended. Using a named lock in
conjunctions with transactions is probably pointless.
conjunctions with transactions is probably pointless.
</dd></dl>
</body>
......
......@@ -3,43 +3,43 @@
<head><title>Edit <dtml-var title_or_id></title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<dtml-var manage_tabs>
<h2>Edit <dtml-var title_or_id></h2>
<form action="manage_edit" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><dtml-var id></td>
</tr>
<tr>
<th align="LEFT" valign="TOP"><em>Title</em></th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="title" size="40"
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP"><dtml-var id></td>
</tr>
<tr>
<th align="LEFT" valign="TOP"><em>Title</em></th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="title" size="40"
value="<dtml-var title html_quote>">
</td>
</tr>
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Database Connection String</th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="connection_string" size="40"
<tr>
<th align="LEFT" valign="TOP">Database Connection String</th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="connection_string" size="40"
value="<dtml-var connection_string html_quote>">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Connect immediately</th>
<td align="LEFT" valign="TOP">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Connect immediately</th>
<td align="LEFT" valign="TOP">
<input name="check" type="CHECKBOX" value="YES" CHECKED>
</td>
</tr>
</tr>
<tr>
<td></td>
<td><br><input type="SUBMIT" value="Change"></td>
</tr>
<td></td>
<td><br><input type="SUBMIT" value="Change"></td>
</tr>
</table>
</form>
......
##############################################################################
#
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
#
# Copyright (c) Digital Creations. All rights reserved.
# Copyright (c) Nexedi SARL 2004. All rights reserved.
#
#
# This license has been certified as Open Source(tm).
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
......@@ -27,43 +27,43 @@
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
#
#
# Disclaimer
#
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
......@@ -76,12 +76,12 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
#
##############################################################################
from Products.ZMySQLDA.db import *
......@@ -92,11 +92,11 @@ class DeferredDB(DB):
of SQL code in order to reduce locks and provide better behaviour
with MyISAM non transactional tables
"""
def __init__(self,connection):
DB.__init__(self, connection)
self.sql_string_list = []
def query(self,query_string, max_rows=1000):
self._use_TM and self._register()
desc=None
......@@ -119,7 +119,7 @@ class DeferredDB(DB):
from thread import get_ident
self._tlock.acquire()
self._tthread = get_ident()
def _finish(self, *ignored):
from thread import get_ident
if not self._tlock.locked() or self._tthread != get_ident():
......@@ -139,12 +139,12 @@ class DeferredDB(DB):
error=sys.exc_info())
self._tlock.release()
raise
# Execute SQL
# Execute SQL
db = self.db
for qs in self.sql_string_list:
try:
db.query(qs)
c=db.store_result()
c=db.store_result()
except OperationalError, m:
if m[0] not in hosed_connection: raise
# Hm. maybe the db is hosed. Let's restart it.
......@@ -153,9 +153,9 @@ class DeferredDB(DB):
db.query(qs)
c=db.store_result()
except OperationalError, m:
raise
raise
LOG('ZMySQLDDA', INFO, "Execute %s" % qs)
# Finish commit
# Finish commit
LOG('ZMySQLDDA', INFO, "FINISH commit")
try:
try:
......@@ -177,4 +177,4 @@ class DeferredDB(DB):
if not self._tlock.locked() or self._tthread != get_ident():
LOG('ZMySQLDDA', INFO, "ignoring _abort")
return
self._tlock.release()
\ No newline at end of file
self._tlock.release()
\ No newline at end of file
<html>
<head><title>Add Z MySQL Database Connection</title></head>
<head><title>Add Z MySQL Deferred Database Connection</title></head>
<body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
<h2>Add Z MySQL Database Connection</h2>
<h2>Add Z MySQL Deferred Database Connection</h2>
<form action="manage_addZMySQLDeferredConnection" method="POST">
<table cellspacing="2">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP">
<tr>
<th align="LEFT" valign="TOP">Id</th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="id" size="40"
value="MySQL_database_connection">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP"><em>Title</em></th>
<td align="LEFT" valign="TOP">
</tr>
<tr>
<th align="LEFT" valign="TOP"><em>Title</em></th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="title" size="40"
value="Z MySQL Database Connection">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">
</tr>
<tr>
<th align="LEFT" valign="TOP">
Enter a Database Connection String
<a href="#1"><sup>1</sup></a></th>
<td align="LEFT" valign="TOP">
<a href="#1"><sup>1</sup></a></th>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="connection_string" size="40">
</td>
</tr>
<tr>
<th align="LEFT" valign="TOP">Connect immediately</th>
<td align="LEFT" valign="TOP">
</tr>
<tr>
<th align="LEFT" valign="TOP">Connect immediately</th>
<td align="LEFT" valign="TOP">
<input name="check" type="CHECKBOX" value="YES" CHECKED>
</td>
</tr>
<tr>
<td></td>
<td><br><input type="SUBMIT" value="Add"></td>
</tr>
</tr>
<tr>
<td></td>
<td><br><input type="SUBMIT" value="Add"></td>
</tr>
</table>
</form>
......@@ -85,7 +85,7 @@
respect, it's equivalent to transactions turned off.
<p>
Transactions are highly recommended. Using a named lock in
conjunctions with transactions is probably pointless.
conjunctions with transactions is probably pointless.
</dd></dl>
</body>
......
class DB:
"""This is the ZMySQLDDA Database Deferred Connection Object."""
"""This is the ZMySQLDDA Deferred Database Connection Object."""
def __init__(self,connection):
"""
connection
blah blah
"""
def tables(self, rdb=0,
_care=('TABLE', 'VIEW')):
"""Returns a list of tables in the current database."""
......@@ -20,7 +20,7 @@ class DB:
def _begin(self, *ignored):
"""Begin a transaction (when TM is enabled)."""
def _finish(self, *ignored):
"""Commit a transaction (when TM is enabled)."""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment