Showing 5 changed files with 94 additions and 289 deletions
+18 -3
lib/DBIx/Custom.pm
... ...
@@ -2369,17 +2369,32 @@ Table name.
2369 2369
 
2370 2370
 Column clause. This is array reference or constant value.
2371 2371
 
2372
-    # Hash refernce
2372
+    # Array reference
2373 2373
     $dbi->select(column => ['author', 'title']);
2374 2374
     
2375 2375
     # Constant value
2376 2376
     $dbi->select(column => 'author');
2377
-
2378
-Default is '*' unless C<column> is specified.
2377
+    
2378
+Default is '*' if C<column> is not specified.
2379 2379
 
2380 2380
     # Default
2381 2381
     $dbi->select(column => '*');
2382 2382
 
2383
+You can specify hash reference.
2384
+
2385
+    # Hash reference
2386
+    $dbi->select(column => [
2387
+        {book => [qw/author title/]},
2388
+        {person => [qw/name age/]}
2389
+    ]);
2390
+    
2391
+This is expanded to the following one by C<column> method automatically.
2392
+
2393
+    book.author as book__author,
2394
+    book.title as book__title,
2395
+    person.name as person__name,
2396
+    person.age as person__age
2397
+
2383 2398
 =item C<where>
2384 2399
 
2385 2400
 Where clause. This is hash reference or L<DBIx::Custom::Where> object,
+33 -141
lib/DBIx/Custom/Guide.pod
... ...
@@ -22,11 +22,11 @@ and make easy difficult works if you use only L<DBI>.
22 22
 If you already learn SQL, it is easy to use L<DBIx::Custom>.
23 23
 
24 24
 I explain L<DBIx::Custom> a little in this section.
25
-In L<DBIx::Custom>, you embbed tag in SQL.
25
+In L<DBIx::Custom>, you embbed parameter in SQL.
26 26
 
27
-    select * from book where {= title} and {=author};
27
+    select * from book where title = :title and author = :author;
28 28
 
29
-The part arround {} is tag.
29
+The part :title is parameter.
30 30
 This SQL is converted to the one which contains place holder.
31 31
 
32 32
     select * from book where title = ? and author = ?;
... ...
@@ -107,7 +107,7 @@ L<DBIx::Custom> prepare the way to make it easy.
107 107
     
108 108
     # Search condition
109 109
     $where->clause(
110
-        ['and', '{= title}', {'= author'}]
110
+        ['and', 'title = :title', 'author = :author']
111 111
     );
112 112
     
113 113
     # Setting to automatically select needed column
... ...
@@ -385,10 +385,10 @@ use C<execute()> to execute SQL
385 385
 
386 386
     $dbi->execute("select * from book;");
387 387
 
388
-Process tag and execute SQL.
388
+Process parameter and execute SQL.
389 389
 
390 390
     $dbi->execute(
391
-        "select * from book {= title} and {= author};"
391
+        "select * from book title = :title and author = :author;"
392 392
         param => {title => 'Perl', author => 'Ken'}
393 393
     );
394 394
 
... ...
@@ -398,7 +398,7 @@ Following SQL is executed.
398 398
 
399 399
 Values of title and author is embbdeded into placeholder.
400 400
 
401
-See L<5. Tag/"5. Tag"> about tag.
401
+See L<5. Parameter/"5. Parameter"> about parameter.
402 402
 
403 403
 You don't have to wirte last semicolon in C<execute()>. 
404 404
 
... ...
@@ -749,35 +749,23 @@ C<each_column()> receive callback.
749 749
 callback arguments are L<DBIx::Custom> object, table name, column name, column information.
750 750
 Filter is applied automatically by column type.
751 751
 
752
-=head2 5. Tag
752
+=head2 5. Parameter
753 753
 
754
-=head3 Basic of Tag
754
+=head3 Basic of Parameter
755 755
 
756
-You can embedd tag into SQL.
756
+You can embedd parameter into SQL.
757 757
 
758
-    select * from book where {= title} and {like author};
758
+    select * from book where title = :title and author like :author;
759 759
 
760
-{= title} and {like author} are tag. Tag has the folloring format.
760
+:title and :author is parameter
761 761
 
762
-    {TAG_NAME ARG1 ARG2 ...}
763
-
764
-Tag start C<{> and end C<}>. 
765
-Don't insert space between C<{}> and tag name.
766
-
767
-C<{> and C<}> are reserved word.
768
-If you want to use these, escape it by '\';
769
-
770
-    select from book \\{ ... \\}
771
-
772
-\ is perl's escape character, you need two \.
773
-
774
-Tag is expanded before executing SQL.
762
+Parameter is converted to place holder.
775 763
 
776 764
     select * from book where title = ? and author like ?;
777 765
 
778
-use C<execute()> to execute SQL which contains tag
766
+use C<execute()> to execute SQL.
779 767
 
780
-    my $sql = "select * from book where {= author} and {like title};"
768
+    my $sql = "select * from book where title = :title and author like :author;"
781 769
     $dbi->execute($sql, param => {title => 'Perl', author => '%Ken%'});
782 770
 
783 771
 You can specify values embedded into place holder as hash reference using
... ...
@@ -794,113 +782,17 @@ You have to use C<table> option
794 782
 
795 783
     $dbi->execute($sql, table => ['author', 'book']);
796 784
 
797
-=head3 Tag list
798
-
799
-The following tag is available.
800
-
801
-=head4 C<?>
802
-
803
-    {? NAME}    ->   ?
804
-
805
-=head4 C<=>
806
-
807
-    {= NAME}    ->   NAME = ?
808
-
809
-=head4 C<E<lt>E<gt>>
810
-
811
-    {<> NAME}   ->   NAME <> ?
812
-
813
-=head4 C<E<lt>>
814
-
815
-    {< NAME}    ->   NAME < ?
816
-
817
-=head4 C<E<gt>>
818
-
819
-    {> NAME}    ->   NAME > ?
820
-
821
-=head4 C<E<gt>=>
822
-
823
-    {>= NAME}   ->   NAME >= ?
824
-
825
-=head4 C<E<lt>=>
826
-
827
-    {<= NAME}   ->   NAME <= ?
828
-
829
-=head4 C<like>
830
-
831
-    {like NAME}   ->   NAME like ?
832
-
833
-=head4 C<in>
834
-
835
-    {in NAME COUNT}   ->   NAME in [?, ?, ..]
836
-
837
-=head4 C<insert_param>
838
-
839
-    {insert_param NAME1 NAME2}   ->   (NAME1, NAME2) values (?, ?)
840
-
841
-=head4 C<update_param>
842
-
843
-    {update_param NAME1 NAME2}   ->   set NAME1 = ?, NAME2 = ?
844
-
845 785
 =head3 Manipulate same name's columns
846 786
 
847 787
 It is ok if there are same name's columns.
848 788
 Let's think two date comparison.
849 789
 
850
-    my $sql = "select * from table where {> date} and {< date};";
790
+    my $sql = "select * from table where date > :date and date < :date;";
851 791
 
852 792
 In this case, You specify paramter values as array reference.
853 793
 
854 794
     my $dbi->execute($sql, param => {date => ['2010-10-01', '2012-02-10']});
855 795
 
856
-=head3 Register Tag : C<register_tag()>
857
-
858
-You can register custom tag.
859
-use C<register_tag()> to register tag.
860
-
861
-    $dbi->register_tag(
862
-        '=' => sub {
863
-            my $column = shift;
864
-            
865
-            return ["$column = ?", [$column]];
866
-        }
867
-    );
868
-
869
-This is implementation of C<=> tag.
870
-Tag format is the following one.
871
-
872
-    {TAG_NAME ARG1 ARG2 ...}
873
-
874
-In case C<=> tag. Format is
875
-
876
-    {= title}
877
-
878
-So subroutine receive one argument "title".
879
-You have to return array reference in the following format.
880
-
881
-    [
882
-        String after expanding,
883
-        [COLUMN1(This is used for place holder), COLUMN2 , ...]
884
-    ]
885
-
886
-First element is expanded stirng. In this example,
887
-
888
-    'title = ?'
889
-
890
-Secount element is array reference which is used to embedd value to
891
-place holder. In this example,
892
-
893
-    ['title']
894
-
895
-If there are more than one placeholders,
896
-This elements is multipul.
897
-
898
-You return the following array reference.
899
-
900
-    ['title = ?', ['title']]
901
-
902
-See source of L<DBIx::Custom::Tag> to see many implementation.
903
-
904 796
 =head2 6. Dinamically create where clause
905 797
 
906 798
 =head3 Dinamically create where clause : where()
... ...
@@ -910,15 +802,15 @@ Let's think the following three cases.
910 802
 
911 803
 Case1: Search only C<title>
912 804
 
913
-    where {= title}
805
+    where title = :title
914 806
 
915 807
 Case2: Search only C<author>
916 808
 
917
-    where {= author}
809
+    where author = :author
918 810
 
919 811
 Case3: Search C<title> and C<author>
920 812
 
921
-    where {= title} and {=author}
813
+    where title = :title and author = :author
922 814
 
923 815
 L<DBIx::Custom> support dinamic where clause creating.
924 816
 At first, create L<DBIx::Custom::Where> object by C<where()>.
... ...
@@ -928,24 +820,24 @@ At first, create L<DBIx::Custom::Where> object by C<where()>.
928 820
 Set clause by C<clause()>
929 821
 
930 822
     $where->clause(
931
-        ['and', '{= title'}, '{= author}']
823
+        ['and', 'title = :title, 'author = :author']
932 824
     );
933 825
 
934 826
 C<clause> is the following format.
935 827
 
936
-    ['or' or 'and', TAG1, TAG2, TAG3]
828
+    ['or' or 'and', PART1, PART1, PART1]
937 829
 
938 830
 First argument is 'or' or 'and'.
939
-Later than first argument are tag names.
831
+Later than first argument are part which contains parameter.
940 832
 
941 833
 You can write more complex format.
942 834
 
943 835
     ['and', 
944
-      '{= title}', 
945
-      ['or', '{= author}', '{like date}']
836
+      'title = :title', 
837
+      ['or', 'author = :author', 'date like :date']
946 838
     ]
947 839
 
948
-This mean "{=title} and ( {=author} or {like date} )".
840
+This mean "title = :title and ( author = :author or date like :date )".
949 841
 
950 842
 After setting C<clause>, set C<param>.
951 843
     
... ...
@@ -960,7 +852,7 @@ which contain only parameter name.
960 852
 
961 853
 Parameter name is only title, the following where clause is created.
962 854
 
963
-    where {= title}
855
+    where title = :title
964 856
 
965 857
 You can also create where clause by stringification.
966 858
 
... ...
@@ -970,7 +862,7 @@ This is useful to embbed it into SQL.
970 862
 
971 863
 =head3 In case where clause contains same name columns
972 864
 
973
-Even if same name tags exists, you can create where clause.
865
+Even if same name parameters exists, you can create where clause.
974 866
 Let's think that there are starting date and ending date.
975 867
 
976 868
     my $param = {start_date => '2010-11-15', end_date => '2011-11-21'};
... ...
@@ -979,10 +871,10 @@ In this case, you set parameter value as array reference.
979 871
 
980 872
     my $p = {date => ['2010-11-15', '2011-11-21']};
981 873
 
982
-You can embbed these values into same name tags.
874
+You can embbed these values into same name parameters.
983 875
 
984 876
     $where->clause(
985
-        ['and', '{> date}', '{< date}']
877
+        ['and', 'date > :date', 'date < :date']
986 878
     );
987 879
     $where->param($p);
988 880
 
... ...
@@ -1014,7 +906,7 @@ This logic is a little difficut. See the following ones.
1014 906
 You can pass L<DBIx::Custom::Where> object to C<where> of C<select()>.
1015 907
     
1016 908
     my $where = $dbi->where;
1017
-    $where->clause(['and', '{= title}', '{= author}']);
909
+    $where->clause(['and', 'title = :title', 'author = :author']);
1018 910
     $where->param({title => 'Perl'});
1019 911
     my $result = $dbi->select(table => 'book', where => $where);
1020 912
 
... ...
@@ -1025,15 +917,15 @@ You can also pass it to C<where> of C<update()>AC<delete()>
1025 917
 L<DBIx::Custom::Where> object is embedded into SQL.
1026 918
 
1027 919
     my $where = $dbi->where;
1028
-    $where->clause(['and', '{= title}', '{= author}']);
920
+    $where->clause(['and', 'title = :title', 'author = :author']);
1029 921
     $where->param({title => 'Perl'});
1030 922
 
1031 923
     my $sql = <<"EOS";
1032
-    select * from {table book};
924
+    select * from book;
1033 925
     $where
1034 926
     EOS
1035 927
 
1036
-    $dbi->execute($sql, param => $param);
928
+    $dbi->execute($sql, param => $param, table => 'book');
1037 929
 
1038 930
 =head2 7. Model
1039 931
 
+30 -144
lib/DBIx/Custom/Guide/Ja.pod
... ...
@@ -24,12 +24,12 @@ L<DBIx::Custom>の主な目的は、SQLを尊重しつつ、L<DBI>だけでは
24 24
 活用することができます。
25 25
 
26 26
 L<DBIx::Custom>の仕組みを少しだけ説明しておきます。
27
-L<DBIx::Custom>では、タグと呼ばれるものを
27
+L<DBIx::Custom>では、パラメーターと呼ばれるものを
28 28
 SQLの中に埋め込むことができます。
29 29
 
30
-    select * from book where {= title} and {=author};
30
+    select * from book where title = :title and author = :author;
31 31
 
32
-{}で囲まれた部分がタグです。このSQLは実際に実行されるときには
32
+:titleや:authorがパラメーターです。このSQLは実際に実行されるときには
33 33
 次のようにプレースホルダに展開されます。
34 34
 
35 35
     select * from book where title = ? and author = ?;
... ...
@@ -113,7 +113,7 @@ L<DBIx::Custom>はさらに簡単で便利な方法を用意しています。
113 113
     
114 114
     # 検索条件
115 115
     $where->clause(
116
-        ['and', '{= title}', {'= author'}]
116
+        ['and', 'title = :title', 'author = :author']
117 117
     );
118 118
     
119 119
     # 必要な列を自動的に選択するための設定
... ...
@@ -391,10 +391,10 @@ SQLを実行するにはC<execute()>を使用します。
391 391
 
392 392
     $dbi->execute("select * from book;");
393 393
 
394
-タグを処理してSQLを実行します。
394
+パラメーターを処理してSQLを実行します。
395 395
 
396 396
     $dbi->execute(
397
-        "select * from book {= title} and {= author};"
397
+        "select * from book title = :title and author = :author;"
398 398
         param => {title => 'Perl', author => 'Ken'}
399 399
     );
400 400
 
... ...
@@ -404,7 +404,7 @@ SQLを実行するにはC<execute()>を使用します。
404 404
 
405 405
 プレースホルダにtitleとauthorの値が埋め込まれます。
406 406
 
407
-タグについてはL<5. タグ/"5. タグ">を見てください。
407
+パラメーターについてはL<5. パラメーター/"5. パラメーター">を見てください。
408 408
 
409 409
 またC<execute()>のSQLの末尾にはセミコロンを置く必要はありません。
410 410
 
... ...
@@ -759,37 +759,23 @@ each_columnはコールバックを受け取ります。コールバックの引
759 759
 L<DBIx::Custom>オブジェクト、テーブル名、列名、列の情報です。
760 760
 列の型名の情報をもとに自動的に、フィルタを適用しています。
761 761
 
762
-=head2 5. タグ
762
+=head2 5. パラメーター
763 763
 
764
-=head3 タグの基本
764
+=head3 パラメーターの基本
765 765
 
766
-SQLの中にタグを埋め込むことができます。
766
+SQLの中にパラメーターを埋め込むことができます。
767 767
 
768
-    select * from book where {= title} and {like author};
768
+    select * from book where title = :title and author like :author;
769 769
 
770
-{= title}と{like author}の部分がタグです。タグは次のような形式
771
-を持ちます。
772
-
773
-    {タグ名 引数1 引数2 ...}
770
+:titleと:authorの部分がパラメーターです。
774 771
     
775
-タグはC<{>で始まり、C<}>で終わります。最初のC<{>とタグ名の間
776
-には空白を挿入しないよう注意してください。
777
-
778
-C<{>とC<}>は予約語になっています。
779
-もし利用したい場合は\でエスケープを行う必要があります。
780
-
781
-    select from book \\{ ... \\}
782
-
783
-C<\>自体がPerlのエスケープ文字ですので、
784
-C<\>は二つ必要になります。
785
-
786
-タグはSQLが実行される前に展開されます。
772
+パラメーターはSQLが実行される前に展開されます。
787 773
 
788 774
     select * from book where title = ? and author like ?;
789 775
 
790
-タグを含むSQLを実行するにはC<execute()>を使用します。
776
+パラメーターを含むSQLを実行するにはC<execute()>を使用します。
791 777
 
792
-    my $sql = "select * from book where {= author} and {like title};"
778
+    my $sql = "select * from book where author = :author and title like :title;"
793 779
     $dbi->execute($sql, param => {title => 'Perl', author => '%Ken%'});
794 780
 
795 781
 C<param>オプションを使って、プレースホルダに埋め込みたい値を
... ...
@@ -809,118 +795,18 @@ C<table>オプションを利用します。
809 795
 
810 796
 後ろで適用したフィルタのほうが優先順位が高くなります。
811 797
 
812
-=head3 タグ一覧
813
-
814
-=head4 C<?>
815
-
816
-    {? NAME}    ->   ?
817
-
818
-=head4 C<=>
819
-
820
-    {= NAME}    ->   NAME = ?
821
-
822
-=head4 C<E<lt>E<gt>>
823
-
824
-    {<> NAME}   ->   NAME <> ?
825
-
826
-=head4 C<E<lt>>
827
-
828
-    {< NAME}    ->   NAME < ?
829
-
830
-=head4 C<E<gt>>
831
-
832
-    {> NAME}    ->   NAME > ?
833
-
834
-=head4 C<E<gt>=>
835
-
836
-    {>= NAME}   ->   NAME >= ?
837
-
838
-=head4 C<E<lt>=>
839
-
840
-    {<= NAME}   ->   NAME <= ?
841
-
842
-=head4 C<like>
843
-
844
-    {like NAME}   ->   NAME like ?
845
-
846
-=head4 C<in>
847
-
848
-    {in NAME COUNT}   ->   NAME in [?, ?, ..]
849
-
850
-=head4 C<insert_param>
851
-
852
-    {insert_param NAME1 NAME2}   ->   (NAME1, NAME2) values (?, ?)
853
-
854
-=head4 C<update_param>
855
-
856
-    {update_param NAME1 NAME2}   ->   set NAME1 = ?, NAME2 = ?
857
-
858 798
 =head3 同名の列の扱い
859 799
 
860
-同名の列を含むタグがある場合でも大丈夫です。
800
+同名の列を含むパラメーターがある場合でも大丈夫です。
861 801
 二つの日付で比較しなければならない場合を
862 802
 考えて見ましょう。
863 803
 
864
-    my $sql = "select * from table where {> date} and {< date};";
804
+    my $sql = "select * from table where date > :date and date < :date;";
865 805
 
866 806
 このような場合はパラメータの値を配列のリファレンスで指定します。
867 807
 
868 808
     my $dbi->execute($sql, param => {date => ['2010-10-01', '2012-02-10']});
869 809
 
870
-=head3 タグの登録 C<register_tag()>
871
-
872
-独自のタグを登録することができます。
873
-タグを追加するにはC<register_tag()>を使用します。
874
-
875
-    $dbi->register_tag(
876
-        '=' => sub {
877
-            my $column = shift;
878
-            
879
-            return ["$column = ?", [$column]];
880
-        }
881
-    );
882
-
883
-ここではデフォルトのC<=>タグがどのように実装されているかを示しています。
884
-タグの形式は次のようになっています。
885
-
886
-    {タグ名 引数1 引数2 ...}
887
-
888
-C<=>タグの場合は
889
-
890
-    {= title}
891
-
892
-という形式ですから、サブルーチンにはtitleというひとつの列名がわたってきます。
893
-
894
-サブルーチンの戻り値には次の形式の配列のリファレンスを返す必要があります。
895
-
896
-    [
897
-        展開後の文字列,
898
-        [プレースホルダに埋め込みに利用する列名1, 列名2, ...]
899
-    ]
900
-
901
-一つ目の要素は展開後の文字列です。この例では
902
-
903
-    'title = ?'
904
-
905
-を返す必要があります。
906
-
907
-二つ目の要素はプレースホルダに埋め込みに利用する列名を含む配列の
908
-リファレンスです。今回の例では
909
-
910
-    ['title']
911
-
912
-を返す必要があります。複数のプレースホルダを含む場合は、この部分が
913
-複数になります。
914
-
915
-上記を合わせると
916
-
917
-    ['title = ?', ['title']]
918
-    
919
-を返す必要があるということです。
920
-
921
-タグの実装の他のサンプルはL<DBIx::Custom::Tag>のソースコード
922
-をご覧になってみてください。
923
-
924 810
 =head2 6. Where句の動的な生成
925 811
 
926 812
 =head3 Where句の動的な生成 where()
... ...
@@ -930,15 +816,15 @@ C<=>タグの場合は
930 816
 
931 817
 titleの値だけで検索したい場合
932 818
 
933
-    where {= title}
819
+    where title = :title
934 820
 
935 821
 authorの値だけで検索したい場合
936 822
 
937
-    where {= author}
823
+    where author = :author
938 824
 
939 825
 titleとauthorの両方の値で検索したい場合
940 826
 
941
-    where {= title} and {=author}
827
+    where title = :title and author = :author
942 828
 
943 829
 L<DBIx::Custom>では動的なWhere句の生成をサポートしています。
944 830
 まずC<where()>でL<DBIx::Custom::Where>オブジェクトを生成します。
... ...
@@ -948,25 +834,25 @@ L<DBIx::Custom>では動的なWhere句の生成をサポートしています。
948 834
 次にC<clause()>を使用してwhere句を記述します。
949 835
 
950 836
     $where->clause(
951
-        ['and', '{= title'}, '{= author}']
837
+        ['and', 'title = :title', 'author = :author']
952 838
     );
953 839
 
954 840
 clauseの指定方法は次のようになります。
955 841
 
956
-    ['or' あるいは 'and', タグ1, タグ2, タグ3]
842
+    ['or' あるいは 'and', パラメーター1, パラメーター2, パラメーター3]
957 843
 
958 844
 第一引数にはorあるいはandを指定します。第二引数以降には
959
-検索条件をタグを使って記述します。
845
+検索条件をパラメーターを使って記述します。
960 846
 
961 847
 C<clause>の指定は入れ子にすることもでき、さらに複雑な条件
962 848
 を記述することもできます。
963 849
 
964 850
     ['and', 
965
-      '{= title}', 
966
-      ['or', '{= author}', '{like date}']
851
+      'title = :title', 
852
+      ['or', 'author = :author', 'date like :date']
967 853
     ]
968 854
 
969
-これは "{=title} and ( {=author} or {like date} )" 意味しています。
855
+これは "title = :title and ( author = :author or date like :date )" 意味しています。
970 856
 
971 857
 C<clause>を設定した後にC<param>にパラメータを指定します。
972 858
     
... ...
@@ -981,7 +867,7 @@ where句を生成することができます。
981 867
 
982 868
 パラメータはtitleだけですので、次のようなwhere句が生成されます。
983 869
 
984
-    where {= title}
870
+    where title = :title
985 871
 
986 872
 またL<DBIx::Custom>は文字列の評価をオーバーロードして、C<to_string()>
987 873
 を呼び出すようにしていますので、次のようにしてwhere句を生成することも
... ...
@@ -993,7 +879,7 @@ where句を生成することができます。
993 879
 
994 880
 =head3 同一の列名を含む場合
995 881
 
996
-タグの中に同一の名前を持つものが存在した場合でも動的に
882
+パラメーターの中に同一の名前を持つものが存在した場合でも動的に
997 883
 where句を作成することができます。
998 884
 
999 885
 たとえば、パラメータとして開始日付と終了日付を受け取ったことを
... ...
@@ -1005,10 +891,10 @@ where句を作成することができます。
1005 891
 
1006 892
     my $p = {date => ['2010-11-15', '2011-11-21']};
1007 893
 
1008
-同名の列を含むタグに順番に埋め込むことができます。
894
+同名の列を含むパラメーターに順番に埋め込むことができます。
1009 895
 
1010 896
     $where->clause(
1011
-        ['and', '{> date}', '{< date}']
897
+        ['and', 'date > :date', 'date < :date']
1012 898
     );
1013 899
     $where->param($p);
1014 900
 
+12
lib/DBIx/Custom/Result.pm
... ...
@@ -376,6 +376,12 @@ Statement handle of L<DBI>.
376 376
 L<DBIx::Custom::Result> inherits all methods from L<Object::Simple>
377 377
 and implements the following new ones.
378 378
 
379
+=head2 C<all>
380
+
381
+    my $rows = $result->all;
382
+
383
+This is alias for C<fetch_hash_all>.
384
+
379 385
 =head2 C<end_filter>
380 386
 
381 387
     $result = $result->end_filter(title  => 'to_something',
... ...
@@ -448,6 +454,12 @@ Filters.
448 454
 These each filters override the filters applied by C<apply_filter> of
449 455
 L<DBIx::Custom>.
450 456
 
457
+=head2 C<one>
458
+
459
+    my $row = $result->one;
460
+
461
+This is alias for C<fetch_hash_first>.
462
+
451 463
 =head2 C<remove_end_filter>
452 464
 
453 465
     $result->remove_end_filter;
+1 -1
t/dbix-custom-core-sqlite.t
... ...
@@ -1078,7 +1078,7 @@ $row = $result->fetch_hash_all;
1078 1078
 is_deeply($row, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}]);
1079 1079
 
1080 1080
 $where = $dbi->where
1081
-             ->clause(['and', ['or', '{> key1}', '{< key1}'], '{= key2}'])
1081
+             ->clause(['and', ['or', 'key1 > :key1', 'key1 < :key1'], 'key2 = :key2'])
1082 1082
              ->param({key1 => [0, 3], key2 => 2});
1083 1083
 $result = $dbi->select(
1084 1084
     table => 'table1',