亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? maxdb.py

?? SQLAlchemy. 經典的Python ORM框架。學習必看。
?? PY
?? 第 1 頁 / 共 3 頁
字號:
    def for_update_clause(self, select):        clause = select.for_update        if clause is True:            return " WITH LOCK EXCLUSIVE"        elif clause is None:            return ""        elif clause == "read":            return " WITH LOCK"        elif clause == "ignore":            return " WITH LOCK (IGNORE) EXCLUSIVE"        elif clause == "nowait":            return " WITH LOCK (NOWAIT) EXCLUSIVE"        elif isinstance(clause, basestring):            return " WITH LOCK %s" % clause.upper()        elif not clause:            return ""        else:            return " WITH LOCK EXCLUSIVE"    def apply_function_parens(self, func):        if func.name.upper() in self.bare_functions:            return len(func.clauses) > 0        else:            return True    def visit_function(self, fn, **kw):        transform = self.function_conversion.get(fn.name.upper(), None)        if transform:            fn = fn._clone()            fn.name = transform        return super(MaxDBCompiler, self).visit_function(fn, **kw)    def visit_cast(self, cast, **kwargs):        # MaxDB only supports casts * to NUMERIC, * to VARCHAR or        # date/time to VARCHAR.  Casts of LONGs will fail.        if isinstance(cast.type, (sqltypes.Integer, sqltypes.Numeric)):            return "NUM(%s)" % self.process(cast.clause)        elif isinstance(cast.type, sqltypes.String):            return "CHR(%s)" % self.process(cast.clause)        else:            return self.process(cast.clause)    def visit_sequence(self, sequence):        if sequence.optional:            return None        else:            return (self.dialect.identifier_preparer.format_sequence(sequence) +                    ".NEXTVAL")    class ColumnSnagger(visitors.ClauseVisitor):        def __init__(self):            self.count = 0            self.column = None        def visit_column(self, column):            self.column = column            self.count += 1    def _find_labeled_columns(self, columns, use_labels=False):        labels = {}        for column in columns:            if isinstance(column, basestring):                continue            snagger = self.ColumnSnagger()            snagger.traverse(column)            if snagger.count == 1:                if isinstance(column, sql_expr._Label):                    labels[unicode(snagger.column)] = column.name                elif use_labels:                    labels[unicode(snagger.column)] = column._label        return labels    def order_by_clause(self, select):        order_by = self.process(select._order_by_clause)        # ORDER BY clauses in DISTINCT queries must reference aliased        # inner columns by alias name, not true column name.        if order_by and getattr(select, '_distinct', False):            labels = self._find_labeled_columns(select.inner_columns,                                                select.use_labels)            if labels:                for needs_alias in labels.keys():                    r = re.compile(r'(^| )(%s)(,| |$)' %                                   re.escape(needs_alias))                    order_by = r.sub((r'\1%s\3' % labels[needs_alias]),                                     order_by)        # No ORDER BY in subqueries.        if order_by:            if self.is_subquery(select):                # It's safe to simply drop the ORDER BY if there is no                # LIMIT.  Right?  Other dialects seem to get away with                # dropping order.                if select._limit:                    raise exceptions.InvalidRequestError(                        "MaxDB does not support ORDER BY in subqueries")                else:                    return ""            return " ORDER BY " + order_by        else:            return ""    def get_select_precolumns(self, select):        # Convert a subquery's LIMIT to TOP        sql = select._distinct and 'DISTINCT ' or ''        if self.is_subquery(select) and select._limit:            if select._offset:                raise exceptions.InvalidRequestError(                    'MaxDB does not support LIMIT with an offset.')            sql += 'TOP %s ' % select._limit        return sql    def limit_clause(self, select):        # The docs say offsets are supported with LIMIT.  But they're not.        # TODO: maybe emulate by adding a ROWNO/ROWNUM predicate?        if self.is_subquery(select):            # sub queries need TOP            return ''        elif select._offset:            raise exceptions.InvalidRequestError(                'MaxDB does not support LIMIT with an offset.')        else:            return ' \n LIMIT %s' % (select._limit,)    def visit_insert(self, insert):        self.isinsert = True        self._safeserial = True        colparams = self._get_colparams(insert)        for value in (insert.parameters or {}).itervalues():            if isinstance(value, sql_expr._Function):                self._safeserial = False                break        return ''.join(('INSERT INTO ',                         self.preparer.format_table(insert.table),                         ' (',                         ', '.join([self.preparer.format_column(c[0])                                    for c in colparams]),                         ') VALUES (',                         ', '.join([c[1] for c in colparams]),                         ')'))class MaxDBDefaultRunner(engine_base.DefaultRunner):    def visit_sequence(self, seq):        if seq.optional:            return None        return self.execute_string("SELECT %s.NEXTVAL FROM DUAL" % (            self.dialect.identifier_preparer.format_sequence(seq)))class MaxDBIdentifierPreparer(compiler.IdentifierPreparer):    reserved_words = util.Set([        'abs', 'absolute', 'acos', 'adddate', 'addtime', 'all', 'alpha',        'alter', 'any', 'ascii', 'asin', 'atan', 'atan2', 'avg', 'binary',        'bit', 'boolean', 'byte', 'case', 'ceil', 'ceiling', 'char',        'character', 'check', 'chr', 'column', 'concat', 'constraint', 'cos',        'cosh', 'cot', 'count', 'cross', 'curdate', 'current', 'curtime',        'database', 'date', 'datediff', 'day', 'dayname', 'dayofmonth',        'dayofweek', 'dayofyear', 'dec', 'decimal', 'decode', 'default',        'degrees', 'delete', 'digits', 'distinct', 'double', 'except',        'exists', 'exp', 'expand', 'first', 'fixed', 'float', 'floor', 'for',        'from', 'full', 'get_objectname', 'get_schema', 'graphic', 'greatest',        'group', 'having', 'hex', 'hextoraw', 'hour', 'ifnull', 'ignore',        'index', 'initcap', 'inner', 'insert', 'int', 'integer', 'internal',        'intersect', 'into', 'join', 'key', 'last', 'lcase', 'least', 'left',        'length', 'lfill', 'list', 'ln', 'locate', 'log', 'log10', 'long',        'longfile', 'lower', 'lpad', 'ltrim', 'makedate', 'maketime',        'mapchar', 'max', 'mbcs', 'microsecond', 'min', 'minute', 'mod',        'month', 'monthname', 'natural', 'nchar', 'next', 'no', 'noround',        'not', 'now', 'null', 'num', 'numeric', 'object', 'of', 'on',        'order', 'packed', 'pi', 'power', 'prev', 'primary', 'radians',        'real', 'reject', 'relative', 'replace', 'rfill', 'right', 'round',        'rowid', 'rowno', 'rpad', 'rtrim', 'second', 'select', 'selupd',        'serial', 'set', 'show', 'sign', 'sin', 'sinh', 'smallint', 'some',        'soundex', 'space', 'sqrt', 'stamp', 'statistics', 'stddev',        'subdate', 'substr', 'substring', 'subtime', 'sum', 'sysdba',        'table', 'tan', 'tanh', 'time', 'timediff', 'timestamp', 'timezone',        'to', 'toidentifier', 'transaction', 'translate', 'trim', 'trunc',        'truncate', 'ucase', 'uid', 'unicode', 'union', 'update', 'upper',        'user', 'usergroup', 'using', 'utcdate', 'utcdiff', 'value', 'values',        'varchar', 'vargraphic', 'variance', 'week', 'weekofyear', 'when',        'where', 'with', 'year', 'zoned' ])    def _normalize_name(self, name):        if name is None:            return None        if name.isupper():            lc_name = name.lower()            if not self._requires_quotes(lc_name):                return lc_name        return name    def _denormalize_name(self, name):        if name is None:            return None        elif (name.islower() and              not self._requires_quotes(name)):            return name.upper()        else:            return name    def _maybe_quote_identifier(self, name):        if self._requires_quotes(name):            return self.quote_identifier(name)        else:            return nameclass MaxDBSchemaGenerator(compiler.SchemaGenerator):    def get_column_specification(self, column, **kw):        colspec = [self.preparer.format_column(column),                   column.type.dialect_impl(self.dialect, _for_ddl=column).get_col_spec()]        if not column.nullable:            colspec.append('NOT NULL')        default = column.default        default_str = self.get_column_default_string(column)        # No DDL default for columns specified with non-optional sequence-        # this defaulting behavior is entirely client-side. (And as a        # consequence, non-reflectable.)        if (default and isinstance(default, schema.Sequence) and            not default.optional):            pass        # Regular default        elif default_str is not None:            colspec.append('DEFAULT %s' % default_str)        # Assign DEFAULT SERIAL heuristically        elif column.primary_key and column.autoincrement:            # For SERIAL on a non-primary key member, use            # PassiveDefault(text('SERIAL'))            try:                first = [c for c in column.table.primary_key.columns                         if (c.autoincrement and                             (isinstance(c.type, sqltypes.Integer) or                              (isinstance(c.type, MaxNumeric) and                               c.type.precision)) and                             not c.foreign_keys)].pop(0)                if column is first:                    colspec.append('DEFAULT SERIAL')            except IndexError:                pass        return ' '.join(colspec)    def get_column_default_string(self, column):        if isinstance(column.default, schema.PassiveDefault):            if isinstance(column.default.arg, basestring):                if isinstance(column.type, sqltypes.Integer):                    return str(column.default.arg)                else:                    return "'%s'" % column.default.arg            else:                return unicode(self._compile(column.default.arg, None))        else:            return None    def visit_sequence(self, sequence):        """Creates a SEQUENCE.        TODO: move to module doc?        start          With an integer value, set the START WITH option.        increment          An integer value to increment by.  Default is the database default.        maxdb_minvalue        maxdb_maxvalue          With an integer value, sets the corresponding sequence option.        maxdb_no_minvalue        maxdb_no_maxvalue          Defaults to False.  If true, sets the corresponding sequence option.        maxdb_cycle          Defaults to False.  If true, sets the CYCLE option.        maxdb_cache          With an integer value, sets the CACHE option.        maxdb_no_cache          Defaults to False.  If true, sets NOCACHE.        """        if (not sequence.optional and            (not self.checkfirst or             not self.dialect.has_sequence(self.connection, sequence.name))):            ddl = ['CREATE SEQUENCE',                   self.preparer.format_sequence(sequence)]            sequence.increment = 1            if sequence.increment is not None:                ddl.extend(('INCREMENT BY', str(sequence.increment)))            if sequence.start is not None:                ddl.extend(('START WITH', str(sequence.start)))            opts = dict([(pair[0][6:].lower(), pair[1])                         for pair in sequence.kwargs.items()                         if pair[0].startswith('maxdb_')])            if 'maxvalue' in opts:                ddl.extend(('MAXVALUE', str(opts['maxvalue'])))            elif opts.get('no_maxvalue', False):                ddl.append('NOMAXVALUE')            if 'minvalue' in opts:                ddl.extend(('MINVALUE', str(opts['minvalue'])))            elif opts.get('no_minvalue', False):                ddl.append('NOMINVALUE')            if opts.get('cycle', False):                ddl.append('CYCLE')            if 'cache' in opts:                ddl.extend(('CACHE', str(opts['cache'])))            elif opts.get('no_cache', False):                ddl.append('NOCACHE')            self.append(' '.join(ddl))            self.execute()class MaxDBSchemaDropper(compiler.SchemaDropper):    def visit_sequence(self, sequence):        if (not sequence.optional and            (not self.checkfirst or             self.dialect.has_sequence(self.connection, sequence.name))):            self.append("DROP SEQUENCE %s" %                        self.preparer.format_sequence(sequence))            self.execute()def _autoserial_column(table):    """Finds the effective DEFAULT SERIAL column of a Table, if any."""    for index, col in enumerate(table.primary_key.columns):        if (isinstance(col.type, (sqltypes.Integer, sqltypes.Numeric)) and            col.autoincrement):            if isinstance(col.default, schema.Sequence):                if col.default.optional:                    return index, col            elif (col.default is None or                  (not isinstance(col.default, schema.PassiveDefault))):                return index, col    return None, Nonedef descriptor():    return {'name': 'maxdb',    'description': 'MaxDB',    'arguments': [        ('user', "Database Username", None),        ('password', "Database Password", None),        ('database', "Database Name", None),        ('host', "Hostname", None)]}dialect = MaxDBDialectdialect.preparer = MaxDBIdentifierPreparerdialect.statement_compiler = MaxDBCompilerdialect.schemagenerator = MaxDBSchemaGeneratordialect.schemadropper = MaxDBSchemaDropperdialect.defaultrunner = MaxDBDefaultRunner

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲aⅴ| 国产v日产∨综合v精品视频| 黑人精品欧美一区二区蜜桃| 粉嫩高潮美女一区二区三区| 欧美日韩国产精品自在自线| 国产亚洲人成网站| 日本三级韩国三级欧美三级| 99在线精品观看| 久久在线观看免费| 亚洲午夜在线电影| 91色乱码一区二区三区| 国产无一区二区| 久久国产精品一区二区| 欧美日韩国产一二三| 亚洲视频一区在线| 成人福利视频在线看| 精品久久国产字幕高潮| 婷婷久久综合九色综合伊人色| 91欧美激情一区二区三区成人| 精品国产乱码91久久久久久网站| 日日摸夜夜添夜夜添国产精品| 91视频免费观看| 亚洲人成网站在线| 91亚洲大成网污www| 日本一区二区三区四区| 黄页网站大全一区二区| 欧美成人一区二区| 久久精品72免费观看| 91精品久久久久久久91蜜桃 | 久久久久99精品国产片| 日本aⅴ免费视频一区二区三区| 精品视频1区2区| 亚洲国产毛片aaaaa无费看| 色呦呦日韩精品| 一区二区三区在线视频观看58 | 国产精品国产三级国产专播品爱网| 韩国女主播成人在线观看| 精品三级av在线| 紧缚奴在线一区二区三区| 日韩女优毛片在线| 久久精品99国产精品| 久久久精品免费网站| 国产一区二区三区四区五区入口 | 亚洲制服丝袜av| 欧美网站大全在线观看| 午夜精品一区二区三区电影天堂| 欧美日韩mp4| bt欧美亚洲午夜电影天堂| 亚洲欧美日韩一区二区| 欧美影视一区二区三区| 无吗不卡中文字幕| 精品国产亚洲在线| 波多野结衣亚洲| 亚洲一区二区三区中文字幕 | 日本一区二区三区四区在线视频| aa级大片欧美| 日韩中文字幕亚洲一区二区va在线 | 国产成人综合亚洲网站| 自拍av一区二区三区| 在线观看免费一区| 久久激情五月婷婷| 国产精品乱人伦中文| 欧美在线一区二区三区| 久久国产精品99久久久久久老狼| 国产欧美日韩中文久久| 欧洲色大大久久| 韩国一区二区三区| 亚洲欧美另类图片小说| 91精品婷婷国产综合久久竹菊| 国产成人午夜精品影院观看视频 | 日韩高清国产一区在线| 国产欧美一区二区三区网站 | 精品国产91洋老外米糕| 91网址在线看| 精品无人区卡一卡二卡三乱码免费卡 | av在线一区二区| 免费人成黄页网站在线一区二区| 国产精品理论片在线观看| 91精品国产91久久综合桃花| 成人美女在线观看| 天天操天天干天天综合网| 国产区在线观看成人精品 | 久久精品国产免费看久久精品| 国产精品热久久久久夜色精品三区 | 久久久国产综合精品女国产盗摄| 欧美亚洲动漫精品| 丁香婷婷综合五月| 精品亚洲成a人在线观看 | 亚洲柠檬福利资源导航| 欧美精品一区二区三区高清aⅴ| 欧美性三三影院| 99九九99九九九视频精品| 激情欧美日韩一区二区| 亚洲大型综合色站| 亚洲欧美日韩综合aⅴ视频| 国产三级精品三级| 精品国产三级a在线观看| 欧美日韩成人综合| 欧美性色黄大片手机版| 91丨porny丨国产入口| 成人黄色电影在线| 国产不卡在线播放| 国模套图日韩精品一区二区| 久久91精品久久久久久秒播| 亚洲mv大片欧洲mv大片精品| 亚洲激情图片小说视频| 亚洲视频一二区| 中文字幕一区视频| 中文字幕一区二区不卡| 中文字幕精品—区二区四季| 国产欧美日韩在线| 久久精品亚洲精品国产欧美kt∨ | 欧美日韩性生活| 欧美亚洲尤物久久| 欧美午夜一区二区| 欧美欧美欧美欧美| 欧美久久一区二区| 欧美一区二区三区日韩| 91精品欧美综合在线观看最新 | 亚洲视频一二三| 亚洲精品成人a在线观看| 亚洲精品中文在线观看| 亚洲国产日韩一区二区| 五月天激情综合网| 日本亚洲最大的色成网站www| 奇米一区二区三区av| 精品一区二区三区久久| 成人一区二区三区视频在线观看| 丰满少妇久久久久久久| 97精品电影院| 欧美日韩精品电影| 欧美电影免费观看高清完整版| 欧美成人女星排行榜| 国产欧美日本一区视频| 1000部国产精品成人观看| 一区二区三区精品在线| 秋霞成人午夜伦在线观看| 韩国v欧美v亚洲v日本v| av电影天堂一区二区在线观看| 欧美在线综合视频| 久久夜色精品一区| 综合中文字幕亚洲| 日韩综合在线视频| 成人黄色一级视频| 在线播放一区二区三区| 国产亚洲欧美一区在线观看| 亚洲欧美日韩久久| 免费成人av资源网| 粉嫩高潮美女一区二区三区| 欧美吻胸吃奶大尺度电影| 精品国产青草久久久久福利| 中文字幕字幕中文在线中不卡视频| 亚洲国产成人va在线观看天堂| 久久99蜜桃精品| 色中色一区二区| 久久嫩草精品久久久久| 亚洲综合一区二区精品导航| 韩国av一区二区三区| 欧美午夜视频网站| 中文字幕欧美日本乱码一线二线 | 欧美一二三区在线观看| 国产精品人妖ts系列视频| 日本女优在线视频一区二区| 99久久免费国产| 精品国产一区二区亚洲人成毛片 | 精品综合免费视频观看| 色噜噜夜夜夜综合网| 久久综合久色欧美综合狠狠| 亚洲资源在线观看| 成人激情校园春色| 精品国产一区二区三区久久影院| 一区二区三区在线视频观看| 国产成人精品一区二区三区网站观看| 欧美日韩国产色站一区二区三区| 国产精品人成在线观看免费| 国产一区91精品张津瑜| 欧美日产国产精品| 亚洲欧美偷拍卡通变态| 成人免费va视频| 日本一区二区免费在线| 国内久久精品视频| 欧美一区二区三区视频免费 | 亚洲自拍偷拍图区| 91麻豆国产精品久久| 国产日韩欧美精品在线| 狠狠色狠狠色合久久伊人| 91麻豆精品国产91久久久| 亚洲一卡二卡三卡四卡五卡| 99re视频精品| 国产精品无码永久免费888| 国产乱国产乱300精品| 欧美电影免费观看完整版| 麻豆成人av在线| 欧美一区欧美二区| 日韩电影一区二区三区四区| 欧美欧美午夜aⅴ在线观看| 日韩精品五月天| 欧美一区二区三区电影| 日韩av一区二区在线影视| 欧美日本一区二区在线观看|