| ... | ... |
@@ -1,4 +1,5 @@ |
| 1 | 1 |
0.1701 |
| 2 |
+ - added EXPERIMENTAL each_table method |
|
| 2 | 3 |
- select method column option [COLUMN, as => ALIAS] format is DEPRECATED! |
| 3 | 4 |
changed to [COLUMN => ALIAS] |
| 4 | 5 |
- added EXPERIMENTAL DBIx::Custom::Result header method |
| ... | ... |
@@ -284,6 +284,19 @@ sub each_column {
|
| 284 | 284 |
} |
| 285 | 285 |
} |
| 286 | 286 |
|
| 287 |
+sub each_table {
|
|
| 288 |
+ my ($self, $cb) = @_; |
|
| 289 |
+ |
|
| 290 |
+ # Iterate all tables |
|
| 291 |
+ my $sth_tables = $self->dbh->table_info; |
|
| 292 |
+ while (my $table_info = $sth_tables->fetchrow_hashref) {
|
|
| 293 |
+ |
|
| 294 |
+ # Table |
|
| 295 |
+ my $table = $table_info->{TABLE_NAME};
|
|
| 296 |
+ $self->$cb($table, $table_info); |
|
| 297 |
+ } |
|
| 298 |
+} |
|
| 299 |
+ |
|
| 287 | 300 |
our %EXECUTE_ARGS = map { $_ => 1 } @COMMON_ARGS, 'param';
|
| 288 | 301 |
|
| 289 | 302 |
sub execute {
|
| ... | ... |
@@ -2076,6 +2089,21 @@ Argument is callback when one column is found. |
| 2076 | 2089 |
Callback receive four arguments, dbi object, table name, |
| 2077 | 2090 |
column name and column information. |
| 2078 | 2091 |
|
| 2092 |
+=head2 C<each_table> EXPERIMENTAL |
|
| 2093 |
+ |
|
| 2094 |
+ $dbi->each_table( |
|
| 2095 |
+ sub {
|
|
| 2096 |
+ my ($dbi, $table, $table_info) = @_; |
|
| 2097 |
+ |
|
| 2098 |
+ my $table_name = $table_info->{TABLE_NAME};
|
|
| 2099 |
+ } |
|
| 2100 |
+ ); |
|
| 2101 |
+ |
|
| 2102 |
+Iterate all table informationsfrom database. |
|
| 2103 |
+Argument is callback when one table is found. |
|
| 2104 |
+Callback receive three arguments, dbi object, table name, |
|
| 2105 |
+table information. |
|
| 2106 |
+ |
|
| 2079 | 2107 |
=head2 C<execute> |
| 2080 | 2108 |
|
| 2081 | 2109 |
my $result = $dbi->execute( |
| ... | ... |
@@ -2973,75 +3001,77 @@ DEBUG output encoding. Default to UTF-8. |
| 2973 | 3001 |
L<DBIx::Custom> |
| 2974 | 3002 |
|
| 2975 | 3003 |
# Attribute methods |
| 2976 |
- data_source # Removed at 2017/1/1 |
|
| 2977 |
- dbi_options # Removed at 2017/1/1 |
|
| 2978 |
- filter_check # Removed at 2017/1/1 |
|
| 2979 |
- reserved_word_quote # Removed at 2017/1/1 |
|
| 2980 |
- cache_method # Removed at 2017/1/1 |
|
| 3004 |
+ data_source # will be removed at 2017/1/1 |
|
| 3005 |
+ dbi_options # will be removed at 2017/1/1 |
|
| 3006 |
+ filter_check # will be removed at 2017/1/1 |
|
| 3007 |
+ reserved_word_quote # will be removed at 2017/1/1 |
|
| 3008 |
+ cache_method # will be removed at 2017/1/1 |
|
| 2981 | 3009 |
|
| 2982 | 3010 |
# Methods |
| 2983 |
- create_query # Removed at 2017/1/1 |
|
| 2984 |
- apply_filter # Removed at 2017/1/1 |
|
| 2985 |
- select_at # Removed at 2017/1/1 |
|
| 2986 |
- delete_at # Removed at 2017/1/1 |
|
| 2987 |
- update_at # Removed at 2017/1/1 |
|
| 2988 |
- insert_at # Removed at 2017/1/1 |
|
| 2989 |
- register_tag # Removed at 2017/1/1 |
|
| 2990 |
- default_bind_filter # Removed at 2017/1/1 |
|
| 2991 |
- default_fetch_filter # Removed at 2017/1/1 |
|
| 2992 |
- insert_param_tag # Removed at 2017/1/1 |
|
| 2993 |
- register_tag_processor # Removed at 2017/1/1 |
|
| 2994 |
- update_param_tag # Removed at 2017/1/1 |
|
| 3011 |
+ create_query # will be removed at 2017/1/1 |
|
| 3012 |
+ apply_filter # will be removed at 2017/1/1 |
|
| 3013 |
+ select_at # will be removed at 2017/1/1 |
|
| 3014 |
+ delete_at # will be removed at 2017/1/1 |
|
| 3015 |
+ update_at # will be removed at 2017/1/1 |
|
| 3016 |
+ insert_at # will be removed at 2017/1/1 |
|
| 3017 |
+ register_tag # will be removed at 2017/1/1 |
|
| 3018 |
+ default_bind_filter # will be removed at 2017/1/1 |
|
| 3019 |
+ default_fetch_filter # will be removed at 2017/1/1 |
|
| 3020 |
+ insert_param_tag # will be removed at 2017/1/1 |
|
| 3021 |
+ register_tag_processor # will be removed at 2017/1/1 |
|
| 3022 |
+ update_param_tag # will be removed at 2017/1/1 |
|
| 2995 | 3023 |
|
| 2996 | 3024 |
# Options |
| 2997 |
- select method relation option # Removed at 2017/1/1 |
|
| 2998 |
- select method param option # Removed at 2017/1/1 |
|
| 3025 |
+ select method relation option # will be removed at 2017/1/1 |
|
| 3026 |
+ select method param option # will be removed at 2017/1/1 |
|
| 3027 |
+ select method column option [COLUMN, as => ALIAS] format |
|
| 3028 |
+ # will be removed at 2017/1/1 |
|
| 2999 | 3029 |
|
| 3000 | 3030 |
# Others |
| 3001 | 3031 |
execute("select * from {= title}"); # execute tag parsing functionality
|
| 3002 |
- # Removed at 2017/1/1 |
|
| 3003 |
- Query caching # Removed at 2017/1/1 |
|
| 3032 |
+ # will be removed at 2017/1/1 |
|
| 3033 |
+ Query caching # will be removed at 2017/1/1 |
|
| 3004 | 3034 |
|
| 3005 | 3035 |
L<DBIx::Custom::Model> |
| 3006 | 3036 |
|
| 3007 | 3037 |
# Attribute method |
| 3008 |
- filter # Removed at 2017/1/1 |
|
| 3009 |
- name # Removed at 2017/1/1 |
|
| 3010 |
- type # Removed at 2017/1/1 |
|
| 3038 |
+ filter # will be removed at 2017/1/1 |
|
| 3039 |
+ name # will be removed at 2017/1/1 |
|
| 3040 |
+ type # will be removed at 2017/1/1 |
|
| 3011 | 3041 |
|
| 3012 | 3042 |
L<DBIx::Custom::Query> |
| 3013 | 3043 |
|
| 3014 | 3044 |
# Attribute method |
| 3015 |
- default_filter # Removed at 2017/1/1 |
|
| 3045 |
+ default_filter # will be removed at 2017/1/1 |
|
| 3016 | 3046 |
|
| 3017 | 3047 |
L<DBIx::Custom::QueryBuilder> |
| 3018 | 3048 |
|
| 3019 | 3049 |
# Attribute method |
| 3020 |
- tags # Removed at 2017/1/1 |
|
| 3021 |
- tag_processors # Removed at 2017/1/1 |
|
| 3050 |
+ tags # will be removed at 2017/1/1 |
|
| 3051 |
+ tag_processors # will be removed at 2017/1/1 |
|
| 3022 | 3052 |
|
| 3023 | 3053 |
# Method |
| 3024 |
- register_tag # Removed at 2017/1/1 |
|
| 3025 |
- register_tag_processor # Removed at 2017/1/1 |
|
| 3054 |
+ register_tag # will be removed at 2017/1/1 |
|
| 3055 |
+ register_tag_processor # will be removed at 2017/1/1 |
|
| 3026 | 3056 |
|
| 3027 | 3057 |
# Others |
| 3028 | 3058 |
build_query("select * from {= title}"); # tag parsing functionality
|
| 3029 |
- # Removed at 2017/1/1 |
|
| 3059 |
+ # will be removed at 2017/1/1 |
|
| 3030 | 3060 |
|
| 3031 | 3061 |
L<DBIx::Custom::Result> |
| 3032 | 3062 |
|
| 3033 | 3063 |
# Attribute method |
| 3034 |
- filter_check # Removed at 2017/1/1 |
|
| 3064 |
+ filter_check # will be removed at 2017/1/1 |
|
| 3035 | 3065 |
|
| 3036 | 3066 |
# Methods |
| 3037 |
- end_filter # Removed at 2017/1/1 |
|
| 3038 |
- remove_end_filter # Removed at 2017/1/1 |
|
| 3039 |
- remove_filter # Removed at 2017/1/1 |
|
| 3040 |
- default_filter # Removed at 2017/1/1 |
|
| 3067 |
+ end_filter # will be removed at 2017/1/1 |
|
| 3068 |
+ remove_end_filter # will be removed at 2017/1/1 |
|
| 3069 |
+ remove_filter # will be removed at 2017/1/1 |
|
| 3070 |
+ default_filter # will be removed at 2017/1/1 |
|
| 3041 | 3071 |
|
| 3042 | 3072 |
L<DBIx::Custom::Tag> |
| 3043 | 3073 |
|
| 3044 |
- This module is DEPRECATED! # Removed at 2017/1/1 |
|
| 3074 |
+ This module is DEPRECATED! # will be removed at 2017/1/1 |
|
| 3045 | 3075 |
|
| 3046 | 3076 |
=head1 BACKWORD COMPATIBLE POLICY |
| 3047 | 3077 |
|
| ... | ... |
@@ -3050,11 +3080,11 @@ except for attribute method. |
| 3050 | 3080 |
You can check all DEPRECATED functionalities by document. |
| 3051 | 3081 |
DEPRECATED functionality is removed after five years, |
| 3052 | 3082 |
but if at least one person use the functionality and tell me that thing |
| 3053 |
-I extend one year each time you tell me it. |
|
| 3083 |
+I extend one year each time he tell me it. |
|
| 3054 | 3084 |
|
| 3055 | 3085 |
EXPERIMENTAL functionality will be changed without warnings. |
| 3056 | 3086 |
|
| 3057 |
-This policy is changed at 2011/6/28 |
|
| 3087 |
+This policy was changed at 2011/6/28 |
|
| 3058 | 3088 |
|
| 3059 | 3089 |
=head1 BUGS |
| 3060 | 3090 |
|
| ... | ... |
@@ -905,6 +905,27 @@ is_deeply($infos, |
| 905 | 905 |
] |
| 906 | 906 |
|
| 907 | 907 |
); |
| 908 |
+test 'each_table'; |
|
| 909 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 910 |
+$dbi->execute($CREATE_TABLE->{2});
|
|
| 911 |
+$dbi->execute($CREATE_TABLE->{3});
|
|
| 912 |
+ |
|
| 913 |
+$infos = []; |
|
| 914 |
+$dbi->each_table(sub {
|
|
| 915 |
+ my ($self, $table, $table_info) = @_; |
|
| 916 |
+ |
|
| 917 |
+ if ($table =~ /^table/) {
|
|
| 918 |
+ my $info = [$table, $table_info->{TABLE_NAME}];
|
|
| 919 |
+ push @$infos, $info; |
|
| 920 |
+ } |
|
| 921 |
+}); |
|
| 922 |
+$infos = [sort { $a->[0] cmp $b->[0] || $a->[1] cmp $b->[1] } @$infos];
|
|
| 923 |
+is_deeply($infos, |
|
| 924 |
+ [ |
|
| 925 |
+ ['table1', 'table1'], |
|
| 926 |
+ ['table2', 'table2'], |
|
| 927 |
+ ] |
|
| 928 |
+); |
|
| 908 | 929 |
|
| 909 | 930 |
test 'limit'; |
| 910 | 931 |
$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|