Esempio n. 1
0
    def __init__(self, table_name, metadata, *args):
        validator.exam_table_name(table_name)

        self.table_name = table_name
        self.metadata = metadata
        self.all = list()
        self.column_names = list()

        self.primary_key_columns = list()
        self.pickletype_columns = list()

        for column in args:

            column.bind_table(self)  # 将column与Table绑定
            self.all.append(column)
            self.column_names.append(column.column_name)

            if column.primary_key:  # 定位PRIMARY KEY的列
                self.primary_key_columns.append(column.column_name)
            if column.is_pickletype:  # 定位PICKLETYPE的列
                self.pickletype_columns.append(column.column_name)

        self.c = ColumnCollection(*self.all)
        self.metadata._add_table(self)

        self.create_table_sql = CreateTable(self).sql
Esempio n. 2
0
 def __init__(self, table_name, metadata, *args):
     validator.exam_table_name(table_name)
     
     self.table_name = table_name
     self.metadata = metadata
     self.all = list()
     self.column_names = list()
     
     self.primary_key_columns = list()
     self.pickletype_columns = list()
     
     for column in args:
         
         column.bind_table(self) # 将column与Table绑定
         self.all.append(column)
         self.column_names.append(column.column_name)
         
         if column.primary_key: # 定位PRIMARY KEY的列
             self.primary_key_columns.append(column.column_name)
         if column.is_pickletype: # 定位PICKLETYPE的列
             self.pickletype_columns.append(column.column_name)
     
     self.c = ColumnCollection(*self.all)
     self.metadata._add_table(self)
     
     self.create_table_sql = CreateTable(self).sql
Esempio n. 3
0
    def __init__(self,
                 index_name,
                 metadata,
                 args,
                 table_name=None,
                 unique=False,
                 skip_validate=False):
        if not skip_validate:
            validator.exam_table_name(index_name)

        self.index_name = index_name
        self.metadata = metadata
        if table_name:
            self.table_name = str(table_name)
        else:
            self.table_name = None
        self.unique = unique
        self.params = list()

        if self.unique:
            self.CREATE_clause = "CREATE UNIQUE INDEX %s" % self.index_name
        else:
            self.CREATE_clause = "CREATE INDEX %s" % self.index_name

        for i in args:
            if isinstance(i, Column):  # column
                self.params.append("%s ASC" % i.column_name)
            elif isinstance(i, _str_type):  # string
                self.params.append(i.split(".")[-1])  # use column_name only
            else:  # _SQL_PARAM
                self.params.append("%s %s" % (i.column_name, i.sql_name))

            try:  # see if table_name is constant in all argument
                if self.table_name:
                    if self.table_name != i.table_name:
                        raise IndexObjectError("Table name are not unique!")
                else:
                    self.table_name = i.table_name
            except:
                pass

        self.ON_TABLE_clause = "ON %s" % self.table_name

        self.COLUMN_clause = "\t" + ",\n\t".join(self.params)

        self.metadata._add_index(self)
Esempio n. 4
0
    def __init__(self, index_name, metadata, args,
                 table_name=None, unique=False, skip_validate=False):
        if not skip_validate:
            validator.exam_table_name(index_name)
        
        self.index_name = index_name
        self.metadata = metadata
        if table_name:
            self.table_name = str(table_name)
        else:
            self.table_name = None
        self.unique = unique
        self.params = list()

        if self.unique:
            self.CREATE_clause = "CREATE UNIQUE INDEX %s" % self.index_name
        else:
            self.CREATE_clause = "CREATE INDEX %s" % self.index_name
        
        for i in args:
            if isinstance(i, Column): # column
                self.params.append("%s ASC" % i.column_name)
            elif isinstance(i, _str_type): # string
                self.params.append(i.split(".")[-1]) # use column_name only
            else: # _SQL_PARAM
                self.params.append("%s %s" % (i.column_name, i.sql_name))
                
            try: # see if table_name is constant in all argument
                if self.table_name:
                    if self.table_name != i.table_name:
                        raise IndexObjectError("Table name are not unique!")
                else:
                    self.table_name = i.table_name   
            except:
                pass
        
        self.ON_TABLE_clause = "ON %s" % self.table_name
        
        self.COLUMN_clause = "\t" + ",\n\t".join(self.params)
        
        self.metadata._add_index(self)