Beispiel #1
0
        public ResultColumn(ResultSet resultSet, TParseTreeNode columnObject)
        {
            if (columnObject == null || resultSet == null)
            {
                throw new System.ArgumentException("ResultColumn arguments can't be null.");
            }

            id = ++TableColumn.TABLE_COLUMN_ID;

            this.resultSet = resultSet;
            resultSet.addColumn(this);

            this.columnObject = columnObject;

            TSourceToken startToken = columnObject.startToken;
            TSourceToken endToken   = columnObject.endToken;

            if (columnObject is TObjectName)
            {
                if (((TObjectName)columnObject).ColumnNameOnly != null && !"".Equals(((TObjectName)columnObject).ColumnNameOnly))
                {
                    this.name = ((TObjectName)columnObject).ColumnNameOnly;
                }
                else
                {
                    this.name = ((TObjectName)columnObject).ToString();
                }
            }
            else
            {
                this.name = columnObject.ToString();
            }

            this.fullName = columnObject.ToString();

            this.startPosition = new Tuple <long, long>(startToken.lineNo, startToken.columnNo);
            this.endPosition   = new Tuple <long, long>(endToken.lineNo, endToken.columnNo + endToken.astext.Length);
        }
Beispiel #2
0
        public ResultColumn(SelectResultSet resultSet, Tuple <TResultColumn, TObjectName> starColumnPair)
        {
            if (starColumnPair == null || resultSet == null)
            {
                throw new System.ArgumentException("ResultColumn arguments can't be null.");
            }

            id = ++TableColumn.TABLE_COLUMN_ID;

            this.resultSet = resultSet;
            resultSet.addColumn(this);

            this.columnObject = starColumnPair.Item1;

            TSourceToken startToken = columnObject.startToken;
            TSourceToken endToken   = columnObject.endToken;

            this.name     = ((TObjectName)columnObject).ColumnNameOnly;
            this.fullName = columnObject.ToString();

            this.startPosition = new Tuple <long, long>(startToken.lineNo, startToken.columnNo);
            this.endPosition   = new Tuple <long, long>(endToken.lineNo, endToken.columnNo + endToken.astext.Length);
        }
Beispiel #3
0
        public ResultColumn(ResultSet resultSet, TResultColumn resultColumnObject)
        {
            if (resultColumnObject == null || resultSet == null)
            {
                throw new System.ArgumentException("ResultColumn arguments can't be null.");
            }

            id = ++TableColumn.TABLE_COLUMN_ID;

            this.resultSet = resultSet;
            resultSet.addColumn(this);

            this.columnObject = resultColumnObject;

            if (resultColumnObject.AliasClause != null)
            {
                this.alias = resultColumnObject.AliasClause.ToString();
                TSourceToken aliasStartToken = resultColumnObject.AliasClause.startToken;
                TSourceToken aliasEndToken   = resultColumnObject.AliasClause.endToken;
                this.aliasStartPosition = new Tuple <long, long>(aliasStartToken.lineNo, aliasStartToken.columnNo);
                this.aliasEndPosition   = new Tuple <long, long>(aliasEndToken.lineNo, aliasEndToken.columnNo + aliasEndToken.astext.Length);

                this.name = this.alias;
            }
            else
            {
                if (resultColumnObject.Expr.ExpressionType == EExpressionType.simple_constant_t)
                {
                    this.name = resultColumnObject.ToString();
                }
                else if (resultColumnObject.Expr.ExpressionType == EExpressionType.sqlserver_proprietary_column_alias_t)
                {
                    TSourceToken startToken1 = resultColumnObject.Expr
                                               .LeftOperand
                                               .startToken;
                    TSourceToken endToken1 = resultColumnObject.Expr
                                             .LeftOperand
                                             .endToken;
                    this.alias = resultColumnObject.Expr
                                 .LeftOperand
                                 .ToString();
                    this.aliasStartPosition = new Tuple <long, long>(startToken1.lineNo,
                                                                     startToken1.columnNo);
                    this.aliasEndPosition = new Tuple <long, long>(endToken1.lineNo,
                                                                   endToken1.columnNo + endToken1.astext.Length);

                    this.name = this.alias;
                }
                else if (resultColumnObject.Expr.ExpressionType == EExpressionType.function_t)
                {
                    this.name = resultColumnObject.Expr
                                .FunctionCall
                                .FunctionName
                                .ToString();
                }
                else if (resultColumnObject.ColumnNameOnly != null &&
                         !"".Equals(resultColumnObject.ColumnNameOnly))
                {
                    this.name = resultColumnObject.ColumnNameOnly;
                }
                else
                {
                    this.name = resultColumnObject.ToString();
                }
            }

            if (resultColumnObject.Expr.ExpressionType == EExpressionType.function_t)
            {
                this.fullName = resultColumnObject.Expr
                                .FunctionCall
                                .FunctionName
                                .ToString();
            }
            else
            {
                this.fullName = resultColumnObject.ToString();
            }

            TSourceToken startToken = resultColumnObject.startToken;
            TSourceToken endToken   = resultColumnObject.endToken;

            this.startPosition = new Tuple <long, long>(startToken.lineNo, startToken.columnNo);
            this.endPosition   = new Tuple <long, long>(endToken.lineNo, endToken.columnNo + endToken.astext.Length);
        }
        public SelectSetResultColumn(ResultSet resultSet, ResultColumn resultColumn)
        {
            if (resultColumn == null || resultSet == null)
            {
                throw new System.ArgumentException("ResultColumn arguments can't be null.");
            }

            id = ++TableColumn.TABLE_COLUMN_ID;

            this.resultSet = resultSet;
            resultSet.addColumn(this);

            if (resultColumn.ColumnObject is TResultColumn)
            {
                TResultColumn resultColumnObject = (TResultColumn)resultColumn.ColumnObject;
                if (resultColumnObject.AliasClause != null)
                {
                    this.alias = resultColumnObject.AliasClause.ToString();
                    TSourceToken aliasStartToken = resultColumnObject.AliasClause.startToken;
                    TSourceToken aliasEndToken   = resultColumnObject.AliasClause.endToken;
                    this.aliasStartPosition = new Tuple <long, long>(aliasStartToken.lineNo, aliasStartToken.columnNo);
                    this.aliasEndPosition   = new Tuple <long, long>(aliasEndToken.lineNo, aliasEndToken.columnNo + aliasEndToken.astext.Length);

                    this.name = this.alias;
                }
                else
                {
                    if (resultColumnObject.Expr.ExpressionType == EExpressionType.simple_constant_t)
                    {
                        if (resultSet is SelectResultSet)
                        {
                            this.name = "DUMMY" + getIndexOf(((SelectResultSet)resultSet).ResultColumnObject, resultColumnObject);
                        }
                        else if (resultSet is SelectSetResultSet)
                        {
                            this.name = "DUMMY" + getIndexOf(((SelectSetResultSet)resultSet).ResultColumnObject, resultColumnObject);
                        }
                        else
                        {
                            this.name = resultColumnObject.ToString();
                        }
                    }
                    else if (resultColumnObject.Expr.ExpressionType == EExpressionType.function_t)
                    {
                        this.name = resultColumnObject.Expr.FunctionCall.FunctionName.ToString();
                    }
                    else if (resultColumnObject.ColumnNameOnly != null && !"".Equals(resultColumnObject.ColumnNameOnly))
                    {
                        this.name = resultColumnObject.ColumnNameOnly;
                    }
                    else
                    {
                        this.name = resultColumnObject.ToString();
                    }
                }

                if (resultColumnObject.Expr.ExpressionType == EExpressionType.function_t)
                {
                    this.fullName = resultColumnObject.Expr.FunctionCall.FunctionName.ToString();
                }
                else
                {
                    this.fullName = resultColumnObject.ToString();
                }

                TSourceToken startToken = resultColumnObject.startToken;
                TSourceToken endToken   = resultColumnObject.endToken;
                this.startPosition = new Tuple <long, long>(startToken.lineNo, startToken.columnNo);
                this.endPosition   = new Tuple <long, long>(endToken.lineNo, endToken.columnNo + endToken.astext.Length);
                this.columnObject  = resultColumnObject;
            }
            else if (resultColumn.ColumnObject is TObjectName)
            {
                TObjectName resultColumnObject = (TObjectName)resultColumn.ColumnObject;

                if (resultColumnObject.ColumnNameOnly != null && !"".Equals(resultColumnObject.ColumnNameOnly))
                {
                    this.name = resultColumnObject.ColumnNameOnly;
                }
                else
                {
                    this.name = resultColumnObject.ToString();
                }

                this.fullName = this.name;

                TSourceToken startToken = resultColumnObject.startToken;
                TSourceToken endToken   = resultColumnObject.endToken;
                this.startPosition = new Tuple <long, long>(startToken.lineNo, startToken.columnNo);
                this.endPosition   = new Tuple <long, long>(endToken.lineNo, endToken.columnNo + endToken.astext.Length);
                this.columnObject  = resultColumnObject;
            }
            else
            {
                this.name     = resultColumn.Name;
                this.fullName = this.name;

                TSourceToken startToken = resultColumn.ColumnObject.startToken;
                TSourceToken endToken   = resultColumn.ColumnObject.endToken;
                this.startPosition = new Tuple <long, long>(startToken.lineNo, startToken.columnNo);
                this.endPosition   = new Tuple <long, long>(endToken.lineNo, endToken.columnNo + endToken.astext.Length);
                this.columnObject  = resultColumn.ColumnObject;
            }
        }