Ted,
Your first statement does not include the \\x in front of the literal, try :
INSERT INTO person (first name, last name, id) VALUES ('Ted', 'Petrosky',
E'\\x021D57D63ED54328A5411B07442E262E')
See the PG doc for the binary data type:
https://www.postgresql.org/docs/9.1/static/datatype-binary.html
I do not know how is interpreted the value without the \\x but is different and
larger.
Maybe the \\x just trigger the encode function, I find it more compact and more
similar to other engine syntax. FrontBase and MySQL uses X'someHex literal'
Samuel
> Le 28 juin 2016 à 09:52, Theodore Petrosky <[email protected]> a écrit :
>
>
> INSERT INTO person (firstname, lastname, id) VALUES ('Ted', 'Petrosky',
> E'021D57D63ED54328A5411B07442E262E')
>
> this is what shows up in the database:
> \x3032314435374436334544353433323841353431314230373434324532363245
>
>
> INSERT INTO person (firstname, lastname, id) VALUES ('Ted', 'Petrosky',
> decode(E'F84B2A6880C948F4959EDB5FCF5347FE', 'hex'))
>
> this is what shows up in the database: \xf84b2a6880c948f4959edb5fcf5347fe
>
>
> so, it looks like the full decode statement is necessary.
>
>
> Ted
>
>
>> On Jun 28, 2016, at 8:32 AM, Samuel Pelletier <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Ted,
>>
>> They are probably 10 of other variations of this code but I do not think
>> there is any best way, the data needs to be converted to hex for the SQL.
>>
>> I'm sot sure if the "decode(E'...')" part is required, based on pg doc, byte
>> constant can be written as "E'\\xDEADBEEF' <smb://xDEADBEEF'>" so
>> "E'\\x <smb://x>" + UUIDUtilities.generateAsNSData()._hexString() + "'"
>> should also works.
>>
>> Samuel
>>
>>
>>> Le 28 juin 2016 à 06:09, Theodore Petrosky <[email protected]
>>> <mailto:[email protected]>> a écrit :
>>>
>>> I am starting a new little project and I want to use the UUIDs. My
>>> migrations usually start up by inserting a few entities by executing some
>>> SQL.
>>>
>>> The id column is not a ‘real’ postgresql UUID, it is a 128 bit bytea
>>> column. I figured out a way to use UUIDUtilities.generateAsNSData use that
>>> value to insert my entity.
>>>
>>> String theSQL = "INSERT INTO person (active, firstname, creationdate, id)
>>> VALUES " +
>>> "(true, 'Ted', now(), decode(E'" +
>>> UUIDUtilities.generateAsNSData()._hexString() + "', 'hex'))";
>>>
>>> ERXJDBCUtilities.executeUpdate(database.adaptorChannel(), theSQL);
>>>
>>> It works, but is there a better way or more correct way to create the bytea
>>> attribute to insert.
>>>
>>>
>>>
>>> Ted
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list ([email protected]
>>> <mailto:[email protected]>)
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com
>>> <https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com>
>>>
>>> This email sent to [email protected] <mailto:[email protected]>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]