var searchIndex = {}; searchIndex["diesel"] = {"doc":"Diesel is an ORM and query builder designed to reduce the boilerplate for database\ninteractions. [A getting started guide](https://github.com/sgrif/diesel#getting-started) can be\nfound in the README.","items":[[3,"Connection","diesel","",null,null],[3,"Cursor","","The type returned by various [`Connection`](struct.Connection.html) methods.\nActs as an iterator over `T`.",null,null],[0,"expression","","AST types representing various typed SQL expressions. Almost all types\nimplement either [`Expression`](trait.Expression.html) or\n[`AsExpression`](trait.AsExpression.html).",null,null],[0,"expression_methods","diesel::expression","Adds various methods to construct new expressions. These traits are exported\nby default, and implemented automatically.",null,null],[0,"global_expression_methods","diesel::expression::expression_methods","",null,null],[8,"ExpressionMethods","diesel::expression::expression_methods::global_expression_methods","",null,null],[11,"aliased","","Alias an expression for use alongside\n[`with`](../../../trait.WithDsl.html).",0,null],[11,"eq","","Creates a SQL `=` expression.",0,null],[11,"ne","","Creates a SQL `!=` expression.",0,null],[11,"is_null","","Creates a SQL `IS NULL` expression.",0,null],[11,"is_not_null","","Creates a SQL `IS NOT NULL` expression.",0,null],[11,"gt","","Creates a SQL `>` expression.",0,null],[11,"ge","","Creates a SQL `>=` expression.",0,null],[11,"lt","","Creates a SQL `<` expression.",0,null],[11,"le","","Creates a SQL `<=` expression.",0,null],[11,"between","","Creates a SQL `BETWEEN` expression using the given range.",0,null],[11,"not_between","","Creates a SQL `NOT BETWEEN` expression using the given range.",0,null],[11,"desc","","Creates a SQL `DESC` expression, representing this expression in\ndescending order.",0,null],[11,"asc","","Creates a SQL `ASC` expression, representing this expression in\ndescending order.",0,null],[0,"bool_expression_methods","diesel::expression::expression_methods","",null,null],[8,"BoolExpressionMethods","diesel::expression::expression_methods::bool_expression_methods","",null,null],[11,"and","","Creates a SQL `AND` expression",1,null],[11,"or","","Creates a SQL `OR` expression",1,null],[0,"text_expression_methods","diesel::expression::expression_methods","",null,null],[8,"VarCharExpressionMethods","diesel::expression::expression_methods::text_expression_methods","",null,null],[11,"like","","Returns a SQL `LIKE` expression",2,null],[11,"not_like","","Returns a SQL `NOT LIKE` expression",2,null],[8,"TextExpressionMethods","","",null,null],[11,"like","","Returns a SQL `LIKE` expression",3,null],[11,"not_like","","Returns a SQL `NOT LIKE` expression",3,null],[0,"extensions","diesel::expression","This module contains extensions that are added to core types to aid in\nbuilding expressions. These traits are not exported by default. The are also\nre-exported in `diesel::expression::dsl`",null,null],[8,"MicroIntervalDsl","diesel::expression::extensions","A DSL added to `i64` and `f64` to construct PostgreSQL intervals of less\nthan 1 day.",null,null],[10,"microseconds","","Returns a PgInterval representing `self` as microseconds",4,null],[11,"milliseconds","","Returns a PgInterval representing `self` as milliseconds",4,null],[11,"seconds","","Returns a PgInterval representing `self` as seconds",4,null],[11,"minutes","","Returns a PgInterval representing `self` as minutes",4,null],[11,"hours","","Returns a PgInterval representing `self` as hours",4,null],[11,"microsecond","","Identical to `microseconds`",4,null],[11,"millisecond","","Identical to `milliseconds`",4,null],[11,"second","","Identical to `seconds`",4,null],[11,"minute","","Identical to `minutes`",4,null],[11,"hour","","Identical to `hours`",4,null],[8,"DayAndMonthIntervalDsl","","A DSL added to `i32` and `f64` to construct PostgreSQL intervals of greater\nthan 1 day.",null,null],[10,"days","","Returns a PgInterval representing `self` in days",5,null],[10,"months","","Returns a PgInterval representing `self` in monhts",5,null],[11,"weeks","","Returns a PgInterval representing `self` in weeks",5,null],[11,"years","","Returns a PgInterval representing `self` in weeks",5,null],[11,"day","","Identical to `days`",5,null],[11,"week","","Identical to `weeks`",5,null],[11,"month","","Identical to `months`",5,null],[11,"year","","Identical to `years`",5,null],[0,"helper_types","diesel::expression","The types in this module are all shorthand for `PredicateType<Lhs,\nAsExpr<Rhs, Lhs>>`. Since we often need to return concrete types, instead of\na boxed trait object, these can be useful for writing concise return types.",null,null],[3,"Desc","diesel::expression::helper_types","",null,null],[3,"Asc","","",null,null],[3,"IsNull","","",null,null],[3,"IsNotNull","","",null,null],[6,"AsExpr","","",null,null],[6,"Eq","","",null,null],[6,"NotEq","","",null,null],[6,"Gt","","",null,null],[6,"GtEq","","",null,null],[6,"Lt","","",null,null],[6,"LtEq","","",null,null],[6,"And","","",null,null],[6,"Like","","",null,null],[6,"NotLike","","",null,null],[6,"Between","","",null,null],[6,"NotBetween","","",null,null],[11,"new","","",6,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"to_sql","","",6,null],[11,"new","","",7,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"to_sql","","",7,null],[11,"clone","","",8,null],[11,"fmt","","",8,null],[11,"new","","",8,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"to_sql","","",8,null],[11,"clone","","",9,null],[11,"fmt","","",9,null],[11,"new","","",9,{"inputs":[{"name":"t"}],"output":{"name":"self"}}],[11,"to_sql","","",9,null],[0,"sql_literal","diesel::expression","",null,null],[3,"SqlLiteral","diesel::expression::sql_literal","Available for when you truly cannot represent something using the expression\nDSL. You will need to provide the type of the expression, in addition to the\nSQL. The compiler will be unable to verify the correctness of this type.",null,null],[11,"clone","","",10,null],[11,"fmt","","",10,null],[11,"new","","",10,{"inputs":[{"name":"string"}],"output":{"name":"self"}}],[11,"to_sql","","",10,null],[0,"dsl","diesel::expression","Reexports various top level functions and core extensions that are too\ngeneric to export by default. This module exists to conveniently glob import\nin functions where you need them.",null,null],[3,"now","diesel::expression::dsl","Represents the SQL NOW() function",null,null],[3,"Max","","",null,null],[3,"Min","","",null,null],[5,"any","","Creates a PostgreSQL `ANY` expression.",null,{"inputs":[{"name":"t"}],"output":{"name":"any"}}],[5,"count","","Creates a SQL `COUNT` expression",null,{"inputs":[{"name":"t"}],"output":{"name":"count"}}],[5,"count_star","","Creates a SQL `COUNT(*)` expression",null,{"inputs":[],"output":{"name":"countstar"}}],[5,"date","","Represents the SQL DATE() function. The argument should be a Timestamp\nexpression, and the return value will be an expression of type Date",null,{"inputs":[{"name":"x"}],"output":{"name":"date"}}],[5,"max","","Represents a SQL `MAX` function. This function can only take types which are\nordered.",null,{"inputs":[{"name":"t"}],"output":{"name":"max"}}],[5,"min","","Represents a SQL `MIN` function. This function can only take types which are\nordered.",null,{"inputs":[{"name":"t"}],"output":{"name":"min"}}],[6,"date","","",null,null],[8,"Expression","diesel::expression","Represents a typed fragment of SQL. Apps should not need to implement this\ntype directly, but it may be common to use this as type boundaries.\nLibraries should consider using\n[`infix_predicate!`](../macro.infix_predicate!.html) or\n[`postfix_predicate!`](../macro.postfix_predicate!.html) instead of\nimplementing this directly.",null,null],[16,"SqlType","","",11,null],[10,"to_sql","","",11,null],[8,"AsExpression","","Describes how a type can be represented as an expression for a given type.\nThese types couldn't just implement [`Expression`](trait.Expression.html)\ndirectly, as many things can be used as an expression of multiple types.\n(`String` for example, can be used as either\n[`VarChar`](../types/struct.VarChar.html) or\n[`Text`](../types/struct.Text.html)).",null,null],[16,"Expression","","",12,null],[10,"as_expression","","",12,null],[8,"SelectableExpression","","Indicates that an expression can be selected from a source. The second type\nargument is optional, but is used to indicate that the right side of a left\nouter join is nullable, even if it wasn't before.",null,null],[8,"NonAggregate","","Marker trait to indicate that an expression does not include any aggregate\nfunctions. Used to ensure that aggregate expressions aren't mixed with\nnon-aggregate expressions in a select clause, and that they're never\nincluded in a where clause.",null,null],[8,"BoxableExpression","","Helper trait used when boxing expressions. This exists to work around the\nfact that Rust will not let us use non-core types as bounds on a trait\nobject (you could not return `Box<Expression+NonAggregate>`)",null,null],[0,"types","diesel","Types which represent a native SQL data type, and the conversions between\nthem and Rust primitives. Additional types can be added by other crates.",null,null],[3,"Bool","diesel::types","",null,null],[3,"SmallInt","","",null,null],[3,"Integer","","",null,null],[3,"BigInt","","",null,null],[3,"Float","","",null,null],[3,"Double","","",null,null],[3,"Numeric","","",null,null],[3,"Oid","","",null,null],[3,"VarChar","","",null,null],[3,"Text","","",null,null],[3,"Binary","","",null,null],[3,"Date","","",null,null],[3,"Interval","","",null,null],[3,"Time","","",null,null],[3,"Timestamp","","",null,null],[3,"Nullable","","",null,null],[3,"Array","","",null,null],[4,"IsNull","","Tiny enum to make the return type of `ToSql` more descriptive",null,null],[13,"Yes","","",13,null],[13,"No","","",13,null],[0,"ops","","Apps should not need to concern themselves with this module.",null,null],[8,"Add","diesel::types::ops","",null,null],[16,"Rhs","","",14,null],[16,"Output","","",14,null],[8,"Sub","","",null,null],[16,"Rhs","","",15,null],[16,"Output","","",15,null],[8,"Mul","","",null,null],[16,"Rhs","","",16,null],[16,"Output","","",16,null],[8,"Div","","",null,null],[16,"Rhs","","",17,null],[16,"Output","","",17,null],[11,"oid","diesel::types","",18,null],[11,"array_oid","","",18,null],[11,"new","","",18,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",19,null],[11,"array_oid","","",19,null],[11,"new","","",19,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",20,null],[11,"array_oid","","",20,null],[11,"new","","",20,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",21,null],[11,"array_oid","","",21,null],[11,"new","","",21,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",22,null],[11,"array_oid","","",22,null],[11,"new","","",22,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",23,null],[11,"array_oid","","",23,null],[11,"new","","",23,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",24,null],[11,"array_oid","","",24,null],[11,"new","","",24,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",25,null],[11,"array_oid","","",25,null],[11,"new","","",25,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",26,null],[11,"array_oid","","",26,null],[11,"new","","",26,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",27,null],[11,"array_oid","","",27,null],[11,"new","","",27,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",28,null],[11,"array_oid","","",28,null],[11,"new","","",28,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",29,null],[11,"array_oid","","",29,null],[11,"new","","",29,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",30,null],[11,"array_oid","","",30,null],[11,"new","","",30,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",31,null],[11,"array_oid","","",31,null],[11,"new","","",31,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",32,null],[11,"array_oid","","",32,null],[11,"new","","",32,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",33,null],[11,"array_oid","","",33,null],[11,"new","","",33,{"inputs":[],"output":{"name":"self"}}],[11,"oid","","",34,null],[11,"array_oid","","",34,null],[11,"new","","",34,{"inputs":[],"output":{"name":"self"}}],[6,"SmallSerial","","",null,null],[6,"Serial","","",null,null],[6,"BigSerial","","",null,null],[8,"SqlOrd","","",null,null],[8,"NativeSqlType","","",null,null],[10,"oid","","",35,null],[10,"array_oid","","",35,null],[10,"new","","",35,{"inputs":[],"output":{"name":"self"}}],[8,"FromSql","","How to deserialize a single field of a given type. The input will always be\nthe binary representation, not the text.",null,null],[10,"from_sql","","",36,{"inputs":[{"name":"option"}],"output":{"name":"result"}}],[8,"FromSqlRow","","How to deserialize multiple fields, with a known type. This type is\nimplemented for tuples of various sizes.",null,null],[10,"build_from_row","","",37,{"inputs":[{"name":"t"}],"output":{"name":"result"}}],[8,"ToSql","","Serializes a single value to be sent to the database. The output will be\nincluded as a bind parameter, and is expected to be the binary format, not\ntext.",null,null],[10,"to_sql","","",38,null],[11,"default","","",24,{"inputs":[],"output":{"name":"bool"}}],[11,"clone","","",24,null],[11,"default","","",25,{"inputs":[],"output":{"name":"smallint"}}],[11,"clone","","",25,null],[11,"default","","",26,{"inputs":[],"output":{"name":"integer"}}],[11,"clone","","",26,null],[11,"default","","",27,{"inputs":[],"output":{"name":"bigint"}}],[11,"clone","","",27,null],[11,"default","","",29,{"inputs":[],"output":{"name":"float"}}],[11,"clone","","",29,null],[11,"default","","",30,{"inputs":[],"output":{"name":"double"}}],[11,"clone","","",30,null],[11,"default","","",31,{"inputs":[],"output":{"name":"numeric"}}],[11,"clone","","",31,null],[11,"default","","",28,{"inputs":[],"output":{"name":"oid"}}],[11,"clone","","",28,null],[11,"default","","",32,{"inputs":[],"output":{"name":"varchar"}}],[11,"clone","","",32,null],[11,"default","","",33,{"inputs":[],"output":{"name":"text"}}],[11,"clone","","",33,null],[11,"default","","",34,{"inputs":[],"output":{"name":"binary"}}],[11,"clone","","",34,null],[11,"default","","",19,{"inputs":[],"output":{"name":"date"}}],[11,"clone","","",19,null],[11,"default","","",20,{"inputs":[],"output":{"name":"interval"}}],[11,"clone","","",20,null],[11,"default","","",21,{"inputs":[],"output":{"name":"time"}}],[11,"clone","","",21,null],[11,"default","","",22,{"inputs":[],"output":{"name":"timestamp"}}],[11,"clone","","",22,null],[11,"default","","",23,{"inputs":[],"output":{"name":"nullable"}}],[11,"clone","","",23,null],[11,"default","","",18,{"inputs":[],"output":{"name":"array"}}],[11,"clone","","",18,null],[11,"eq","","",13,null],[11,"fmt","","",13,null],[11,"next","diesel","",39,null],[11,"establish","","Establishes a new connection to the database at the given URL. The URL\nshould be a PostgreSQL connection string, as documented at\nhttp://www.postgresql.org/docs/9.4/static/libpq-connect.html#LIBPQ-CONNSTRING",40,{"inputs":[{"name":"str"}],"output":{"name":"connectionresult"}}],[11,"transaction","","Executes the given function inside of a database transaction. When\na transaction is already occurring,\n[savepoints](http://www.postgresql.org/docs/9.1/static/sql-savepoint.html)\nwill be used to emulate a nested transaction.",40,null],[11,"begin_test_transaction","","Creates a transaction that will never be committed. This is useful for\ntests. Panics if called while inside of a transaction.",40,null],[11,"test_transaction","","Executes the given function inside a transaction, but does not commit\nit. Panics if the given function returns an `Err`.",40,null],[11,"find","","Attempts to find a single record from the given table by primary key.",40,null],[11,"drop","","",40,null],[0,"migrations","","Provides functions for maintaining database schema.",null,null],[4,"MigrationError","diesel::migrations","",null,null],[13,"MigrationDirectoryNotFound","","",41,null],[13,"UnknownMigrationFormat","","",41,null],[13,"IoError","","",41,null],[13,"UnknownMigrationVersion","","",41,null],[4,"RunMigrationsError","","",null,null],[13,"MigrationError","","",42,null],[13,"QueryError","","",42,null],[5,"run_pending_migrations","","Runs all migrations that have not yet been run. This function will print all progress to\nstdout. This function will return an `Err` if some error occurs reading the migrations, or if\nany migration fails to run. Each migration is run in its own transaction, so some migrations\nmay be committed, even if a later migration fails to run.",null,{"inputs":[{"name":"connection"}],"output":{"name":"result"}}],[5,"revert_latest_migration","","Reverts the last migration that was run. Returns the version that was reverted. Returns an\n`Err` if no migrations have ever been run.",null,{"inputs":[{"name":"connection"}],"output":{"name":"result"}}],[5,"find_migrations_directory","","Returns the directory containing migrations. Will look at for\n$PWD/migrations. If it is not found, it will search the parents of the\ncurrent directory, until it reaches the root directory. Returns\n`MigrationError::MigrationDirectoryNotFound` if no directory is found.",null,{"inputs":[],"output":{"name":"result"}}],[11,"fmt","","",41,null],[11,"eq","","",41,null],[11,"from","","",41,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"eq","","",42,null],[11,"ne","","",42,null],[11,"fmt","","",42,null],[11,"from","","",42,{"inputs":[{"name":"migrationerror"}],"output":{"name":"self"}}],[11,"from","","",42,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",42,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",42,{"inputs":[{"name":"transactionerror"}],"output":{"name":"self"}}],[0,"query_builder","diesel","Contains traits responsible for the actual construction of SQL statements",null,null],[3,"IncompleteUpdateStatement","diesel::query_builder","The type returned by [`update`](fn.update.html). The only thing you can do\nwith this type is call `set` on it.",null,null],[3,"IncompleteInsertStatement","","The structure returned by [`insert`](fn.insert.html). The only thing that can be done with it\nis call `into`.",null,null],[5,"update","","Creates an update statement. Helpers for updating a single row can be\ngenerated by\n[`#[changeset_for]`](https://github.com/sgrif/diesel/tree/master/diesel_codegen#changeset_fortable_name).",null,{"inputs":[{"name":"t"}],"output":{"name":"incompleteupdatestatement"}}],[5,"delete","","Creates a delete statement. Will delete the records in the given set.\nBecause this function has a very generic name, it is not exported by\ndefault.",null,{"inputs":[{"name":"t"}],"output":{"name":"deletestatement"}}],[5,"insert","","Creates an insert statement. Will add the given data to a table. This\nfunction is not exported by default. As with other commands, the resulting\nquery can return the inserted rows if you choose.",null,{"inputs":[{"name":"t"}],"output":{"name":"incompleteinsertstatement"}}],[0,"debug","","",null,null],[0,"insert_statement","","",null,null],[3,"IncompleteInsertStatement","diesel::query_builder::insert_statement","The structure returned by [`insert`](fn.insert.html). The only thing that can be done with it\nis call `into`.",null,null],[11,"into","","Specify which table the data passed to `insert` should be added to.",43,null],[0,"update_statement","diesel::query_builder","",null,null],[3,"IncompleteUpdateStatement","diesel::query_builder::update_statement","The type returned by [`update`](fn.update.html). The only thing you can do\nwith this type is call `set` on it.",null,null],[0,"changeset","","",null,null],[8,"AsChangeset","diesel::query_builder::update_statement::changeset","Types which can be passed to\n[`update.set`](struct.IncompleteUpdateStatement.html#method.set). This can\nbe automatically generated for structs by\n[`#[changeset_for]`](https://github.com/sgrif/diesel/tree/master/diesel_codegen#changeset_fortable_name).",null,null],[16,"Changeset","","",44,null],[10,"as_changeset","","",44,null],[8,"Changeset","","Apps should not need to concern themselves with this trait.",null,null],[16,"Target","","",45,null],[10,"is_noop","","",45,null],[10,"to_sql","","",45,null],[0,"target","diesel::query_builder::update_statement","",null,null],[8,"UpdateTarget","diesel::query_builder::update_statement::target","You should not need to implement this trait.\n[`table!`](../macro.table!.html) will implement it for you.",null,null],[16,"Table","","",46,null],[10,"where_clause","","",46,null],[10,"table","","",46,null],[11,"set","diesel::query_builder::update_statement","",47,null],[6,"BuildQueryResult","diesel::query_builder","",null,null],[8,"AsChangeset","","Types which can be passed to\n[`update.set`](struct.IncompleteUpdateStatement.html#method.set). This can\nbe automatically generated for structs by\n[`#[changeset_for]`](https://github.com/sgrif/diesel/tree/master/diesel_codegen#changeset_fortable_name).",null,null],[16,"Changeset","","",44,null],[10,"as_changeset","","",44,null],[8,"Changeset","","Apps should not need to concern themselves with this trait.",null,null],[16,"Target","","",45,null],[10,"is_noop","","",45,null],[10,"to_sql","","",45,null],[8,"UpdateTarget","","You should not need to implement this trait.\n[`table!`](../macro.table!.html) will implement it for you.",null,null],[16,"Table","","",46,null],[10,"where_clause","","",46,null],[10,"table","","",46,null],[8,"QueryBuilder","","Apps should not need to concern themselves with this trait.",null,null],[10,"push_sql","","",48,null],[10,"push_identifier","","",48,null],[10,"push_bound_value","","",48,null],[8,"Query","","A complete SQL query with a return type. This can be a select statement, or\na command such as `update` or `insert` with a `RETURNING` clause. Unlike\n[`Expression`](../expression/trait.Expression.html), types implementing this\ntrait are guaranteed to be executable on their own.",null,null],[16,"SqlType","","",49,null],[8,"QueryFragment","","An untyped fragment of SQL. This may be a complete SQL command (such as\nan update statement without a `RETURNING` clause), or a subsection (such as\nour internal types used to represent a `WHERE` clause). All methods on\n[`Connection`](../struct.Connection.html) that execute a query require this\ntrait to be implemented.",null,null],[10,"to_sql","","",50,null],[8,"AsQuery","","Types that can be converted into a complete, typed SQL query. This is used\ninternally to automatically add the right select clause when none is\nspecified, or to automatically add `RETURNING *` in certain contexts",null,null],[16,"SqlType","","",51,null],[16,"Query","","",51,null],[10,"as_query","","",51,null],[0,"query_source","diesel","Types in this module are mostly internal and automatically generated. You\nshouldn't need to interact with these types during normal usage, other than\nthe methods on [`Table`](trait.Table.html)",null,null],[8,"JoinTo","diesel::query_source","Indicates that two tables can be used together in a JOIN clause.\nImplementations of this trait will be generated for you automatically by\nthe [association annotations](FIXME: Add link) from codegen.",null,null],[8,"Queriable","","Trait indicating that a record can be queried from the database. This trait\ncan be derived automatically. See the [codegen\ndocumentation](https://github.com/sgrif/diesel/tree/master/diesel_codegen#derivequeriable)\nfor more.",null,null],[16,"Row","","",52,null],[10,"build","","",52,{"inputs":[{"name":"row"}],"output":{"name":"self"}}],[8,"Column","","A column on a database table. Types which implement this trait should have\nbeen generated by the [`table!` macro](../macro.table!.html).",null,null],[16,"Table","","",53,null],[10,"name","","",53,{"inputs":[],"output":{"name":"str"}}],[8,"Table","","A SQL database table. Types which implement this trait should have been\ngenerated by the [`table!` macro](../macro.table!.html).",null,null],[16,"PrimaryKey","","",54,null],[16,"AllColumns","","",54,null],[10,"name","","",54,{"inputs":[],"output":{"name":"str"}}],[10,"primary_key","","",54,null],[10,"all_columns","","",54,{"inputs":[],"output":{"name":"allcolumns"}}],[11,"inner_join","","",54,null],[11,"left_outer_join","","",54,null],[0,"result","diesel","",null,null],[4,"Error","diesel::result","The generic "things can fail in a myriad of ways" enum. This type is not\nindended to be exhaustively matched, and new variants may be added in the\nfuture without a major version bump.",null,null],[13,"InvalidCString","","",55,null],[13,"DatabaseError","","",55,null],[13,"NotFound","","",55,null],[4,"ConnectionError","","",null,null],[13,"InvalidCString","","",56,null],[13,"BadConnection","","",56,null],[4,"TransactionError","","",null,null],[13,"CouldntCreateTransaction","","",57,null],[13,"UserReturnedError","","",57,null],[6,"QueryResult","","",null,null],[6,"ConnectionResult","","",null,null],[6,"TransactionResult","","",null,null],[8,"OptionalExtension","","",null,null],[10,"optional","","",58,null],[11,"eq","","",55,null],[11,"ne","","",55,null],[11,"fmt","","",55,null],[11,"fmt","","",56,null],[11,"eq","","",57,null],[11,"ne","","",57,null],[11,"fmt","","",57,null],[11,"optional","","",59,null],[11,"from","","",56,{"inputs":[{"name":"nulerror"}],"output":{"name":"self"}}],[11,"from","","",55,{"inputs":[{"name":"nulerror"}],"output":{"name":"self"}}],[11,"from","","",57,{"inputs":[{"name":"error"}],"output":{"name":"self"}}],[11,"from","","",55,{"inputs":[{"name":"transactionerror"}],"output":{"name":"self"}}],[11,"fmt","","",55,null],[11,"description","","",55,null],[11,"fmt","","",56,null],[11,"description","","",56,null],[11,"fmt","","",57,null],[11,"description","","",57,null],[0,"helper_types","diesel","Provide helper types for concisely writing the return type of functions.\nAs with iterators, it is unfortunately difficult to return a partially\nconstructed query without exposing the exact implementation of the\nfunction. Without higher kinded types, these various DSLs can't be\ncombined into a single trait for boxing purposes.",null,null],[6,"Select","diesel::helper_types","Represents the return type of `.select(selection)`",null,null],[6,"Filter","","Represents the return type of `.filter(predicate)`",null,null],[6,"FindBy","","Represents the return type of `.filter(lhs.eq(rhs))`",null,null],[6,"Order","","Represents the return type of `.order(ordering)`",null,null],[6,"Limit","","Represents the return type of `.limit()`",null,null],[6,"Offset","","Represents the return type of `.offset()`",null,null],[6,"With","","Represents the return type of `.with(aliased_expr)`",null,null],[0,"data_types","diesel","Structs to represent the primitive equivalent of SQL types where\nthere is no existing Rust primitive, or where using it would be\nconfusing (such as date and time types)",null,null],[3,"PgTimestamp","diesel::data_types","Timestamps are represented in Postgres as a 32 bit signed integer representing the number of\nmicroseconds since January 1st 2000. This struct is a dumb wrapper type, meant only to indicate\nthe integer's meaning.",null,null],[12,"0","","",60,null],[3,"PgDate","","Dates are represented in Postgres as a 32 bit signed integer representing the number of julian\ndays since January 1st 2000. This struct is a dumb wrapper type, meant only to indicate the\ninteger's meaning.",null,null],[12,"0","","",61,null],[3,"PgTime","","Time is represented in Postgres as a 64 bit signed integer representing the number of\nmicroseconds since midnight. This struct is a dumb wrapper type, meant only to indicate the\ninteger's meaning.",null,null],[12,"0","","",62,null],[3,"PgInterval","","Intervals in Postgres are separated into 3 parts. A 64 bit integer representing time in\nmicroseconds, a 32 bit integer representing number of minutes, and a 32 bit integer\nrepresenting number of months. This struct is a dumb wrapper type, meant only to indicate the\nmeaning of these parts.",null,null],[12,"microseconds","","",63,null],[12,"days","","",63,null],[12,"months","","",63,null],[4,"PgNumeric","","",null,null],[13,"Positive","","",64,null],[12,"weight","diesel::data_types::PgNumeric","",64,null],[12,"scale","","",64,null],[12,"digits","","",64,null],[13,"Negative","diesel::data_types","",64,null],[12,"weight","diesel::data_types::PgNumeric","",64,null],[12,"scale","","",64,null],[12,"digits","","",64,null],[13,"NaN","diesel::data_types","",64,null],[8,"BelongingToDsl","diesel","",null,null],[16,"Output","","",65,null],[10,"belonging_to","","",65,{"inputs":[{"name":"t"}],"output":{"name":"output"}}],[8,"CountDsl","","Adds a simple `count` function to queries. Automatically implemented for all\ntypes which implement `SelectDsl`.",null,null],[11,"count","","Get the count of a query. This is equivalent to `.select(count_star())`",66,null],[8,"FilterDsl","","Adds to the `WHERE` clause of a query. If there is already a `WHERE` clause,\nthe result will be `old AND new`. This is automatically implemented for the\nvarious query builder types.",null,null],[16,"Output","","",67,null],[10,"filter","","",67,null],[8,"LimitDsl","","Sets the limit clause of a query. If there was already a limit clause, it\nwill be overridden. This is automatically implemented for the various query\nbuilder types.",null,null],[16,"Output","","",68,null],[10,"limit","","",68,null],[8,"LoadDsl","","Methods to execute a query given a connection. These are automatically implemented for the\nvarious query types.",null,null],[11,"load","","Executes the given query, returning an `Iterator` over the returned\nrows.",69,null],[11,"first","","Attempts to load a single record. Returns `Ok(record)` if found, and\n`Err(NotFound)` if no results are returned. If the query truly is\noptional, you can call `.optional()` on the result of this to get a\n`Result<Option<U>>`.",69,null],[11,"get_result","","Runs the command, and returns the affected row. `Err(NotFound)` will be\nreturned if the query affected 0 rows. You can call `.optional()` on the\nresult of this if the command was optional to get back a\n`Result<Option<U>>`",69,null],[11,"get_results","","Runs the command, returning an `Iterator` over the affected rows.",69,null],[8,"ExecuteDsl","","",null,null],[11,"execute","","Executes the given command, returning the number of rows affected. Used\nin conjunction with\n[`update`](../query_builder/fn.update.html) and\n[`delete`](../query_builder/fn.delete.html)",70,null],[8,"OffsetDsl","","Sets the offset clause of a query. If there was already a offset clause, it\nwill be overridden. This is automatically implemented for the various query\nbuilder types.",null,null],[16,"Output","","",71,null],[10,"offset","","",71,null],[8,"OrderDsl","","Sets the order clause of a query. If there was already a order clause, it\nwill be overridden. The expression passed to `order` must actually be valid\nfor the query. See also:\n[`.desc()`](expression/expression_methods/global_expression_methods/trait.ExpressionMethods.html#method.desc)\nand [`.asc()`](expression/expression_methods/global_expression_methods/trait.ExpressionMethods.html#method.asc)",null,null],[16,"Output","","",72,null],[10,"order","","",72,null],[8,"SelectDsl","","Sets the select clause of a query. If there was already a select clause, it\nwill be overridden. The expression passed to `select` must actually be valid\nfor the query (only contains columns from the target table, doesn't mix\naggregate + non-aggregate expressions, etc).",null,null],[16,"Output","","",73,null],[10,"select","","",73,null],[8,"WithDsl","","Adds an additional expression to the FROM clause. This is useful for things\nlike full text search, where you need to access the result of an expensive\ncomputation for the where clause that shouldn't be redone for each row, such\nas `plain_to_tsquery`. See\n[`.aliased`](expression/expression_methods/global_expression_methods/trait.ExpressionMethods.html#method.aliased)\nfor more",null,null],[16,"Output","","",74,null],[10,"with","","",74,null],[8,"JoinTo","","Indicates that two tables can be used together in a JOIN clause.\nImplementations of this trait will be generated for you automatically by\nthe [association annotations](FIXME: Add link) from codegen.",null,null],[8,"Insertable","","Represents that a structure can be used to to insert a new row into the database.\nImplementations can be automatically generated by\n[`#[insertable_into]`](https://github.com/sgrif/diesel/tree/master/diesel_codegen#insertable_intotable_name).\nThis is automatically implemented for `&[T]`, `Vec<T>` and `&Vec<T>` for inserting more than\none record.",null,null],[16,"Columns","","",75,null],[16,"Values","","",75,null],[10,"columns","","",75,{"inputs":[],"output":{"name":"columns"}}],[10,"values","","",75,null],[14,"operator_allowed!","","Implements the Rust operator for a given type. If you create a new SQL\nfunction, which returns a type that you'd like to use an operator on, you\nshould invoke this macro. Unfortunately, Rust disallows us from\nautomatically implementing `Add` and other traits from `std::ops`, under its\norphan rules.",null,null],[14,"numeric_expr!","","Indicates that an expression allows all numeric operators. If you create new\nSQL functions that return a numeric type, you should invoke this macro that\ntype. Unfortunately, Rust disallows us from automatically implementing `Add`\nfor types which implement `Expression`, under its orphan rules.",null,null],[14,"sql_function!","","Declare a sql function for use in your code. Useful if you have your own SQL functions that\nyou'd like to use. You can optionally provide a doc string as well. `$struct_name` should just\nbe any unique name. You will not need to reference it in your code, but it is required due to\nthe fact that [`concat_idents!` is\nuseless](https://github.com/rust-lang/rust/issues/29599#issuecomment-153927167).",null,null],[14,"no_arg_sql_function!","","Declare a 0 argument SQL function for use in your code. This will generate a\nunit struct, which is an expression representing calling this function. See\n[`now`](expression/dsl/struct.now.html) for example output. `now` was\ngenerated using:",null,null],[14,"infix_predicate!","","Useful for libraries adding support for new SQL types. Apps should never\nneed to call this",null,null],[14,"postfix_predicate!","","Useful for libraries adding support for new SQL types. Apps should never\nneed to call this.",null,null],[14,"table!","","Specifies that a table exists, and what columns it has. This will create a\nnew public module, with the same name, as the name of the table. In this\nmodule, you'll find a unit struct named `table`, and a unit struct with the\nnames of each of the columns. In the definition, you can also specify an\nadditional set of columns which exist, but should not be selected by default\n(for example, for things like full text search)",null,null],[14,"debug_sql!","","Takes a query QueryFragment expression as an argument and returns a string\nof SQL with placeholders for the dynamic values.",null,null],[14,"print_sql!","","Takes takes a query QueryFragment expression as an argument and prints out\nthe SQL with placeholders for the dynamic values.",null,null],[11,"milliseconds","diesel::expression::extensions","Returns a PgInterval representing `self` as milliseconds",4,null],[11,"seconds","","Returns a PgInterval representing `self` as seconds",4,null],[11,"minutes","","Returns a PgInterval representing `self` as minutes",4,null],[11,"hours","","Returns a PgInterval representing `self` as hours",4,null],[11,"microsecond","","Identical to `microseconds`",4,null],[11,"millisecond","","Identical to `milliseconds`",4,null],[11,"second","","Identical to `seconds`",4,null],[11,"minute","","Identical to `minutes`",4,null],[11,"hour","","Identical to `hours`",4,null],[11,"weeks","","Returns a PgInterval representing `self` in weeks",5,null],[11,"years","","Returns a PgInterval representing `self` in weeks",5,null],[11,"day","","Identical to `days`",5,null],[11,"week","","Identical to `weeks`",5,null],[11,"month","","Identical to `months`",5,null],[11,"year","","Identical to `years`",5,null],[11,"clone","diesel::expression::dsl","",76,null],[11,"fmt","","",76,null],[11,"to_sql","","",76,null],[11,"clone","","",77,null],[11,"fmt","","",77,null],[11,"to_sql","","",77,null],[11,"to_sql","","",78,null],[11,"add","","",78,null],[11,"sub","","",78,null],[11,"cmp","diesel::data_types","",60,null],[11,"partial_cmp","","",60,null],[11,"lt","","",60,null],[11,"le","","",60,null],[11,"gt","","",60,null],[11,"ge","","",60,null],[11,"eq","","",60,null],[11,"ne","","",60,null],[11,"clone","","",60,null],[11,"fmt","","",60,null],[11,"cmp","","",61,null],[11,"partial_cmp","","",61,null],[11,"lt","","",61,null],[11,"le","","",61,null],[11,"gt","","",61,null],[11,"ge","","",61,null],[11,"eq","","",61,null],[11,"ne","","",61,null],[11,"clone","","",61,null],[11,"fmt","","",61,null],[11,"cmp","","",62,null],[11,"partial_cmp","","",62,null],[11,"lt","","",62,null],[11,"le","","",62,null],[11,"gt","","",62,null],[11,"ge","","",62,null],[11,"eq","","",62,null],[11,"ne","","",62,null],[11,"clone","","",62,null],[11,"fmt","","",62,null],[11,"eq","","",63,null],[11,"ne","","",63,null],[11,"clone","","",63,null],[11,"fmt","","",63,null],[11,"new","","",63,{"inputs":[{"name":"i64"},{"name":"i32"},{"name":"i32"}],"output":{"name":"self"}}],[11,"from_microseconds","","",63,{"inputs":[{"name":"i64"}],"output":{"name":"self"}}],[11,"from_days","","",63,{"inputs":[{"name":"i32"}],"output":{"name":"self"}}],[11,"from_months","","",63,{"inputs":[{"name":"i32"}],"output":{"name":"self"}}],[11,"build","","",61,{"inputs":[{"name":"row"}],"output":{"name":"self"}}],[11,"build","","",63,{"inputs":[{"name":"row"}],"output":{"name":"self"}}],[11,"build","","",62,{"inputs":[{"name":"row"}],"output":{"name":"self"}}],[11,"build","","",60,{"inputs":[{"name":"row"}],"output":{"name":"self"}}],[11,"as_expression","","",61,null],[11,"as_expression","","",61,null],[11,"to_sql","","",61,null],[11,"as_expression","","",63,null],[11,"as_expression","","",63,null],[11,"to_sql","","",63,null],[11,"as_expression","","",62,null],[11,"as_expression","","",62,null],[11,"to_sql","","",62,null],[11,"as_expression","","",60,null],[11,"as_expression","","",60,null],[11,"to_sql","","",60,null],[11,"to_sql","","",60,null],[11,"from_sql","","",60,{"inputs":[{"name":"option"}],"output":{"name":"result"}}],[11,"to_sql","","",61,null],[11,"from_sql","","",61,{"inputs":[{"name":"option"}],"output":{"name":"result"}}],[11,"to_sql","","",62,null],[11,"from_sql","","",62,{"inputs":[{"name":"option"}],"output":{"name":"result"}}],[11,"to_sql","","",63,null],[11,"from_sql","","",63,{"inputs":[{"name":"option"}],"output":{"name":"result"}}],[11,"add","","",63,null],[11,"eq","","",64,null],[11,"ne","","",64,null],[11,"clone","","",64,null],[11,"fmt","","",64,null],[11,"from_sql","","",64,{"inputs":[{"name":"option"}],"output":{"name":"result"}}],[11,"to_sql","","",64,null],[11,"build","","",64,{"inputs":[{"name":"row"}],"output":{"name":"self"}}],[11,"as_expression","","",64,null],[11,"as_expression","","",64,null],[11,"to_sql","","",64,null],[11,"count","diesel","Get the count of a query. This is equivalent to `.select(count_star())`",66,null],[11,"load","","Executes the given query, returning an `Iterator` over the returned\nrows.",69,null],[11,"first","","Attempts to load a single record. Returns `Ok(record)` if found, and\n`Err(NotFound)` if no results are returned. If the query truly is\noptional, you can call `.optional()` on the result of this to get a\n`Result<Option<U>>`.",69,null],[11,"get_result","","Runs the command, and returns the affected row. `Err(NotFound)` will be\nreturned if the query affected 0 rows. You can call `.optional()` on the\nresult of this if the command was optional to get back a\n`Result<Option<U>>`",69,null],[11,"get_results","","Runs the command, returning an `Iterator` over the affected rows.",69,null],[11,"execute","","Executes the given command, returning the number of rows affected. Used\nin conjunction with\n[`update`](../query_builder/fn.update.html) and\n[`delete`](../query_builder/fn.delete.html)",70,null],[11,"count","","Get the count of a query. This is equivalent to `.select(count_star())`",66,null],[11,"load","","Executes the given query, returning an `Iterator` over the returned\nrows.",69,null],[11,"first","","Attempts to load a single record. Returns `Ok(record)` if found, and\n`Err(NotFound)` if no results are returned. If the query truly is\noptional, you can call `.optional()` on the result of this to get a\n`Result<Option<U>>`.",69,null],[11,"get_result","","Runs the command, and returns the affected row. `Err(NotFound)` will be\nreturned if the query affected 0 rows. You can call `.optional()` on the\nresult of this if the command was optional to get back a\n`Result<Option<U>>`",69,null],[11,"get_results","","Runs the command, returning an `Iterator` over the affected rows.",69,null],[11,"execute","","Executes the given command, returning the number of rows affected. Used\nin conjunction with\n[`update`](../query_builder/fn.update.html) and\n[`delete`](../query_builder/fn.delete.html)",70,null],[11,"count","","Get the count of a query. This is equivalent to `.select(count_star())`",66,null],[11,"load","","Executes the given query, returning an `Iterator` over the returned\nrows.",69,null],[11,"first","","Attempts to load a single record. Returns `Ok(record)` if found, and\n`Err(NotFound)` if no results are returned. If the query truly is\noptional, you can call `.optional()` on the result of this to get a\n`Result<Option<U>>`.",69,null],[11,"get_result","","Runs the command, and returns the affected row. `Err(NotFound)` will be\nreturned if the query affected 0 rows. You can call `.optional()` on the\nresult of this if the command was optional to get back a\n`Result<Option<U>>`",69,null],[11,"get_results","","Runs the command, returning an `Iterator` over the affected rows.",69,null],[11,"execute","","Executes the given command, returning the number of rows affected. Used\nin conjunction with\n[`update`](../query_builder/fn.update.html) and\n[`delete`](../query_builder/fn.delete.html)",70,null]],"paths":[[8,"ExpressionMethods"],[8,"BoolExpressionMethods"],[8,"VarCharExpressionMethods"],[8,"TextExpressionMethods"],[8,"MicroIntervalDsl"],[8,"DayAndMonthIntervalDsl"],[3,"Desc"],[3,"Asc"],[3,"IsNull"],[3,"IsNotNull"],[3,"SqlLiteral"],[8,"Expression"],[8,"AsExpression"],[4,"IsNull"],[8,"Add"],[8,"Sub"],[8,"Mul"],[8,"Div"],[3,"Array"],[3,"Date"],[3,"Interval"],[3,"Time"],[3,"Timestamp"],[3,"Nullable"],[3,"Bool"],[3,"SmallInt"],[3,"Integer"],[3,"BigInt"],[3,"Oid"],[3,"Float"],[3,"Double"],[3,"Numeric"],[3,"VarChar"],[3,"Text"],[3,"Binary"],[8,"NativeSqlType"],[8,"FromSql"],[8,"FromSqlRow"],[8,"ToSql"],[3,"Cursor"],[3,"Connection"],[4,"MigrationError"],[4,"RunMigrationsError"],[3,"IncompleteInsertStatement"],[8,"AsChangeset"],[8,"Changeset"],[8,"UpdateTarget"],[3,"IncompleteUpdateStatement"],[8,"QueryBuilder"],[8,"Query"],[8,"QueryFragment"],[8,"AsQuery"],[8,"Queriable"],[8,"Column"],[8,"Table"],[4,"Error"],[4,"ConnectionError"],[4,"TransactionError"],[8,"OptionalExtension"],[6,"QueryResult"],[3,"PgTimestamp"],[3,"PgDate"],[3,"PgTime"],[3,"PgInterval"],[4,"PgNumeric"],[8,"BelongingToDsl"],[8,"CountDsl"],[8,"FilterDsl"],[8,"LimitDsl"],[8,"LoadDsl"],[8,"ExecuteDsl"],[8,"OffsetDsl"],[8,"OrderDsl"],[8,"SelectDsl"],[8,"WithDsl"],[8,"Insertable"],[3,"Max"],[3,"Min"],[3,"now"]]}; initSearch(searchIndex);