コード例 #1
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var term = new Term()
            {
                type = Term.TermType.MAX,
            };

            term.args.Add(tableQuery.GenerateTerm(queryConverter));
            term.optargs.Add(
                new Term.AssocPair()
            {
                key = "index",
                val = new Term()
                {
                    type  = Term.TermType.DATUM,
                    datum = new Datum()
                    {
                        type  = Datum.DatumType.R_STR,
                        r_str = indexName
                    }
                }
            }
                );
            return(term);
        }
コード例 #2
0
ファイル: IndexListQuery.cs プロジェクト: mands/rethinkdb-net
        public Term GenerateTerm(IDatumConverterFactory datumConverterFactory)
        {
            var indexList = new Term()
            {
                type = Term.TermType.INDEX_LIST,
            };

            indexList.args.Add(tableTerm.GenerateTerm(datumConverterFactory));
            return(indexList);
        }
コード例 #3
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var indexList = new Term()
            {
                type = Term.TermType.INDEX_LIST,
            };

            indexList.args.Add(tableTerm.GenerateTerm(queryConverter));
            return(indexList);
        }
コード例 #4
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var term = new Term()
            {
                type = Term.TermType.CHANGES,
            };

            term.args.Add(tableQuery.GenerateTerm(queryConverter));
            return(term);
        }
コード例 #5
0
        public Term GenerateTerm(IDatumConverterFactory datumConverterFactory)
        {
            var insertTerm = new Term()
            {
                type = Term.TermType.INSERT,
            };

            insertTerm.args.Add(tableTerm.GenerateTerm(datumConverterFactory));

            var objectArray = new Datum()
            {
                type = Datum.DatumType.R_ARRAY,
            };
            var converter = datumConverterFactory.Get <T>();

            foreach (var obj in objects)
            {
                objectArray.r_array.Add(converter.ConvertObject(obj));
            }
            insertTerm.args.Add(new Term()
            {
                type  = Term.TermType.DATUM,
                datum = objectArray,
            });

            if (upsert)
            {
                insertTerm.optargs.Add(new Term.AssocPair()
                {
                    key = "upsert",
                    val = new Term()
                    {
                        type  = Term.TermType.DATUM,
                        datum = new Datum()
                        {
                            type   = Datum.DatumType.R_BOOL,
                            r_bool = upsert,
                        }
                    }
                });
            }

            return(insertTerm);
        }
コード例 #6
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var indexDrop = new Term()
            {
                type = Term.TermType.INDEX_DROP,
            };

            indexDrop.args.Add(tableTerm.GenerateTerm(queryConverter));
            indexDrop.args.Add(new Term()
            {
                type  = Term.TermType.DATUM,
                datum = new Datum()
                {
                    type  = Datum.DatumType.R_STR,
                    r_str = indexName
                },
            });
            return(indexDrop);
        }
コード例 #7
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var insertTerm = new Term()
            {
                type = Term.TermType.INSERT,
            };

            insertTerm.args.Add(tableTerm.GenerateTerm(queryConverter));

            var objectArray = new Datum()
            {
                type = Datum.DatumType.R_ARRAY,
            };
            var converter = queryConverter.Get <T>();

            foreach (var obj in objects)
            {
                objectArray.r_array.Add(converter.ConvertObject(obj));
            }
            insertTerm.args.Add(new Term()
            {
                type  = Term.TermType.DATUM,
                datum = objectArray,
            });

            insertTerm.optargs.Add(new Term.AssocPair()
            {
                key = "conflict",
                val = new Term()
                {
                    type  = Term.TermType.DATUM,
                    datum = new Datum()
                    {
                        type  = Datum.DatumType.R_STR,
                        r_str = conflict.ToString().ToLower(),
                    }
                }
            });

            return(insertTerm);
        }
コード例 #8
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var term = new Term()
            {
                type = Term.TermType.GROUP,
            };

            term.args.Add(tableQuery.GenerateTerm(queryConverter));
            term.args.Add(
                new Term()
            {
                type  = Term.TermType.DATUM,
                datum = new Datum()
                {
                    type  = Datum.DatumType.R_STR,
                    r_str = indexName,
                }
            }
                );
            return(term);
        }
コード例 #9
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var term = new Term()
            {
                type = Term.TermType.INDEX_STATUS,
            };

            term.args.Add(tableTerm.GenerateTerm(queryConverter));
            foreach (var indexName in indexNames)
            {
                term.args.Add(new Term()
                {
                    type  = Term.TermType.DATUM,
                    datum = new Datum()
                    {
                        type  = Datum.DatumType.R_STR,
                        r_str = indexName,
                    }
                });
            }
            return(term);
        }
コード例 #10
0
        public Term GenerateTerm(IQueryConverter queryConverter)
        {
            var indexCreate = new Term()
            {
                type = Term.TermType.INDEX_CREATE,
            };

            indexCreate.args.Add(tableTerm.GenerateTerm(queryConverter));
            indexCreate.args.Add(new Term()
            {
                type  = Term.TermType.DATUM,
                datum = new Datum()
                {
                    type  = Datum.DatumType.R_STR,
                    r_str = indexName
                },
            });
            indexCreate.args.Add(ExpressionUtils.CreateFunctionTerm(queryConverter, indexExpression));
            if (multiIndex)
            {
                indexCreate.optargs.Add(new Term.AssocPair
                {
                    key = "multi",
                    val = new Term
                    {
                        type  = Term.TermType.DATUM,
                        datum = new Datum
                        {
                            type   = Datum.DatumType.R_BOOL,
                            r_bool = this.multiIndex
                        }
                    }
                });
            }
            return(indexCreate);
        }