- Set hash method for the classes
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@265 014f5005-505e-4b48-8d0a-63407b615a7c
This commit is contained in:
parent
ca14c23947
commit
19ac2aaacd
@ -10,6 +10,7 @@
|
|||||||
- Fixed optimization involving selection and parenthesis in the expression (Rev 260)
|
- Fixed optimization involving selection and parenthesis in the expression (Rev 260)
|
||||||
- Fixed futile_union_intersection_subtraction optimization that didn't work when selection operator was in the left subtree (Rev 261)
|
- Fixed futile_union_intersection_subtraction optimization that didn't work when selection operator was in the left subtree (Rev 261)
|
||||||
- Module parallel does something, can execute queries in parallel
|
- Module parallel does something, can execute queries in parallel
|
||||||
|
- Set hash method for the classes
|
||||||
|
|
||||||
0.11
|
0.11
|
||||||
- Font is set only on windows (Rev 206)
|
- Font is set only on windows (Rev 206)
|
||||||
|
@ -51,6 +51,7 @@ class node (object):
|
|||||||
|
|
||||||
This class is used to convert an expression into python code.'''
|
This class is used to convert an expression into python code.'''
|
||||||
kind=None
|
kind=None
|
||||||
|
__hash__=None
|
||||||
|
|
||||||
def __init__(self,expression=None):
|
def __init__(self,expression=None):
|
||||||
'''Generates the tree from the tokenized expression
|
'''Generates the tree from the tokenized expression
|
||||||
@ -186,6 +187,7 @@ class node (object):
|
|||||||
if self.kind==BINARY:
|
if self.kind==BINARY:
|
||||||
return self.left==other.left and self.right==other.right
|
return self.left==other.left and self.right==other.right
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if (self.kind==RELATION):
|
if (self.kind==RELATION):
|
||||||
return self.name
|
return self.name
|
||||||
|
@ -25,6 +25,8 @@ class relation (object):
|
|||||||
A relation can be represented using a table
|
A relation can be represented using a table
|
||||||
Calling an operation and providing a non relation parameter when it is expected will
|
Calling an operation and providing a non relation parameter when it is expected will
|
||||||
result in a None value'''
|
result in a None value'''
|
||||||
|
__hash__=None
|
||||||
|
|
||||||
def __init__(self,filename=""):
|
def __init__(self,filename=""):
|
||||||
'''Creates a relation, accepts a filename and then it will load the relation from
|
'''Creates a relation, accepts a filename and then it will load the relation from
|
||||||
that file. If no parameter is supplied an empty relation is created. Empty
|
that file. If no parameter is supplied an empty relation is created. Empty
|
||||||
@ -185,7 +187,6 @@ class relation (object):
|
|||||||
if (newt.header.rename(old,new)) == False:
|
if (newt.header.rename(old,new)) == False:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
#TODO only copy the link and mark the new relation as read only
|
|
||||||
newt.content=self.content
|
newt.content=self.content
|
||||||
newt._readonly=True
|
newt._readonly=True
|
||||||
return newt
|
return newt
|
||||||
@ -511,9 +512,13 @@ class header (object):
|
|||||||
'''This class defines the header of a relation.
|
'''This class defines the header of a relation.
|
||||||
It is used within relations to know if requested operations are accepted'''
|
It is used within relations to know if requested operations are accepted'''
|
||||||
|
|
||||||
|
#Since relations are mutalbe we explicitly block hashing them
|
||||||
|
__hash__=None
|
||||||
|
|
||||||
def __init__(self,attributes):
|
def __init__(self,attributes):
|
||||||
'''Accepts a list with attributes' names. Names MUST be unique'''
|
'''Accepts a list with attributes' names. Names MUST be unique'''
|
||||||
self.attributes=attributes
|
self.attributes=attributes
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "header(%s)" % (self.attributes.__repr__())
|
return "header(%s)" % (self.attributes.__repr__())
|
||||||
|
|
||||||
|
@ -53,7 +53,9 @@ class rdate (object):
|
|||||||
self.month=self.intdate.month
|
self.month=self.intdate.month
|
||||||
self.weekday=self.intdate.weekday()
|
self.weekday=self.intdate.weekday()
|
||||||
self.year=self.intdate.year
|
self.year=self.intdate.year
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return self.intdate.__hash__()
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.intdate.__str__()
|
return self.intdate.__str__()
|
||||||
def __add__(self,days):
|
def __add__(self,days):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user