[ANN] KirbyBase 2.3 Production Version

J

Jamey Cribbs

I would like to announce the production release of version 2.3 of
KirbyBase, a small, pure-Ruby database management system that stores
it's data in plain-text files.

You can download it here:

Windows: http://www.netpromi.com/files/KirbyBase_Ruby_2.3.zip
Linux/Unix: http://www.netpromi.com/files/KirbyBase_Ruby_2.3.tar.gz

Here's whats new since the 2nd beta:

* A lot of code cleanup and some bug fixes.

* The manual has been updated with the new features. By the way, the
manual really needs to be re-organized/re-written, something I'm a
little too burnt out to do right now. If anyone enjoys writing
documentation ( :) ) and would be interested in helping with this,
please let me know.

* And, the most dramatic addition, the implementation of *The Hal Fulton
Feature* (TM). I have implemented the shortcut designation for a Lookup
field that Hal has requested for some time. Check out the example in
the example/lookup_field_test directory or the manual to see what this is.

Here are the other new features rolled in from betas 1 and 2:

* New column type: :YAML. If you designate a column as a :YAML type,
then you can store anything that YAML can handle in this field. This
opens up the possibility for now storing arrays and hashes in
KirbyBase. KirbyBase takes care of calling YAML.load() and #to_yaml for
you, so you can just use the field as a normal native Ruby type. One
nice side effect of this is that you can even use :YAML fields in your
#select queries. Many thanks to Logan Capaldo for this idea!

* Two new methods: #add_table_column and #drop_table_column.

* You can now define one-to-one relationships and one-to-many
relationships between tables. I hesitate to call KirbyBase
"relational", because I know that the term, in its pure form, is
supposed to refer to whether the dbms supports relational algebra, not
relations between tables. That being said, KirbyBase now supports the
ability to link a field in one table to another table, so that when you
perform a select, you automatically have available in that field a
reference to either a single record (for one-to-one links) or multiple
records (for one-to-many) links.

* You can now define calculated fields in a table. These are "virtual"
fields that don't get populated with data until runtime. For example,
you can create a field called "total" and specify that it's value is
"quantity * price". During a #select, KirbyBase will, for each record,
calculate the value of "total" by multiplying the "quantity" field by
the "price" field. Check out the example in the calculated_field_test
directory.

* Two new fields types are available for table fields: Memo and Blob.
Check out the example in the memo_test directory.

* KirbyBase now makes available "crosstab" functionality in the result
set of a #select. I am probably not using the term "crosstab"
correctly, but I am having a hard time finding the right word to use.
Basically, you now have available all of the values for a particular
column of the result set. Probably the best way to see what this is is
to take a look at the example in the crosstab_test directory.

* KirbyBase now has the ability to take advantage of indexes if you
specify them when you create a table. Both single and compound indexes
are supported.


I would like to thank all of the people who provided bug fixes,
suggestions, and ideas for version 2.3.

Enjoy!

Jamey Cribbs
(e-mail address removed)



Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.
 
E

Ezra Zygmuntowicz

Hey thanks Jamey. This stuff is great! Keep 'em coming.

Cheers-
-Ezra

I would like to announce the production release of version 2.3 of
KirbyBase, a small, pure-Ruby database management system that
stores it's data in plain-text files.

You can download it here:

Windows: http://www.netpromi.com/files/KirbyBase_Ruby_2.3.zip
Linux/Unix: http://www.netpromi.com/files/KirbyBase_Ruby_2.3.tar.gz

Here's whats new since the 2nd beta:

* A lot of code cleanup and some bug fixes.

* The manual has been updated with the new features. By the way,
the manual really needs to be re-organized/re-written, something
I'm a little too burnt out to do right now. If anyone enjoys
writing documentation ( :) ) and would be interested in helping
with this, please let me know.

* And, the most dramatic addition, the implementation of *The Hal
Fulton Feature* (TM). I have implemented the shortcut designation
for a Lookup field that Hal has requested for some time. Check out
the example in the example/lookup_field_test directory or the
manual to see what this is.

Here are the other new features rolled in from betas 1 and 2:

* New column type: :YAML. If you designate a column as a :YAML
type, then you can store anything that YAML can handle in this
field. This opens up the possibility for now storing arrays and
hashes in KirbyBase. KirbyBase takes care of calling YAML.load()
and #to_yaml for you, so you can just use the field as a normal
native Ruby type. One nice side effect of this is that you can
even use :YAML fields in your #select queries. Many thanks to
Logan Capaldo for this idea!

* Two new methods: #add_table_column and #drop_table_column.

* You can now define one-to-one relationships and one-to-many
relationships between tables. I hesitate to call KirbyBase
"relational", because I know that the term, in its pure form, is
supposed to refer to whether the dbms supports relational algebra,
not relations between tables. That being said, KirbyBase now
supports the ability to link a field in one table to another table,
so that when you perform a select, you automatically have available
in that field a reference to either a single record (for one-to-one
links) or multiple records (for one-to-many) links.
* You can now define calculated fields in a table. These are
"virtual" fields that don't get populated with data until runtime.
For example, you can create a field called "total" and specify that
it's value is "quantity * price". During a #select, KirbyBase
will, for each record, calculate the value of "total" by
multiplying the "quantity" field by the "price" field. Check out
the example in the calculated_field_test directory.

* Two new fields types are available for table fields: Memo and
Blob. Check out the example in the memo_test directory.

* KirbyBase now makes available "crosstab" functionality in the
result set of a #select. I am probably not using the term
"crosstab" correctly, but I am having a hard time finding the right
word to use. Basically, you now have available all of the values
for a particular column of the result set. Probably the best way
to see what this is is to take a look at the example in the
crosstab_test directory.

* KirbyBase now has the ability to take advantage of indexes if you
specify them when you create a table. Both single and compound
indexes are supported.

I would like to thank all of the people who provided bug fixes,
suggestions, and ideas for version 2.3.
Enjoy!

Jamey Cribbs
(e-mail address removed)



Confidentiality Notice: This email message, including any
attachments, is for the sole use of the intended recipient(s) and
may contain confidential and/or privileged information. If you are
not the intended recipient(s), you are hereby notified that any
dissemination, unauthorized review, use, disclosure or distribution
of this email and any materials contained in any attachments is
prohibited. If you receive this message in error, or are not the
intended recipient(s), please immediately notify the sender by
email and destroy all copies of the original message, including
attachments.

-Ezra Zygmuntowicz
Yakima Herald-Republic
WebMaster
http://yakimaherald.com
509-577-7732
(e-mail address removed)
 
H

Hal Fulton

Jamey said:
I would like to announce the production release of version 2.3 of
KirbyBase, a small, pure-Ruby database management system that stores
it's data in plain-text files.

[snip]

Jamey -- once again thanks for all your hard work. You rock.
* And, the most dramatic addition, the implementation of *The Hal Fulton
Feature* (TM). I have implemented the shortcut designation for a Lookup
field that Hal has requested for some time. Check out the example in
the example/lookup_field_test directory or the manual to see what this is.

Haha, thanks! But of course, just because you name it after me doesn't
mean it's necessarily what I wanted. ;)

I will check this out soon, but it will probably be after the conference.
Are you going, by the way?
* New column type: :YAML. If you designate a column as a :YAML type,
then you can store anything that YAML can handle in this field. This
opens up the possibility for now storing arrays and hashes in
KirbyBase. KirbyBase takes care of calling YAML.load() and #to_yaml for
you, so you can just use the field as a normal native Ruby type. One
nice side effect of this is that you can even use :YAML fields in your
#select queries. Many thanks to Logan Capaldo for this idea!

Cool idea.

[snip more]

Looks like you've given us quite an arsenal of weaponry here.

Norman Richards and I were talking at lunch last week (Norman, are you
reading this?) and we were pretty much in agreement as to why we didn't
like ActiveRecord so much. I'd love to get with him and work on a
KB wrapper. I don't get to code much with local people so far. That's
gonna change. :)
* Two new fields types are available for table fields: Memo and Blob.
Check out the example in the memo_test directory.

Are these similar at all? Are they, like, text and binary?
* KirbyBase now makes available "crosstab" functionality in the result
set of a #select. I am probably not using the term "crosstab"
correctly, but I am having a hard time finding the right word to use.
Basically, you now have available all of the values for a particular
column of the result set. Probably the best way to see what this is is
to take a look at the example in the crosstab_test directory.

Is this a statistical function of some kind?
* KirbyBase now has the ability to take advantage of indexes if you
specify them when you create a table. Both single and compound indexes
are supported.

More coolness. I hope I have time to play with this very soon.


Cheers,
Hal
 
J

Jamey Cribbs

Hal said:
Haha, thanks! But of course, just because you name it after me doesn't
mean it's necessarily what I wanted. ;)
Man, I was hoping that flattery would get me somewhere!
I will check this out soon, but it will probably be after the conference.
Are you going, by the way?
Yep. It's my first Ruby conference and I am geeked (pun intended)!
Cool idea.

Logan came up with this gem of an idea.
[snip more]

Looks like you've given us quite an arsenal of weaponry here.

Norman Richards and I were talking at lunch last week (Norman, are you
reading this?) and we were pretty much in agreement as to why we didn't
like ActiveRecord so much. I'd love to get with him and work on a
KB wrapper. I don't get to code much with local people so far. That's
gonna change. :)
Sounds great.
Are these similar at all? Are they, like, text and binary?
Yep. Both open, read, and return the contents of files. The only
difference is Memo opens in "read" mode and does a #readlines, Blob
opens in "read binary" mode and does a #read of the entire file.
Is this a statistical function of some kind?
Well, not exactly. It's really hard to explain and I am probably using
the term "crosstab" incorrectly. Basically, what it does is that, for
each column in the result set, KirbyBase gives you access to an array of
all of the values of that column for the entire Result set. In other
words, if you think of a record of a result set as a "horizontal" slice
of the Result set, this is a "vertical" slice of the Result set. There
is an example in the distribution that explains it a lot better than this.
More coolness. I hope I have time to play with this very soon.
See ya in San Diego!

Jamey
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

[ANN] KirbyBase 2.3 beta 2 1
[ANN] KirbyBase 2.3 beta 1 6
[ANN] KirbyBase 2.5.1 1
KirbyBase : update method problem 2
Kirbybase problem 5
[ANN] KirbyBase 2.0 0
[ANN] KirbyBase 2.4 2
[ANN] KirbyBase 2.5 1

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,740
Latest member
JudsonFrie

Latest Threads

Top